Prof. Cerulli – Dott. Carrabs

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Flusso Massimo Applicazione di algoritmi
Algoritmi e Strutture dati Mod B
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo non cooperativo
Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
CONOSCERE CONOSCERSI COMUNICARE
Universita di Camerino
Algoritmi e Strutture Dati
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
Cammini minimi con una sorgente
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
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
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
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 15/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmo di Ford-Fulkerson
Il problema del minimo albero ricoprente in un grafo con archi privati
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
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.
Flusso Massimo Applicazione di algoritmi
Cammini minimi Algoritmo SPT.Acyclic
Flusso Massimo Applicazione Algoritmi Esercizio 1 Sia dato la seguente rete di flusso, in cui la sorgente è il nodo 1 e la destinazione è il nodo 6. I.
Algoritmi e Strutture Dati (Mod. B)
Trovare il percorso minimo da b ad ogni altro vertice
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili

Algoritmi e Strutture Dati
Grafi.
Prof. Cerulli – Dott.ssa Gentili
Algoritmi e Strutture Dati
Prof. Cerulli – Dott.ssa Gentili
Lezione n° 18: Maggio Problema del trasporto: formulazione matematica Anno accademico 2008/2009 Prof. Cerulli – Dott.ssa Gentili Lezioni di.
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
Cammini minimi da un sorgente
Ordinamento topologico Cammino minimo dalla sorgente
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Università degli Studi di Roma Tor Vergata
Flusso Massimo Applicazione di algoritmi
Algoritmi e Strutture Dati
Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR
Capitolo 13 Cammini minimi: Algoritmo di ordinamento topologico, di Dijkstra, e di Floyd e Warshall Algoritmi e Strutture Dati.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: algoritmo di Dijkstra Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Cammini minimi fra tutte le coppie:
Cammini minimi in grafi:
Lezione n° 8 - Matrice di base. - Soluzioni di base ammissibili. - Relazione tra vertici di un poliedro e soluzioni basiche. - Teorema fondamentale della.
Lezione n° 10 Algoritmo del Simplesso: - Coefficienti di costo ridotto - Condizioni di ottimalità - Test dei minimi rapporti - Cambio di base Lezioni di.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Capitolo 13 Cammini minimi: algoritmo di Dijkstra Algoritmi e Strutture Dati.
Transcript della presentazione:

Prof. Cerulli – Dott. Carrabs Lezioni di Ricerca Operativa Corso di Laurea in Informatica ed Informatica Applicata Università di Salerno Lezione n° 22 Problema dell’albero dei cammini minimi Prof. Cerulli – Dott. Carrabs

Il problema dei cammini minimi [Versione uno a uno] Sia G = (N,A) un grafo orientato su cui sia definito un vettore c = [cij] dei costi associati agli archi del grafo; inoltre, siano s e t due nodi distinti, detti rispettivamente origine e destinazione. Il problema dei cammini minimi 1 a 1 consiste nel determinare il percorso di costo minimo (più corto) da s a t in G. destinazione G=(N,A) sorgente p 7 40 1 2 9 15 35 9 10 1 44 21 5 4 3 28 11 69 1 21 6 8 5 7 7

Modello matematico (uno a uno) G=(N,A) destinazione sorgente p 7 40 1 2 9 cij = costo dell’arco (i,j) 15 35 9 10 1 44 21 xij = variabili decisionali 5 4 3 28 11 69 1 21 6 8 1 se xijp 5 7 xij = 7 0 se xijp

Modello matematico (uno a uno) 1 5 6 4 7 2 3 8 9 69 44 35 21 15 11 28 40 10

Modello matematico (uno a uno) 1 5 6 4 7 2 3 8 9 69 44 35 21 15 11 28 40 10

Modello matematico (uno a uno) 1 5 6 4 7 2 3 8 9 69 44 35 21 15 11 28 40 10

Il problema dei cammini minimi (varianti) Uno ad uno Uno a tutti Tutti a tutti

Il problema dei cammini minimi (uno a tutti) [Versione uno a tutti] Sia G = (N,A) un grafo orientato su cui sia definito un vettore c = [cij] dei costi associati agli archi del grafo; inoltre, siano s il nodo origine. Il problema dei cammini minimi 1 a tutti consiste nel determinare l’albero dei cammini minimi da s a tutti gli altri nodi di G. T G=(N,A) sorgente 7 40 1 2 9 15 35 9 10 1 44 21 5 4 3 69 28 11 1 21 6 8 5 7 7 Qual’è il modello matematico per la versione uno a tutti?

Il problema dei cammini minimi (uno a tutti) 1 5 6 4 7 2 3 8 9 69 44 35 21 15 11 28 40 10 T

G=(N,A) Etichette dei nodi d1 d2 d9 1 2 9 15 35 9 10 d4 1 44 21 d5 5 4 7 40 1 2 9 15 35 9 10 d4 1 44 21 d5 5 4 3 28 11 d3 69 1 21 6 8 d6 d8 5 7 7 d7

