La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.

Presentazioni simili


Presentazione sul tema: "Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati."— Transcript della presentazione:

1 Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati

2 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 2 Progettare una rete stradale Supponiamo di dover progettare una rete stradale in un quartiere di nuova costruzione, in cui il costo di costruzione di un collegamento punto a punto è direttamente proporzionale alla distanza fisica (euclidea) tra i due punti. Requisito minimo: connettività tra tutte le abitazioni.

3 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 3 Una soluzione costosa Usa molti archi, alcuni dei quali sono ridondanti. Inoltre, gli archi usati sono molto costosi.

4 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 4 Una soluzione ottima Usa il minimo numero di archi, di lunghezza complessiva minima! In termini teorici, è un minimo albero ricoprente del grafo completo euclideo avente per nodi le abitazioni, e per pesi degli archi la distanza euclidea dei relativi estremi.

5 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 5 Definizioni Sia G=(V,E,w) un grafo non orientato, connesso e pesato (pesi reali). Un albero ricoprente di G è un sottografo T=(V,E) di G tale che: –T è un albero; –T contiene tutti i vertici di G. Il costo dellalbero w(T) è la somma dei pesi degli archi appartenenti allalbero. Un minimo albero ricoprente di G è un albero ricoprente di G avente costo minimo.

6 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 6 Esempi Il minimo albero ricoprente non è necessariamente unico

7 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 7 Proprietà dei minimi alberi ricoprenti

8 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 8 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 Ricorda: un ciclo è un cammino in cui il primo e lultimo vertice coincidono

9 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 9 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

10 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 10 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

11 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 11 Teorema dei tagli Teorema: Dato il grafo G=(V,E,w) non orientato e pesato, e dato un taglio C=(X,Y) in G, un arco e=(u,v) di peso minimo che attraversa il taglio C appartiene sempre ad un qualche MAR di G. Dim. (per assurdo): 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.

12 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 12 Teorema dei tagli u v X Y Aggiungendo larco e=(u,v) a T ottengo un ciclo in T, e tale ciclo contiene almeno un arco di T che attraversa il taglio. Allora, lalbero T' ottenuto da T sostituendo uno qualsiasi di tali archi con larco (u,v), è un albero ricoprente di G non più pesante di T, che per ipotesi era un MAR T' è un MAR di G e (u,v) gli appartiene contraddizione! x y w(u,v) w(x,y)

13 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 13 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

14 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 14 Dim. (per assurdo): Sia e larco più pesante in un ciclo C={e} P, e supponiamo e T, un MAR di G. Allora: e e T T=T \ {e} {e} w(e) < w(e) w(T) < w(T) T non è un MAR di G! X V\X P Teorema dei cicli Teorema: Sia G=(V,E,w) un grafo non orientato e pesato, sia e larco strettamente più pesante di un qualsiasi ciclo in G. Allora e non può appartenere ad alcun MAR di G.

15 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 15 Lapproccio goloso Lapproccio 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. 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

16 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 16 Algoritmo di Kruskal

17 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 17 Strategia Mantiene una foresta di alberi blu, allinizio tutti disgiunti Per ogni arco, in ordine non decrescente di costo, applica il seguente passo: se larco 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

18 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 18 Pseudocodice

19 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 19 Esempio (1/2)

20 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 20 Esempio (2/2)

21 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 21 Analisi della complessità Su un grafo con m archi ed n nodi, si eseguono: Un ordinamento su m elementi (costo O(m log m)=O(m log n), nellipotesi che il grafo in input sia rappresentato tramite una lista di adiacenza)); n operazioni di Makeset (costo O(n)); 2m operazioni di Find; n-1 operazioni di Union. T(n,m)=O(m log n + n+ T(UF(n,m))= O(m log n + T(UF(n,m)))

22 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 22 Analisi della complessità La complessità dipende da come viene risolto UF(n,m): 1.Alberi QuickFind: T(UF(n,m))=O(n 2 +m)=O(n 2 ) T(n,m)=O(m log n + n 2 ). 2.Alberi QuickFind con euristica dellunione 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 QuickUnion: T(UF(n,m))=O(n+mn)=O(nm) T(n,m)=O(m log n + nm)=O(nm). 4.Alberi QuickUnion con euristica dellunione 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).

23 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 23 Analisi della complessità Il tempo di esecuzione dellalgoritmo di Kruskal è O(m log n) nel caso peggiore (Utilizzando un algoritmo di ordinamento ottimo e gestendo la struttura dati union- find con alberi QuickFind con euristica di unione bilanciata, o alberi QuickUnion con euristica di unione bilanciata (by rank o by size))


Scaricare ppt "Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati."

Presentazioni simili


Annunci Google