Algoritmi e Strutture Dati Grafi e visite di grafi Luigi Laura Algoritmi e strutture dati Luigi Laura Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme E di coppie di vertici, detti archi o spigoli: ogni arco connette due vertici Esempio 1: V={persone che vivono in Italia}, E= {coppie di persone che si sono strette la mano} Esempio 2: V={persone che vivono in Italia}, E= {(x,y) tale che x ha inviato una mail a y} 2 da Demetrescu et al. McGraw Hill 2004 1 Algoritmi e strutture dati Luigi Laura Terminologia (1/2) Esempio 1: relazione simmetrica grafo non orientato Esempio 2: relazione non simmetrica grafo orientato n = numero di vertici m = numero di spigoli L ed I sono adiacenti (L,I) è incidente a L I ha grado 4: δ(I)=4 3 Algoritmi e strutture dati ∑ δ(v)=2m v∈V da Demetrescu et al. McGraw Hill 2004 Luigi Laura Terminologia (2/2) < L , I , E, C, B, A > è un cammino nel grafo di lunghezza 5 Non è il più corto cammino tra L ed A La lunghezza del più corto cammino tra due vertici si dice distanza: L ed A hanno distanza 4 4 da Demetrescu et al. McGraw Hill 2004 2 Algoritmi e strutture dati Luigi Laura Visite di grafi da Demetrescu et al. McGraw Hill 2004 5 Algoritmi e strutture dati Luigi Laura Scopo e tipi di visita • Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico • Problema di base in molte applicazioni • Esistono vari tipi di visite con diverse proprietà: in particolare, visita in ampiezza (BFS=breadth first search) e visita in profondità (DFS=depth first search) 6 da Demetrescu et al. McGraw Hill 2004 3 Algoritmi e strutture dati Luigi Laura Algoritmo di visita generica da Demetrescu et al. McGraw Hill 2004 7 Algoritmi e strutture dati Luigi Laura Osservazioni • Un vertice viene marcato quando viene incontrato per la prima volta: la marcatura può essere mantenuta tramite un vettore di bit di marcatura • La visita genera un albero di copertura T del grafo • L’insieme di vertici F⊆T mantiene la frangia di T: – v∈T-F: v è chiuso, tutti gli archi incidenti su v sono stati esaminati – v∈F: v è aperto, esistono archi incidenti su v non ancora esaminati 8 da Demetrescu et al. McGraw Hill 2004 4 Algoritmi e strutture dati Luigi Laura Visite particolari • Se la frangia F è implementata come coda si ha la visita in ampiezza (BFS) • Se la frangia F è implementata come pila si ha la visita in profondità (DFS) 9 da Demetrescu et al. McGraw Hill 2004 Algoritmi e strutture dati Luigi Laura Visita in ampiezza 10 da Demetrescu et al. McGraw Hill 2004 5 Algoritmi e strutture dati Luigi Laura Visita in ampiezza da Demetrescu et al. McGraw Hill 2004 11 Algoritmi e strutture dati Luigi Laura Esempio: grafo non orientato (1/2) 12 da Demetrescu et al. McGraw Hill 2004 6 Algoritmi e strutture dati Luigi Laura Esempio: grafo non orientato (2/2) 13 Algoritmi e strutture dati da Demetrescu et al. McGraw Hill 2004 Luigi Laura Esempio: grafo orientato 14 da Demetrescu et al. McGraw Hill 2004 7 Algoritmi e strutture dati Luigi Laura Proprietà • Per ogni nodo v, il livello di v nell’albero BFS è pari alla distanza di v dalla sorgente s • Per ogni arco (u,v) di un grafo non orientato, gli estremi u e v appartengono allo stesso livello o a livelli consecutivi dell’albero BFS • Se il grafo è orientato, possono esistere archi (u,v) che attraversano all’indietro più di un livello 15 da Demetrescu et al. McGraw Hill 2004 Algoritmi e strutture dati Luigi Laura Visita in profondità 16 da Demetrescu et al. McGraw Hill 2004 8 Algoritmi e strutture dati Luigi Laura Visita in profondità da Demetrescu et al. McGraw Hill 2004 17 Algoritmi e strutture dati Luigi Laura Esempio: grafo non orientato (1/2) 18 da Demetrescu et al. McGraw Hill 2004 9 Algoritmi e strutture dati Luigi Laura Esempio: grafo non orientato (2/2) 19 Algoritmi e strutture dati da Demetrescu et al. McGraw Hill 2004 Luigi Laura Esempio: grafo orientato (1/2) 20 da Demetrescu et al. McGraw Hill 2004 10 Algoritmi e strutture dati Luigi Laura Esempio: grafo orientato (2/2) 21 da Demetrescu et al. McGraw Hill 2004 11