Routing

Modellazione del problema di
Routing in Reti IP
Marco Polverini
Dipartimento DIET, NetLab, stanza 106
marco.polverini@uniroma1.it
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Outline
•
•
•
•
•
Introduzione
Concetti base dell’Ottimizzazione Combinatoria
Formulazioni
Introduzione a GLPK
Problemi di Flusso su Grafo
– Cammino Minimo
• Algoritmi Euristici
• Problema di Flusso Multicommodity
• Energy Saving in Reti IP
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Introduzione
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Introduzione
• 10 ore di lezione
– Lezioni “teoriche”
– esercitazioni
• Per le esercitazioni useremo
– Matlab
– GLPK
• Prerequisiti:
– Fondamenti di programmazione in matlab
• Modalità d’esame: tesina (vale come orale)
– Divisione in gruppi (max 3 persone)
– Presentazione
• circa 15 minuti
• 5/6 slides
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Scopo del corso
• Approccio modellistico per risolvere un problema
di decisione
– Analisi del problema: individuare i legami logicofunzionali e gli obiettivi
– Costruzione del modello: descrizione in termini
matematici delle caratteristiche principali del
problema
– Soluzione numerica: avviene mediante opportuni
algoritmi di calcolo. La soluzione numerica deve poi
essere interpretata dal punto di vista applicativo
– Validazione del modello
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Concetti base dell’Ottimizzazione
Combinatoria
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problema di Decisione - Soluzioni
S = insieme delle possibili alternative in un problema di decisione
• Esempi:
– Scelta del modo di trasporto:
S={Nave + Treno, Camion, Aereo + Treno}
– Scelta del periodo di produzione:
S={Gennaio, Febbraio + Marzo, Marzo + Aprile, Luglio + Agosto}
– Scelta del cammino di costo minimo da s a t:
S={Cammini da s a t}
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problema di Decisione – Funzione Obiettivo
S = insieme delle possibili alternative in un problema di decisione
f ( x) : S   = funzione obiettivo
• Esempio:
– Scelta del modo di trasporto:
S={Nave + Treno, Camion, Aereo + Treno}
f(Nave + Treno) = 150.000
f(Camion) = 121.000
f(Aereo + Treno) = 180.000
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problema di Decisione – Modello di Ottimizzazione
• Problema di Decisione: min  f ( x) : x  S
*
*
x
:
f
(
x
)  f ( x) per ogni x S
• Soluzione ottima
• Esempio:
– Scelta del modo di trasporto:
S={Nave + Treno, Camion, Aereo + Treno}
f(Nave + Treno) = 150.000
f(Camion) = 121.000
f(Aereo + Treno) = 180.000
f(x*)=121.000;
x*=Camion
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Ottimizzazione Combinatoria
f ( x) : x  S con 1  S
• Problema di Decisione: min
 ;
L’insieme delle soluzioni ammissibili ha cardinalità finita
L’ottimo x* esiste sempre e può essere individuato con
una enumerazione completa di S
S   è una ipotesi restrittiva?
Le componenti di ogni aspetto di un problema di decisione possono assumere un
insieme finito di valori e dunque abbiamo sempre un insieme finito di soluzioni
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problemi di OC con funzione obiettivo lineare
• Insieme base  
1,2,, n (eventi elementari);
– es. progetto i attivato, nodo i scelto, connessione i stabilita;
• Costi (vantaggi) elementari ci associati agli elementi di  ;
• Soluzione ammissibile = Opportuno sottoinsieme F1   ;
– es. sottoinsieme di progetti attivati che soddisfano un budget;
• Costo di una soluzione F1 = somma dei costi elementari degli
elementi di F1 , calcolata come:
cF1    ci
iF1
• Insieme delle soluzioni ammissibili
S  F1 , F2 ,, Fm 
• Problema min c( F ) : F  S 
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problemi di PL01



• Insieme base   1,2,, n (eventi elementari)
• Soluzione ammissibile F  1,2,3,9  S
• Se rappresentiamo F con il suo vettore di incidenza

x F abbiamo
S   vettori di incidenza degli insiemi F  S 
• PL01 = Problema di OC con funzione obiettivo lineare f ( x)  c x
T
min c( F ) : F  S =
min c
T
n


