La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Claudio Arbib Università dell’Aquila Ricerca Operativa Metodo del simplesso per problemi di distribuzione single-commodity.

Presentazioni simili


Presentazione sul tema: "Claudio Arbib Università dell’Aquila Ricerca Operativa Metodo del simplesso per problemi di distribuzione single-commodity."— Transcript della presentazione:

1 Claudio Arbib Università dell’Aquila Ricerca Operativa Metodo del simplesso per problemi di distribuzione single-commodity

2 Scenario Un insieme di produttori (consumatori) offre (richiede) determinati quantitativi di un medesimo bene rappresentati da un vettore di domanda d Ipotesi single commodity: non ha importanza da quali produttori ciascuno dei consumatori ottenga la quantità richiesta La distribuzione avviene mediante una rete conservativa, dove produttori e consumatori sono rappresentati da nodi e la distribuzione avviene attraverso un insieme di archi che li collega gli uni agli altri (grafo connesso G = (V, E)) Attraversare l’arco ij comporta un costo c ij per unità di bene trasportato (costi lineari) Il flusso nel generico arco ij  E dev’essere compreso fra una soglia l ij e una capacità u ij

3 Problema Calcolare una distribuzione di flusso che attribuisca a ciascun arco ij di G un flusso reale x ij compreso tra l ij e u ij e in tal modo soddisfi il vettore di domanda d al costo più basso possibile: mincx Ax = d l < x < u 12345671234567 –1–1 0 0 0 0 0 0 0 0 0 1 0 0–1 1 0 0 0 0 0 0 0 1–1 0 0 0 0–1 0 0 0 0 0 1 1 0–1 –1 0 0 0 0 =A 0 0 0 0–1 1 0 0–1–1 0 0 0 0 0 0 0 1 1 1 0–1 0 0 0 0 0 0 0 0 0 1 1 –10 0 –1 –2 7 6 d=d= 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu 7 1 2 3 4 5 7 6 –10 –2 –1 0 6 ab c d e fg h i jk 0

4 Basi Una base è un insieme massimale di colonne di A linearmente indipendenti Teorema: k colonne di A sono linearmente indipendenti se e solo se gli archi corrispondenti non formano cicli Dimostrazione: se C è un ciclo corrispondente a colonne di A, scegliamo un verso di percorrenza e moltiplichiamo per +1 ogni colonna associata a un arco concorde col verso e per –1 ogni colonna associata a un arco discorde. Sommando si ottiene la colonna 0. 12345671234567 –1–1 0 0 0 0 0 0 0 0 0 1 0 0–1 1 0 0 0 0 0 0 0 1–1 0 0 0 0–1 0 0 0 0 0 1 1 0–1 –1 0 0 0 0 =A 0 0 0 0–1 1 0 0–1–1 0 0 0 0 0 0 0 1 1 1 0–1 0 0 0 0 0 0 0 0 0 1 1 a b c d e f g h i j k 1 2 3 4 5 7 6 ab c d e fg h i jk ab c d –1+1+1–1 1–1 0 0 –1 0 0 1 0 1–1 0 0 0 1 –1 0 0 0 0

5 Basi Una base è un insieme massimale di colonne di A linearmente indipendenti Teorema: k colonne di A sono linearmente indipendenti se e solo se gli archi corrispondenti non formano cicli Dimostrazione: Viceversa, sia B un insieme massimale di archi di G che non formano cicli (albero ricoprente T). Si visitino i nodi e gli archi di di T in post-ordine permutando le righe (nodi) e le colonne (archi) della matrice via via che si visitano. Con una colonna unitaria, la matrice è triangolare e ha determinante  1 1 2 3 4 5 7 6 ab c d e fg h i jk 1 b b 2 c 3 c d 4 d i 6 i j 7 j e 5 e –1 0 0 0 0 00 1–1 0 0 0 00 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 00 0 0 0–1–1–10 0 0–1 0 0 11

6 Soluzioni di base In una soluzione di base, le variabili in base (archi di T ) assumono valori compresi tra l ij e u ij Una variabile fuori base invece è fissata o al valore di soglia l ij oppure al valore della capacità u ij Siano B, L, U gli insiemi di archi corrispondenti a variabili in base oppure fuori base dei due tipi. Il problema mincx Ax = d l < x < u si riscrive (eliminando una riga in modo che A B sia quadrata) minc B x B + c L x L + c U x U A B x B + A L x L + A U x U = d l < x < u Sostituendo nella funzione obiettivo x B = A B –1 (d – A L x L – A U x U ) questa diventa c B A B –1 d + (c L – A B –1 A L )x L + (c U – A B –1 A U )x U Per i costi ridotti fuori base si ha quindic L ’ = (c L – A B –1 A L ) c U ’ = (c U – A B –1 A U ) Poiché le variabili fissate alla soglia (alla capacità) possono solo aumentare (diminuire) il loro valore, la base corrente sarà ottima se c L ’ > 0, c U ’ < 0 (criterio di ottimalità)

