Laboratorio di Algoritmi e Strutture Dati



Documenti analoghi
Tema 3. Insiemi, elementi di logica, calcolo combinatorio, relazioni e funzioni

Ulteriori Esercizi su Grafi. Ugo Vaccaro

Capitolo IV L n-polo

Lezioni di Ricerca Operativa 2 Dott. F. Carrabs

Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10. Lecture 11: Maggio Meccanismi per la Condivisione dei Costi

Lezione 4. Risposte canoniche dei sistemi del primo e del secondo ordine

Laboratorio di Algoritmi e Strutture Dati

2. Politiche di gestione delle scorte

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

Problema 1: Una collisione tra meteoriti

MODELLI DI SCELTA DEL PERCORSO PER RETI DI TRASPORTO COLLETTIVO

Errori di misura. è ragionevole assumere che una buona stima del valore vero sia la media

Note su alcuni principi fondamentali di macroeconomia Versione parziale e provvisoria. Claudio Sardoni Sapienza Università di Roma

Corso di Microonde II

Ricerca Operativa e Logistica

Esercizi Capitolo 6 - Alberi binari di ricerca

Soluzione degli esercizi del Capitolo 2

Capitolo. Il comportamento dei sistemi di controllo in regime permanente. 6.1 Classificazione dei sistemi di controllo. 6.2 Errore statico: generalità

Metodo della Trasformata di Laplace (mtl)

Cammini Minimi. Algoritmo di Dijkstra

Sintesi tramite il luogo delle radici

Metodi e Modelli Matematici di Probabilità per la Gestione

Lezione n.12. Gerarchia di memoria

Appunti di Algoritmi e Strutture Dati. Grafi. Gianfranco Gallizia

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Definizione delle specifiche per un sistema di controllo a retroazione unitaria

Grafi. Moreno Marzolla Dip. di Informatica Scienza e Ingegneria Università di Bologna. moreno.marzolla@unibo.it

Algoritmi di Ricerca. Esempi di programmi Java

Sommario della lezione

Problema del cammino minimo

Argomenti trattati. Rischio e Valutazione degli investimenti. Teoria della Finanza Aziendale. Costo del capitale

Università di Napoli Parthenope Facoltà di Ingegneria

Teorema del Limite Centrale

Il condensatore. Carica del condensatore: tempo caratteristico

Algoritmi e Strutture Dati

Alberi binari. Ilaria Castelli A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Media Mobile di ampiezza k (k pari) Esempio: Vendite mensili di shampoo

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Macchine sequenziali

Minimo sottografo ricoprente. Minimo sottografo ricoprente. Minimo albero ricoprente. Minimo albero ricoprente


Ricorsione in SQL-99. Introduzione. Idea di base

Lezione 11. Inflazione, produzione e crescita della moneta

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Corso di matematica classe quinta-anno Giunti scuola- Annarita Monaco 1

Complessità Computazionale

Un modello di ricerca operativa per le scommesse sportive

Circuito Simbolico. Trasformazione dei componenti

Statica del corpo rigido: esercizi svolti dai compitini degli anni precedenti

Le ipotesi di base che si utilizzano sono le stesse quattro già viste con riferimento al caso della flessione semplice e cioè:

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Trasformata di Laplace unilatera Teoria

Analisi di una Rete Sociale

V AK. Fig.1 Caratteristica del Diodo

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 6 problema 2 7 problema 3 7 problema 4 10 totale 30

Alcuni Preliminari. Prodotto Cartesiano

Il SENTIMENT E LA PSICOLOGIA

Meccanica Classica: Cinematica Formule

Pedagogia Sperimentale

Cinematica: soluzioni. Scheda 4. Ripetizioni Cagliari di Manuele Atzeni info@ripetizionicagliari.it

Alberi binari di ricerca

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Lezione 10. (BAG cap. 9) Corso di Macroeconomia Prof. Guido Ascari, Università di Pavia

IL METODO PERT ( PROGRAM EVALUATION AND REVIEW TECHNIQUE)

Transcript:

Laboraorio di Algorimi e Sruure Dai Aniello Murano hp://people.na.infn.i people.na.infn.i/ ~murano/ 1 Algorimi per il calcolo di percori minimi u un grafo 1

