4.5 Metodo del simplesso

Documenti analoghi
4.5 Metodo del simplesso

4.3 Esempio 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

2. SIMPLESSO. Ricerca Operativa. 2 Esercizi sul simplesso. Politecnico di Torino CeTeM

Corso di Matematica Applicata A.A

Convergenza del Simplesso e regole anti-ciclaggio

5.4.5 Struttura dell algoritmo ed esempi

5.1 Metodo Branch and Bound

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

Il metodo del simplesso

3.6 Metodi basati sui piani di taglio

Soluzione dei Problemi di Programmazione Lineare

min 2x 1 +4x 2 2x 3 +2x 4 x 1 +4x 2 +2x 3 + x 4 =6 2x 1 + x 2 +2x 3 + x 5 =3 x 0.

Esempi di Problemi di Programmazione Lineare

Algoritmo del simplesso

Algoritmo del Simplesso

Metodo delle due fasi

Sviluppando ancora per colonna sulla prima colonna della prima matrice e sulla seconda della seconda matrice si ottiene:

Programmazione Matematica / A.A Soluzioni di alcuni esercizi

x 1 x 2 x 3 x 5 La base iniziale è B 0 = I e risulta x B 0 = , x N 0 = Iterazione 0. Calcolo dei costi ridotti. γ 0 = c N 0 (N 0 ) T c B 0 =

Teorema Data una base ammissibile B della matrice A del problema (7.3.1). Se per qualche indice i {1,...,n m} abbiamo che:

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

Programmazione Matematica: VI Estensioni dell algoritmo del Simplesso

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

ALGORITMO DEL SIMPLESSO. Una piccola introduzione. Ricerca Operativa. Prof. R. Tadei. Politecnico di Torino. Simplesso / 1.

4 PROGRAMMAZIONE LINEARE (PL) E. Amaldi -- Fondamenti di R.O. -- Politecnico di Milano 1

4 PROGRAMMAZIONE LINEARE (PL) E. Amaldi -- Fondamenti di R.O. -- Politecnico di Milano 1

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

Programmazione Lineare

1 Il metodo dei tagli di Gomory

Esercizio 1. Variabili decisionali:

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

3.3 Problemi di PLI facili

5.5 Programmazione quadratica (PQ)

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

Programmazione Matematica / A.A Soluzioni di alcuni esercizi

2. ALGORITMO DEL SIMPLESSO

Università Ca Foscari Venezia

COMPITO DI RICERCA OPERATIVA. max 3x 1 + 2x 2 x x 2 + x 3 = 4 2x 1 + x 2 + x 4 = 3

Programmazione Matematica: VII La scomposizione di Dantzig Wolfe

Costi ridotti e ottimalità

Esercizi sulla Programmazione Lineare Intera

Esercizi di Programmazione Lineare

Gestione della produzione e della supply chain Logistica distributiva

Ricerca Operativa. G. Liuzzi. Giovedí 19 Marzo Tableau del Simplesso Esempio Fase I del Simplesso Esempio

Programmazione lineare

Prerequisiti didattici

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Si considera, come al solito, un problema di programmazione lineare in forma standard:

RICERCA OPERATIVA GRUPPO A prova scritta del 21 luglio 2010

4.4 Programmazione quadratica

Programmazione lineare: basi e soluzioni di base

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.3)

5.1 Metodo Branch and Bound

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina

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

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

Corso di Matematica Applicata A.A

Argomento 13 Sistemi lineari

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

LA FASE II DEL METODO DEL SIMPLESSO Convergenza del metodo del simplesso

Algoritmi generali per PLI

Analisi di sensitivitá. Analisi di sensitivitá p. 1/4

5.3 Introduzione al metodo del simplesso

DUALIT A ESERCITAZIONI DI RICERCA OPERATIVA 1

PROGRAMMAZIONE LINEARE E DUALITA'

LEZIONE N.7 INTRODUZIONE AI METODI DI PROGRAMMAZIONE LINEARE, IL METODO DEL SIMPLESSO. 1di 18

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

Algoritmi generali per PLI

4. METODI DUALI DEL SIMPLESSO

SI RICORDA CHE LE LEZIONI DI MERCOLEDÌ 5 E 12 APRILE SI TERRANNO IN AULA D3 DALLE 9 ALLE 11

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

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

LA GRAN PARTE DI QUESTI ELEMENTI DOVREBBE ESSERE GIÀ NOTA