7 Calcolo di una prima soluzione 1 2 3 4 5 7 6 0 0 0 0 ab c d e fg k i j Trasformare il problema ponendo x’ = x – l > 0 e quindi sostituendo x = x’ + l h mincx Ax = d l < x < u mincx’ + cl Ax’ = (d – Al) = d’ 0 < x’ < u’ = u – l 12345671234567 –1–1 0 0 0 0 0 0 0 0 0 1 0 0–1 1 0 0 0 0 0 0 0 1–1 0 0 0 0–1 0 0 0 0 0 1 1 0–1 –1 0 0 0 0 =A 0 0 0 0–1 1 0 0–1–1 0 0 0 0 0 0 0 1 1 1 0–1 0 0 0 0 0 0 0 0 0 1 1 –10 0 4 6 d’ = 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 9 9 9 5 9 a b c d e f g h i j k clu’clu’ –10 6 4

8 Calcolo di una prima soluzione 1 2 3 4 5 7 6 0 0 0 0 ab c d e fg k i j t 6 4 s 10 Aggiungere i nodi s e t, collegarli alle sorgenti e ai pozzi k con capacità pari a |d k |, trovare il max (s, t)-flusso; h 10 82 2 7 3 4 6 6 1 se è < kP kP dk dk non c’è soluzione 12345671234567 –1–1 0 0 0 0 0 0 0 0 0 1 0 0–1 1 0 0 0 0 0 0 0 1–1 0 0 0 0–1 0 0 0 0 0 1 1 0–1 –1 0 0 0 0 =A 0 0 0 0–1 1 0 0–1–1 0 0 0 0 0 0 0 1 1 1 0–1 0 0 0 0 0 0 0 0 0 1 1 –10 0 4 6 d’ = 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 9 9 9 5 9 a b c d e f g h i j k clu’clu’ Altrimenti, ricavare x = x’ + l (ammissibile) 2 8 1 2 0 0 3 7 0 0 6 x’x’ 2 8 1 2 0 0 4 7 2 0 6 x

9 Calcolo di una prima soluzione 1 2 3 4 5 7 6 0 ab c d e fg k i j –10 Aggiungere i nodi s e t, collegarli alle sorgenti e ai pozzi k con capacità pari a |d k |, trovare il max (s, t)-flusso; h 6 2 8 2 2 7 4 1 se è <  k  P d k non c’è soluzione 12345671234567 –1–1 0 0 0 0 0 0 0 0 0 1 0 0–1 1 0 0 0 0 0 0 0 1–1 0 0 0 0–1 0 0 0 0 0 1 1 0–1 –1 0 0 0 0 =A 0 0 0 0–1 1 0 0–1–1 0 0 0 0 0 0 0 1 1 1 0–1 0 0 0 0 0 0 0 0 0 1 1 –10 0 –1 –2 4 6 d = 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 8 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu Altrimenti, ricavare x = x’ + l (ammissibile) 6 7 2 8 1 2 0 0 4 7 2 0 6 x –2 –1 0

10 2 8 1 2 0 0 4 7 2 0 6 x Calcolo di una prima base 1 2 3 4 5 7 6 0 ab c d e fg k i j –10 Una soluzione di base ha almeno m – n + 1 variabili fissate ai valori di soglia o capacità (variabili fuori base); se quindi vi sono più di n – 1 variabili con valori strettamente compresi tra l ij e u ij la x trovata non è di base h 8 2 2 7 4 6 2 1 12345671234567 –1–1 0 0 0 0 0 0 0 0 0 1 0 0–1 1 0 0 0 0 0 0 0 1–1 0 0 0 0–1 0 0 0 0 0 1 1 0–1 –1 0 0 0 0 =A 0 0 0 0–1 1 0 0–1–1 0 0 0 0 0 0 0 1 1 1 0–1 0 0 0 0 0 0 0 0 0 1 1 –10 0 –1 –2 4 6 d = 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu n = 7, m = 11l ij n – 1 variabili 6 7 2 8 1 2 0 0 4 7 2 0 6 x –2 –1 0 8 2 2 7 4 6 1

