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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

2 Depth-first search Dato n grafo G=(V,E) e n specifico ertice s chiamato sorgente, la isita in profondità (in inglese depth-first search) esplora il grafo andando ogni olta il più possibile in profondità. Per ogni ertice in isita si prosege la isita sgli archi non ancora esplorati. Se sl ertice in isita si sono esplorati ttti gli archi, si torna al ertice di origine (padre). Se sl grafo rimane qalche ertice non scoperto si ricomincia la isita in profondità s no di qei ertici. L intero processo è ripetto finché non engono scoperti ttti i ertici del grafo.

3 Strttre dati tiliate: Depth-first search Liste di adiacena Adj: per conoscere i ertici adiacenti a n ertice. color[]: si colora il ertice di bianco (ertice non scoperto), di grigio (ertice appena scoperto) e di nero (ha finito di isitare ttta la sa lista di Adiacena). p[]: il predecessore di nella foresta DFS. d[]: tempo in ci iene scoperto. f[]: tempo in ci iene finita la isita in. Si ha d[]<f[]. Nota: è bianco (WHITE) prima di d[], grigio (GRAY) tra d[] e f[], infine nero (BLACK) dopo f[].

4 Algoritmo DFS(G,s) 1. for ogni ertice in V[G] // iniialiaione di ogni ertice 2. do color[] WHITE 3. p[] NIL 4. time 0 5. for ogni ertice in V[G] 6. do if color[] = WHITE 7. then DFS-VISIT() // isita da ogni ertice non ancora scoperto DFS-VISIT() 1. color[] GRAY // ertice dienta grigio, appena scoperto 2. d[] time // tempo iniio isita lista adiacena 3. time time for ogni ertice in Adj[] 5. do if color[] = WHITE 6. then p[] 7. DFS-VISIT() // isita sbito ertice non ancora scoperto 8. color[] BLACK // ertice dienta nero, ha isitato ttta l adiacena 9. f[] time // tempo fine isita lista adiacena 10. time time + 1

5 Esempio 1/ (a) 1/ (b) 2/ 1/ (c) 2/ 3/ 1/ (d) 1/ (e) 2/ 1/ (f) 2/ 3/ 2/ 3/ 4/ 3/ 4/ 1/ (g) 2/ 1/ (h) 1/ (i)

6 Esempio 1/8 (l) 1/8 (m) 1/8 (n) 9/ 9/ 1/8 (o) 9/ 10/ 1/8 (p) 9/ 10/ 1/8 (q) 9/ 10/11 1/8 (r) 9/12 10/11

7 Complessità Analisi del tempo di esecione: Ci sono de cicli in DFS() che engono esegiti Θ( V ) olte. DFS-VISIT() iene esegito esattamente na olta per ogni ertice in V. Drante l esecione di DFS-VISIT() il ciclo nelle linee 4-7 iene esegito Adj[] olte. Poiché la somma di ttte le liste di adiacena èθ( E ), si ha che il costo totale del ciclo in DFS-VISIT() è Θ( E ). Qindi, il tempo totale di esecione èθ( V + E ). Nota: come per il BFS si definisce degli alberi DFS corrispondente al sottografo Gp definito dal ettore p.

8 Teorema delle parentesi In ogni isita in profondità di n grafo G=(V,E), per ogni coppia di nodi, in V, con A=[d[], f[]] e B=[d[], f[]]. Allora na e na sola delle segenti condiioni è era: A B = Proprietà A B e è discendente di in n albero DFS. B A e è discendente di in n albero DFS.

9 Dimostraione Proprietà Caso d[] < d[] Se d[] < f[], allora dienta grigio prima di, ma qando iene scoperto la isita ad non è stata completata. Qesto implica che è n discendente di. Poiché è stato scoperto più recentemente di, la isita in dee completarsi prima di ritornare a, f[] < f[]. Qindi l interallo [d[], f[]] è completamente contento in [d[], f[]]. nero dopo aer scoperto d[] < f[] d[] < f[] d[] d[] f[] f[] Allora è discendente di : la isita di dee completarsi prima di qella di

10 Dimostraione Caso d[] < d[] Se f[] < d[], allora dienta nero prima di, ossia qando iene scoperto la isita ad è stata completata. (d[]<f[]) Qindi l interallo [d[], f[]] è disginto da [d[], f[]]. Caso d[] < d[]: simmetrico. Proprietà nero prima di aer scoperto d[] < f[] d[] < f[] d[] f[] d[] f[] Qando è scoperto la ista in è stata completata.