Algoritmo prototipo Passo 1: Inizializzazione. ds=0, Ps=NULL, dk=, Pk=s kN\{s}, Q={s}; Passo 2: Estrai un vertice x da Q (Q= Q \{x}) ed aggiorna quando possibile le etichette dei vertici in FS(x): yFS(x) se dx + cxy < dy allora dy = dx + cxy , Py= x e se y Q inseriscilo in Q (Q= Q  {y}) (test di ottimalità)

Aggioramento delle etichette yFS(x) se dx + cxy < dy allora dy = dx + cxy e Py= x x=4, y=5 d4 + c45 < d5 ? d5 = d4 + c45 e P5= 4 x=4, y=2 d4 + c42 < d2 ? ………………… x=4, y=9 d4 + c49 < d9 ? d9 = d4 + c49 e P9= 4 42 36 5 15 21 7 18 2 4 34 9 55 67

Algoritmo prototipo Passo 1: Inizializzazione. ds=0, Ps=NULL, dk=, Pk=s kN\{s}, Q={s}; Passo 2: Estrai un vertice x da Q (Q= Q \{x}) ed aggiorna quando possibile le etichette dei vertici in FS(x): yFS(x) se dx + cxy < dy allora dy = dx + cxy , Py= x e se y Q inseriscilo in Q (Q= Q  {y}) (test di ottimalità) Passo 3: Fino a quando Q   ripeti il passo 2 ;

Differenti implementazioni Gli algoritmi per l’SPT si distinguono per: La politica di estrazione del nodo da Q (label setting e label correcting) La struttura dati utilizzata per implementare Q

Label Correcting Algoritmi label correcting [Bellman-Ford]: I nodi vengono estratti dalla coda Q in ordine FIFO (è una delle possibili implementazioni dell’algoritmo) Le etichette dei nodi sono temporanee per tutta la durata della computazione. Solo al termine dell’algoritmo tali etichette rappresenteranno le distanze minime. L’algoritmo è in grado di risolvere il problema dei cammini minimi su un qualsiasi grafo che non presenta cicli di peso negativo.

Label Setting Algoritmi label setting [Dijkstra]: Ad ogni iterazione viene estratto dalla coda Q il nodo con x etichetta minima. L’etichetta del nodo x estratto rappresenta la distanza minima dall sorgente al nodo stesso. Tale etichetta viene fissata in modo permamente e non viene più aggiornata (quindi una volta estratto un nodo non può essere reinserito in Q). Gli algoritmi label setting sono più efficienti dei label correcting, ma possono essere applicati solo su grafi dove cij≥0.

Algoritmo di Dijkstra (label setting) Dijkstra (G,s) Inizializzazione; ( ds=0, Ps=NULL, dk=, Pk=s kN\{s} , Q={s}) while ( Q  ){ x = Extract_min(Q); Test_ottimalità(x,y); con yFS(x); }

L’algoritmo di Dijkstra (label setting) G=(N,A)  7  Q 7 40 1 2 9 15 35 9 10  1 44 21 9   5 4 3 28 11 69 1 21  6 8  5 7 7 2 7 1  2 1 5 7 9 1 1

L’algoritmo di Dijkstra (label setting) G=(N,A)  7 47 Q 7 40 1 2 9 15 35 9 10  22 1 44 21 9  5 4 3 42 28 11 69 1 5 4 21 22 9 2 1  6 8  3 4 42 22 2 2 5 7 7 3 2 9 42 47 7 2 1 2  5 9 47 9 1 2

L’algoritmo di Dijkstra (label setting) G=(N,A) 7 47 Q 7 40 1 2 9 15 35 9 10 22 1 44 21 9 5 4 3 42 11 69 28 1 6 5 4 21 78 22 9 5 1 2 78  6 8  3 4 42 22 2 2 5 7 7 9 3 47 42 2 2  6 9 78 47 5 2

L’algoritmo di Dijkstra (label setting) G=(N,A) 7 47 Q 7 40 1 2 9 15 35 9 10 22 1 44 21 9 5 4 3 42 7 8 4 4 33 43 11 69 28 1 8 3 4 21 22 42 33 2 2 4 78 50 6 8  33 7 3 43 42 4 2 5 7 7 9 47 2  43 6 78 50 5 4

L’algoritmo di Dijkstra (label setting) G=(N,A) 7 47 Q 7 40 1 2 9 15 35 9 10 22 1 44 21 9 5 4 3 42 34 8 33 4 28 11 69 1 3 21 34 42 2 8 50 6 8 33 7 43 4 5 7 7 9 47 2 43 6 50 4

L’algoritmo di Dijkstra (label setting) G=(N,A) 7 47 44 Q 7 40 1 2 9 15 35 9 10 22 1 44 21 9 5 4 3 34 28 11 69 1 3 21 34 8 50 6 8 33 7 43 4 5 7 7 9 44 47 3 2 43 6 50 4

L’algoritmo di Dijkstra (label setting) G=(N,A) 7 44 Q 7 40 1 2 9 15 35 9 10 22 1 44 21 9 5 4 3 34 11 69 28 1 21 48 50 6 8 33 7 43 4 5 7 7 9 44 3 43 6 50 48 7 4

Il problema dei cammini minimi s 1 2 9 5 4 3 6 8 7 Quali sono i valori delle variabili xij nella soluzione ottima? …………………………….