11 2 8 1 2 0 0 4 7 2 0 6 x Calcolo di una prima base 1 2 3 4 5 7 6 ab c d e fg k i j Gli archi associati a queste variabili formano 2 cicli, da eliminare con operazioni di pivot. Nella prima,  = min{9 – 8, 6 – 1, 2 – 0, 2 – 0} = 1 h 8 2 2 7 4 6 2 1 12345671234567 –1–1 0 0 0 0 0 0 0 0 0 1 0 0–1 1 0 0 0 0 0 0 0 1–1 0 0 0 0–1 0 0 0 0 0 1 1 0–1 –1 0 0 0 0 =A 0 0 0 0–1 1 0 0–1–1 0 0 0 0 0 0 0 1 1 1 0–1 0 0 0 0 0 0 0 0 0 1 1 –10 0 –1 –2 4 6 d = 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu n = 7, m = 11l ij n – 1 variabili 1 9 2 1 0 0 4 7 2 0 6 x 8 +  2 –  7 4 6 1 + 

12 1 9 2 1 0 0 4 7 2 0 6 x Calcolo di una prima base 1 2 3 4 5 7 6 ab c d e fg k i j Gli archi associati a queste variabili formano 2 cicli, da eliminare con operazioni di pivot. Nella seconda,  = min{2 – 0, 9 – 7, 4 – 1} = 2 h 8 2 2 7 4 6 2 1 12345671234567 –1–1 0 0 0 0 0 0 0 0 0 1 0 0–1 1 0 0 0 0 0 0 0 1–1 0 0 0 0–1 0 0 0 0 0 1 1 0–1 –1 0 0 0 0 =A 0 0 0 0–1 1 0 0–1–1 0 0 0 0 0 0 0 1 1 1 0–1 0 0 0 0 0 0 0 0 0 1 1 –10 0 –1 –2 4 6 d = 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu n = 7, m = 11l ij n – 1 variabili 1 9 0 1 0 0 2 9 2 0 6 x 9 1 1 7 +  4 –  6 2 – 

13 1 9 0 1 0 0 2 9 2 0 6 x Calcolo di una prima base 1 2 3 4 5 7 6 ab c d e fg k i j Nella soluzione ottenuta gli archi (viola) associati alle variabili strettamente comprese tra l ij e u ij non formano cicli, ma sono meno di n – 1 e quindi non ricoprono il grafo. Un albero ricoprente (base degenere) si ottiene aggiungendo archi associati a variabili fuori base che non formino cicli con gli archi viola h 8 2 2 7 4 6 2 1 12345671234567 –1–1 0 0 0 0 0 0 0 0 0 1 0 0–1 1 0 0 0 0 0 0 0 1–1 0 0 0 0–1 0 0 0 0 0 1 1 0–1 –1 0 0 0 0 =A 0 0 0 0–1 1 0 0–1–1 0 0 0 0 0 0 0 1 1 1 0–1 0 0 0 0 0 0 0 0 0 1 1 –10 0 –1 –2 4 6 d = 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu 9 1 1 9 2 6 0 0 2

14 Calcolo dei costi ridotti 1 2 3 4 5 7 6 b e j Per ottenere il costo ridotto c’ = (c – c B A B –1 A) non è necessario invertire A B. Sia y = c B A B –1, cioè y risolve il sistema di n – 1 equazioni in n incognite – y i + y j = c ij  ij  B Siccome righe e colonne di B possono essere permutate con una visita in post- ordine ricavando una matrice triangolare, il sistema è di facile risoluzione h 73124657312465 1 0 0 0 0 0 0–1 0 0 0 0 0 0–1 0 0 0 0 0 1–1 0 0 0 1 0 1–1 0 –1 0 0 0 1 1 0 0 0 0 0 – 1 5 8 2 5 10 4 k c a d g i cBcB a c d fg k i y 7 – y 6 = 5 y 4 – y 3 = 8 y 2 – y 1 = 2 y 4 – y 2 = 5 y 6 – y 4 = 10 y 6 – y 5 = 4 Per il potenziale d’ingresso y 5 si sceglie un valore arbitrario (es., y 5 = 10) y 7 = 19 y 3 = – 4 y 1 = – 3 y 2 = – 1 y 4 = 4 y 6 = 14