11 Proprietà Teorema del cammino bianco In na foresta DFS di n grafo G=(V,E) n ertice è discendente di se e solo se al tempo d[], in ci la isita scopre, il ertice è raggingibile da con n cammino contenete esclsiamente nodi bianchi. d[]/ Cammino bianco da a. discendente di

12 Classificaione degli archi: Proprietà Tree-edge (T, archi dell albero): archi appartenenti alla foresta DFS. Back-edge (B, archi all indietro): archi non appartenenti alla foresta DFS che anno da n ertice ad n so antenato in n albero DFS. Forard-edge (F, archi in aanti): archi non appartenenti alla foresta DFS che anno da n ertice ad n so sccessore in n albero DFS. Cross-edge (C, archi di attraersamento): ttti gli altri archi.

13 Proprietà 1/8 F T B T T C 9/12 T 10/11 B T: Tree-edge B: Back-edge F: Forard-edge C: Cross-edge Si modifica l algoritmo DFS in modo che ogni arco (,) è: WHITE (bianco): se appartiene ad n albero DFS. GRAY (grigio): se è n arco all indietro (nisce de ertici grigi drante la DFS). BLACK (nero): se è n forard-edge (d[] < d[]) o n cross-edge (d[] > d[]). E n arco che a erso n ertice nero nel DFS().

14 Nota: nel caso di grafo non orientato l arco iene classificato come l arco orientato (,) oppre (,), a seconda di qale dei de iene scoperto per primo. Proposiione Se G è n grafo non orientato ogni arco o è n Treeedge oppre è n Back-edge. Dimostraione Sia (,) n arco arbitrario di G. Sena perdita di generalità, spponiamo d[] < d[]. Ci sono de casi: Proprietà

15 1.L arco (,) iene isitato a partire da, grigio e bianco. Allora (,) è classificato bianco (Tree-edge). 2.L arco (,) iene isitato a partire da, e grigi. Allora (,) è classificato grigio (Back-edge). Proposiione Proprietà Un grafo G contiene n ciclo se e solo se l algoritmo DFS determina l esistena di n Back-edge. Dimostraione <= Se (,) è n arco all indietro, allora è n antenato di. Esiste n cammino da a e l arco (,), non appartenente al cammino, completa il ciclo.

16 Proprietà => G ha n ciclo c. Sia il primo ertice del ciclo c ad essere scoperto e sia (,) l arco che lo precede in c. Al tempo d[] ttti i nodi da a sono bianchi ( grigio). Per il teorema dei cammini bianchi il ertice dienterà discendente i. Drante la isita del ertice l arco (,) errà necessariamente classificato come grigio (Back-edge, nisce de ertici grigi). c

17 Ordinamento Topologico Ingresso: n grafo orientato e aciclico (DAG: Direct Acclic Graph) Uscita: na lista ordinata e lineare dei ertici di G < 1, 2,, V > tale che se G contiene l arco orientato (,) allora nell ordinamento precede oppre oppre

18 Ordinamento Topologico TOPOLOGICAL-SORT(G) 1. chiama DFS(G) per calcolare I tempi di fine isita f[] per ogni ertice 2. appena la isita è finita inseriscilo in testa ad na lista concatenata 3. restitisci la lista concatenata dei ertici f[2] > f[1] > f[3] > f[4] DFS(G) richiede tempo Θ( V + E ). L inserimento di ognno dei V ertici nella lista concatenata richiede tempo O(1). Qindi, si pò esegire n ordinamento topologico in tempo Θ( V + E ).

19 Proposiione Ordinamento Topologico TOPOLOGICAL-SORT(G) prodce n ordinamento topologico di n grafo orientato aciclico G. Dimostraione Basta dimostrare che se G è aciclico, allora per ogni arco (,) in E si ha che f[] > f[]. Essendo aciclico, non esistono archi grigi (Back-edge). Allora (,) è bianco oppre nero. Se (,) è bianco allora f[] > f[] per il teorema delle parentesi. Se (,) è nero allora f[] > f[] perché è già stato isitato prima di finire la isita in.

Grafo diretto Università degli Studi di Milano

