Algoritmi e Strutture Dati

Documenti analoghi
Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)

Strutture dati per rappresentare grafi

Algoritmi e Strutture Dati. Capitolo 11 Visite di grafi

Algoritmi e Strutture Dati

Grafi: definizioni e visite

Esempi. non. orientato. orientato

Algoritmi e Strutture Dati

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Terzo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Quarto allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Sommario. Rappresentazione dei grafi. Ordinamento topologico. Visita in ampiezza Visita in profondità

Grafi (orientati): cammini minimi

Visite in Grafi BFS e DFS

Algoritmi e Strutture Dati

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Grafi pesati Minimo albero ricoprente

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!

Cammini minimi in grafi:

Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)

Algoritmi e Strutture Dati Grafi. Daniele Loiacono

Algoritmi e Strutture Dati

Grafi. V = {a, b, c, d} E = {(a, b), (a, c), (c, a), (d, d), (b, d)}

Grafi: ordinamento topologico

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla

UNIVERSITA DEGLI STUDI DI PERUGIA

Algoritmi e strutture dati

Grafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici);

Grafi: visita generica

Problema del cammino minimo

Graf. Progettazione di Algoritmi a.a Matricole congrue a 1. Docente: Annalisa De Bonis

Progettazione di algoritmi

GRAFI. fig.1 - GRAFI (1) Si avvisa il lettore che certe definizioni che verranno date differiscono da quelle presenti in letteratura.

Grafi, Social Network e Ricerca su Web Prof. Maurizio Naldi

Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi

Alberi ed Alberi Binari

Esercizi proposti 10

Alberi e alberi binari I Un albero è un caso particolare di grafo

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica

Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi :

Introduzione ai grafi

Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.

Alberi binari e alberi binari di ricerca

ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15

Fondamenti di informatica

Macchine sequenziali. Automa a Stati Finiti (ASF)

Ricerca Operativa. Claudio Arbib Universitàdi L Aquila. Esercizi di ottimizzazione combinatoria

Cammini Minimi. Algoritmo di Dijkstra

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Algoritmi e Strutture Dati. Alberi

Progettazione di Algoritmi

Algoritmo basato su cancellazione di cicli

Algoritmi e Strutture Dati (Modulo II)

Automa a Stati Finiti (ASF)

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente

Depth-first search. Visita in profondità di un grafo Algoritmo Esempio Complessità dell algoritmo Proprietà Ordinamento topologico

Minimo albero di copertura

Alberto Montresor Università di Trento

«Sciente e Tecnologie dei Beni Culturali»

Algoritmi distribuiti su reti sincrone. Introduzione alle reti sincrone

Gestione della produzione e della supply chain Logistica distributiva

L algoritmo di Dijkstra

Ingegneria degli Algoritmi (II parte pratica)

Claudio Arbib Università di L Aquila. Ricerca Operativa. Reti di flusso

Espressioni aritmetiche

COMPLEMENTI DI SHORTEST-PATH. ASD Fabrizio d'amore

E facile vedere che il massimo numero di archi è n(n - 1)/2. Nel caso in cui m = O(n) diremo che il grafo è sparso. V={1,2,3,4,5}

Note per la Lezione 4 Ugo Vaccaro

Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei

Capitolo 5. Algoritmi di ricerca su grafo. 5.1 Algoritmi di ricerca su grafo

La teoria dei grafi permette di esprimere in modo sistematico le LKT e LKC con i metodi della

Strutture dati e loro organizzazione. Gabriella Trucco

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Cammini minimi fra tutte le coppie

1) Codici convoluzionali. 2) Circuito codificatore. 3) Diagramma a stati e a traliccio. 4) Distanza libera. 5) Algoritmo di Viterbi

Laboratorio di Python

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III

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

Transcript:

Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano

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

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 δ(v)=2m v V 3

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

Strutture dati per rappresentare grafi 5

Grafi non orientati 6

Grafi orientati 7

Prestazioni della lista di archi 8

Prestazioni delle liste di adiacenza 9

Prestazioni della matrice di adiacenza 10

Visite di grafi 11

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) 12

Algoritmo di visita generica 13

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 14

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 ) 15

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) 16

Visita in ampiezza 17

Visita in ampiezza 18

Esempio: grafo non orientato (1/2) 19

Esempio: grafo non orientato (2/2) 20

Esempio: grafo orientato 21

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 22

Visita in profondità 23

Visita in profondità 24

Esempio: grafo non orientato (1/2) 25

Esempio: grafo non orientato (2/2) 26

Esempio: grafo orientato (1/2) 27

Esempio: grafo orientato (2/2) 28

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 29

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à 30