• Non ci sono risultati.

Metodo del simplesso duale

N/A
N/A
Protected

Academic year: 2021

Condividi "Metodo del simplesso duale"

Copied!
10
0
0

Testo completo

(1)

Metodo del simplesso duale

I analisi duale del metodo del simplesso

I metodo del simplesso duale

Fi 4.6, 4.7

(2)

Analisi duale del metodo del simplesso

Condizioni di ottimalit` a primale-duale per una coppia di vettori x ∈ R n , u ∈ R m :

(i) ammissibilit` a primale: Ax = b, x ≥ 0 (ii) ammissibilit` a duale: u T A ≤ c T

(iii) scarto complementare: (c T − u T A)x = 0

Alla generica iterazione, il metodo del simplesso calcola i vettori:

I x = (B ¯ −1 b, 0) ≥ 0

I u T = c T B B −1

I ¯ c T = c T − u T A

e si arresta quando ¯ c ≥ 0

(3)

Analisi duale del metodo del simplesso

ad ogni iterazione:

I la sba corrente ` e ammissibile per il problema primale: (i) ` e soddisfatta

I (c T − u T A)x = (c T B − u T B)x B + (c T F − u T F)x F = 0: (iii)

`

e soddisfatta

I al contrario, la condizione (ii) ` e soddisfatta solo quando

¯ c T = c T − u T A ≥ 0, cio` e quando Test Opt → true e il metodo si arresta

quindi, durante l’intera esecuzione del metodo, il vettore u non ` e

una soluzione ammissibile del problema duale, mentre lo diventa

alla terminazione

(4)

Metodo del simplesso duale

I mantiene x e u tali da soddisfare sempre le condizioni (ii) e (iii), mentre la (i) solo alla terminazione

I x ` e una soluzione di base NON ammissibile durante l’intera esecuzione e il metodo si arresta quando ne certifica

l’ammissibilit` a

I tableau iniziale del tipo:

x 1 · · · x j · · · x m x m+1 · · · x h · · · x n

0 · · · 0 · · · 0 ¯ c m+1 ¯ c h ¯ c n c ¯ 0 −z 1 · · · 0 · · · 0 ¯ a 1,m+1 · · · · · · ¯ a 1,n ¯ b 1 x 1

0 0 0 · · · · · · · · ·

0 · · · 1 · · · 0 ¯ a t,m+1 · · · ¯ a t,h · · · ¯ a t,n ¯ b t x t

0 0 0 · · · · · · · · ·

0 · · · 0 · · · 1 ¯ a m,m+1 · · · · · · ¯ a m,n ¯ b m x m

in cui ¯ c 1 , . . . , ¯ c n ≥ 0 (ammissibilit` a duale)

(5)

Metodo del simplesso duale

I se ¯ b 1 , . . . , ¯ b m ≥ 0, allora il tableau ` e ottimo

I altrimenti (esiste un valore ¯ b t < 0):

I

se ¯ a

tj

≥ 0, j = 1, . . . , n, allora P

n

j=1

¯ a

tj

x

j

≥ 0; quindi, l’equazione associata alla riga t del tableau non pu` o essere soddisfatta: problema inammissibile

I

esiste un valore ¯ a

th

< 0: facendo PIVOT sull’elemento (t, h) il termine ¯ b

t

diventa positivo