Grafo diretto Università degli Studi di Milano Grafo diretto Un grafo diretto G è na coppia ordinata (V, E), doe V è l insieme dei ertici {,,,,n} (anche detti nodi). E V V è n insieme di coppie ordinate (,) dette archi diretti 6 V= {,,,4,5,6,7} 7 4

Dettagli

Visita di grafi. Vittorio Maniezzo - Università di Bologna

Visita di grafi. Vittorio Maniezzo - Università di Bologna Visita di grafi Vittorio Manieo - Uniersità di Bologna Liste di adiacena Lista di adiacenadi n ertice : lista che concatena ttti i ertici adiacenti a Il grafo pò essere rappresentato dalle liste di adiacena

Dettagli

Algoritmi di visita di un grafo

Algoritmi di visita di un grafo Algoritmi di isita di n grafo Ilaria Castelli castelli@dii.nisi.it Uniersità degli Stdi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Visita di n grafo, A.A. 2009/2010

Dettagli

Algoritmi e Strutture di Dati II 2. Visite di grafi

Algoritmi e Strutture di Dati II 2. Visite di grafi Algoritmi e Strutture di Dati II 2 Visite di grafi Gli algoritmi di visita di un grafo hanno come obiettivo l esploraione di tutti i nodi e gli archi del grafo. Vi sono due modi principali per esplorare

Dettagli

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

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Classificazione digli archi Sia G la foresta DF generata da DFS sul grafo G. Arco d albero: gli

Dettagli

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

Sommario. Rappresentazione dei grafi. Ordinamento topologico. Visita in ampiezza Visita in profondità Visite Grafi Sommario Rappresentazione dei grafi Visita in ampiezza Visita in profondità Ordinamento topologico Visita in ampiezza La visita in ampiezza breadth-first-search (BFS) di un grafo dato un vertice

Dettagli

Grafi: ordinamento topologico