x : x  S  0,1 
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Formulazioni
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Soluzioni e “Certificati”
x0  S
f x0  z 0
 
f x   z
*
*
soluzione ammissibile
valore della soluzione ammissibile
valore della soluzione ottima
Lower Bound
0
certificato
di
qualità
per
x
LB  z 
Riduzione del “gap”:
*
1. Miglioramento del LB
0
2. Miglioramento di z
“gap”
Tecniche di ricerca nell’insieme delle soluzioni
Tecniche euristiche:
•
Algoritmo Greedy
•
Ricerca Locale
•
Algoritmi Genetici
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Formulazione Lineare

Problema di PL01: min cT x : x  S




mn
m
P  x  n : Ax  b POLIEDRO con A   , b  
P è una FORMULAZIONE di S

P  0,1  S
n
Un poliedro P è una formulazione se e solo se:
• contiene tutti i vettori di S
n
• non contiene alcun vettore di 0,1  S
 
Posso avere infinite formulazioni dello stesso problema di PL01
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Rilassamento Lineare

Problema di PL01: min cT x : x  S
P è una FORMULAZIONE di S





P  0,1  S
n


min cT x : x  S  min cT x : x  P  0,1  cT x*  z*  min cT x : x  P  LB( P)
n
Problema di PL
(rilassamento lineare)
LB( P)  z *
LB(P) Lower Bound per z
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
*
Lower Bound per un problema PL01

Problema di PL01: min cT x : x  S



LB( P)  min cT x : x  S  z *
*
• Calcolare z è (di solito) difficile
• Calcolare LB(P) è facile (Simplesso)
• Se conosciamo una soluzione ammissibile
fornisce una certificazione di qualità per
x0  S
x0
(di valore
z 0  cT x 0 )
gap nullo
x 0ottimo per PL01
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Lower Bound per un problema PL01
•
•
•
•
*
Calcolare z è (di solito) difficile
Calcolare LB(P) è facile (Simplesso)
0
Trovare una soluzione x  S è facile (Euristiche)
Il gap cT x 0  LB( P) certifica la qualità di x 0
– Piccolo “gap” = buona qualità di x 0
– Gap nullo = x 0 ottimo per PL01
Il gap dipende dalla formulazione P
• S ammette molte formulazioni alternative
• Come classificarle (e sceglierle)?
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Criteri di qualità delle Formulazioni
Qualità = “piccolo gap” = massimo lower bound
CRITERIO 1: P1 migliore di P2
LB( P1 )  LB( P2 )
Problema: Dipendenza dalla funzione obiettivo
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Criteri di qualità delle Formulazioni
• Il criterio di qualità deve essere indipendente dalla
funzione obiettivo
CRITERIO 2: P1 migliore di P2
LB( P1 )  LB( P2 ) , c  n
equivalente a:
P1  P2
CRITERIO 3: P1 migliore di P2
Esiste una formulazione contenuta in ogni altra?
PS  conv(S )  P per ogni P di S
FORMULAZIONE OTTIMA
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Formulazione Ottima
Problema di PL01: z  min c x : x  S 
 conv(S )  x   : Ax  b poliedro ( A  
*
PS
T
n
mn
• S insieme dei vertici di PS (S  ext ( PS ))
• Ogni disequazione di Ax  b definisce
una faccia massimale di PS



 min c x : conv ( S )  LB( P )  c
, b  m )

z *  min cT x : x  S  min cT x : x  ext ( PS )
T
S
T
x0
x 0 soluzione ottima del rilassamento lineare
z*  LB( PS )  cT x 0 (gap=0)
x 0  ext ( PS )  S
x 0 soluzione ottima del PL01
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Rilassamenti di PS
Disponiamo di una descrizione esplicita di


PS  x  n : Ax  b
per ogni problema di PL01?
Ovvero: Conosciamo la matrice A e il vettore b ?
Dove “conoscere” significa: conoscere i coefficienti oppure avere una regola
che consente di calcolare i coefficienti di ogni riga della matrice (A, b )
Sfortunatamente NO!
Quasi sempre conosciamo solo alcune (poche) righe (A , b) di che definiscono
una formulazione di S

