4.5 Metodo del simplesso

Похожие документы
Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

5.3 Metodo dei piani di taglio

Convergenza del Simplesso e regole anti-ciclaggio

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

5.1 Metodo Branch and Bound

3.6 Metodi basati sui piani di taglio

Il metodo del simplesso

Soluzione dei Problemi di Programmazione Lineare

Algoritmo del Simplesso

Metodo delle due fasi

Teoria della Programmazione Lineare. Teoria della Programmazione Lineare p. 1/8

Ricerca Operativa Note su Programmazione Lineare e Metodo del Simplesso (parte III)

Programmazione Lineare

Università Ca Foscari Venezia

1 Il metodo dei tagli di Gomory

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Esercizi sulla Programmazione Lineare Intera

2. ALGORITMO DEL SIMPLESSO

Programmazione lineare: basi e soluzioni di base

Gestione della produzione e della supply chain Logistica distributiva

Esercizi di Programmazione Lineare

Prerequisiti didattici

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina

Il metodo del simplesso. Il metodo del simplesso p. 1/12

Argomento 13 Sistemi lineari

RICERCA OPERATIVA. Tema d esame del 04/03/2008 (Simulazione)

Ricerca Operativa A.A. 2007/ Analisi di sensitività

Analisi di Post-Ottimalità (Analisi della Sensitività della Soluzione)

PROGRAMMAZIONE LINEARE E DUALITA'

Algoritmi generali per PLI

RICERCA OPERATIVA (a.a. 2018/19)

1) Hamming bound, coset, codici equivalenti

4. METODI DUALI DEL SIMPLESSO

Note di Programmazione Lineare

IL METODO DEL SIMPLESSO

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Транскрипт:

4.5 Metodo del simplesso min z = c T x s.v. Ax = b x PL in forma standard Esamina una sequenza di soluzioni di base ammissibili con valori non crescenti della funzione obiettivo fino a raggiungerne una ottima o a determinare che il PL è illimitato (Dantzig 947). Si passa da una soluzione di base ammissibile ad una vicina E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano

Geometricamente: vertici adiacenti cammino lungo gli spigoli del poliedro delle soluzioni ammissibili fino a un vertice ottimo NB: Nel caso peggiore il metodo può esaminare tutte le soluzioni di base ammissibili ma mediamente risulta molto efficiente. E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano

Bisogna sapere come: determinareuna soluzione di base ammissibile iniziale (o stabilire che il PL è inammissibile) applicando il metodo ad un altro PL verificare l ottimalità della soluzione di base ammissibile corrente passare dalla soluzione di base ammissibile corrente ad una soluzione di base ammissibile vicina migliore (o stabilire che il PL è illimitato). E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 3

Costi ridotti Dati un PL min{ c T x : Ax = b, x } e una base ammissibile B, Ax = b si può riscrivere come B x B + N x N = b x B = B - b -B - N x N con B - b. Soluzione di base ammissibile: x B = B - b, x N = E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 4

Sostituendo nella funzione obiettivo: x c T x = (c T B B ct N ) x = (ct B ct N ) N B - b B - Nx N x N c T x = c T B B- b c T B B- Nx N + c T N x N = c T B B- b + ( c T N ct B B- N ) x N espressa in funzione solo delle variabili fuori base z = costo soluzione di base ammissibile x B = B - b, x N = c T N costi ridotti E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 5

c j = variazione della funzione obiettivo se x j fuori base aumentasse di unità e le altre variabili fuori base rimanessero uguali a Def.: = T c T N c T c T c T B B- A = [c T B ct B B- B, c T N ct B B- N] = I vettore dei costi ridotti rispetto alla base B E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 6

Test di ottimalità Dato un PL di min (max) e una base ammissibile B, se tutti i costi ridotti (delle variabili fuori base) sono non negativi (non positivi) la soluzione di base ammissibile x B = B - b, x N = di costo c T B B- b è ottima. Infatti c T T implica c T x = c T B B- b + c T N x N ct B B- b x, A x = b NB: Questa condizione di ottimalità è sufficiente ma in generale non è necessaria. E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 7

Cambiamento di base (min) Sia una base ammissibile B e x j fuori base (x N ) con costo ridotto c j <. Aumentare x j il più possibile ( entra in base ) mantenendo le altre variabili fuori base uguali a. La variabile x i in base (x B ) tale che x i impone il limite alla crescita di x j più stringente si annulla ( esce dalla base ). La nuova base ha una colonna diversa (vertici adiacenti) E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 8

