Algoritmi e strutture dati

Похожие документы
Grafi (orientati): cammini minimi

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

Cammini minimi in grafi:

Algoritmi e Strutture Dati

Problema del cammino minimo

Algoritmi e Strutture Dati

Grafi pesati Minimo albero ricoprente

Cammini Minimi. Algoritmo di Dijkstra

Grafi: ordinamento topologico

Grafi (orientati): cammini minimi

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

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

COMPLEMENTI DI SHORTEST-PATH. ASD Fabrizio d'amore

Cammini minimi fra tutte le coppie

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla

Problemi, istanze, soluzioni

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

Esercizio 1. Esercizio 2

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

Progettazione di Algoritmi

11.4 Chiusura transitiva

Algoritmi e Strutture Dati

2.2 Alberi di supporto di costo ottimo

Esempi. non. orientato. orientato

Grafi: definizioni e visite

2.2 Alberi di supporto di costo ottimo

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

Introduzione ai grafi

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

Il problema del commesso viaggiatore

Progettazione di Algoritmi

Algoritmi e Strutture Dati

Minimo albero di copertura

Progettazione di Algoritmi

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

Esame di Ricerca Operativa del 11/07/2016

Algoritmi e Strutture Dati

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015

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

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

Esame di Ricerca Operativa del 07/09/2016

Algoritmo basato su cancellazione di cicli

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

Strutture dati per rappresentare grafi

Esame di Ricerca Operativa del 03/09/2015

Dai ponti di Königsberg al postino cinese

Grafi e reti di flusso

Algoritmi e Strutture Dati. Capitolo 11 Visite di grafi

Grafi e Funzioni di Costo ESERCIZI

Esame di Ricerca Operativa del 09/02/2016

Esame di Ricerca Operativa del 16/06/2015

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi

Programmazione dinamica

Gestione della produzione e della supply chain Logistica distributiva

Algoritmi Approssimanti per -TSP

4c. Esercizi sul livello di Rete Instradamento in Internet

Algoritmi e Strutture Dati Grafi. Daniele Loiacono

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

Esame di Ricerca Operativa del 08/01/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

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

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

Ricerca Operativa Cammini minimi: algoritmi di Bellman-Ford e di Dijkstra

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

L algoritmo di Dijkstra

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

Possibile applicazione

«Sciente e Tecnologie dei Beni Culturali»

Routing. Forwarding e routing

Algoritmi e Strutture Dati

Транскрипт:

Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = <v 0,v 1,v 2,,v k > è dato da: Un cammino minimo tra una coppia di vertici x e y è un cammino di costo minore o uguale a quello di ogni altro cammino tra gli stessi vertici. 2

Proprietà dei cammini minimi Sottostruttura ottima: ogni sottocammino di un cammino minimo è anch esso 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 Se G non contiene cicli negativi, tra ogni coppia di vertici connessi in G esiste sempre un cammino minimo semplice, in cui cioè tutti i vertici sono distinti 3 Distanza fra vertici La distanza d xy 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 Condizione di Bellman: per ogni arco (u,v) e per ogni vertice s 4

Alberi di cammini minimi Un arco (u,v) appartiene a un cammino minimo a partire da un vertice s se e solo se u è raggiungibile da s e d su + w(u,v) = d sv I cammini minimi da un vertice s a tutti gli altri vertici del grafo possono essere rappresentati tramite un albero radicato in s, detto albero dei cammini minimi 5 Calcolare cammini minimi da distanze Problema: Le distanze non sono note (è proprio quello che vogliamo trovare!) 6

Tecnica del rilassamento Partiamo da stime per eccesso delle distanze D xy d xy e aggiorniamole decrementandole progressivamente fino a renderle esatte. Aggiorniamo le stime basandoci sul seguente passo di rilassamento: 7 Algoritmo generico per il calcolo delle distanze Rilassamento 8

Algoritmo di Bellman e Ford (per cammini minimi a sorgente singola) 9 Ordine di rilassamento Sia π = < s,v 1,v 2,,v k > un cammino minimo. Se fossimo in grado di eseguire i passi di rilassamento nell ordine seguente: in k passi avremmo la soluzione. Purtroppo non conosciamo l ordine giusto, essendo π ignoto! 10

Approccio di Bellman e Ford Esegui n passate In ciascuna passata rilassa tutti gli archi Dopo la j-esima passata, i primi j rilassamenti corretti sono stati certamente eseguiti Esegue però molti rilassamenti inutili! 11 Pseudocodice Tempo di esecuzione: O(n m) 12

Algoritmo per grafi diretti aciclici (per cammini minimi a sorgente singola) 13 Ordinamento topologico Funzione σ: V {1, n} tale che σ(u) < σ(v) se esiste un cammino da u a v in G Esiste se e solo se G è aciclico 14

Calcolo di un ordinamento topologico Tempo di esecuzione: O(n+m) 15 Cammini minimi in grafi aciclici Eseguire i rilassamenti in ordine topologico Tempo di esecuzione: O(n+m) 16

Algoritmo di Dijkstra (per cammini minimi a sorgente singola in grafi con costi non negativi) 17 Estendere l albero dei cammini minimi Sia T un albero dei cammini minimi radicato in s che non include tutti i vertici raggiungibili da s, sia (u,v) t.c. u T e v T, e t.c. (u,v) minimizza la quantità d su + w(u,v) : allora (u,v) appartiene a un cammino minimo da s a v 18

Algoritmo di Dijkstra Scegli arco (u,v) con u T e v T che minimizza quantità D su + w(u,v), effettua rilassamento D sv D su + w(u,v), ed aggiungi (u,v) a T Archi incidenti in T mantenuti in coda con priorità (un solo arco per ogni nodo v T): se (u,v) è già in coda quando analizzi (z,v) e risulta D sz + w(z,v) < D su + w(u,v), rimpiazza (u,v) con (z,v) 19 Pseudocodice 20

Esempio (1/2) 21 Esempio (2/2) 22

Tempo di esecuzione Al più: n deletemin, n insert e m decreasekey O(m log n) utilizzando heap O(m + n log n) utilizzando heap di Fibonacci 23 Algoritmo di Floyd e Warshall (per cammini minimi tra tutte le coppie) 24

Elegante applicazione della tecnica di programmazione dinamica Approccio Un cammino minimo k-vincolato da x a y è un cammino di costo minimo tra tutti i cammini da x a y che usano solo i vertici {v 1, v 2, v k } Idea di Floyd e Warshall: calcolare cammini minimi k-vincolati 25 Relazioni tra distanze vincolate k Sia d xy il costo di un cammino minimo k-vincolato da x a y. Risulta: 0 d xy = w(x,y) se (x,y) E, + altrimenti d xy = d xy n L algoritmo calcola d xy dal basso verso l alto, incrementando k da 1 a n 26

Pseudocodice Tempo di esecuzione: O(n 3 ) 27 Riepilogo Algoritmi classici per il calcolo di distanze (e quindi di cammini minimi), basati sulla tecnica del rilassamento: Bellman e Ford: cammini minimi a sorgente singola, grafi diretti senza cicli negativi, tempo O(nm) Grafi diretti aciclici: cammini minimi a sorgente singola in tempo O(n+m) Dijkstra: cammini minimi a sorgente singola, grafi diretti senza pesi negativi, tempo O(m + n log n) Floyd e Warshall: cammini minimi tra tutte le coppie in tempo O(n 3 ) 28