Lezioni di Ricerca Operativa Corso di Laurea in Informatica ed Informatica Applicata Università di Salerno Lezione n° 11: 20-21 Aprile 2009 Algoritmo del Simplesso: - Metodo delle 2 Fasi - Esempio Anno accademico 2008/2009 Prof. Cerulli – Dott.ssa Gentili Metodo Delle Due Fasi Dato il seguente problema di PL in forma STANDARD: min zc x Ax b x0 T (1) (2) x Rn con A(m.n) e b ≥ 0. Supponiamo di volerlo risolvere utilizzando l’algoritmo del simplesso. Ci occorre una base iniziale Metodo Delle Due Fasi Se tra le colonne di A non è presente la matrice Identità non è facile individuare m colonne di A linearmente indipendenti. Si modifica allora artificialmente il sistema dei vincoli: T min c x Ax b Ax I y b x0 x 0, y 0 con l’aggiunta di una variabile artificiale yi ad ogni vincolo del sistema. Nel nuovo sistema è presente una matrice identità (associata alle variabili y). Metodo Delle Due Fasi Una soluzione (x’,y’) del nuovo sistema sarà soluzione anche del sistema di partenza se e solo se y’=0. Per ottenere una tale soluzione (se esiste) risolviamo il seguente problema di PL. min y i i Ax I y b x 0, y 0 Metodo Delle Due Fasi Per risolvere tale problema possiamo utilizzare il simplesso utilizzando come base iniziale le colonne della matrice (A,I) associate alle variabili artificiali y. Quindi nella prima fase si risolve il problema: min g yi i Ax I y b x 0, y 0 Inizialmente tutte le variab. y sono in base mentre tutte le variabili x sono fuori base. Metodo Delle Due Fasi Alla fine della prima fase possono verificarsi due casi, l’ottimo della F.O: 1) g* >0 Ax=b non ammette soluzione. Non si passa alla seconda fase 2) g* =0 Ax=b ammette soluzione (a meno di soluzioni degeneri). Si passa alla seconda fase: si risolve il problema iniziale utilizzando la base ottima della prima fase come base iniziale della seconda fase. Metodo Delle Due Fasi: Esempio min z x1 2 x2 min z x1 2 x2 x1 x2 1 x1 x2 x3 x1 2 x2 4 x1 2 x2 x0 1 x4 4 x0 min g y1 Problema della Prima fase x1 x2 x3 y1 1 x1 2 x2 x4 x 0, y 0 4 Metodo Delle Due Fasi: Esempio min g x5 Per uniformità poniamo y1=x5. x1 x2 x3 x1 2 x2 x5 1 x4 4 x0 x1 x 2 x 3 x 4 x 5 1 1 - 1 A 1 2 0 0 1 1 B 5,4 N 1,2,3 0 Matr. Identità Base Iniziale Metodo Delle Due Fasi: Esempio 1 0 AB 0 1 x B A B1 b x B Ib x B b x5 1 0 -1 x b A B b 0 1 4 1 1 4 4 x5 1, x4 4 Test di Ottimalità: calcolo di zj – cj per j N B 5,4 N 1,2,3 1 ( z1 c1 ) 1 0 I 0 1 1 1 ( z2 c2 ) 1 0 I 0 1 2 1 ( z3 c3 ) 1 0 I 0 1 0 Metodo Delle Due Fasi: Esempio x2 entra in base Quale variabile esce dalla base? Regola del minimo rapporto: x5 1 x b 4 4 y2 A a -1 B 2 1 1 I 2 2 b j b1 x2 min : y jk 0 x2 1 min 1,2 jB y y1k jk x5 esce dalla base; x2 entra in base con valore 1 Nuova base: Possiamo ignorare la var. x5: B 2,4 B 2,4 N 1,5,3 N 1,3 Metodo Delle Due Fasi: Esempio 1 0 AB 2 1 1 0 A - 2 1 1 B x2 1 0 -1 x b A B b - 2 1 4 1 1 4 2 Test di Ottimalità: calcolo di zj – cj per j N B 2,4 N 1,3 -1 1 ( z1 c1 ) 0 0 A B 0 0 1 1 ( z3 c3 ) 0 0 A 0 0 0 -1 B Metodo Delle Due Fasi: Esempio Soluzione Ottima della Prima fase 1 B g* c B b c B A b 1 0 1 g* 0 0 0 - 2 1 4 Si risolve il problema iniziale: utilizzando come base di partenza: B 2,4 N 1,3 Si può passare alla seconda fase min z x1 2 x2 x1 x2 x3 x1 2 x2 x0 1 x4 4 Metodo Delle Due Fasi: Esempio 1 0 AB 2 1 1 0 A - 2 1 1 B x2 1 0 -1 x b A B b - 2 1 4 1 1 4 2 Test di Ottimalità: calcolo di zj – cj per j N B 2,4 N 1,3 1 0 1 ( z1 c1 ) - 2 0 (1) 1 - 2 1 1 1 0 1 ( z3 c3 ) - 2 0 0 2 - 2 1 0 Metodo Delle Due Fasi: Esempio x3 entra in base Quale variabile esce dalla base? Regola del minimo rapporto: x2 1 x b 2 4 1 0 - 1 - 1 y3 A a3 - 2 1 0 2 -1 B b j b2 x3 min : y jk 0 x3 1 min 1 jB y y2 k jk x4 esce dalla base; x3 entra in base con valore 1 Nuova base: B 2,3 N 1,4 Metodo Delle Due Fasi: Esempio 1 - 1 AB 2 0 0 1/2 A - 1 1/2 1 B x2 0 1/2 1 2 -1 x b A B b - 1 1/2 4 1 3 Test di Ottimalità: calcolo di zj – cj per j N B 2,3 N 1,4 0 1/2 1 ( z1 c1 ) - 2 0 (1) 1 1 0 - 1 1/2 1 0 1/2 0 ( z4 c4 ) - 2 0 0 1 - 1 1/2 1