Un emplice problema Pr oblema: Supponiamo che un mo ocicli a voglia r aggiunger e Genova par endo da Napoli. Avendo a dipoizione una mappa dell I alia in cui per ogni collegamen o dir e o r a ci à è egna a la ua lunghezza, come può il moociclia rovare il percoro minimo? Soluzione del problema Una oluzione è quella di numer ar e u i i poibili cammini da Napoli a Genova, per ognuno calcolar e la lunghezza compleiva e poi elezionare il più breve Que a oluzione non è la più ef f icien e per ché ci ono milioni di cammini da analizzare. I n que a lezione vediamo come r iolver e que o pr oblema in modo efficiene. I n pr a ica, modellando la car ina dell I alia come un gr af o or ien a o pea o G=(V, E), dove ciacun ver ice r appr een a una cià, ogni ar co (u,v) r appr een a una r ada dir e a da u a v ed ogni peo w(u,v) cor r iponden e ad un ar co (u,v) r appr een a la di anza r a u e v, il pr oblema da r iolver e è quello di r ovar e il cammino minimo che collega il verice corripondene a Napoli con quello corripondene a Genova.

Definizione di Shore pah (SP) Da o un gr af o pea o or ien a o G=(V,E), il peo di un cammino p=(v v 1,,v k ) è da o dalla omma dei pei degli ar chi che lo coiuicono, cioè w( p) Uno hore pah (cammino minimo) dal nodo u al nodo v di V è un cammino p = (u,v 1,v,,v) ale che w(p) è minimo Il coo del cammino minimo da u a v è denoao con (u, v). Se non eie un cammino da u a v allora (u, v) = k i 1 w( vi 1, vi) Principio di oimalià Da o un gr af o pea o or ien a o G=(V,E) e uno hore pah p = (v,v 1,,v k ) da v a v k, qualiai o ocammino p = (v i,v i+1,,v j ) conenuo in p è anch eo uno hore pah ra v i e v j

Algorimi per il calcolo dello SP Da o un gr af o pea o conneo or ien a o G=(V,E) e un nodo or gen e di V, ei ono diver i algor i mi per r ovar e uno SP da ver o ogni al r o nodo di V (ingle- ource hore pah problem) Dall eecuzione di ali algor i mi i o iene, per ogni nodo de inazione v di V, uno SP p (da a v) e i calcola d[v] = dianza del nodo v dal nodo orgene lungo lo SP p [v] = predeceore del nodo v lungo lo SP p d[v]= Inizializzazione: per ogni nodo v di V v d[v] = e v, alrimeni d[] = [v] = Ø [v]=f L idea è ad ogni pao d[v] ale che d[v] = (, v) Dur an e l eecuzione i ua la ecnica del rilaameno (relaxaion) di un generico arco (u,v) di E, che erve a migliorare la nora ima per d. Gli algorimi i differenziano ulla modalià di eeguire il rilaameno Algorimo di Dijkra O(E + V log V) Algorimo di Bellman- Ford O(E V) Rilaameno di un arco Il rilaameno di un arco (u,v) di E, conie nel valuare e, uilizzando u come pr edeceor e di v, i può miglior ar e il valor e cor r en e della dianza d[v] e, in al cao, i aggiornano d[v] e [v] Procedura relax(u,v): e d[v] > d[u] + w(u,v); allora u d[v] = d[u] + w(u,v); e [v] = u; u (a) v v u u (b) v v In (a), In (b), d[v] > d[u] + w(u,v). Quindi il valore di d[v] decrece d[v] d[u] + w(u,v). Quindi d[v] non viene modificao 8

Algorimo di Dijkra L algor i mo di Dijkra r iolve il pr oblema di cammini minimi con or gen e ingola u un gr af o or ien a o e pea o G = (V, E) nel cao in cui ui i pei degli archi iano non negaivi. Aumeremo quindi che il peo w(u, v) per ogni arco (u, v) di E. L algor i mo di Dijkra man iene un inieme S che con iene i ver ici il cui peo di cammino minimo dalla or gen e è già ao deerminao. Inizialmene S viene inizializzao vuoo (inizializzazione). L algor i mo poi eleziona r ipe u amen e un ver ice u di S =V S con la minima ima di cammino minimo, iner ice u in S e r ilaa ui gli archi uceni da u. Viene ua a una coda con pr ior i à Q che con iene u i i ver ici in S L algorimo ermina quando S=V Dijkra' Shore Pah Algorihm Conideriamo il eguene grafo e il problema di rovare il cammino minimo da a 1 1 1 1