P  x  n : Dx  d
n
P  0,1  S

Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Esempio di PS


S  y  0,1 : 7 y1  6 y2  5 y3  3 y4  2 y5  11
5

PS  y  5 : Ay  b, y  05

Regola di costruzione di un tipo di riga di :
Se la somma dei coefficienti di k variabili è maggiore di 11 allora
al più k-1 di esse possono essere poste ad 1.
Famiglia di disequazioni di
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Rilassamenti di PS
• Non disponiamo di una descrizione di PS per ogni problema
di PL01;
• Disponiamo di rilassamenti di PS , ovvero:
n
• Poliedri P  x   : Dx  d con le seguenti proprietà:
1. Il poliedro P è una formulazione di S
2. Il sistema Dx  d è costituito da alcune famiglie di
disequazioni appartenenti al sistema Ax  b
• Ciascun rilassamento produce un lower bound di z * :




LB( P)  c x : x  P  z
T
*
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Esercizio 1
•
•
L’impresa Zap produce televisori e aspirapolvere.
Le previsioni di vendita per il 2003 sono riportate in tabella seguente.
•
•
•
In ogni quadrimestre l’impresa ha a disposizione 5250 ore.
Un televisore richiede un’ora di lavorazione, un aspirapolvere un’ora e mezza.
A causa di lavori di ristrutturazione, i televisori non possono essere prodotti nell’ultimo
quadrimestre.
Inoltre, la politica aziendale esige che alla fine di ogni quadrimestre siano presenti
almeno 100 pezzi di ogni prodotto in magazzino.
All’inizio del 2003, sono presenti in magazzino 85 televisori e 120 aspirapolvere.
I costi di magazzino ammontano a 50 euro per ogni pezzo che rimane in magazzino alla
fine del primo quadrimestre, 70 euro alla fine del secondo e 30 euro alla fine del terzo.
L’impresa è disposta a produrre anche in anticipo, pur di soddisfare le richieste del
mercato, ma vuole minimizzare i costi di immagazzinamento.
Formulare il problema di pianificare la produzione nei tre quadrimestri come problema
di PL.
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
•
•
•
•
•
Esercizio 2
• n ragazzi e m ragazze si incontrano a una festa di laurea.
• Ciascuno di loro dà mentalmente un punteggio p da 0 a 10 alle persone di
sesso diverso dal proprio in base all’attrazione provata (0 = attrazione
minima, 10 = attrazione massima).
• Supponiamo di definire l’attrazione reciproca di una coppia come il
prodotto dei punteggi che ciascun membro della coppia assegna al
partner.
• Qual è l’abbinamento “ideale” che massimizza l’attrazione reciproca
totale?
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Esercizio 3
• Per monitorare una rete telematica si vuole
individuare un insieme di nodi che tocchino tutti i
link della rete.
• Qual è il più piccolo insieme che verifica questa
proprietà?
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Introduzione a GLPK
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
GLPK: download ed installazione
• Gnu Linear Programming Kit
– Sito ufficiale: http://www.gnu.org/software/glpk/
• Come installarlo:
– Download and install GLPK version 4.40 or higher:
http://sourceforge.net/projects/glpkmex/files/glpkmex/2.11/glpkmex2.11-src.zip/download
– Start Matlab and run makeglpkmex.m.
Specify correct path to both GLPK directory and eventually to the GLPK
include and library directories;
– Test the interface on the examples included (glpktest1.m, glpktest2.m,
glpksparse.m). Everything should works fine;
• help glpk dal workspace di Matlab consente di accedere alla
documentazione;
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Comandi GLPK
[xopt, fmin, status, extra] = glpk (c, A, b, lb, ub, ctype, vartype, sense, param)
• Solve an LP/MILP problem using the GNU GLPK library;
• Given three arguments, glpk solves the following standard LP:
min C'x subject to Ax ≤ b
•
It may also solve problems of the form:
[ min | max ] C'x
subject to
Ax [ "=" | " ≤ " | " ≥ " ] b
x ≥ LB
x ≤ UB
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Comandi GLPK: input
[xopt, fmin, status, extra] = glpk (c, A, b, lb, ub, ctype, vartype, sense, param)
1.
2.
3.
4.
5.
c: A column array containing the objective function coefficients;
A: A matrix containing the constraints coefficients;
b: A column array containing the right-hand side value for each constraint
in the constraint matrix;
lb: An array containing the lower bound on each of the variables. If lb is
not supplied (or an empty array) the default lower bound for the
variables is minus infinite;
ub: An array containing the upper bound on each of the variables. If ub is
not supplied (or an empty array) the default upper bound is assumed to
be infinite;
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Comandi GLPK: input
[xopt, fmin, status, extra] = glpk (c, A, b, lb, ub, ctype, vartype, sense, param)
6.
ctype: An array of characters containing the sense of each constraint in
the constraint matrix. Each element of the array may be one of the
following values:
–
–
–
–
–
7.
'F' Free (unbounded) variable (the constraint is ignored);
'U' Variable with upper bound (A(i,:)x ≤ b(i));
'S' Fixed Variable (A(i,:)x = b(i));
'L' Variable with lower bound (A(i,:)x ≥ b(i));
'D' Double-bounded variable (A(i,:)x ≥ -b(i) and A(i,:)x ≤ b(i));
vartype: A column array containing the types of the variables:
–
–
–
'C' Continuous variable;
'I' Integer variable;
'B' Binary variable;
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Comandi GLPK: input
[xopt, fmin, status, extra] = glpk (c, A, b, lb, ub, ctype, vartype, sense, param)
8.
9.
sense: If sense is 1, the problem is a minimization. If sense is -1, the
problem is a maximization. The default value is 1;
param: A structure containing the following parameters used to define
the behavior of solver. Missing elements in the structure take on default
values, so you only need to set the elements that you wish to change
from the default:
–
–
–
–
mipgap: (default: 0.0) The relative mip gap tolerance;
msglev: (default: 1) Level of messages output by solver routines;
itcnt: (default: 200). Output frequency, in iterations;
tmlim: (default: -1.0). Searching time limit, in seconds;
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Comandi GLPK: output
[xopt, fmin, status, extra] = glpk (c, A, b, lb, ub, ctype, vartype, sense, param)
1.
2.
3.
xopt: The value of the decision variables at the optimum
fmin: The optimum value of the objective function
status: Status of the optimization:
–
–
–
–
–
–
4.
1, solution is undefined
2, solution is feasible
3, solution is infeasible
4, no feasible solution exists
5, solution is optimal
6, solution is unbounded
extra: A data structure containing the following fields:
–
–
–
lambda, Dual variables.
time, Time (in seconds) used for solving LP/MIP problem.
mem, Memory (in Kbytes) used for solving LP/MIP problem.
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problemi di Flusso su Grafo
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Flusso in un grafo orientato
• Dati:
– Un grafo orientato G( N , A)
– Un vettore capacità c  0| A|
|N |
– Un vettore domanda d  
• Diremo: FLUSSO di (G, c, d )
|A|
– Un vettore tale che x  
0  xuv  cuv
1) Vincoli di
capacità
x
2) Rete di
flusso senza
guadagno
uvi

