Rete di comunicazione
Transcript
Rete di comunicazione
laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Rete di comunicazione Si consideri la topologia di rete data in figura. Ogni nodo rappresenta un terminale/router connesso ad una rete cablata e ogni lato rappresenta un link bidirezionale. Per ogni link è riportata la banda in Mbps. 1. Formulare in termini di programmazione lineare il problema di individuare la quantità massima di dati inviabili al secondo (Mbps) dal nodo c al nodo f . 2. Come cambia la formulazione se è necessario massimizzare il flusso tra il sottoinsieme di nodi {b,d,e}, è necessario cioè massimizzare il flusso tra le coppie {b,d}, {d,e} e {e,b}? Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 1 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Schema del modello in AMPL (file rete.mod) # SETS set V; set E within {V,V}; set A within {V,V} := E union setof{(i,j) in E} (j,i); # PARAMS param s symbolic in V; param t symbolic in V; param k{(i,j) in A} >= 0, default if (j,i) in E then k[j,i]; L’insieme A contiene l’arco in E e il rispettivo arco nella direzione inversa. Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 2 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Dati (file rete.dat), valore ottimo: 62 data; set V := a b c d e f g h i j k l m; param s := c; param t := f; param: E: a a a a a b b b b c c c c d d d e e e f f f g g h i j k l ; k b c d e f c f g h d h i j e j k f k l g l m h m i j k l m := 19 7 13 2 9 14 10 18 2 11 7 15 16 17 11 16 15 8 13 12 19 4 9 5 14 3 17 20 1 Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 3 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Schema del file rete-2.mod e file rete-2.dat per il secondo punto. Schema del modello in AMPL (file rete-2.mod) # SETS set V; set E within {V,V}; set A within {V,V} := E union setof{(i,j) in E} (j,i); set D; # PARAMS param s{D} symbolic in V; param t{D} symbolic in V; param k{(i,j) in A} >= 0, default if (j,i) in E then k[j,i]; Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 4 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Dati (file rete-2.dat), valore ottimo: 106 data; set V := a b c d e f g h i j k l m; param: D: s t := 1 b 2 d 3 b param: E: a a a a a b b b b c c c c d d d e e e f f f g g h i j k l ; k b c d e f c f g h d h i j e j k f k l g l m h m i j k l m d, e, e; := 19 7 13 2 9 14 10 18 2 11 7 15 16 17 11 16 15 8 13 12 19 4 9 5 14 3 17 20 1 Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 5 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Soluzione Formulazione Insiemi • V : nodi • A ⊆ V × V : lati Parametri • s ∈ V : nodo origine • t ∈ V : nodo destinazione • kij : capacità del lato (i, j), con (i, j) ∈ A Variabili decisionali • xij : quantità di flusso inviata sul lato (i, j), con (i, j) ∈ A • φ: valore del flusso Modello max (valore) φ s.t. X xhj − (h,j)∈A xij ≤ kij X (i,h)∈A xih h=s φ = −φ h=t 0 h ∈ V \{s, t} xij ≥ 0 Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano (bilancio) (i, j) ∈ A (capacità) (i, j) ∈ A (var. non negative) 6 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Modello in AMPL (file rete.mod) # SETS set V; set E within {V,V}; set A within {V,V} := E union setof{(i,j) in E} (j,i); # PARAMS param s symbolic in V; param t symbolic in V; param k{(i,j) in A} >= 0, default if (j,i) in E then k[j,i]; # VARS var x{(i,j) in A} >= 0, <= k[i,j]; var phi >= 0; # OBJECTIVE FUNCTION maximize valore: phi; #CONSTRAINTS subject to bilancio_s: sum{(s,j) in A} x[s,j] - sum{(j,s) in A} x[j,s] = phi; subject to bilancio_t: sum{(t,j) in A} x[t,j] - sum{(j,t) in A} x[j,t] = -phi; subject to bilancio{h in V: h <> s and h <> t}: sum{(h,j) in A} x[h,j] - sum{(i,h) in A} x[i,h] = 0; Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 7 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Esecuzione in AMPL (file rete.run) model rete.mod data rete.dat option solver cplex; solve; display x; Soluzione CPLEX 11.2.0: optimal solution; 8 dual simplex iterations (2 in x [*,*] : a b c d e f a . 2 0 0 2 4 b 0 . 0 . . 10 c 7 14 . 11 . . d 1 . 0 . 17 . e 0 . . 0 . 15 f 0 0 . . 0 . g . 0 . . . 12 h . 2 0 . . . i . . 0 . . . j . . 0 2 . . k . . . 5 0 . l . . . . 4 17 m . . . . . 4 ; objective 62 phase I) g . 8 . . . 0 . 9 . . . . 0 h . 0 7 . . . 0 . 4 . . . . i . . 7 . . . . 0 . 0 . . . j . . 16 0 . . . . 3 . 0 . . k . . . 0 8 . . . . 17 . 0 . Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano l . . . . 0 0 . . . . 20 . 1 m . . . . . 0 5 . . . . 0 . := 8 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Formulazione alternativa Insiemi • V : nodi • A ⊆ V × V : lati Parametri • s ∈ V : nodo origine • t ∈ V : nodo destinazione • kij : capacità del lato (i, j), con (i, j) ∈ A Variabili decisionali • xij : quantità di flusso inviato sul lato (i, j), con (i, j) ∈ A ∪ {(t, s)} Modello max (valore) xts s.t. X X h∈V (bilancio) xij ≤ kij (i, j) ∈ A (capacità) xij ≥ 0 (i, j) ∈ A ∪ {(t, s)} (var. non negative) (h,j)∈A∪{(t,s)} xhj − xih = 0 (i,h)∈A∪{(t,s)} La formulazione è corretta se nel grafo originario non esiste un arco dal nodo destinazione al nodo sorgente. Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 9 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Modello alternativo in AMPL (file rete-b.mod) # SETS set V; set E within {V,V}; set A within {V,V} := E union setof{(i,j) in E} (j,i); # PARAMS param s symbolic in V; param t symbolic in V; param k{(i,j) in A union {(t,s)}} >= 0, default if (j,i) in E then k[j,i] else Infinity; # VARS var x{(i,j) in A union {(t,s)}} >=0, <= k[i,j]; # OBJECTIVE FUNCTION maximize valore: x[t,s]; # CONSTRAINTS subject to bilancio{h in V}: sum{(h,j) in A union {(t,s)}} x[h,j] - sum{(i,h) in A union {(t,s)}} x[i,h] = 0; Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 10 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Flusso multi-commodity Insiemi • V : nodi • A ⊆ V × V : lati • D: domande Parametri • sd ∈ V : nodo origine per la d-esima domanda, con d ∈ D • td ∈ V : nodo destinazione per la d-esima domanda, con d ∈ D • kij : capacità del lato (i, j), con (i, j) ∈ A Variabili decisionali • xijd : quantità di flusso inviato sul lato (i, j) per la d-esima domanda, con (i, j) ∈ A e d∈D • φd : valore del flusso per la d-esima domanda, con d ∈ D Modello X φd max (valore) d∈D s.t. X xhjd − (h,j)∈A X xijd ≤ kij X (i,h)∈A xihd h = sd φd = −φd h = td 0 h ∈ V \{sd , td } d∈D (bilancio) (i, j) ∈ A (capacità) (i, j) ∈ A, d ∈ D (variabili non d∈D xijd ∈ Z+ negative intere) Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 11 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Modello di AMPL (file rete-2.mod) # SETS set V; set E within {V,V}; set A within {V,V} := E union setof{(i,j) in E} (j,i); set D; # PARAMS param s{D} symbolic in V; param t{D} symbolic in V; param k{(i,j) in A} >= 0, default if (j,i) in E then k[j,i]; # VARS var x{(i,j,d) in {A,D}} >= 0, integer; var phi{D} >= 0; # OBJECTIVE FUNCTION maximize valore: sum{d in D} phi[d]; # CONSTRAINTS subject to bilancio_s{d in D}: sum{(s[d],j) in A} x[s[d],j,d] - sum{(j,s[d]) in A} x[j,s[d],d] = phi[d]; subject to bilancio_t{d in D}: sum{(t[d],j) in A} x[t[d],j,d] - sum{(j,t[d]) in A} x[j,t[d],d] = -phi[d]; subject to bilancio{h in V, d in D: h <> s[d] and h <> t[d]}: sum{(h,j) in A} x[h,j,d] - sum{(i,h) in A} x[i,h,d] = 0; subject to capacita{(i,j) in A}: sum{d in D} x[i,j,d] <= k[i,j]; Esecuzione in AMPL (file rete-2.run) model rete-2.mod data rete-2.dat option solver cplex; solve; display x; Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano 12 laboratorio Fondamenti di Ricerca Operativa Prof. G. Carello Soluzione CPLEX 11.2.0: optimal integer solution; objective 106 64 MIP simplex iterations 0 branch-and-bound nodes x [*,*,1] : a b c d e f g h i j k a . 0 0 13 0 0 . . . . . b 13 . 13 . . 10 13 2 . . . c 0 0 . 11 . . . 0 0 10 . d 0 . 0 . 0 . . . . 0 0 e 0 . . 0 . 0 . . . . 0 f 0 0 . . 0 . 0 . . . . g . 0 . . . 0 . 9 . . . h . 0 0 . . . 0 . 11 . . i . . 8 . . . . 0 . 3 . j . . 0 11 . . . . 0 . 2 k . . . 16 0 . . . . 0 . l . . . . 0 0 . . . . 14 m . . . . . 4 0 . . . . [*,*,2] : a b a . 0 b 0 . c 7 0 d 4 . e 0 . f 0 0 g . 0 h . 0 i . . j . . k . . l . . m . . [*,*,3] : a b a . 0 b 6 . c 0 0 d 0 . e 0 . f 0 0 g . 0 h . 0 i . . j . . k . . l . . m . . ; c 0 0 . 7 . . . 0 0 0 . . . d 0 . 0 . 0 . . . . 0 0 . . e 2 . . 17 . 15 . . . . 8 2 . f 9 0 . . 0 . 0 . . . . 6 0 g . 0 . . . 0 . 0 . . . . 0 h . 0 0 . . . 0 . 0 . . . . i . . 0 . . . . 0 . 0 . . . j . . 0 0 . . . . 0 . 0 . . k . . . 16 0 . . . . 0 . 0 . c 6 0 . 0 . . . 0 0 0 . . . d 0 . 0 . 0 . . . . 0 0 . . e 0 . . 0 . 0 . . . . 0 11 . f 0 0 . . 0 . 5 . . . . 0 0 g . 5 . . . 0 . 0 . . . . 0 h . 0 0 . . . 0 . 0 . . . . i . . 0 . . . . 0 . 0 . . . j . . 6 0 . . . . 0 . 0 . . k . . . 0 0 . . . . 6 . 0 . l . . . . 0 0 . . . . 8 . 0 l . . . . 0 5 . . . . 6 . 0 Documento preparato da L. Liberti, S. Bosio, S. Coniglio e C. Iuliano l . . . . 0 14 . . . . 0 . 1 m . . . . . 0 0 . . . . 0 . m . . . . . 0 0 . . . . 0 . m . . . . . 0 4 . . . . 1 . := := := 13