Algoritmi e Strutture Dati Capitolo 12 Minimo albero
Algoritmi e Strutture Dati Capitolo 12 Minimo albero ricoprente Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati 2 Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizioni Sia G=(V, E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: – T è un albero; – T contiene tutti i vertici di G. Sia w(e) il costo (o peso) di un arco e E. Un minimo albero ricoprente di G è un albero ricoprente di costo minimo. (Il costo dell’albero è la somma dei costi degli archi che l’albero contiene. ) 3 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Esempi Il minimo albero ricoprente non è necessariamente unico 4 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Proprietà dei minimi alberi ricoprenti 5 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Tagli e cicli • Dato un grafo non orientato G=(V, E), un taglio in G è una partizione dei vertici V in due insiemi (disgiunti): X e Y=V-X. • Un arco e=(u, v) attraversa il taglio (X, Y) se u X e v Y • Un ciclo è un cammino in cui il primo e l’ultimo vertice coincidono 6 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Un approccio “goloso” • Costruiremo un minimo albero ricoprente un arco alla volta, effettuando scelte localmente “golose”. Ad esempio: – includere nella soluzione archi di costo piccolo – escludere dalla soluzione archi di costo elevato • Formalizzeremo il processo come un processo di colorazione: – archi blu: inclusi nella soluzione – archi rossi: esclusi dalla soluzione 7 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Regola del taglio (regola blu) Scegli un taglio che non contiene archi blu. Tra tutti gli archi non colorati del taglio, scegline uno di costo minimo e coloralo blu. • Ogni albero ricoprente deve infatti contenere almeno un arco del taglio • E’ naturale includere quello di costo minimo 8 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Teorema dei tagli Teorema: Dato un grafo non orientato G=(V, E), e dato un taglio C=(X, Y) in G, un arco e=(u, v) di costo minimo che attraversa il taglio C appartiene ad un qualche MAR di G. Dim. : Supponiamo per assurdo che e non appartenga ad alcun MAR di G. Sia T=(V, E′) un qualsiasi MAR di G, e consideriamo il taglio C in T. 9 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Teorema dei tagli X u 11 x 6 13 5 8 y v Y L’albero ottenuto da T sostituendo l’arco (x, y) di peso 6 con l’arco (u, v) di peso 5 è un albero ricoprente di G più leggero di T, che per ipotesi era un MAR contraddizione! 9 10 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Regola del ciclo (regola rossa) Scegli un ciclo che non contiene archi rossi. Tra tutti gli archi non colorati del ciclo, scegline uno di costo massimo e coloralo rosso. • Ogni albero ricoprente deve infatti escludere almeno un arco del ciclo • E’ naturale escludere quello di costo massimo 11 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano L’ approccio “goloso” • L’approccio goloso applica una delle due regole ad ogni passo, finché tutti gli archi sono colorati • Si può dimostrare che esiste sempre un minimo albero ricoprente che contiene tutti gli archi blu e non contiene nessun arco rosso. • Si può inoltre dimostrare che il metodo goloso colora tutti gli archi. 12 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Tempi di esecuzione A seconda della scelta della regola da applicare e del taglio/ciclo usato ad ogni passo, si ottengono dal metodo goloso diversi algoritmi con diversi tempi di esecuzione 13 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmo di Kruskal 14 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Strategia • Mantiene una foresta di alberi blu, all’inizio tutti disgiunti • Per ogni arco, in ordine non decrescente di costo, applica il seguente passo: se l’arco ha entrambi gli estremi nello stesso albero blu, applica la regola del ciclo e coloralo rosso, altrimenti applica la regola del taglio e coloralo blu • I vertici nello stesso albero blu sono mantenuti tramite una struttura dati union/find 15 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Pseudocodice 16 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Esempio (1/2) 17 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Esempio (2/2) 18 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Analisi della complessità Vengono eseguite: • n operazioni di Makeset (costo O(n)); • Un ordinamento su m elementi (costo O(m log m), nell’ipotesi che il grafo in input sia rappresentato tramite una lista di adiacenza)); • 2 m operazioni di Find; • n-1 operazioni di Union. T(n, m)=O(n+m log m + T(UF(n, m))= O(m log n + T(UF(n, m)) 19 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Analisi della complessità La complessità dipende da come viene risolto UF(n, m): 1. Alberi Quick. Find: T(UF(n, m))=O(n 2+m)=O(n 2) T(n, m)=O(m log n + n 2). 2. Alberi Quick. Find con euristica dell’unione bilanciata: T(UF(n, m))=O(n log n+m) T(n, m)=O(m log n + n log n +m)=O(m log n). 3. Alberi Quick. Union: T(UF(n, m))=O(n+mn)=O(nm) T(n, m)=O(m log n + nm)=O(nm). 4. Alberi Quick. Union con euristica dell’unione bilanciata : T(UF(n, m))=O(n+m log n)=O(m log n) T(n, m)=O(m log n + m log n)=O(m log n). 20 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Analisi della complessità Il tempo di esecuzione dell’algoritmo di Kruskal è O(m log n) nel caso peggiore (Utilizzando un algoritmo di ordinamento ottimo e gestendo la struttura dati unionfind con alberi Quick. Find con euristica di unione bilanciata, o alberi Quick. Union con euristica di unione bilanciata (by rank o by size)) 21 Copyright © 2004 - The Mc. Graw - Hill Companies, srl
- Slides: 21