Componenti fortemente connesse

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture dati Mod B
Advertisements

Depth-first search Visita in profondità di un grafo Algoritmo Esempio
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo non cooperativo
Introduzione ai grafi Grafo diretto e non diretto
Il problema del minimo albero ricoprente in un grafo non cooperativo
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Estendere i linguaggi: i tipi di dato astratti
Grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed 2 Copyright © The McGraw.
Algoritmi e Strutture Dati
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Cammini minimi con sorgente singola
Insiemi disgiunti.
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Università degli Studi di Roma Tor Vergata
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Il problema del minimo albero ricoprente in un grafo con archi privati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Visite di grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Cammini minimi Algoritmo SPT.Acyclic
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Trovare il percorso minimo da b ad ogni altro vertice
Grafi.
Algoritmi e Strutture Dati
Prof. Cerulli – Dott.ssa Gentili
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi su grafi I grafi sono strutture dati che vengono usate estensivamente in informatica. Ci sono migliaia di problemi computazionali che sono importanti.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
Usi (meno scontati) della visita DFS
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Corso di Informatica 2 a.a. 2003/04 Lezione 6
Usi (meno scontati) della visita DFS. Informazioni utili: tenere il tempo clock=1 pre(v)=clock clock=clock+1 post(v)=clock; clock=clock+1 pre(v): tempo.
Alberi di copertura minimi. Dato un grafo pesato G = (V,E), si richiede di trovare un albero T = (V,E’), E’  E, tale che la somma dei pesi associati.
Usi (meno scontati) della visita DFS lezione basata sul capito 3 del libro Algorithms, di Dasgupta, Papadimitriou, Vazirani, McGraw-Hill.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Ordinamento topologico
Olimpiadi di Informatica 2010 Giornate preparatorie
Algoritmi elementari su grafi
Ordinamento topologico
Componenti fortemente connesse
Capitolo 11 Visite di grafi Algoritmi e Strutture Dati.
Master Bioinformatica 2002: Visite di Grafi La struttura dati D è una PILA (STACK) Visita in profondità o Depth-First-Search (DFS)
Master Bioinformatica 2002: Visite di Grafi Algoritmi di visita Scopo: visitare tutti i vertici di un grafo per scoprirne proprietà di vario tipo. Alcune.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Grafi: rappresentazione e visita
Algoritmi e Strutture Dati
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

Componenti fortemente connesse

Componenti fortemente connesse Una componente fortemente connessa (CFC) di un grafo orientato G=(V,E) è un insieme massimale di vertici U  V tale che per ogni coppia di vertici u e v in U si ha che ciascuno dei due vertici è raggiungibile dall’altro.

Componenti fortemente connesse

Componenti fortemente connesse

Grafo trasposto Il grafo GT=(V,ET) è il trasposto di G=(V,E) se ET = {(u,v): (v,u)E} (rovescia il senso di percorrenza degli archi di G). G e GT hanno le stesse componenti fortemente connesse.

Componenti fortemente connesse L’algoritmo seguente trova in tempo lineare (O(V+E)) le componenti connesse di un grafo orientato G=(V,E). Strongly-Connected-Components(G) 1.chiama DFS(G) per calcolare f[u] per ogni vertice u 2.calcola GT 3.chiama DFS(GT), ma nel ciclo principale di DFS considera i vertici in ordine decrescente di f[u] 4.return i vertici di ogni albero nella foresta DFS prodotta al passo 3 come una diversa componente fortemente connessa

Componenti fortemente connesse 13/14 11/16 1/10 8/9 12/15 3/4 2/7 5/6 Grafo G iniziale

Componenti fortemente connesse 13/14 11/16 1/10 8/9 12/15 3/4 2/7 5/6 Grafo GT

Componenti fortemente connesse 13/14 11/16 1/10 8/9 12/15 3/4 2/7 5/6

Componenti fortemente connesse 13/14 11/16 1/10 8/9 12/15 3/4 2/7 5/6

Componenti fortemente connesse Lemma Se due vertici sono nella stessa CFC, allora nessun cammino fra loro esce da questa CFC. Teorema In una qualunque visita in profondità, tutti i vertici in una stessa CFC sono posti nello stesso albero DFS.

Avi Un avo (u) di un vertice u è il vertice (unico) w raggiungibile da u che massimizza f[w] (w è l’ultimo nodo raggiungibile da u nell’ordinamento della DFS). Teorema In un grafo orientato G = (V,E) l’avo (u) di un qualunque vertice uV in una qualunque visita in profondità di G è un antenato di u.

Componenti fortemente connesse Corollario In ogni visita in profondità di un grafo orientato G = (V,E), per ogni vertice uV i vertici u e (u) appartengono alla stessa CFC. Teorema In un grafo orientato G = (V,E), due vertici u,vV appartengono alla stessa CFC se e solo se essi hanno lo stesso avo in una visita in profondità di G.

Correttezza Teorema Strongly-Connected-Components(G) calcola correttamente le CFC di un grafo orientato G. Dim. Per induzione. Tesi: se tutti gli alberi prodotti prima dell’n-esimo nella DFS sono CFC, allora lo è anche l’n-esimo. Banalmente vero per n=0. Per il caso induttivo, cont...

Considera un albero DFS, T con radice r prodotto dalla ricerca per profondità su GT, sia C(r) l’insieme dei vertici con avo r. Tesi: un vertice u è presente in T, sse u è in C(r). Chiaramente, ogni vertice in C(r) è anche in T. Se f[(w)]>f[r], allora w non può essere in C(r): Quando r viene selezionato, w è già stato inserito nell’albero con radice (w). Se f[(w)]<f[r], allora w non può essere in C(r): Se w fosse in C( r), allora r sarebbe raggiungibile da w. Quindi r f[r]<f[(w)]

Problema: dato un grafo orientato …

… trovare le sue CFC

Prima DFS Inizio

Inizio

Inizio

Identificazione dei tempi di fine visita 8 5 4 7 6 3 2 1

Transposizione del grafo 8 5 4 7 6 3 2 1

Seconda DFS 8 5 4 7 6 3 2 1

Seconda DFS 8 5 4 7 6 3 2 1

Seconda DFS 8 5 4 7 6 3 2 1

Seconda DFS 8 5 4 7 6 3 2 1

Seconda DFS 8 5 4 7 6 3 2 1

Seconda DFS 8 5 4 7 6 3 2 1

Seconda DFS 8 5 4 7 6 3 2 1

Seconda DFS 8 5 4 7 6 3 2 1

Seconda DFS 8 5 4 7 6 3 2 1