Algoritmi e Strutture Dati Capitolo 13 Camminimi Ordinamento

  • Slides: 18
Download presentation
Algoritmi e Strutture Dati Capitolo 13 Camminimi: Ordinamento topologico

Algoritmi e Strutture Dati Capitolo 13 Camminimi: Ordinamento topologico

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Camminimi in grafi

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Camminimi in grafi pesati Sia G=(V, E, w) un grafo orientato con pesi w reali sugli archi. Il costo di un cammino =<v 0, v 1, v 2, … , vk> è dato da: Un cammino minimo tra una coppia di vertici x e y è un cammino avente costo minore o uguale a quello di ogni altro cammino tra gli stessi vertici. NOTA: Il cammino minimo non è necessariamente unico. 2 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmica concreta: il

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmica concreta: il navigatore satellitare • Sono in auto a Roma in Piazza Dante 12, (punto A) e devo recarmi ad un appuntamento a L’Aquila, in Via Vetoio 1 (punto B). Non conosco la strada, ma dispongo di un moderno navigatore satellitare, il quale mi aiuterà ad arrivare a destinazione: 1. 2. • percorrendo la strada più breve possibile (funzione obiettivo 1), oppure impiegando il minor tempo possibile (funzione obiettivo 2). Come calcola la soluzione? Semplice: rappresenta l’intera rete stradale italiana (centinaia di migliaia di strade!) come un grafo diretto G=(V, E), in cui i nodi sono le intersezioni fisiche tra le varie strade (milioni di nodi!), e gli archi sono le strade stesse, con i loro sensi di marcia. Il grafo viene quindi pesato rispetto alla mia funzione obiettivo, ovvero rispettivamente: 1. 2. Lunghezza della strada funzione peso w 1; Tempo di percorrenza funzione peso w 2. Infine, calcola (rapidamente!) il cammino minimo in G=(V, E, w 1) e in G=(V, E, w 2) tra A ed B. 3 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Il percorso più

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Il percorso più breve 4 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Proprietà dei camminimi

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Proprietà dei camminimi • Sottostruttura ottima: ogni sottocammino di un cammino minimo è anch’esso un cammino minimo • Grafi con cicli negativi: se due vertici x e y appartengono a un ciclo di costo negativo, non esiste nessun cammino minimo finito tra di essi (né tra tutte le coppie di nodi che ammettono un cammino passante per tale ciclo) • Se G non contiene cicli negativi, tra ogni coppia di vertici connessi in G (cioè uniti da almeno un cammino) esiste sempre un cammino minimo semplice, in cui cioè tutti i vertici sono distinti 5 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Distanza fra vertici

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Distanza fra vertici • Ricorda: la distanza dxy tra due vertici x e y è il costo di un cammino minimo da x a y, o +∞ se i due vertici non sono connessi • Disuguaglianza triangolare: per ogni x, y e z V dxy ≤ dxz + dzy (l’uguaglianza sussiste quando esiste un cammino minimo da x a y che passa per z) • Condizione di Bellman: per ogni arco (u, v) e per ogni vertice s, essendo duv ≤ w(u, v), dalla disuguaglianza triangolare segue che: dsv ≤ dsu + duv ≤ dsu + w(u, v) 6 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Ricostruire camminimi dalle

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Ricostruire camminimi dalle distanze Supponendo di disporre delle distanze tra tutte le coppie di nodi in un dato grafo, dalla condizione di Bellman è facile risalire al cammino minimo che congiunge due nodi; infatti, un arco (u, v) appartiene ad un cammino minimo da s a v se e solo se dsu+w(u, v)=dsv, e quindi: 7 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Tecnica del rilassamento

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Tecnica del rilassamento • Partendo da stime per eccesso delle distanze Dxy ≥ dxy si aggiornano le stime, decrementandole progressivamente fino a renderle esatte. • Aggiornamento delle stime basato sul seguente passo di rilassamento ( vy denota un qualche cammino tra v e y): 8 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmo generico per

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmo generico per il calcolo delle distanze rilassamento 9 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Albero dei camminimi

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Albero dei camminimi • L’unione di tutti i camminimi da un vertice s a tutti i vertici da esso raggiungibili nel grafo G genera un sottografo di G, detto sottografo dei camminimi con sorgente in s • Se da tale sottografo rimuoviamo archi in modo tale da ridurre ad 1 il grado entrante di tutti i nodi (escluso s che ha grado entrante pari a 0) otterremo un albero orientato con tutti gli archi orientati in direzione delle foglie, detto albero dei camminimi radicato in s 10 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Esempio di albero

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Esempio di albero dei camminimi 1 a 1 c 11 s 0 2 4 5 1 1 1 b 5 d 6 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Sommario dei risultati

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Sommario dei risultati a venire • Algoritmo basato su ordinamento topologico (albero dei camminimi in grafi aciclici) • Algoritmo di Bellman e Ford (albero dei camminimi in grafi che non contengono cicli negativi) • Algoritmo di Dijkstra (albero dei camminimi in grafi con pesi non negativi) • Algoritmo di Floyd e Warshall (camminimi tra tutte le coppie di nodi in grafi che non contengono cicli negativi) 12 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmo basato su

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmo basato su ordinamento topologico (albero dei camminimi in grafi aciclici) 13 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Ordinamento topologico Funzione

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Ordinamento topologico Funzione biettiva s: V {1, … n} tale che se esiste un cammino da u a v in G, allora s(u)<s(v). Teorema: Esiste se e solo se G è aciclico. Dim. : (solo se) Infatti, se G avesse un ciclo e ammettesse un ordinamento topologico s, allora su tale ciclo esisterebbe un cammino da un nodo u a un nodo v ed un cammino da v ad u, cioè s(u)<s(v) e s(v)<s(u) (assurdo). Per il (se) si veda il prossimo algoritmo costruttivo: 14 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Calcolo di un

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Calcolo di un ordinamento topologico (*) perché altrimenti in Ĝ ogni vertice deve avere almeno un arco entrante, e quindi posso trovare un ciclo percorrendo archi entranti a ritroso, e quindi G non può essere aciclico) Tempo di esecuzione (con liste di adiacenza): Θ(n+m) (dimostrare!) 15 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Esempio Applicare l’algoritmo

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Esempio Applicare l’algoritmo di ordinamento topologico sul seguente grafo: 16 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Camminimi in grafi

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Camminimi in grafi aciclici Eseguo i rilassamenti in ordine topologico, da sinistra verso destra: infatti, poiché tutti gli archi sono orientati verso destra, le stime di distanza che mi lascio alle spalle sono esatte (non possono essere ulteriormente rilassate)! Tempo di esecuzione (liste di adiacenza): (n+m) 17 Copyright © 2004 - The Mc. Graw - Hill Companies, srl

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Esercizio Assegnare pesi

Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Esercizio Assegnare pesi arbitrari al grafo appena esaminato, e utilizzare l’ordinamento topologico trovato per costruire l’albero dei camminimi radicato in A. 18 Copyright © 2004 - The Mc. Graw - Hill Companies, srl