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