Grafi: ordinamento topologico .. Grafi: ordinamento topologico Che cosa e e come si calcola Che cosa e un ordinamento topologico F. Damiani - Alg. & Lab. 04/05 Una definizione di ordinamento topologico Definizione. Funzione σ: V {1,

Dettagli

Grafi: cammini minimi

Grafi: cammini minimi Algoritmi e Programmaione Aanata EIP Grafi: cammini minimi Flio CORNO - Matteo SONZA REORDA Dip. Atomatica e Informatica Politecnico di Torino Sommario Introdione Algoritmo di Dijkstra Algoritmo di Bellman-Ford.

Dettagli

Esempi. non. orientato. orientato

Esempi. non. orientato. orientato Definizione! Un grafo G = (V,E) è costituito da un insieme di vertici V ed un insieme di archi E ciascuno dei quali connette due vertici in V detti estremi dell arco.! Un grafo è orientato quando vi è

Dettagli

Che cosa c è nella lezione. Questa lezione si occupa di teoria dei grafi: la rappresentazione dei grafi. le visite dei grafi

Che cosa c è nella lezione. Questa lezione si occupa di teoria dei grafi: la rappresentazione dei grafi. le visite dei grafi Algoritmi e Programmazione Aanzata - teoria 1/18 Che cosa c è nella lezione Qesta lezione si occpa di teoria dei grafi: la rappresentazione dei grafi le isite dei grafi gli alberi ricoprenti minimi i cammini

Dettagli

Visite in Grafi BFS e DFS

Visite in Grafi BFS e DFS Visite in Grafi BFS e DFS Visita di un Grafo Obiettivo: Visitare una sola volta tutti i nodi del grafo. Es.: visitare un porzione del grafo del Web Difficoltà: Presenza di cicli: Marcare i nodi visitati

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione ai grafi Grafi: Definizione e Algoritmi di visita Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Introduzione ai

Dettagli

Visite in Grafi BFS e DFS. PDF created with FinePrint pdffactory trial version

Visite in Grafi BFS e DFS. PDF created with FinePrint pdffactory trial version Visite in Grafi BFS e DFS Visita di un Grafo 8Obiettivo: 4Visitare una sola volta tutti i nodi del grafo. 4Es.: visitare un porzione del grafo del Web 8Difficoltà : 4Presenza di cicli: Marcare i nodi visitati

Dettagli

uscente entrante adiacente Figure B.2 (a) (b) (c) incident from leaves incident to enters incident on adjacent degree isolated

uscente entrante adiacente Figure B.2 (a) (b) (c) incident from leaves incident to enters incident on adjacent degree isolated Grafi Si dice grafo un insieme di nodi legati "a due a due" da archi direzionati (o no) I grafi sono strutture dati di fondamentale importanza in informatica Vi sono centinaia di problemi computazionali

Dettagli

Ordinamento parziale

Ordinamento parziale Ordinamento parziale Ordinamento parziale di un insieme A: relazione d'ordine parziale sugli elementi di A possono esistere coppie tra le quali non è definito alcun ordine Un grafo diretto aciclico (DAG)

Dettagli

Teoria dei grafi: ricerca di percorsi a minimo costo Ing. Valerio Lacagnina

Teoria dei grafi: ricerca di percorsi a minimo costo Ing. Valerio Lacagnina Metodi diide-et-impera, programmazione dinamica e algoritmi greed La programmazione dinamica, come il metodo diide-et-impera, risole n problema mettendo insieme le solzioni di n certo nmero di sottoproblemi.

Dettagli

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

Grafi. V = {a, b, c, d} E = {(a, b), (a, c), (c, a), (d, d), (b, d)} Grafi Grafo orientato (o diretto) = (V,E) V = nodi o vertici - E = archi (edges) V = {a, b, c, d} E = {(a, b), (a, c), (c, a), (d, d), (b, d)} archi uscenti da un nodo x: (x, y) archi incidenti su un nodo

Dettagli

Esercitazione 7. Grafi. Rappresentazione e algoritmi di visita

Esercitazione 7. Grafi. Rappresentazione e algoritmi di visita Esercitazione 7 Grafi Rappresentazione e algoritmi di visita Grafo G = (V,E) non orientato 1 1 G = (V,E) orientato 6 Rappresentazione Grafo G = (V,E) metodi standard per la rappresentazione Liste di adiacenza

Dettagli

Grafi: visita generica

Grafi: visita generica .. Grafi: visita generica Una presentazione alternativa (con ulteriori dettagli) Algoritmi di visita Scopo: visitare tutti i vertici di un grafo (si osservi che per poter visitare un vertice occorre prima

Dettagli

Progetto e Ottimizzazione di Reti 2. Nozioni base di Teoria dei Grafi

Progetto e Ottimizzazione di Reti 2. Nozioni base di Teoria dei Grafi Progetto e Ottimizzazione di Reti 2. Nozioni base di Teoria dei Grafi ANTONIO SASSANO (A-L) CARLO MANNINO(M-Z) Uniersità di Roma La Sapienza Dipartimento di Informatica e Sistemistica Corso di Larea in

Dettagli

Grafi: visita in profondita

Grafi: visita in profondita .. rafi: visita in profondita Una presentazione alternativa (con ulteriori dettagli) onsideriamo la versione concreta dell algoritmo di visita generica con costruzione del sottografo dei predecessori:

Dettagli

Visita di un Grafo Università degli Studi di Milano

Visita di un Grafo Università degli Studi di Milano Viita di n Gafo Unieità degli Stdi di Milano La iita di n gafo conite nell'eploae na ola olta ttti il contento (cioè le infomaioni) dei nodi di n gafo E.: iitae n ottogafo del Web Difficoltà: Cammini molteplici

Dettagli

Università Roma Tre - PAS Classe A048 "Matematica Applicata" - Corso di Informatica a.a. 2013/2014

Università Roma Tre - PAS Classe A048 Matematica Applicata - Corso di Informatica a.a. 2013/2014 Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A08 Matematica Applicata Corso di Informatica Algoritmi su Grafi Marco Liverani (liverani@mat.uniroma.it) Sommario

Dettagli

K 4 è planare? E K 3,3 e K 5 sono planari? Sì! No! (Teorema di Kuratowski) K 5. Camil Demetrescu, Irene Finocchi, Giuseppe F.

K 4 è planare? E K 3,3 e K 5 sono planari? Sì! No! (Teorema di Kuratowski) K 5. Camil Demetrescu, Irene Finocchi, Giuseppe F. K 4 è planare? Sì! E K 3,3 e K 5 sono planari? K 5 No! (Teorema di Kuratowski) 1 Un albero è un grafo bipartito? SÌ! Ma un grafo bipartito è sempre un albero?? 2 Algoritmi e Strutture Dati Capitolo 11

Dettagli

Algoritmi e Strutture Dati Grafi. Daniele Loiacono

Algoritmi e Strutture Dati Grafi. Daniele Loiacono lgoritmi e Strutture ati Grafi Riferimenti 2 Questo materiale è tratto dalle trasparenze del corso lgoritmi e Strutture ati del prof. lberto Montresor dell Università di Trento. (http://www.dit.unitn.it/~montreso/asd/index.shtml)

Dettagli

Nozioni base di teoria dei grafi

Nozioni base di teoria dei grafi Capitolo 2 Nozioni base di teoria dei grafi 2.1 Prime definizioni La teoria dei grafi stdia le proprietà metriche e topologiche delle relazioni binarie. L oggetto della teoria è il cosddetto grafo, oero

Dettagli

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)

Dettagli

Grafi: definizioni e visite

Grafi: definizioni e visite Grafi: definizioni e visite Grafi (non orientati) Grafo (non orientato): G = (V, E) V = nodi (o vertici) E = archi fra coppie di nodi distinti. Modella relazioni fra coppie di oggetti. Parametri della

Dettagli

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

Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi : Per almeno una delle soluzioni ottime { P i, i r } del problema generalizzato, l unione dei cammini P i forma un albero di copertura per G radicato in r e orientato, ossia un albero la cui radice è r i

Dettagli

Bioinformatica. Grafi. a.a Francesca Cordero. Grafi Bioinformatica

Bioinformatica. Grafi. a.a Francesca Cordero. Grafi Bioinformatica fcordero@di.unito.it Introduzione cknowledgement Lucidi da. Horváth,. emetrescu et al, lgoritmi e strutture dati, McGraw-Hill 3 efinizione: che cosa sono i grafi? definizione astratta: un grafo G = (V,)

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Grafi e visite di grafi Domenico Fabio Savo 1 Grafo: definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme E di coppie di vertici, detti archi

Dettagli

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

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III Applicazioni di DFS Due prolemi: calcolare l ordinamento topologico indotto da un grafo aciclico.

Dettagli

Problema del cammino minimo

Problema del cammino minimo Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento

Dettagli

Progettazione di algoritmi

Progettazione di algoritmi Progettazione di algoritmi Discussione dell'esercizio [vincoli] Prima di tutto rappresentiamo il problema con un grafo G: i nodi sono le n lavorazioni L 1, L 2,, L n, e tra due nodi L h, L k c'è un arco

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Grafi e visite di grafi Fabio Patrizi 1 Grafo: 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

Dettagli

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 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); Algoritmi e Strutture di Dati II 2 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); E µ V V è u n i n s i e m e d i archi. Denotiamo

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati 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