vi N ( u )

x
vi u

vi N ( u )
 du u  N
flusso uscente – flusso entrante = domanda
N+(u)
N-(u)
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problema del Flusso di Costo Minimo
• DATO: un vettore di costi associati agli archi
min( w x )   w x
 x   x  d u  N
T
uv uv
uvA
uvi
vi N  ( u )
vi u
vi N  ( u )
0  xuv  cuv
u
uv  A
min( wT x )
min( wT x )
Mx  d
x Q
0|A|  x  c
Q  x  |A| : Mx  d ,0|A|  x  c
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Esempio: Problema di Distribuzione
•
•
•
•
•
•
•
•
•
•
Dati: Un grafo orientato G( N , A)
Nodo = Stazione
Arco = Tratta ferroviaria
c  |A=| Numero di vagoni disponibili sulla tratta
d u positiva = Disponibilità del bene misurata in vagoni
d u negativa = Domanda del bene misurata in vagoni
w  |A=| Costo per vagone
x  |A=| Flusso xuv = Vagoni utilizzati sulla tratta uv
Flusso xuv  cuv = Vagoni disponibili sulla tratta uv
PROBLEMA: Trovare min wT x : x  Q


Ma…. Non tutti i flussi sono accettabili
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Soluzioni frazionarie e intere
•
•
•
•
•
•
x 0 flusso frazionario
wT x 0 non è il vero costo…
T
0
w
x
… il vero costo è
 
