Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoGiovanna Marra Modificato 9 anni fa
1
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano
2
Algoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 2 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}
3
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 3 Terminologia (1/2) Esempio 1: relazione simmetrica grafo non orientato Esempio 2: relazione non simmetrica grafo orientato L ed I sono adiacenti (L,I) è incidente su L ed I I ha grado 4: (I)=4 n = numero di vertici m = numero di spigoli ∑ (v)=2m vVvV
4
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 4 Terminologia (2/2) è 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
5
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 5 Strutture dati per rappresentare grafi
6
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 6 Grafi non orientati
7
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 7 Grafi orientati
8
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 8 Prestazioni della lista di archi
9
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 9 Prestazioni delle liste di adiacenza
10
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 10 Prestazioni della matrice di adiacenza
11
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 11 Visite di grafi
12
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 12 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)
13
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 13 Algoritmo di visita generica
14
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 14 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
15
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 15 Costo della visita Il tempo di esecuzione dipende dalla struttura dati usata per rappresentare il grafo: Lista di archi: O(mn) Liste di adiacenza: O(m+n) Matrice di adiacenza: O(n 2 )
16
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 16 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)
17
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 17 Visita in ampiezza
18
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 18 Visita in ampiezza
19
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 19 Esempio: grafo non orientato (1/2)
20
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 20 Esempio: grafo non orientato (2/2)
21
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 21 Esempio: grafo orientato
22
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 22 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
23
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 23 Visita in profondità
24
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 24 Visita in profondità
25
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 25 Esempio: grafo non orientato (1/2)
26
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 26 Esempio: grafo non orientato (2/2)
27
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 27 Esempio: grafo orientato (1/2)
28
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 28 Esempio: grafo orientato (2/2)
29
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 29 Proprietà Sia (u,v) un arco di un grafo non orientato. Allora: –(u,v) è un arco dell’albero DFS, oppure – i nodi u e v sono l’uno discendente/antenato dell’altro Sia (u,v) un arco di un grafo orientato. Allora: –(u,v) è un arco dell’albero DFS, oppure – i nodi u e v sono l’uno discendente/antenato dell’altro, oppure –(u,v) è un arco trasversale a sinistra, ovvero il vertice v è in un sottoalbero visitato precedentemente ad u
30
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl 30 Riepilogo Concetto di grafo e terminologia Diverse strutture dati per rappresentare grafi nella memoria di un calcolatore L’utilizzo di una particolare rappresentazione può avere un impatto notevole sui tempi di esecuzione di un algoritmo su grafi (ad esempio, nella visita di un grafo) Algoritmo di visita generica e due casi particolari: visita in ampiezza e visita in profondità
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.