Dettagli

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 14, 2016 Elementi Fondamentali Rappresentazione n = V numero di vertici (nodi) m = E numero di archi Matrice di adiacenza:

Dettagli

LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L. Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso

LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L. Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso Grafi Un grafo è una struttura definita come un insieme di nodi (o vertici) che

Dettagli

Informatica 3. LEZIONE 24: Grafi. Modulo 1: Rappresentazione e implementazione di grafi Modulo 2: Attraversamento di un grafo

Informatica 3. LEZIONE 24: Grafi. Modulo 1: Rappresentazione e implementazione di grafi Modulo 2: Attraversamento di un grafo Informatica 3 LEZIONE 24: Grafi Modulo 1: Rappresentazione e implementazione di grafi Modulo 2: Attraversamento di un grafo Informatica 3 Lezione 24 - Modulo 1 Rappresentazione e implementazione di grafi

Dettagli

A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 13 giugno 2011

A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 13 giugno 2011 A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Stdi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia gigno Nome: Cognome: Matricola: voglio sostenere la prova orale il giorno venerdì //

Dettagli

Richiami di matematica discreta: grafi e alberi. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

Richiami di matematica discreta: grafi e alberi. Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Richiami di matematica discreta: grafi e alberi Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Grafi Definizione: G = (V,E) V: insieme finito di vertici E: insieme finito di archi,

Dettagli

Ottimizzazione Combinatoria Proprietà dei Grafi. Ottimizzazione Combinatoria

Ottimizzazione Combinatoria Proprietà dei Grafi. Ottimizzazione Combinatoria Ottimizzazione Combinatoria Ottimizzazione Combinatoria Proprietà dei Grafi ANTONIO SASSANO Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Corso di Laurea in Ingegneria Gestionale

Dettagli

Note per la Lezione 22 Ugo Vaccaro