Prova Scritta di Ricerca Operativa

Metodo del Simplesso. Ricerca Operativa. G. Liuzzi. Lunedí 16 Marzo logo.pdf. 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR

Ricerca Operativa a.a : IV appello

1) Hamming bound, coset, codici equivalenti

Registro dell'insegnamento

Dualitá. Dualitá p. 1/4

A T x b x 0. che chiameremo problema primale, possiamo associare ad esso un altro problema di PL, detto problema duale, definito come segue.

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 x 1 2x 2 + x 3 = 4 x 1 x 2 x 3 = 3 x 2 + 2x 3 = 1 x 1, x 2, x 3 0

Note di Programmazione Lineare

IL METODO DEL SIMPLESSO

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso

Introduzione ai Problemi di Flusso su Reti

ALGEBRA LINEARE PARTE III

Programmazione Matematica: V- La forma Tableau

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

L ALGORITMO DEL SIMPLESSO REVISIONATO

2.2 Alberi di supporto di costo ottimo

Esame di Ricerca Operativa. Corso di Laurea in Ingegneria Informatica e Automatica. Compito A

COMPITO DI RICERCA OPERATIVA. max 8 5x 1 3x 2 x 3 = 1 + 4x 1 + x 2 x 4 = 1 x 1 + x 2 x 5 = 5 x 1 x 2

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Transcript:

4.5 Metodo del simplesso min z = c T x s.v. Ax = b x 0 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 1947). Si passa da una soluzione di base ammissibile ad una vicina E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 1

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 2

Bisogna sapere come: determinare una 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 0 } e una base ammissibile B, Ax = b si può riscrivere come B x B + N x N = b x B = B -1 b - B -1 N x N con B -1 b 0. Soluzione di base ammissibile: x B = B -1 b, x N = 0 E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 4

Sostituendo nella funzione obiettivo: x c T x = (c T B B c T N) = (c x T B c T N) N B -1 b B -1 Nx N x N c T x = c T B B -1 b c T B B -1 Nx N + c T N x N = c T B B -1 b + ( c T N c T B B -1 N ) x N espressa in funzione solo delle variabili fuori base z 0 = costo soluzione di base ammissibile x B = B -1 b, x N = 0 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 1 unità e le altre variabili fuori base rimanessero uguali a 0 Def.: = 0 T c T N c T c T c T B B -1 A = [c T B c T B B -1 B, c T N c T B B -1 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 -1 b 0, x N = 0 di costo c T B B -1 b è ottima. Infatti c T 0 T implica c T x = c T B B -1 b + c T N x N c T B B -1 b x 0, 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 (PL di min) Sia una base ammissibile B e x j fuori base (in x N ) con costo ridotto c j < 0. Aumentare x j il più possibile ( entra in base ) mantenendo le altre variabili fuori base uguali a 0. La variabile x i in base (in x B ) tale che x i 0 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 1 in forma canonica n aij x j bi i 1,..., m Bx B + Nx N = b x i a x j b i 1 m j m 1 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 -1 B -1 B x B + B -1 N x N = B -1 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 = 0! E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 10

Operazione di pivoting 1. Scegliere un coefficiente a rs 0 (il pivot ) 2. 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 11

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

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 -1 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 13

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

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

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

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

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

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

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

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

Degenerazione e convergenza Def. Una soluzione di base ammissibile x è degenere se contiene almeno una variabile di base = 0. 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 0 ) sono soddisfatti con segno di uguaglianza. E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 22

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 = 0 e quindi la nuova sol. di base è identica a quella precedente. Anche se * > 0, 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 23

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 24

In casi patologici (Klee Minty 72) 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 25

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

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

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

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

x 1 x 2 x 3 y 1 y 2 -v -4 2-2 2 0 0 y 1 2 0 1 4 1 0 y 2 2-2 1-6 0 1 x 1 x 2 x 3 y 1 y 2 -v 0 2 0 10 2 0 x 2 2 0 1 4 1 0 y 2 0-2 0-10 -1 1 ottimo v * = 0 E. Amaldi -- Fondamenti di R. O. -- Politecnico di Milano 30

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

z = x 1 +x 2 +10 x 3 Sostituendo: forma canonica variabile fuori base x 2 = 2-4x 3 x 1 = -5x 3 z = 2 + x 3 x 1 x 2 x 3 -z -2 0 0 1 x 2 2 0 1 4 x 1 0 1 0 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 32