Dijkra' Shore Pah Algorihm S = { } Q = {,,,,,,, } 1 1 1 diance label Dijkra' Shore Pah Algorihm S = { } Q = {,,,,,,, } ExracMin() 1 1 1 diance label 1

Dijkra' Shore Pah Algorihm decreae key S = { } Q = {,,,,,, } 1 1 1 diance label 1 1 Dijkra' Shore Pah Algorihm S = { } Q = {,,,,,, } ExracMin() 1 1 1 diance label 1

Dijkra' Shore Pah Algorihm S = {, } Q = {,,,,, } 1 1 1 1 1 Dijkra' Shore Pah Algorihm S = {, } Q = {,,,,, } decreae key 1 1 1 1 1 8

Dijkra' Shore Pah Algorihm S = {, } Q = {,,,,, } ExracMin() 1 1 1 1 1 Dijkra' Shore Pah Algorihm S = {,, } Q = {,,,, } 1 1 1 1

Dijkra' Shore Pah Algorihm S = {,, } Q = {,,,, } 1 1 1 1 ExracMin() 1 Dijkra' Shore Pah Algorihm S = {,,, } Q = {,,, } 1 1 1 1 1

Dijkra' Shore Pah Algorihm S = {,,, } Q = {,,, } ExracMin 1 1 1 1 1 Dijkra' Shore Pah Algorihm S = {,,,, } Q = {,, } 1 1 1 1 1

Dijkra' Shore Pah Algorihm S = {,,,, } Q = {,, } 1 ExracMin 1 1 1 1 Dijkra' Shore Pah Algorihm S = {,,,,, } Q = {, } 1 1 1 1 1 1

Dijkra' Shore Pah Algorihm S = {,,,,, } Q = {, } 1 ExracMin 1 1 1 1 Dijkra' Shore Pah Algorihm S = {,,,,,, } Q = { } 1 1 1 1 1 1

Dijkra' Shore Pah Algorihm S = {,,,,,, } Q = { } 1 1 1 1 ExracMin 1 Dijkra' Shore Pah Algorihm S = {,,,,,,, } Q = { } 1 1 1 1 ExracMin 1 8

Inizializzazione For ogni verice v di V do d[v] [v] NIL d[] DIJKSTRA(G,) 1. INIZIALIZE-SINGLE-SOURCE(G,). S Ø. Q V[G]. while Q Ø. do u ETRACT-MIN(Q). S S unio {u}. for ogni verice v di Adj[u] 8. do RELA(u, v) Trao da: Inroduzione agli algorimi Di H.Cormen La linea 1 eegue l inizializzazione, la linea inizializza l inieme S con l inieme vuoo. La linea inizializza la coda con priorià Q con ui i verici in V-S. Ad ogni eecuzione del ciclo while un ver ice u viene e r a o da Q e viene inerio in S (la prima vola u = ). I nf ine le linee -8 r ilaano ogni ar co (u, v) che ece da u, aggior nando la ima d[v] ed il pr edeceor e [v] e il cammino minimo per v può eere migliorao paando per u. Si oervi che ogni verice viene erao da Q ed inerio in S una ola vola; Quindi il ciclo while viene ripeuo V vole. 1

Un alro eempio Supponiamo di voler calcolare il cammino minimo da A a D 1 Compleià (1/) 1. INIZIALIZE-SINGLE-SOURCE(G,). S Ø // Inizializzazione: (V) //. Q V[G] // Per coruire la coda a priorià: (V) //. while Q Ø // eeguio V vole //. do u ETRACT-MIN(Q). S S unio {u}. for ogni verice v di Adj[u] // E vole // 8. do RELA(u, v) Ciclo while eeguio V vole V chiamae a ETRACT-MIN ciclo inerno u archi fao E vole Al più E chiamae a Relax Tempo oale: (V + V T ETRACT-MIN + E T RELA ) Dunque, la compleià dipende molo da come è implemenaa la coda di priorià 1