Se occupiamo 4/3 di vagoni dobbiamo pagare 2 vagoni
Dobbiamo arrotondare la soluzione x 0 ad x 0 
wT x 0 è il costo solo se x 0 ha componenti intere
Vogliamo Flussi Interi
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Flusso Intero di Costo Minimo
T
min( w x )
x Q
Q  x  |A| : Mx  d ,0|A|  x  c
• Si dimostra che Q è la formulazione ottima
• Problema di Programmazione Lineare
• Ottimo x*  Z |A| flusso intero di (G, c, d )
Vediamo un importante caso particolare
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problemi di Flusso su Grafo
Cammino Minimo
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Cammino di costo minimo da s a t
• Dati:
– Grafo orientato e connesso G( N , A)
– Due nodi speciali s e t
–  cammino orientato da s ad ogni u  N
– Costi sugli archi wuvuv  A
Costo di un cammino
P
w( A( P))  w( P) 
di G( N , A)
w
uv
uvA( P )
Trovare il cammino orientato P* da s a t avente costo minimo
P : w( P )  w( P) cammino orientato P da s a t di G( N , A)
*
*
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Vettore di Incidenza di un Cammino
Definizione:
A
x P  0,1 vettore di incidenza di P
P
xuv
 1 uv  P
P
xuv
 0 uv  P
Proprietà di x P
P
x
 us  0
P
x
 su  1
su  ( s )
us  ( s )
1. da s esce un solo arco di un cammino P
P
x
 tu  1
P
x
 ut  0
tu  ( t )
ut  ( t )
2. In t entra un solo arco di P
P
x
 uv 
uv  ( v )
P
x
 vu
vu  ( v )
3.
In ogni nodo v  s, t
Numero archi entranti = Numero archi uscenti
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Flussi 0-1 e Cammini
• DATI:
– Un grafo orientato G( N , A)
– Un vettore capacità c  |A|
– Un vettore domanda d st 
min( wT x )
x  Qst
1
0
0
0
0
-1
S
2
3
4
5
t
Qst  x   : Mx  d st , x  0|A| 
Flusso intero di (G, d st , |A| )
| A|
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Cammino → flusso intero
x P vettore di incidenza di un cammino orientato P
1. da s esce un solo arco di P
2. in t entra un solo arco di P
3. in ogni nodo v  s, t
–
–
un arco di P entrante e un arco di P uscente, oppure
nessun arco di P entrante o uscente
x flusso intero di (G, d st , |A| )
P
Viceversa?
NO!!
Si dimostra che i vertici di Qst sono i cammini da s a t in G( N ; A)
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Cammini Minimi e Programmazione Lineare
*
• TROVARE il cammino orientato P da s a t avente costo minimo
w( P) 

uvA( P )
wuv 
P
T P
w
x

w
x
 uv uv
uvA
P
• TROVARE un vettore di incidenza x di un cammino orientato
T P
da s a t avente costo minimo w x
• Risolvere il problema di programmazione lineare
min( wT x)
min( wT x)
Mx  b
x  Qst
x  0| A|
Qst  x  | A| : Mx  d st , x  0| A|

P

