4. MEODI DUALI DEL SIMPLESSO R. adei 1
Una piccola introduzione R. adei 2
MEODI DUALI DEL SIMPLESSO L obiettivo del capitolo è illustrare e giustificare i metodi duali del simplesso. Entrambi i metodi (simplesso duale e simplesso primale-duale), partono da una soluzione non ammissibile primale e cercano iterativamente una soluzione ammissibile. Se questa esiste sarà anche ottima. I due metodi sono applicabili se la soluzione non ammissibile primale è ammissibile duale e sono soddisfatte le condizioni di complementarietà delle soluzioni ottime primali e duali cioè ( A λ - c ) x = 0 e ( A x - b ) λ = 0. Intuitivamente ciò significa che la soluzione di partenza è potenzialmente ottima ma non è ottima per il primale in quanto non ammissibile. Si tratta quindi di mantenere la potenziale ottimalità (cioè non perdere l ammissibilità duale e la validità delle condizioni di complementarietà) avvicinandosi all ammissibilità primale. R. adei 3
ipiche situazioni in cui si applicano i metodi duali sono la risoluzione di un problema di programmazione lineare con termini noti diversi e la risoluzione di un problema di programmazione lineare dopo aver reintrodotto dei vincoli precedentemente omessi. Il primo caso, tipico nell analisi di sensibilità delle soluzioni ottime e nell analisi parametrica, si incontra quando, dopo aver risolto un problema di programmazione lineare trovando la base ottima (B), si utilizza un altro vettore dei termini noti (b') che rende qualche elemento della soluzione ottima negativo. (Ricordiamo che x B = B -1 b' ) Il secondo caso, tipico quando si applica il rilassamento dei vincoli, si incontra quando, dopo aver risolto un problema di programmazione lineare trovando la soluzione ottima, si introducono dei vincoli in precedenza omessi, che portano alla violazione dell ammissibilità primale. R. adei 4
Esponendo i metodi vedremo : la giustificazione teorica dell algoritmo del simplesso duale l algoritmo del simplesso duale la giustificazione teorica dell algoritmo del simplesso primale duale l algoritmo del simplesso primale duale un esempio di applicazione dell algoritmo del simplesso primale duale R. adei 5
Applicabilità degli algoritmi : I metodi duali del simplesso partono da una soluzione non ammissibile primale. I due algoritmi sono applicabili se : la soluzione non ammissibile primale è ammissibile duale sono soddisfatte le condizioni di complementarietà delle soluzioni ottime primali e duali, cioè ( A λ - c ) x = 0 e ( A x - b ) λ = 0 Gli algoritmi cercano iterativamente una soluzione ammissibile primale che, se esiste, sarà ottima. R. adei 6
4.1 SIMPLESSO DUALE R. adei 7
Giustificazione dell algoritmo : Situazione di partenza: Nel tableau finale del simplesso alcuni termini noti variano il segno (può derivare da un cambiamento di b) cioè j tale che x j < 0, questo rende la soluzione ottima precentemente trovata non ammissibile. r j 0 è associata una soluzione ammissibile per il duale, e le condizioni di complementarietà sono rispettate grazie al valore degli r j (vedi passo 0 dell algoritmo esposto più avanti). R. adei 8 > 0 > 0 < 0 > 0 > 0
Idea dell algoritmo : Si lavora sul tableau finale primale, con operazioni di pivot, mantenendo l'ottimalità primale data dall'ultima riga cioè j r j 0 e muovendosi verso l'ammissibilità primale data dall ultima colonna, per avere b i 0 i. Vista nell ottica del problema duale significa mantenere l'ammissibilità duale muovendosi verso l'ottimalità duale. Criterio d uscita : Si sceglie x p che deve uscire dalla base tra quelle non ammissibili cioè tra quelle che assumono un valore negativo (Ricordiamo che x p =b p ) Es. p tale che b p = y p0 = min { y i0 tale che y p0 < 0 } i R. adei 9
est sull esistenza della s.a. primale : Essendo in ogni caso x p = y p0 Σ y pj x i (dove y p0 = b p < 0 per come si è scelto x p ) volendo far entrare in base una x j devo avere y pj < 0 perchè la soluzione divenga ammissibile (cioè con x j >0). In sintesi : Se j [m+1..n] y pj 0 = > non esiste soluz. ammissibile primale (cioè l insieme delle soluzioni ammissibili duali è illimitato) Se j [m+1..n] y pj <0 = > x j può entrare in base al posto di x p n j = m+1 R. adei 10
Criterio d entrata : Vogliamo mantenere l ottimalità primale (ammissibilità duale) = > Vogliamo dopo il pivot j [1..n] r j 0 Visto che dopo il pivot su p,q r j = r j y pj r q / y pq = > = > j [1..n] r j y pj r q / y pq 0 < = > j [1..n] r j y pj r q / y pq < = > j [1..n] r j / y pj r q / y pq ( < perché deve essere y pj < 0) = > Si sceglie x q che deve entrare in base tale che : r q / y pq = min { r j j / y pj tale che y pj < 0 } R. adei 11
I passi dell'algoritmo 0. è data una soluzione non ammissibile primale, ammissibile duale che soddisfa le condizioni di complementarietà cioè a j B r j = 0 a i B r i = c i λ a i 0 e inoltre a i B x i < 0 (non ammissibile primale) 1. se x j 0, j SOP ; la s.a.b. corrente è ottima 2. scegliere riga p tale che b p < 0 per determinare la variabile da far uscire dalla base (1 p m) 3. calcolare i rapporti r j / y pj, con y pj < 0, j = 1,..., n. Se y pj 0, j = 1,..., n, SOP; problema duale illimitato, non esiste s.a. primale. Altrimenti, scegliere q = indice j corrispondente al rapporto r j / y pj minimo ( q è la variabile che entra nella base ) 4. (p,q) è il pivot. Aggiornare il tableau con le operazioni di pivot. Ritornare al passo 1 R. adei 12
ESEMPIO min z = 5 x 1 + 2 x 2 s.t. x 1 + x 3 > 2 x 1 + x 2-4x 3 > 1 x 1, x 2, x 3 > 0 x 1 x 2 x 3 x 4 x 5 y 0 x 4-1 0-1 1 0-2 x 5-1 -1 4 0 1-1 5 2 0 0 0 0 R. adei 13
Applicando il simplesso duale viene scelto come elemento di pivot a 13 = -1, da cui si ottiene il nuovo tableau : x 1 x 2 x 3 x 4 x 5 y 0 x 3 1 0 1-1 0 2 x 5-5 -1 0 4 1-9 5 2 0 0 0 0 Confrontando la soluzione, dopo un passo di pivot del simplesso duale si nota come i valori delle variabili di base del duale (pur essendo variate queste ultime) non sono cambiati. Ciò è dovuto al fatto che la variabile x 3 che è entrata in base aveva già prima costo ridotto uguale a zero. R. adei 14
Dopo una nuova operazione di pivot sull elemento a 21 = -5, si ottiene il tableau seguente : x 1 x 2 x 3 x 4 x 5 y 0 x 3 0-1/5 1-1/5 1/5 1/5 x 1 1 1/5 0-4/5-1/5 9/5 0 1 0 4 1-9 Ora le soluzioni primali sono ammissibili, quindi termino il procedimento ottenendo : x 1 = 9/5 x 2 = 0 x 3 = 1/5 z = 9 R. adei 15
4.2 SIMPLESSO PRIMALE - DUALE R. adei 16
Giustificazione dell algoritmo : Situazione di partenza: Avendo da risolvere il problema A cui corrisponde di programmazione lineare in il problema duale : forma standard : min c x max b λ s.t. (PP) s.t. (PD) A x = b A λ c x 0 Si conosce una soluzione ammissibile di PD λ. R. adei 17
Problemi ristretti associati : Sia J l'insieme dei vincoli di PD soddisfatti all'uguaglianza, ossia J = { j tale che λ a j = c j } = { j tale che r j = c j - λ a j = 0 } Essendo λ ammissibile duale, ne consegue che i J λ a i < c i Consideriamo ora un nuovo problema che considera sia λ che J e che definiamo problema primale ristretto associato : min 1 y s.t. (PPR) A x + y = b i J x i = 0 x 0, y 0 dove 1 indica il vettore di m componenti [1, 1,..., 1]. R. adei 18
Il problema duale del problema primale ristretto associato lo definiamo problema duale ristretto associato, ed è: max b u s.t. (PDR) a j u 0 j J u 1 diseq. corrispondenti alle x i (*) c i = 0 diseq. corrispondenti alle y i c i = 1 (*) con i J eorema di ottimalità primale - duale : Hp. : Sia λ s.a. per (PD) e sia [ x, y = 0 ] s.a. per (PPR) h. : x è s.o. per (PP) λ è s.o. per (PD) (e ovviamente ottima) R. adei 19
Dim : A x + 0 = b e x 0 = > x soluzione ammissibile per (PP) i J x i = 0 e i J λ a i = c i = > = > c x = Σ λ a j x j + Σ c j 0 = λ Σ a j x j = λ A x = λ b < = > j J j J j J < = > c x = b λ = > x è s.o. per (PP) λ è s.o. per (PD) Per il teorema della dualità Idea dell algoritmo : Si parte da una s.a. del problema duale, poi si ottimizza il problema primale ristretto associato. Se la soluzione ottima del primale ristretto associato è ammissibile anche per il primale originale, si è trovato l'ottimo del primale originale, altrimenti la soluzione ammissibile per il problema duale viene migliorata e viene generato un nuovo problema primale ristretto associato. R. adei 20
Il metodo itera fino al raggiungimento dell'ottimo oppure alla verifica dell'inesistenza di una soluzione ammissibile per il primale originale. Giustificazione del calcolo del valore di ε : λ + ε u è soluzione ammissiibile per (PD) Se j a j ( λ + ε u ) c j < = > j a j λ + ε a j u c j = > 1) = > j tale che a j u < 0, la diseq. è sempre verifificata perchè λ è s. a. per (PD). 2) = > j tale che a j u > 0, la diseq. è verif. se e solo se ε a j u c j a j λ < = > ε ( c j a j λ ) / ( a j u ) < = > < = > ε = min { (c j a j λ) / (a j u) tale che a j u > 0 } J R. adei 21
est sull esistenza della s.a. primale : Se j a j u 0 = > = > ε > 0 λ + ε u è soluzione ammissiibile per (PD) a cui corrisponde una f.o. : b ( λ + ε u ) = b λ + ε b u = b λ + ε 1 y = > = > Visto che y 0 al f.o. migliora all aumentare di ε = > = > Non esiste soluzione ammissibile per (PP) (Cioè l insieme delle soluzioni ammissibili di (PD) è illimitato) R. adei 22
I passi dell'algoritmo 0. è data una soluzione non ammissibile primale, ammissibile duale λ che soddisfa all uguaglianza alcuni vincoli; 1. si costruisce il problema primale ristretto associato (PPR), come spiegato in precedenza, e lo si ottimizza : se f.o. = 0 ==> SOP ; la s.o. di (PPR) è ottima per (PP) grazie al teorema di ottimalità primale duale; se f.o. > 0 ==> vai al passo 2; 2. si costruisce il duale del primale ristretto associato (PDR) e dal tableau finale del primale ristretto si ricavano i valori dei moltiplicatori u ottimi del (PDR) (vedere slide 25 - CAP. 3). Se j (del primale) a j u 0 ==> SOP ; non esiste s.a. per (PP) Altrimenti ==> aggiornare il valore λ = λ + ε u dove ε = min { r j / (a j u) tale che a j u > 0 } J = min { (c j a j λ) / (a j u) tale che a j u > 0 } J 3. Ritornare al passo 1 (dove anche il (PPR) sarà aggiornato). R. adei 23
Primale: Duale: min2x + x + 4x s. t. max s. t. λ λ x 1 2 3 + x + 2x = 3 1 2 3 Esempio 2x + x + 3x = 5 x 1 1 2λ i 1 2 3 3λ 1 0 1 + 2λ + λ 2 2 + 3λ + 5λ 2 1 2 2 4 0 * 0 1 λ = 0 è sol. amm. per il duale e soddisfa alla uguaglianza il vincolo asteriscato R. adei 24
Passo 1) Considero il problema Primale Ristretto Associato (PPR) min s. t. x x x Calcolo l'ottimo del primale ristretto, che vale: x 2 = 3 y 1 = 0 y 2 = 2 z PR = 2 z PR > 0 proseguo col passo 2 2 2 2 y 1 1 + y 2 2 + y1 = 3 + y 2 = 5, y, y 0 R. adei 25
Passo 2) Considero il Duale del Primale Ristretto Associato (PDR) max3u + 5u s. t. u u u + u 0 1 2 1 2 1 1 1 2 Dal tableau finale del primale ristretto ricavo il valore dei moltiplicatori ottimi per il duale ristretto u = 1 1 calcolo ε = min { r j / (a j u) tale che a j u > 0 } J = min { (c j a j λ) / (a j u) tale che a j u > 0 } J R. adei 26
ε = 1 2 2 [ 1 0 ] 4 [ 1 0 ] 2 3 min, = min = 1 2 [ 1 1 ] [ 1 1 ] 2 3 ( 1, 2 ) 1 Passo 1) λ = λ + εu 1 1 + 1 0 1 Considero il nuovo primale ristretto associato min y s. t. x = + y 1 2 + x + y = 3 1 2 1 2x + x + y = 5 1 2 2 = 0 1 R. adei 27
Calcolo l'ottimo del nuovo primale ristretto associato che vale x 1 = 2 x 2 = 1 z PR = 0 Ho trovato l'ottimo del primale P che è dato da: x 1 = 2, x 2 = 1, x 3 = 0 z P = 5. R. adei 28
Riassumendo R. adei 29
MEODI DUALI DEL SIMPLESSO Prima di presentare i metodi duali del simplesso abbiamo presentato le situazioni in cui si possono applicare (slide 6). Abbiamo poi affrontato il metodo del simplesso duale (slide 7-11) presentando una tipica situazione di partenza e illustrando l idea di base dell algoritmo che ottimizza il problema duale per ottenere la soluzione del problema primale. Continuando abbiamo giustificato i criteri con cui le variabili devono entrare ed uscire dalla base per avvicinarsi all ottimalità duale e il test che rivela l esistenza, o meno, di una soluzione ammissibile primale. Abbiamo terminato con la presentazione dettagliata dei passi dell algoritmo ed un esercizio in merito (slide 12-15). Abbiamo, subito dopo, affrontato il metodo del simplesso primale duale (Slide 16-20) presentando la situazione di partenza, definendo i problemi ristretti associati e dimostrando il teorema di ottimalità primale duale che ci permette di avere un criterio per riconoscere di aver raggiunto l ottimo primale nelle iterazioni dell algoritmo. R. adei 30
Continuando (slide 20-22) abbiamo illustrando l idea di base dell algoritmo che alternativamente ottimizza il problema primale ristretto, e quindi migliora il problema primale, e sostituisce la soluzione duale corrente, e quindi migliora il problema duale. Abbiamo, quindi, giustificato il calcolo della nuova soluzione duale migliorante e il test che rivela l esistenza, o meno, di una soluzione ammissibile primale. Abbiamo terminato con la presentazione dettagliata dei passi dell algoritmo (slide 23). Infine abbiamo presentato un esempio di applicazione dell algoritmo del simplesso primale duale (slide 24-28). R. adei 31