Compleià (/) Uando un array non ordinao per implemenare la coda: ETRACT-MIN in empo (n), Relax in (1) Tempo oale: (V + V V + E) = (V ) In un grafo non foremene coneo conviene uare un heap binario invece di una coda di priorià Uando un heap, la compleià divena: ((V+E) logv) Per coruire un heap: (V) ExracMin prende empo (lgv) (e i pena ad un heap con minimo nella radice) e quea operazione viene eeguia V vole Il coo di relax è O(lgV) e queo viene effeuao E vole. Algorimo Bellman - Ford L algor i mo di Bellman-For d r iolve il pr oblema di cammini minimi con or gen e ingola nel cao più gener ale in cui i pei degli ar chi poono eere negaivi. Da o un gr af o or ien a o e pea o G = (V, E) con or gen e, l algor i mo di Bellman Ford r e i uice un valor e booleano che indica e ei e oppur e no un ciclo di peo nega ivo r aggiungibile dalla or gen e. I n cao af f er ma ivo, l algor i mo indica che non ei e alcuna oluzione; e invece ale ciclo non ei e, allor a l algorimo produce i cammini minimi ed i loro pei. Anche que o algor i mo ua la ecnica del r ilaamen o, diminuendo pr ogr eivamen e una ima d[v] del peo di un cammino minimo dalla or gen e ad ogni ver ice v di V f ino a raggiungere il reale peo di cammino minimo (, v). L algor i mo r e i uice TRUE olo e il gr af o non con iene un ciclo di peo negaivo raggiungibile dalla orgene 1

Bellman- Ford (G,) 1. INIZIALIZE SINGLE SOURCE (G, ). For i 1 o V[G] - 1. do for ogni verice (u, v) di E[G]. do Relax (u, v, w). For ogni arco (u, v) di E[G]. do if d[v] > d[u] + w(u, v). hen reurn FALSE 8. Reurn TRUE Trao da: Inroduzione agli algorimi Di H.Cormen Dopo aver effeuao l inizializzazione, l algorimo fa V - 1 paae ugli archi del grafo:ogni paaa è una ierazione del ciclo for delle linee - e conie nel rilaare ogni arco del grafo una vola. infine le linee -8 conrollano l eienza di un ciclo di peo negaivo e reiuicono il valore booleano appropriao. Analii Bellman- Ford L algor i mo di Bellman For d r ichiede empo O(VE), poiché l inizializzazione in linea 1 r ichiede empo (V) men r e i cicli for richiedono empo O(E)

Algorimi:compleià In definiiva l algorimo di Dijkra è più conveniene ripeo a quello di Bellman-Ford,menre l ulimo algorimo ciao ha una duilià maggiore perché é in grado di rovare il cammino minimo anche u grafi con archi di peo negaivo. Cammini minimi ra ue le coppie di verici di un grafo Ol r e ad algor i mi che r iolvono il pr oblema del cammino minimo u gr af i con or gen e ingola, ve ne ono alcuni che conider ano il pr oblema di r ovar e i cammini minimi r a u e le coppie di verici in un grafo. Qui riporiamo l algorimo di Floyd-Warhall. 8 1

Algorimo di Floyd- Warhall (1/) Si conider ano u i i cammini da i a j in cui ver ici in er medi ono nell inieme {1,,k} e ia p un cammino minimo ra di ei. E poibile def inir e una r elazione r a p e i cammini minimi r a i verici i e j i cui verici inermedi ono nell inieme {1,,k- 1} Se k non e un verice inermedio di p, allora ui i verici inermedi di p ono nell inieme {1,,k- 1}. Queo ignifica che il peo di un cammino minimo da i a j in cui ui i verici inermedi ono in {1,,k} è dao dal peo di un cammino minimo da i a j in cui ui i verci inermedi ono in {1,,k- 1}. Algorimo di Floyd- Warhall (/) Se k è un ver ice in er medio di p allor a poiamo pezzar e p coì: i p1 k p1 e un cammino minimo da i a k in cui ui i verici inermedi ono nell inieme {1,,k-1}. p e un cammino minimo da i a k in cui ui i verici inermedi ono nell inieme {1,,k-1}. Que o ignif ica che il peo di un cammino minimo da i a j in cui u i i ver ici in er medi ono in {1,,k} è da o dal peo di un cammino minimo da i a k in cui u i i ver ci in er medi ono in {1,,k- 1} + il peo di un cammino minimo da k a j in cui u i i verci inermedi ono in {1,,k- 1}. p j

Thi documen wa creaed wih WinPDF available a hp://www.winpdf.com. The unregiered verion of WinPDF i for evaluaion or non-commercial ue only. Thi page will no be added afer purchaing WinPDF.