Forma canonica Ad ogni iterazione bisogna porre il sistema n j= in forma canonica n aij x j = bi i =,..., m Bx B + Nx N = b x i a x j = b i = m + j= m+ ij i,..., I x B + N x N = b che mette in evidenza le variabili in base in funzione di quelle fuori base. x B = b -N x N E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 9

La forma canonica associata ad una base B si ottiene calcolano a ij e b i in funzione di B - B - B x B + B - N x N = B - b I N b eseguendo una sequenza di operazione di pivoting I x B + N x N = b mette in evidenza la soluzione di base x B = b e x N =! E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano

Operazione di pivoting. Scegliere un coefficiente a rs (il pivot ). Dividere per a rs la r-esima riga 3. Per ogni riga i r, sottrarre la r-esima riga moltiplicata per a is NB: Stesse operazioni (che lasciano invariato l insieme delle soluzioni) usate nel metodo di eliminazione di Gauss per risolvere i sistemi di equazioni lineari. E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano

Esempio: min z = x + x + x 3 r pivot 4 A - 3 - x +x + x 3 x 4 = 3 4x x 3 +x 5 = x +3x 3 +x 4 = 5 x i i =,,5 b 3 5 ½ - ½ -3 3 -½ 3/ -4 5 s -¼ -¾ 3 3/ ½ base B ¼ 5/ E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano

Operazioni di pivoting permettono di: mettere un PL in forma canonica rispetto ad una base B passare da una forma canonica ad un altra, ovvero cambiare base. Vantaggio: B - della nuova base B non viene calcolata da zero ma in modo incrementale applicando all inversa della base precedente (con un unica colonna diversa) un unica operazione di pivoting! E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 3

Scegliere la base ammissibile vicina (vertice adiacente) in modo tale da: migliorare il valore della funzione obiettivo mantenere l ammissibilità ) Variabile da fare entrare nella base con costo ridotto c j < minimo (NB: decremento z dipende anche dal limite alla crescita di x j ) che produce z massimo rispetto a z = c BT B - b regola di Bland: s = min{ j : c j < } scelta colonna s pivot E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 4

scelta riga r pivot ) Variabile da fare uscire dalla base altrimenti nessun limite! indice i con i minimo = θ * tra quelle con a is > limite alla crescita di x s più stringente bi a regola di Bland: r = min{ i : = θ *, a is > } a caso b a is is NB: Se c j < con a ij i, nessun elemento della colonna può fare da pivot la funzione obiettivo è illimitata! E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 5

Rappresentazione sotto forma di tabella ( tableau ) sistema z = c T x Ax = b con vincoli di non negatività impliciti Tableau iniziale: m righe b - termine noto funz. obiettivo x c T A x n funz. obiettivo termini noti E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 6

Considerando una base B e partizionando A = [B N] b x x m c T B B x m+ x n c T N N z - = c T x z con operazioni di pivoting (o pre-moltiplicando per B - ) si porta il tableau in forma canonica rispetto a B: -z x B[] x B[m] x x m -z x m+ x n c T N b I N variabili in base z = c T B B - b + c T N x N b = B - b E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 7 z

Esempio: min z = - x -x 6x +4x +x 3 = 4 3x x +x = 6 4 x i i =,, 4 Tableau rispetto alla base con colonne 3, 4: r -z x 3 x 4 4 6 s x - 6 3 x - 4 - x 3 x 4 I x Pivot su 3 equivale a ricavare x dalla riga pivot e sostituirla nelle rimanenti righe pivot base x entra nella base e x 4 esce dalla base E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 8

Tableau rispetto alla nuova base: -z x 3 x x x -5/3 x 3 x 4 /3 8 - -/3 /3 base soluzione di base ammissibile: x =, x 3 =, x = x 4 = con z = - costi ridotti x 6 x 3 E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 9

x unica variabile fuori base da fare entrare (c = -5/3 < ) x 3 unica variabile in base che può uscire (a rs = 8 > ) r -z x 3 x x s x -5/3 x 3 /3 8 - -/3 /3 x 4 -z 9/ x x x x x 3 5/4 3/ /8 -/4 3 / x 4 -/ /6 r -z x x 4 6 6 8 x x x 3 x 4 s ½ ¼ Tutti i costi rodotti 3/ ¼ soluzione di base ottima: 6 ½ con z * = -6 x * =, x * = 6, x* 3 =, x* 4 = 8 E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano

Algoritmo del simplesso (forma tableau) BEGIN Siano B[],,B[m] gli indici delle colonne di una base ammissibile iniziale B; Costruire il tableau iniziale A = {a[i,j]: i m, j n} in forma canonica rispetto a B; illimitato:=false; ottimo:=false; WHILE (ottimo = false) AND (illimitato = false) THEN IF a[,j] j=,,m THEN ottimo := true; /* per PL di min */ ELSE Scegliere una x s fuori base con a[,s] < ; IF a[i,s] i=,,m THEN illimitato := true; ELSE costi ridotti a[ i,] Determina indice r che minimizza a[ i, s] con i m e a[i,s] > ; pivot(r,s) /* aggiornamento tableau */ B[r] := s; END-IF Procedura pivot(r,s)? END-IF END E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano

Degenerazione e convergenza Def. Una soluzione di base ammissibile x è degenere se contiene almeno una variabile di base =. x con più di n-m zeri corrisponde a più basi distinte! Stesso vertice: x più di n vincoli ( gli m di Ax = b e più di n-m tra gli n di x ) sono soddisfatti con segno di uguaglianza. E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano

In presenza di soluzioni di base (ammissibili) degeneri il cambiamento di base può non diminuire il valore della funzione obiettivo: Se la sol. di base corrente è degenere, θ * può essere = e quindi la nuova sol. di base identica a quella precedente. Anche se θ * >, più variabili in base possono annullarsi quando x s viene aumentata a θ *. La nuova sol. di base è quindi degenere. Si può percorrere ciclicamente (all ) una sequenza di basi degeneri associate allo stesso vertice. E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 3

Esistono varie regole anticiclo per la scelta delle variabili che entrano ed escono dalla base (indici r, s) Regola di Bland: tra le variabili candidate ad entrare/uscire dalla base (x s e x r ) scegliere sempre quella con indice minore. Proposizione: L algoritmo del simplesso con la regola di Bland termina dopo n m iterazioni. # finito di pivot E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 4

In casi patologici (Klee & Minty 7) il numero di iterazioni può essere esponenziale in n e/o m, ma l algoritmo è mediamente molto efficiente. Campagne sperimentali: Il numero di iterazioni cresce linearmente rispetto a m (m. 3m) e molto lentamente ( logaritmicamente) rispetto a n! E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 5

Metodo del simplesso a due fasi Fase : Determinazione di una soluzione di base ammissibile iniziale Esempio: min z = x +x 3 x +x 5 x +x 3 = 6 una sottomatrice I x di A! x, x, x 3 x + x + x 4 = 5 x 4 Sia (P) min z = c T x Ax = b x Ipotesi: b E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 6

Problema ausiliario con variabili artificiali y i, i m (P A ) min v = m i= y i A x + I y = b x, y una soluzione di base ammissibile iniziale ovvia y = b ) Se v * >, (P) è inammissibile ) Se v * =, chiaramente y * = e x * è una soluzione di base ammissibile di (P) E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 7

Per ) si verificano i sottocasi: Se y i fuori base i, i m, eliminando quelle colonne si ottiene un tableau in forma canonica rispetto a una base; la riga di z va determinata mediante sostituzione. cf. esempio Se y i in base (soluzione degenere), si può effettuare un pivot su un coefficiente della riga y i e scambiare y i con una variabile x j fuori base. E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 8

Esempio: min v = y + y (P A ) x + 4x 3 + y = -x + x - 6x 3 + y = x, x, x 3, y, y min z = x + x + x 3 (P) x + 4x 3 = -x + x - 6x 3 = x, x, x 3 Mettere v = y +y in forma canonica sostituendo le espressioni di y, y in funzione di x, x e x 3 -v y y -4 E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 9 x - x - x 3 4-6 y y

x x x 3 y y -v -4 - y 4 y - -6 x x x 3 y y -v x 4 ottimo v * = y - - - E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 3

scegliendo come pivot il coefficiente della riga di y si ottiene: base ottima equivalente -v x x x x x 3 4 5 y ½ y -½ trasferito la colonna di I nella zona delle variabili originali soluzioni di base ottima per (P A ) x =, x =, x 3 = è di base ammissibile per (P) E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 3

z = x +x + x 3 Sostituendo: forma canonica variabile fuori base x = - 4x 3 x = -5x 3 z = + x 3 -z x x - x x x 3 4 5 tableau corrispondente alla soluzione di base ammissibili iniziale per (P) La soluzione di base ammissibile è gia ottima quindi niente seconda fase! E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 3