15 b Calcolo dei costi ridotti 1 2 3 4 5 7 6 b e j Servendosi di y si calcola ora il costo ridotto c’ = (c – yA) delle variabili fuori base c ij ’ = c ij + y i – y j  ij  L  U h a c d fg k i Per il potenziale d’ingresso y 5 si sceglie un valore arbitrario (es., y 5 = 10) y 7 = 19 y 3 = – 4 y 1 = – 3 y 2 = – 1 y 4 = 4 y 6 = 14 c b ’ = c b + y 1 – y 3 = 10 – 3 + 4= 11 c h ’ = c h + y 3 – y 6 = 12 – 4 – 14= –6 c e ’ = c e + y 5 – y 2 = 7 + 10 + 1= 18 c f ’ = c f + y 4 – y 5 = 6 + 4 – 10 = 0 c j ’ = c j + y 5 – y 7 = 3 + 10 – 19= –6 Si ha x b = x h = 9 x e = x f = x j = 0 Quindi x b e x j sono candidate a entrare in base: scegliamo x b

16 h Calcolo della nuova base 1 2 3 4 5 7 6 b e j L’aggiunta dell’arco b genera un ciclo. Lo si elimina con un pivot cercando di far diminuire il flusso su b a c d fg k i Si ha x b = x h = 9 x e = x f = x j = 0 Quindi x b e x j sono candidate a entrare in base: scegliamo x b 1 +  9 –  9 6 0 –  2 2 –1 –10 6 7 –2 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu Dalla tabella risulta  = min{3 – 1, 9 – 0, 0 – 0, 5 – 1} = 0

17 j h Calcolo della nuova base 1 2 3 4 5 7 6 b e j L’aggiunta dell’arco b genera un ciclo. Lo si elimina con un pivot cercando di far diminuire il flusso su b a c d fg k i La variabile x b è entrata in base con valore 9, la variabile x c è uscita dalla base con valore 0 I flussi non sono stati alterati, perché le basi coinvolte nell’operazione sono degeneri Proviamo allora a far entrare in base x j, il cui flusso può crescere con costo ridotto –16 1 1 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu Dalla tabella risulta  = min{3 – 1, 9 – 0, 0 – 0, 5 – 1} = 0 1 1 9 9 6 2 2 –1 –10 6 7 –2 0

18 j h Calcolo della nuova base 1 2 3 4 5 7 6 b e Il flusso nell’arco i deve decrescere, e così quello nell’arco k. a c d fg k i L’arco i ha infatti soglia 2, pari al flusso attuale: ancora una volta la distribuzione è inalterata 1 1 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu Dalla tabella di soglie e capacità si ha  = min{2 – 2, 5 – 0, 6 – 0} = 0 9 1 1 9 6 –  2 –  2 –1 –10 6 7 –2 0 + 

19 j h Calcolo della nuova base 1 2 3 4 5 7 6 b e Il flusso nell’arco i deve decrescere, e così quello nell’arco k. a c d fg k i L’arco i ha infatti soglia 2, pari al flusso attuale: ancora una volta la distribuzione è inalterata Il calcolo dei costi ridotti offre ora c f ’ = –6 con x f fissata alla soglia u f = 0 1 1 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu Dalla tabella di soglie e capacità si ha  = min{2 – 2, 5 – 0, 6 – 0} = 0 9 1 1 9 6 2 2 –1 –10 6 7 –2 0

20 f j h Calcolo della nuova base 1 2 3 4 5 7 6 b e Il flusso nell’arco i deve decrescere, e così quello nell’arco k. a c d g k i 1 1 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu Il ciclo introdotto coinvolge f, g, j, k Il flusso in f e j aumenta, quello in g e k diminuisce di  = min{4 – 0, 2 – 1, 5 – 0, 6 – 0} = 1 9 1 1 9 2 –1 –10 6 7 –2 6 2 0 6 –  2 –  0 + 

21 f j h Calcolo della nuova base 1 2 3 4 5 7 6 b e Il flusso nell’arco i deve decrescere, e così quello nell’arco k. a c d g k i L’arco g esce di base fissando il proprio flusso al valore di soglia 1 1 1 2 10 8 5 7 6 10 12 4 3 5 0 0 0 0 0 0 1 0 2 0 0 3 9 6 5 10 4 10 9 11 5 9 a b c d e f g h i j k cluclu Il ciclo introdotto coinvolge f, g, j, k Il flusso in f e j aumenta, quello in g e k diminuisce di  = min{4 – 0, 2 – 1, 5 – 0, 6 – 0} = 1 9 1 1 9 2 –1 –10 6 7 –2 5 1 1 1


Scaricare ppt "Claudio Arbib Università dell’Aquila Ricerca Operativa Metodo del simplesso per problemi di distribuzione single-commodity."

Presentazioni simili


Annunci Google