Ordinamento topologico

Slides:



Advertisements
Presentazioni simili
Flusso Massimo Applicazione di algoritmi
Advertisements

Algoritmi e Strutture dati Mod B
Depth-first search Visita in profondità di un grafo Algoritmo Esempio
Algoritmi e Strutture Dati
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)
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
Cammini minimi con una sorgente
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Depth-first search Visita in profondità di un grafo Algoritmo Esempio
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Cammini minimi con sorgente singola
Algoritmi e Strutture Dati
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
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 Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
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
Algoritmi e Strutture Dati (Mod. B)
Grafi.
Algoritmi e Strutture Dati
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
Usi (meno scontati) della visita DFS
Algoritmi e Strutture Dati
Componenti fortemente connesse
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 08/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Grafi Rappresentazione mediante liste di adiacenza:
Ordinamento topologico Cammino minimo dalla sorgente
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.
Usi (meno scontati) della visita DFS lezione basata sul capito 3 del libro Algorithms, di Dasgupta, Papadimitriou, Vazirani, McGraw-Hill.
Master Bioinformatica 2002: Grafi
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Ordinamento topologico
Olimpiadi di Informatica 2010 Giornate preparatorie
algoritmi approssimati
Algoritmi elementari su grafi
Flusso Massimo Applicazione di algoritmi
Componenti fortemente connesse
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
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)
B-Alberi Algoritmi su grafi
Capitolo 13 Cammini minimi: Bellman e Ford Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: Algoritmo di ordinamento topologico, di Dijkstra, e di Floyd e Warshall Algoritmi e Strutture Dati.
Algoritmi approssimati. Algoritmi approssimati Per qualche problema NP-completo esistono algoritmi polinomiali che ritornano soluzioni “quasi ottime”.
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.
Algoritmi e Strutture Dati
Cammini minimi fra tutte le coppie:
Cammini minimi in grafi:
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal 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
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Usi (meno scontati) della visita DFS
Usi (meno scontati) della visita DFS
Transcript della presentazione:

Ordinamento topologico

Grafi diretti aciclici Un grafo diretto e aciclico (Directed Acyclic Graph, DAG) è un grafo diretto che non contiene cicli diretti Spesso un DAG è utilizzato per rappresentare precedenze fra eventi, specificando cioè che un evento a deve accadere prima di b Un esempio può essere la temporizzazione delle attività di un progetto L’induzione di un ordine totale può essere fatta per mezzo dell’Ordinamento topologico

Ordinamento topologico Ordinamento di un DAG L’ordinamento topologico di un DAG è un ordinamento lineare di tutti i suoi vertici, tale che per ogni arco (u,v) nel DAG, u appare prima di v nell’ordinamento. L’algoritmo seguente ordina topologicamente un DAG La lista concatenata contiene l’ordinamento Topological-Sort(G) chiama DFS(G) per calcolare i tempi di fine visita f[v] per ogni vertice v. appena la visita di un vertice è finita, inseriscilo in testa ad una lista concatenata. return la lista concatenata dei vertici.

Teorema DAG Un grafo diretto G è aciclico sse una ricerca DFS su G non produce archi all’indietro Dim. si supponga che ci sia una arco all’indietro (u,v); v è un antenato di u nella foresta DFS. Quindi, c’è un cammino da v a u in G e (u,v) chiude il ciclo si supponga che G contenga un ciclo c; sia v il primo vertice in c ad essere scoperto e sia u un predecessore di v in c. Al tempo d(v) il ciclo da v a u è bianco Bisogna visitare tutti i nodi raggiungibili su questo cammino prima di ritornare dalla DFS-Visit(v), quindi u diventa un discendente di v Quindi (u,v) è un arco all’indietro

Ordinamento topologico: esempio Relazioni di precedenza: un arco da x a y indica che l’operazione x deve essere svolta prima di y Idea: si può attivare una operazione solo quando tutte le sue precedenze sono completate

Ordinamento topologico Tempo ricerca DFS: O(V+E) inserimento di ciascuno dei |V| vertici in testa alla lista : O(1) per inserimento Quindi il tempo totale è O(V+E)

Ordinamento topologico: correttezza Tesi: dato un DAG, un arco (u,v) appartiene a E implica f[u]>f[v] Quando (u,v) viene percorso, u è grigio. 3 casi: v grigio Þ (u,v) è un arco all’indietro (ciclo, contraddizione) v bianco Þ v diventa un discendante di u Þ v sarà finito prima di u Þ f[v] < f[u] v nero Þ v è già finito Þ f[v] < f[u] La definizione di ordinamento topologico è soddisfatta