I la scelta della variabile uscente pu` o ricadere su una qualsiasi

delle variabili in base per cui ¯ b t < 0 (ricordando la discussione

sul ciclaggio)

(6)

Esempio

min 3x 1 + 4x 2 + 5x 3

s.t.

2x 1 + 2x 2 + x 3 ≥ 6 x 1 + 2x 2 + 3x 3 ≥ 5 x 1 , x 2 , x 3 ≥ 0

min 3x 1 + 4x 2 + 5x 3

s.t.

2x 1 + 2x 2 + x 3 − x 4 = 6 x 1 + 2x 2 + 3x 3 − x 5 = 5 x 1 , x 2 , x 3 , x 4 , x 5 ≥ 0 da cui il tableau:

3 4 5 0 0 0

2 2 1 - 1 0 6 2 1 3 0 - 1 5

applicando il simplesso primale si eseguirebbe la FASE I

(7)

Esempio

Invece, cambiando segno alle righe si ottiene un tableau iniziale per il simplesso duale

3 4 5 0 0 0

- 2 - 2 - 1 1 0 - 6 - 2 - 1 - 3 0 1 - 5

scegliamo x 4 (riga t = 1) come var. uscente

come scegliere la variabile entrante?

dovendo mantenere l’ammissibilit` a duale (cio` e ¯ c ≥ 0),

consideriamo esclusivamente i valori ¯ a tj < 0 e scegliamo la colonna h per cui:

h = arg min{ ¯ c j

|¯ a tj | : j ∈ {1, . . . , n}, ¯ a tj < 0}

(8)

Esempio (cont.)

min{ ¯ c 1

¯ a 11 = 3

2 , c ¯ 2

¯

a 12 = 2, c ¯ 3

¯

a 13 = 5}

P IV OT (1, 1)

0 1 7/2 3/2 0 -9

1 1 1/2 -1/2 0 3 0 - 1 - 5/2 -1/2 1 -2

l’unica riga con ¯ b t < 0 ` e t = 2, cio` e, x 5 ` e la variabile entrante.

Ripetendo il ragionamento precedente si individua l’elemento di pivot (2, 2):

P IV OT (2, 2)

0 0 1 1 1 -11

1 0 -2 -1 1 1

0 1 5/2 1/2 -1 2

soluzione (1, 2, 0, 0, 0) ammis-

sibile primale =⇒ ottima

(9)

Se aggiungessimo un vincolo?

supponiamo adesso di aggiungere il vincolo 3x 1 + x 2 + x 3 ≤ 4 che NON ` e soddisfatto dalla soluzione ottima.

Aggiungendo la slack ` e possibile includerlo nel tableau:

0 0 1 1 1 0 -11

1 0 -2 -1 1 0 1

0 1 5/2 1/2 -1 0 2

3 1 1 0 0 1 4

(10)

Di nuovo simplesso duale...

mettendo in forma canonica (con la slack in base), si ottiene:

0 0 1 1 1 0 -11

1 0 -2 -1 1 0 1

0 1 5/2 1/2 -1 0 2

0 0 9/2 5/2 -2 1 -1

essendo ¯ b 3 < 0 non abbiamo ammissibilit` a primale. Applicando nuovamente il simplesso duale si individua l’elemento di pivot (3, 5) e il nuovo tableau (ottimo):

0 0 13/4 9/4 0 1/2 -23/2 1 0 1/4 1/4 0 1/2 1/2 0 1 1/4 -3/4 0 -1/2 5/2 0 0 -9/4 -5/4 1 -1/2 1/2

nuova sol. ottima

(1/2, 5/2, 0, 0, 1/2, 0)

Riferimenti

Documenti correlati

Ovviamente, anche se non tutte le combinazioni di m colonne tra le n della matrice A corrispondono a soluzioni di base (le colonne potrebbero non essere linearmente indipendenti o

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)..

• se le variabili y sono tutte fuori base al termine del simplesso per la soluzione del problema artificiale, allora la base ottima finale della fase I corrisponde direttamente

con b ≥ 0, allora l’introduzione delle variabili di slack s rende subito evidente l’esistenza di una base ammissibile iniziale in corrispondenza delle variabili di slack stesse:

con b ≥ 0, allora l’introduzione delle variabili di slack s rende subito evidente l’esistenza di una base ammissibile iniziale in corrispondenza delle variabili di slack stesse:

Procediamo dunque con l’operazione di cambio base e scegliamo come variabile che entra in base, la varia- bile che corrisponde al costo ridotto negativo, ovvero x 1 (nuovamente!)

Inoltre, il metodo necessita di una soluzione di base ammissibile del sistema per iniziare, e si muove lungo il perimetro della regione ammissibile passando, ad ogni iterazione, da