• Non ci sono risultati.

12. Algoritmo del simplesso duale

N/A
N/A
Protected

Academic year: 2021

Condividi "12. Algoritmo del simplesso duale"

Copied!
4
0
0

Testo completo

(1)

Ricerca Operativa A.A. 2007/2008

12. Algoritmo del simplesso duale

Luigi De Giovanni - Ricerca Operativa - 12. Algoritmo del simplesso duale 12.1

Condizioni di ottimimalit` a e algoritmo del simplesso

• Le condizioni di ottimalit`a per un problema in forma standard sono:

(1) Ax = b, x ≥ 0 (ammissibilit`a primale) (2) uTA ≤ cT (ammissibilit`a duale) (3) (cT − uTA)x = 0 (ortogonalit`a)

• L’algoritmo del simplesso, ad ogni iterazione, considera una partizione A = [B, F ] e:

– calcola una soluzione ammissibile x = xB xF



= B−1b 0



⇒ la (1) `e soddisfatta;

– calcola i moltiplicatori uT = cTBB−1: risulta (cT−uTA)x = (cBT−uTB)xB+(cTF−uTF )xF = 0TxB+ ¯cTF0 = 0 ⇒la (3) `e soddisfatta;

– calcola i costi ridotti ¯cT = cT − uTA ed esegue un test per verificare che siano positivi:

¯cT ≥ 0 ≡ ammissibilit`a duale (2).

• L’algoritmo del simplesso parte da una soluzione ammissibile primale e considera, ad ogni iterazione, una diversa coppia di soluzioni primale x e duale u che sono

– ammissibili primali (sempre), – in scarti complementari (sempre),

– non ammissibili duali (solo alla fine u `e soluzione ammissibile duale, e quindi la coppia x, u

`e ottima).

Luigi De Giovanni - Ricerca Operativa - 12. Algoritmo del simplesso duale 12.2

(2)

Approccio alternativo

• Un approccio alternativo parte da una soluzione ammissibile duale e considera, ad ogni iterazione, una diversa coppia di soluzioni primale x e duale u che sono

– ammissibili duali (sempre) ⇒ la (2) ` e soddisfatta;

– in scarti complementari (sempre) ⇒ la (3) ` e soddisfatta;

– non ammissibili primali (solo alla fine x `e soluzione ammissibile primale, cio`e anche la (1) ` e soddisfatta e la coppia x, u `e ottima).

• La condizione di ammissibilit`a duale `e equivalente ad avere tutti i costi ridotti non negativi (ottimalit`a primale).

• Si considerano delle soluzioni di base ottime ma non ammissibili (super-ottime) e si cerca di convergere verso una soluzione di base ottima e ammissibile. Geo- metricamente si parte da intersezioni di vincoli esterne al poliedro ammissibile ma con valore della funzione obiettivo pi`u che ottima e si cerca di arrivare su un vertice del poliedro (ammissibile) ottimo.

• L’approccio alternativo mantiene una soluzione duale ammissibile ed `e detto algoritmo del simplesso duale. L’approccio “usuale” `e detto algoritmo del simplesso primale.

• Attenzione: entrambi gli algoritmi servono per risolvere il problema primale!

Luigi De Giovanni - Ricerca Operativa - 12. Algoritmo del simplesso duale 12.3

Algoritmo del simplesso duale: osservazioni

• Consideriamo un tableau in forma canonica, relativo a una base (super)ottima B = [A1...Am] ( ¯cj ≥ 0, ∀ j = m + 1...n).

x1 ... xt ... xm xm+1 ... xh ... xn

−z −zB 0 ... 0 ... 0 c¯m+1 ... c¯h ... c¯n

x1 ¯b1 1 ... 0 ... 0 ¯a1,m+1 ... ¯a1h ... ¯a1n

... ... 0 0 0 ... ... ... ...

xt ¯bt 0 ... 1 ... 0 a¯t,m+1 ... a¯th ... ¯atn

... ... 0 0 0 ... ... ... ...

xm ¯bm 0 ... 0 ... 1 ¯am,m+1 ... ¯amh ... ¯amn

• L’algoritmo si ferma quando si raggiunge l’ammissibilit`a primale, cio´e quando

¯bi≥ 0, ∀ i = 1...m.

• Sia t una delle righe “non ammissibili”, cio´e tali che bt< 0.

– Se ¯atj ≥ 0, allora Pn

j=1¯atjxj ≥ 0, ∀ x ≥ 0: il problema primale `e inammissibile (e il duale illimitato, visto che i moltiplicatori u associati al tableau rappresentano una soluzione ammissibile duale).

– Altrimenti si pu`o effettuare un’operazione di pivot su un opportuno ¯ath< 0 per cambiare la base corrente facendo uscire la variabile xβ[t] e facendo entare la variabile xhcon un valore positivo pari a ¯bt/¯ath.

Luigi De Giovanni - Ricerca Operativa - 12. Algoritmo del simplesso duale 12.4

(3)

Algoritmo del simplesso duale: cambio base

• La variabile che esce dalla base `e determinata dalla ricerca dell’ammissibilit`a: una qualsiasi xβ[t]: ¯bt< 0.

• La scelta della variabile che entra in base `e invece guidata dal mantenimento delle condizioni di ottimalit`a: costi ridotti non negativi.

• I nuovi costi ridotti ˜cjsi ottengono aggiornando con operazioni di pivot la prima riga del tableau.

Assumendo che xh sia la variabile che entra in base, si ottiene:

˜cj = ¯cj− ¯ch

¯ ath

¯atj, ∀ j = 1...n

• Dobbiamo imporre ˜cj ≥ 0 ⇒ ¯cj ≥ ¯ch

¯athtj, ∀ j = 1...n

• Se ¯atj ≥ 0, la corrispondente disequazione risulta verificata (¯ath≤ 0 per garantire l’ammissibilit`a della variabile che entra in base);

• Se ¯atj < 0 (e considerando che ¯atj = −|¯atj| e ¯ath= −|¯ath|)

¯ cj ≥ c¯h

¯ ath

¯atj = ¯ch

−|¯ath|(−|¯atj|) ⇒ c¯j

|¯atj| ≥ ¯ch

|¯ath|, ∀ j : ¯atj < 0

• In definitiva, fissata la riga pivot t (esce dalla base xβ[t]), per mantenere l’ottimalit`a della nuova soluzione di base,dobbiamo far entrare una variabile xhcon

h = arg min

j=1..n

 c¯j

|¯atj| : ¯atj < 0



Luigi De Giovanni - Ricerca Operativa - 12. Algoritmo del simplesso duale 12.5

Algoritmo del simplesso duale

1. Consideriamo un tableau iniziale in forma canonica, relativo a una base (su- per)ottima B = [A

1

...A

m

] ( ¯ c

j

≥ 0, ∀ j = m + 1...n).

x

TB

x

TF

−z −z

B

0

T

c ¯

TF

≥ 0

T

x

B

¯b = B

−1

b I B

−1

F = {¯a

ij

}

2. Se ¯b

i

≥ 0, ∀ i, STOP: soluzione ottima.

3. Scegli un qualsiasi t : ¯b

t

< 0.

4. Se ¯a

tj

≥ 0, ∀ j: STOP: problema primale impossibile.

5. Poni h = arg min

j=1...n

 ¯c

j

|¯a

tj

| : ¯a

tj

< 0



6. Esegui l’operazione di pivot sull’elemento ¯a

th

e torna al passo 2.

Luigi De Giovanni - Ricerca Operativa - 12. Algoritmo del simplesso duale 12.6

(4)

Convergenza del simplesso duale

• Ad ogni iterazione il valore della funzione obiettivo aumenta (ci avviciniamo a una soluzione ammissibile primale e a una soluzione ottima duale).

Infatti, passando dalla base B alla nuova base ˜B: −zB˜ = −zB− ¯ch

¯ath¯bt≤ −zB ⇒ zB˜ ≥ zB.

• A meno di degenerazione duale (¯c

h

= 0), la disuguaglianza `e stretta e il simplesso duale converge in al pi`u  n

m



iterazioni.

• In caso di degenerazione, la convergenza non `e garantita: si pu`o utilizzare una regola anticiclo, ad esempio:

Regola anticiclo di Bland (duale): In caso di alternative lecite, scegliere la variabile x

j

uscente/entrante con indice j minimo.

Luigi De Giovanni - Ricerca Operativa - 12. Algoritmo del simplesso duale 12.7

Riferimenti

Documenti correlati

Una volta individuato un piano di taglio per la soluzione ottima x* RL di P RL, possiamo aggiungere tale disuguaglianza alla formulazione originaria (“migliorando” la

 Se nessuna variabile artificiale è ancora in base, ho una base fatta da sole colonne del problema originario e posso partire con Fase 2 su esso.  Se ho ancora variabili

In particolare, il metodo del simplesso parte da una soluzione primale ammissibile e cerca di rendere questa soluzione ottimale (costi ridotti non negativi), mantendo, ad

il problema ammette soluzione ottima: esiste almeno una soluzione ammissibile che ottimizza la funzione obiettivo (e il valore ottimo della funzione obiettivo `e limitato)..

Ricordiamo che vogliamo (dobbiamo) rappresentare tutti i vincoli in modo lineare, anche i vincoli di tipo logico che coinvolgono variabili logiche: dal punto di vista modellistico,

™ Black-box o Sequenziale modulare: il modello del processo viene interrogato dalla routine di ottimizzazione e fornisce i dati necessari alla valutazione della funzione obiettivo

In particolare la soluzione ottima è il vertice della regione ammissibile in cui la funzione obiettivo raggiunge il massimo punto di tangenza nella direzione del

Se il valore della funzione obiettivo è 0, allora il problema di partenza aveva una soluzione ammissibile di base (e il metodo del simplesso, applicato al problema ausiliario, ce la