Note per la Lezione 22 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 0 09 Note per la Lezione Ugo Vaccaro Nella lezione scorsa abbiamo introdotto la vista in ampiezza di grafi. Essenzialmente, esso è un metodo per esplorare in

Dettagli

Le applicazioni degli algoritmi di visita dei grafi. Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

Le applicazioni degli algoritmi di visita dei grafi. Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Le applicazioni degli algoritmi di visita dei grafi Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino di visita dei grafi 2 Rilevazione di cicli Un grafo è aciclico

Dettagli

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

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill) Grafi: visite Una breve presentazione Visite di grafi 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

Dettagli

Algoritmi di Ordinamento

Algoritmi di Ordinamento Algoritmi di Ordinamento Univ. degli Stdi di Cagliari Algoritmi di Ordinamento per Strttre Lineari Una semplice classe di algoritmi e qella degli algoritmi di ordinamento per strttre lineari. La classe

Dettagli

Introduzione alla Teoria dei Grafi

Introduzione alla Teoria dei Grafi Sapienza Uniersità di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Introduzione alla Teoria dei Grafi Docente: Renato Bruni bruni@dis.uniroma1.it Corso di: Ottimizzazione Combinatoria

Dettagli

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

Dettagli

Minimo albero di copertura

Minimo albero di copertura apitolo 0 Minimo albero di copertura efinizione 0.. ato un grafo G = (V, E) non orientato e connesso, un albero di copertura di G è un sottoinsieme T E tale che il sottografo (V, T ) è un albero libero.

Dettagli

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

Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte) Dati e Algoritmi 1: A. Pietracaprina Grafi (II parte) 1 Breath-First Search (algoritmo iterativo) Si assume una rappresentazione tramite liste di adiacenza. L ordine con cui si visitano i vicini di un