• Il metodo del simplesso individua il vertice avente costo minimo
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Cammino Minimo: implementazione
• Input (file INPUT_cammino_minimo.mat):
–
–
–
–
A = matrice di adiacenza del grafo
C = matrice delle capacità
W = matrice dei pesi del grafo
domanda = valore della domanda tra s e d
• La funzione viene lanciata scrivendo nella command window il comando:
[obj, path, status] = trovaCamminoMinimo(s, d, A, C, W, domanda);
•
Output:
– obj = valore della funzione obiettivo
– path = percorso tra s e d
– status = specifica il tipo di soluzione trovato dal GLPK
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Struttura dati
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Inizializzazione del problema
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Scrittura vincoli
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Risoluzione del problema
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Output
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Quesiti
1. Notare cosa accade cambiando il tipo di variabile da
intere a reale;
2. Cambiare i pesi dei links in modo che il cammino da
s=1 a d=2 sia [1,5,3,2];
3. Conservando i pesi del punto precedente, modificare
le capacità dei links ed il valore della domanda in
modo tale che il cammino con capacità sufficiente a
supportare la domanda sia [1,4,3,2];
4. Creare un’istanza di problema in cui non esistono
soluzioni ammissibili;
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Algoritmi Euristici
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Algoritmo Avido (Greedy)
•
•
•
•
Insieme base   1,2,, n (eventi elementari)
Insieme delle soluzioni ammissibili S  F1 , F2 ,, Fm  ( Fi  )
T soluzione parziale  T  Fi  S
Costo di una soluzione F  c( F )   ci
iF
Idea base
Costruire una sequenza di soluzioni parziali T0 , T1 , T2 
• A partire dall’insieme vuoto (soluzione parziale T0 )
• Aggiungendo, ad ogni passo, l’elemento che produce la soluzione
parziale con il minimo costo
• Arrestandosi quando le seguenti condizioni sono soddisfatte:
– La soluzione parziale corrente è ammissibile
– Ogni soluzione parziale ottenuta aggiungendo un nuovo elemento ha
un valore maggiore della funzione obiettivo
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Algoritmo Avido (Greedy) – Flow chart
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Esempio Greedy
c  [-2
1 2 -3 1 2 -1 1 2]
T0    cT0   0
T1  4 cT1   3
T2  4,2 cT2   2
T3  4,2,5 cT3   1
c4,2  c4,1 ma 4,1 non è una soluzione parziale
T3  k
non è una soluzione parziale per ogni k  T3
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problema di Flusso Multicommodity
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Flusso Multi-commodity
• I problemi di flusso multi-commodity sono la naturale
estensione dei problemi di flusso s-t a costo minimo.
• E’ dato un grafo orientato G( N , A) con capacità c  |A |
• La coppia di nodi speciali s, t è sostituita da un insieme di
commodity K  1,2,, k
• Ognik commodity k  K è una tripla s k , t k , r k
– s origine commodity k
k
– t destinazione commodity k
k
r
–
domanda commodity k , ovvero quantità di commodity che
deve essere inviata dall’origine alla destinazione k
• Ad ogni karco e A e ogni commodity k  K si associa un
costo we  0 che rappresenta il costo di inviare un’unità di
commodity k sull’arco e


Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Esempio: flussi su reti MPLS
• Una rete MPLS è composta di router connessi da link
• I flussi che la attraversano entrano ed escono da
Label Edge Router (LER)
• I router interni sono chiamati Label Switch Router
(LSR)
• Ogni connessione (ad esempio di tipo VoIP) richiede l’assegnazione di una
certa quantità di banda (capacità)
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Esempio: flussi su reti MPLS
• I pacchetti fra una stessa origine e destinazione possono
attraversare la rete seguendo percorsi diversi (tecnologie con
flussi “splittable”)
• Nella figura: Due commodity. Alla prima sono associati tre
percorsi distinti, alla seconda un solo percorso.
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Esempio: flussi su reti MPLS
Esempio: due connessioni
• Rete con 5 nodi e 3 edge router
• Capacità associate agli archi in Mb
1
3
3
Commodity 1
1 Mb) 1;[1,2];2;[2,4];4
1Mb) 1;[1,3];3;[3,4];4
2Mb) 1;[1,2];2;[2,3];3;[3,4];4
4
6
3
1
Commodity 2
3 Mb) 5;[5,2];2;[2,3];3
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Il Problema
• Dati:
– Un grafo G( N , A) con capacità c
– Un insieme di commodity e i costi associati ad esse e agli
archi di G( N , A)
• Trovare:
– Il flusso per ogni commodity da inviare su ogni arco in
modo da soddisfare la domanda e minimizzare i costi
complessivi, senza violare la capacità degli archi stessi
• Oss: su ogni arco passa la somma dei flussi associati
alle singole commodity
• Il problema può essere interpretato come K problemi di
flusso, accoppiati dal vincolo di capacità sull’arco.
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Definizione Flusso Multicommodity
A
c


