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: cF1 ci iF1 • 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 uvA 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 wuvuv A Costo di un cammino P w( A( P)) w( P) di G( N , A) w uv uvA( 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) uvA( P ) wuv P T P w x w x uv uv uvA 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 iF 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 cT0 0 T1 4 cT1 3 T2 4,2 cT2 2 T3 4,2,5 cT3 1 c4,2 c4,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à kK 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 kK uvi (3) conservazione flusso multicommodity (4) domanda vi N ( u ) k k x r kK 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 kK cuv xk 0A uv A kK • 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 ijL 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 sdK 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
© Copyright 2024