Dettagli

Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford

Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio II: cammini minimi a singola sorgente (per grafi

Dettagli

Grafi: introduzione. Definizioni: che cosa sono i grafi. Definizione

Grafi: introduzione. Definizioni: che cosa sono i grafi. Definizione Grafi: introduzione e rappresentazione efinizioni: che cosa sono i grafi Un grafo G=(V,) consiste in: un insieme V di vertici (o nodi) un insieme di coppie di vertici, detti archi o spigoli: ogni arco

Dettagli

Cammini minimi con sorgente singola

Cammini minimi con sorgente singola Cammini minimi con sorgente singola Vittorio Maniezzo - Università di Bologna Cammini minimi con sorgente singola Dato: un grafo(orientatoo non orientato) G= (V,E,W) con funzionedi peso w:e R un particolarevertices

Dettagli

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

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 . Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,

Dettagli

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

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati Algoritmi e Strutture Dati Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Cammini minimi Un cammino minimo tra una coppia di

Dettagli

Sommario della lezione

Sommario della lezione Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/0 p. /37 Sommario della lezione Esplorazione di grafi: Visita in profondità Proprietà Applicazioni Università degli

Dettagli

Shortest-Paths Problem - definizioni

Shortest-Paths Problem - definizioni Grafo Cammini Minimi GT 3.6 Shortet-Path Problem - definizioni G (V,E) grafo orientato, peato, con fnzione peo w: E R Lnghezza (peo) di n cammino p = < 0,,..., k > : k w( p) = i= 0 Ditanza tra ertici e

Dettagli

Fondamenti teorici e programmazione

Fondamenti teorici e programmazione Fondamenti teorici e programmazione FTP(A) - modb Lezione 9 di ricerca binaria F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione (A) - modb a.a. 2018/19 pag. 1 liberi Un albero libero è un

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 1/01/016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai

Dettagli

Grafi non orientati. Grafi (non orientati) Rappresentazione di Grafi: matrice delle adiacenze. Tipiche applicazioni di modelli basati su grafi

Grafi non orientati. Grafi (non orientati) Rappresentazione di Grafi: matrice delle adiacenze. Tipiche applicazioni di modelli basati su grafi Grafi non orientati Grafi (non orientati) Notazione. G = (V, E) V = nodi (o vertici). E = archi (o lati) tra coppie di nodi. Modella relazioni definite tra coppie di oggetti. aglia di un grafo: numero

Dettagli

APPUNTI DELLE LEZIONI

APPUNTI DELLE LEZIONI APPUNTI DELLE LEZIONI Giorgio Follo (follogio@libero.it) I.T.I.S. A. Artom Asti Versione del 27/2/2011 Sommario. In qesti appnti engono riportate le nozioni elementeari s ettori e prodotto scalare, per

Dettagli

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

Introduzione ai grafi. Introduzione ai grafi p. 1/2 Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte

Dettagli

GRAFI. Angelo Di Iorio Università di Bologna

GRAFI. Angelo Di Iorio Università di Bologna GRAFI Angelo Di Iorio Università di Bologna Esercizio 1 Implementare una classe Java per memorizzare e manipolare un grafo orientato di nodi di tipo T (usando il framework Generics) Applicazioni: rete

Dettagli

Algoritmi & Laboratorio

Algoritmi & Laboratorio Acknowledgement Lucidi da F. Damiani, a.a. 2004-2005 C. Demetrescu et al, Algoritmi e strutture dati, McGraw-Hill M. Zacchi, a.a. 2003-2004 I lucidi non sono un sostituto per il libro di testo non contengono

Dettagli

Esercizi svolti a lezione

Esercizi svolti a lezione Esercizi svolti a lezione Problema 1 In un corso di laurea sono previsti un certo numero di esami obbligatori. Esistono inoltre dei vincoli di propedeuticità: se un esame A è propedeutico ad un esame B

Dettagli

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

Introduzione ai grafi. Introduzione ai grafi p. 1/2 Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G è costituito da una coppia di insiemi (V,A) dove V è detto insieme dei nodi e A è detto insieme di archi ed è un sottinsieme di tutte

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai

Dettagli

Prodotto Cross. Prodotto Vettoriale ("cross-product", "external product"): Proprietà. Prodotto cross

Prodotto Cross. Prodotto Vettoriale (cross-product, external product): Proprietà. Prodotto cross Marco Tarini - Grafica comptaionale Leione 3 1 M a r c o T a r i n i C o m p t e r G r a p h i c s 2 0 1 6 / 1 7 U n i e r s i t à d e l l I n s b r i a Prodotto Cross Prodotto Vettoriale "cross-prodct",

Dettagli

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

Dettagli

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Grafo Un grafo G è una coppia (V, E) ove V è un

Dettagli

Progettazione di Algoritmi - lezione 8

Progettazione di Algoritmi - lezione 8 Progettazione di Algoritmi - lezione 8 Discussione dell'esercizio [labirinto] Nel testo dell'esercizio abbiamo considerato come lunghezza del percorso il numero di bivi ma possiamo stimare meglio la lunghezza

Dettagli

Grafi (non orientati e connessi): minimo albero ricoprente

Grafi (non orientati e connessi): minimo albero ricoprente .. Grafi (non orientati e connessi): minimo albero ricoprente Una presentazione alternativa (con ulteriori dettagli) Problema: calcolo del minimo albero di copertura (M.S.T.) Dato un grafo pesato non orientato

Dettagli

Alberi e arborescenze di costo minimo

Alberi e arborescenze di costo minimo Alberi e arborescenze di costo minimo Complementi di Ricerca Operativa Giovanni Righini Dipartimento di Tecnologie dell Informazione - Università degli Studi di Milano Definizioni - 1 Un grafo G = (V,

Dettagli

Esercitazione 3. Osserviamo che, dato un grafo con pesi distinti, questo ammette un unico MST.

Esercitazione 3. Osserviamo che, dato un grafo con pesi distinti, questo ammette un unico MST. Esercitazione 3 Problema 6: Sia G = (V, E) un grafo con pesi distinti sugli archi ed e E un arco di G. Progettare un algoritmo lineare in grado di determinare se esiste un MST di G che contiene l arco

Dettagli

Ricordo che è ammesso alla prova scritta solo chi ha già consegnato ed avuto approvato il progetto.

Ricordo che è ammesso alla prova scritta solo chi ha già consegnato ed avuto approvato il progetto. Ricordo che è ammesso alla prova scritta solo chi ha già consegnato ed avuto approvato il progetto. NON CORREGGERÒ il compito a chi non ha consegnato il progetto Esercizio 1 (possibili più risposte esatte

Dettagli

Progettazione di algoritmi

Progettazione di algoritmi Progettazione di algoritmi Discussione dell'esercizio [labirinto] Nel testo dell'esercizio abbiamo considerato come lunghezza del percorso il numero di bivi ma possiamo stimare meglio la lunghezza reale

Dettagli

INSTRADAMENTO: ALGORITMO DI KRUSKAL

INSTRADAMENTO: ALGORITMO DI KRUSKAL UNIVERSITA' DEGLI STUDI DI BERGAMO Dipartimento di Ingegneria INSTRADAMENTO: ALGORITMO DI KRUSKAL FONDAMENTI DI RETI E TELECOMUNICAZIONE A.A. 2012/13 - II Semestre Esercizio 1 Sia dato il grafo G= (N,

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Elementari su Grafi Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Polo di Scienze Università di Camerino ad Ascoli Piceno Visita

Dettagli

Soluzioni della settima esercitazione di Algoritmi 1

Soluzioni della settima esercitazione di Algoritmi 1 Soluzioni della settima esercitazione di Algoritmi 1 Beniamino Accattoli 19 dicembre 2007 1 Grafi Un grafo è non orientato se descrivendo un arco come una coppia di vertici (i,j) l ordine è ininfluente

Dettagli

B.1 I grafi: notazione e nomenclatura

B.1 I grafi: notazione e nomenclatura Appendice B Grafi e Reti In questa appendice richiamiamo i principali concetti relativi a grafi e reti; descriviamo inoltre alcune classi di strutture dati che possono essere utilizzate per implementare

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari lgoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

Note per la Lezione 21 Ugo Vaccaro

Note per la Lezione 21 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 20 20 Note per la Lezione 2 Ugo Vaccaro In questa lezione introdurremo il concetto di grafo, esamineremo le loro più comuni rappresentazioni ed introdurremo i

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Ordinamento topologico Grafo pesato: è un grafo G=(V,E,w) in cui ad ogni arco viene associato un valore definito dalla funzione peso w (definita su

Dettagli

Grafi (non orientati e connessi): minimo albero ricoprente

Grafi (non orientati e connessi): minimo albero ricoprente Grafi (non orientati e connessi): minimo albero ricoprente Una breve presentazione Definizioni Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è

Dettagli

algoritmi e strutture di dati

algoritmi e strutture di dati algoritmi e strutture di dati grafi m.patrignani nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente, immagini,

Dettagli

Problemi, istanze, soluzioni

Problemi, istanze, soluzioni lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 9 - Grafi Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this

Dettagli

Problema: attraversamento di un grafo. Definizione del problema

Problema: attraversamento di un grafo. Definizione del problema Problema: attraversamento di un grafo Visita: attenzione alle soluzioni facili Definizione del problema Prendere ispirazione dalla visita degli alberi Dato un grafo =(V, ) ed un vertice r di V (detto sorgente

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Minimo albero ricoprente Domenico Fabio Savo 1 Albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi

Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi Dati e Algoritmi I (Pietracaprina) Esercizi svolti sui Grafi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 (Esercizio C-14.34 del testo [GTG14]) Sia G = (V, E) un grafo non diretto con n =

Dettagli

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Minimo albero ricoprente Fabio Patrizi 1 Albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero;

Dettagli

Grafi. Sommario. Definizioni Rappresentazione dei grafi Algoritmi di visita Esempi in C

Grafi. Sommario. Definizioni Rappresentazione dei grafi Algoritmi di visita Esempi in C Grafi Sommario Definizioni Rappresentazione dei grafi Algoritmi di visita Esempi in C 1 Esempi Relazioni di parentela Alberi genealogici Relazioni tra classi nei linguaggi OO Grafo del Web Assetti societari

Dettagli

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari

Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.

Dettagli

Grafi (orientati): cammini minimi

Grafi (orientati): cammini minimi Grafi (orientati): cammini minimi Una breve presentazione Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Un cammino minimo tra

Dettagli

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo Cammini Minimi Algoritmo di Dijkstra Cammino in un grafo Dato un grafo G=(V,E), un Cammino (Percorso) in G è un insieme di vertici v 1, v 2,.., v k tali che (v i, v i+1 ) E v 1 v 2 v 3 v k In un grafo

Dettagli

Algoritmi & Laboratorio

Algoritmi & Laboratorio lbero ricoprente sia dato un grafo connesso e non orientato un albero ricoprente è un sottografo che contiene tutti nodi è aciclico è connesso cknowledgement Lucidi da. Damiani, a.a. 00-00. Demetrescu

Dettagli

LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L. Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso

LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L. Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso Minimum Spanning Tree Albero di copertura (Spanning Tree): un albero di copertura

Dettagli