La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Lezione n° 22 Problema dell’albero dei cammini minimi Lezioni di Ricerca Operativa Corso di Laurea in Informatica ed Informatica Applicata Università di."— Transcript della presentazione:

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

2 Il problema dei cammini minimi 1 5 6 4 7 2 3 8 9 69 44 7 1 35 G=(N,A) 5 7 1 21 15 sorgente 11 28 9 40 10 21 destinazione p [Versione uno a uno] Sia G = (N,A) un grafo orientato su cui sia definito un vettore c = [c ij ] 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.

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

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

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

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

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

8 Il problema dei cammini minimi (uno a tutti) 1 5 6 4 7 2 3 8 9 69 44 7 1 35 5 7 1 21 15 sorgente 11 28 9 40 10 21 T G=(N,A) Qual’è il modello matematico per la versione uno a tutti? [Versione uno a tutti] Sia G = (N,A) un grafo orientato su cui sia definito un vettore c = [c ij ] 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.

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

10 Etichette dei nodi 1 5 6 4 7 2 3 8 9 69 44 7 1 35 G=(N,A) 5 7 1 21 15 11 28 9 40 10 21 d1d1 d2d2 d9d9 d5d5 d6d6 d7d7 d8d8 d3d3 d4d4

11 Algoritmo prototipo Passo 1: Inizializzazione. d s =0, P s =NULL, d k = , P k =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 d x + c xy < d y allora d y = d x + c xy, P y = x e se y  Q inseriscilo in Q (Q= Q  {y}) (test di ottimalità)

12 Aggioramento delle etichette 5 9 4 2 7 34 15 42 67 18 21  y  FS(x) se d x + c xy < d y allora d y = d x + c xy e P y = x  x=4, y=5 d 4 + c 45 < d 5 ? d 5 = d 4 + c 45 e P 5 = 4  x=4, y=2 d 4 + c 42 < d 2 ? …………………  x=4, y=9 d 4 + c 49 < d 9 ? d 9 = d 4 + c 49 e P 9 = 4 36 55

13 Algoritmo prototipo Passo 1: Inizializzazione. d s =0, P s =NULL, d k = , P k =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 d x + c xy < d y allora d y = d x + c xy, P y = x e se y  Q inseriscilo in Q (Q= Q  {y}) (test di ottimalità) Passo 3: Fino a quando Q   ripeti il passo 2 ;

14 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

15 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.

16 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 c ij ≥0.

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

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

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

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

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

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

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

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

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


Scaricare ppt "Lezione n° 22 Problema dell’albero dei cammini minimi Lezioni di Ricerca Operativa Corso di Laurea in Informatica ed Informatica Applicata Università di."

Presentazioni simili


Annunci Google