• Dati G( N , A) , le capacità
K
 e l’insieme di commodity
A K
definiamo flusso multicommodity un vettore x  
tale
che :
xuvk  0 uv  A, k  K
(1) non negatività
k
x
 uv  cuv uv  A
(2) capacità
kK
k
x
 uvi 

vi N ( u )
 
k
k k
x

0
u

N

s
,t , k  K
 viu

vi N ( u )
k
k
x

r
kK
 uvi
(3) conservazione flusso
multicommodity
(4) domanda
vi N  ( u )

k
k
x


r
kK
 viu
vi N  ( u )
(5) domanda
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Flussi semplici e multicommodity
• Oss:
– x flusso multicommodity
k
k
k
N
– d  (r ,0,0,,0, r )  R vettore di domanda
associato a k per k  1,, K
k
k
k
x
s

t
– Per k  1,, K il vettore
è un flusso
di (G, c)
k
di valore r
• Le componenti del vettore x associate a una
k
commodity k definiscono un flusso s-t di (G,c) di valore r
• Infatti, per un fissato, il flusso soddisfa i vincoli di non
negatività, capacità e conservazione ai nodi intermedi
• Il valore del flusso deriva dai vincoli di domanda
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Problema Multicommodity
K
min  ( wk )T x k
k 1
Mx k  d k
K
x
k 1
k
uv
kK
 cuv
xk  0A
uv  A
kK
• I vincoli di capacità accoppiano i diversi problemi
di flusso s-t associati alle singole commodity
• Il problema può non ammettere soluzioni ottime
intere
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Multicommodity Flow: implementazione
• Input (file INPUT_multicommodity.mat):
–
–
–
–
A = matrice di adiacenza del grafo
C = matrice delle capacità
W = matrice dei pesi del grafo
T = matrice di traffico
• La funzione viene lanciata scrivendo nella command window il comando:
[obj, vettIncidenza] = multicommodityFlow(A, T, C, W);
•
Output:
– obj = valore della funzione obiettivo
– vettIncidenza = vettori di incidenza dei flussi
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Creazione Strutture Dati
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Creazione Strutture Dati
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Scrittura Problema
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Scrittura Vincoli di Conservazione dei Flussi
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Scrittura vincoli di Capacità e FO
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Set parametri GLPK
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Energy Saving in Reti IP
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Descrizione del problema
• Dati:
– Un grafo G( N , L)
– Vettore di capacità C associate agli archi
– Vettore dei consumi dei links W
• Quando un link è spento il suo consumo è nullo;
• Il link i-j può essere spento se non porta traffico in entrambe
le direzioni
• Quando un link è acceso il suo consumo è massimo;
– Matrice di traffico T
• Trovare un routing che minimizzi il consumo di
potenza e tale da supportare la matrice di traffico
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Formulazione del problema
• Problema di flusso multicommodity
• Abbiamo bisogno di un set di variabili binarie che tenga conto
dello stato dei link
min  wij xij
ijL

f ijsd 
ij  ( i )
f
sd
ij

f jisd
ji  ( i )
 cij xij
 tsd i  s

  tsd i  d
 0 i  s, d

i  N , sd  K
ij  L
sdK
xij  x ji
f ijsd  
ij  L
ij  L, sd  K
xij  0,1 ij  L
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Algoritmo Euristico
INPUT: G(N,L), T, C, W
list = sort(W)
for (l=1:L)
Ltemp = L-list(l)
check = checkReteConnessa(G(N, Ltemp))
if (check == 1)
load = instradaTraffico(G(N, Ltemp), T, C, W)
if (load < 100)
L = Ltemp
endIf
endIf
endFor
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Greedy: implementazione
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Greedy: implementazione
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15
Greedy: implementazione
Tecniche e Modelli di Rete - Marco Polverini - A.A. 2014/15