Grafi (orientati): cammini minimi

Похожие документы
Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Algoritmi e strutture dati

Algoritmi e Strutture Dati

Cammini minimi in grafi:

Algoritmi e Strutture Dati

Cammini Minimi. Algoritmo di Dijkstra

Grafi pesati Minimo albero ricoprente

Problema del cammino minimo

Grafi (orientati): cammini minimi

Algoritmi e Strutture Dati

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

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

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

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

COMPLEMENTI DI SHORTEST-PATH. ASD Fabrizio d'amore

Grafi: definizioni e visite

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

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: ordinamento topologico

Algoritmi e Strutture Dati

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

Esempi. non. orientato. orientato

Problemi, istanze, soluzioni

Progettazione di Algoritmi

Progettazione di Algoritmi

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla

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

Algoritmo basato su cancellazione di cicli

Strutture dati per rappresentare grafi

Il problema del commesso viaggiatore

Algoritmi e Strutture Dati. Capitolo 11 Visite di grafi

Minimo albero di copertura

Introduzione ai grafi

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

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo

Progettazione di Algoritmi

Esercizio 1. Esercizio 2

11.4 Chiusura transitiva

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Grafi. Daniele Loiacono

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

Visite in Grafi BFS e DFS

Esame di Ricerca Operativa del 11/07/2016

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 15/01/2015

Esame di Ricerca Operativa del 07/09/2016

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

Grafi e Funzioni di Costo ESERCIZI

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

Esame di Ricerca Operativa del 03/09/2015

Dai ponti di Königsberg al postino cinese

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

4c. Esercizi sul livello di Rete Instradamento in Internet

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

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

Esame di Ricerca Operativa del 09/02/2016

Possibile applicazione

Grafi e reti di flusso

«Sciente e Tecnologie dei Beni Culturali»

Esame di Ricerca Operativa del 16/06/2015

Cammini minimi fra tutte le coppie

Algoritmi Approssimanti per -TSP

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

Fondamenti di Internet e Reti

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33

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

Gestione della produzione e della supply chain Logistica distributiva

Algoritmi e Strutture Dati

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

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

Esercizi proposti 10

L algoritmo di Dijkstra

Транскрипт:

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 π=<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.

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

Distanza fra vertici La distanza d xy tra due vertici x e y è il costo di un cammino minimo tra 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

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

Calcolare cammini minimi dalle distanze

Tecnica del rilassamento Partendo da stime per eccesso delle distanze D xy d xy aggiornare le stime, decrementandole progressivamente fino a renderle esatte. Aggiornamento delle stime basato sul seguente passo di rilassamento:

Algoritmo generico per il calcolo delle distanze rilassamento

Algoritmo di Bellman e Ford (per cammini minimi a sorgente singola)

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

Approccio di Bellman e Ford Esegue 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!

Pseudocodice Tempo di esecuzione: O(nm)

Algoritmo per grafi diretti aciclici (per cammini minimi a sorgente singola)

ammini minimi in grafi aciclici Eseguire i rilassamenti in ordine topologico Tempo di esecuzione: O(n+m)

Algoritmo di Dijkstra (per cammini minimi a sorgente singola in grafi con costi non negativi)

stendere l albero dei cammini minimi Se T è un albero dei cammini minimi radicato in s che non include tutti i vertici raggiungibili da s, l arco (u,v) tale che u T e v T che minimizza la quantità d su +w(u,v) appartiene a un cammino minimo da s a v

Approccio di Dijkstra Scegli un arco (u,v) con u T e v T che minimizza la quantità D su +w(u,v), effettua il passo di rilassamento D sv D su +w(u,v), ed aggiungilo a T Archi incidenti a T mantenuti in una coda con priorità, prestando attenzione ad avere un solo arco per ogni nodo v T: se (u,v) è in coda quando analizziamo (z,v) e risulta D sz +w(z,v) < D su +w(u,v), rimpiazziamo (u,v) con (z,v)

Tempo di esecuzione Al più n insert, n deletemin e m decreasekey O(m log n) utilizzando heap O(m+n log n) utilizzando heap di Fibonacci

Pseudocodice

sempio (1/2)

Esempio (2/2)

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)