• Non ci sono risultati.

Lezione n°10

N/A
N/A
Protected

Academic year: 2021

Condividi "Lezione n°10"

Copied!
20
0
0

Testo completo

(1)

Lezione n

°

10

Algoritmo del Simplesso: - Coefficienti di costo ridotto - Condizioni di ottimalità

- Test dei minimi rapporti - Cambio di base

R. Cerulli

F. Carrabs

Lezioni di Ricerca Operativa

(2)

Consideriamo il problema (PL) in Forma Standard

Data una base B ammissibile, partizioniamo sia la matrice A che il vettore delle incognite x come segue:

Il sistema di equazioni lineari Ax=b si può riscrivere come

Calcolo della soluzione ottima di un problema di PL.

𝐴!𝑥! + 𝐴"𝑥" = 𝑏 ⟹ 𝐴!𝑥! = 𝑏 − 𝐴"𝑥" ⟹ 𝑥! = 𝐴#$! 𝑏 − 𝐴!#$𝐴"𝑥" 𝑚𝑖𝑛 𝑧 = 𝑐%𝑥

A𝑥 = 𝑏 𝑥 ≥ 0

(3)

Calcolo della soluzione ottima di un problema di PL.

Riscriviamo anche la funzione obiettivo come:

(1)

Sostituendo in (1) l’espressione delle variabili di base:

Il valore della funzione obiettivo corrispondente alla base B è:

𝑥

!

= 𝐴

!"#

𝑏 − 𝐴

!"#

𝐴

$

𝑥

$ (2)

z = 𝑐

!%

𝐴

"#!

𝑏 −𝑐

!%

𝐴

"#!

𝐴

$

𝑥

$

+𝑐

$%

𝑥

$

otteniamo: (3)

(4)

Le relazioni (2) e (3) esprimono rispettivamente i vincoli e la funzione obiettivo in funzione delle variabili fuori base.

Indichiamo con 0𝑏 = 𝐴!#$𝑏 e poichè 𝐴"𝑥" = ∑&∈" 𝑎&𝑥& otteniamo:

dove aj è la colonna di A che moltiplica la variabile fuori base xj. 𝑧 = 𝑐!% 0𝑏 − 3 &∈" 𝑐!%𝐴!#$𝑎&𝑥& + 3 &∈" 𝑐&𝑥& 𝑥! = 0𝑏 − 3 &∈" 𝐴!#$𝑎&𝑥& 𝑧 = 𝑐!%𝐴!#$𝑏 − 𝑐!%𝐴!#$𝐴"𝑥" + 𝑐"%𝑥" 𝑥! = 𝐴!#$𝑏 − 𝐴#$! 𝐴"𝑥"

(5)

Se 𝑧( = 𝑐!% 0𝑏 e 𝑧& = 𝑐!%𝐴!#$𝑎& la funzione obiettivo diventa: 𝑧 = 𝑐!% 0𝑏 − 3 &∈" 𝑐!%𝐴#$! 𝑎&𝑥& + 3 &∈" 𝑐&𝑥& 𝑧 = 𝑧( − 3 &∈" 𝑧&𝑥& + 3 &∈" 𝑐&𝑥& = 𝑧( − 3 &∈"

(𝑧& − 𝑐&)𝑥&

𝑥! = 0𝑏 − 3

&∈"

𝐴!#$𝑎&𝑥& = 0𝑏 − 3

&∈"

𝑦&𝑥&

Infine fissato 𝑦& = 𝐴#$! 𝑎& i vincoli diventano:

(6)

Consideriamo il problema (PL) in Forma Standard

Data una base B ammissibile, riscriviamo il problema in funzione di B come segue: y j = AB −1 aj zj = cB T AB−1aj b = AB−1b z0 = cTBAB−1b Forma canonica in funzione di una base B

𝑚𝑖𝑛 𝑧 = 𝑧( − 3

&∈"

(𝑧& − 𝑐&)𝑥&

𝑥! = 0𝑏 − 3 &∈" 𝑦&𝑥& 𝑥 ≥ 0 𝑚𝑖𝑛 𝑧 = 𝑐%𝑥 A𝑥 = 𝑏 𝑥 ≥ 0

(7)

Verifichiamo se la soluzione di base corrente è ottima o può essere migliorata

Consideriamo la funzione obiettivo:

Verifichiamo come cambia il valore della funzione obiettivo incrementando la variabile fuori base xk che è attualmente nulla.

La funzione obiettivo migliora !

Supponiamo che esista un coefficiente k

Î

N tale che:

𝑚𝑖𝑛 𝑧 = 𝑧( − 3

&∈"

(𝑧& − 𝑐&)𝑥&

𝑧) − 𝑐) > 0

𝑧 = 𝑧( − (𝑧) − 𝑐)) 𝑥)

> 0

(8)

Teorema (Condizione di ottimalità)

Una soluzione di base non degenere di un problema di PL è ottima se e solo se:

Ø Nel caso di soluzione degenere possono esistere soluzioni ottime in cui il punto (2) del teorema non è soddisfatto.

Ø Tuttavia, se un problema ammette una soluzione ottima finita allora ammette una soluzione di base ottima che soddisfa le condizioni (1) e (2) del teorema.

1)

𝑏* ≥ 0 i=1…,m (ammissibile)

(9)

1

X

6 -3 -2 -1 1 (1) (2) (3) A B C Forma Standard Verificare analiticamente se la soluzione di base associata al punto A soddisfa il test di

(10)

BA={1,3,4} NA={2,5} x1 x3 x4 z2 − c2 = cB T AB−1a2 − c2 = (3, 0, 0)AB−1 −1 1 −1 " # $ $ $ % & ' ' '−1 = (0, 0, 3 2) −1 1 −1 " # $ $ $ % & ' ' '−1 = − 3 2 −1= − 5 2 z5 − c5 = cB T AB−1a5 − c5 = (3, 0, 0)AB−1 0 0 −1 " # $ $ $ % & ' ' '− 0 = (0, 0, 3 2) 0 0 −1 " # $ $ $ % & ' ' '− 0 = − 3 2 − 0 = − 3 2 x1 x2 x3 x4 x5 A = 2 4 1 2 1 1 0 0 1 1 0 1 0 2 1 0 0 1 3 5 ABA = 2 4 1 2 1 0 1 0 1 2 0 0 3 5 ABA1 = 2 40 0 1 2 1 0 14 0 1 12 3 5 𝑐!"=[3,0,0] 𝑧𝑗 − 𝑐𝑗 = 𝑐!"𝐴!#$𝑎𝑗 − 𝑐𝑗

(11)

Ø Poichè incrementando il valore della variabile fuori base xk il valore della funzione obiettivo migliora, si potrebbe pensare di aumentare indefinitivamente xk.

Ø Tuttavia, aumentando xk anche il vettore delle variabili in base xB viene modificato in accordo all’equazione dei vincoli.

𝑚𝑖𝑛 𝑧 = 𝑧( − 3

&∈"

(𝑧& − 𝑐&)𝑥&

𝑥! = 0𝑏 − 3

&∈"

𝑦&𝑥& 𝑥 ≥ 0

(12)

Dal momento che le xj sono uguali a zero, per 𝑗 ∈ 𝑁\{𝑘}, la relazione: diventa:

𝑥

!

= &𝑏 − (

&∈$

𝑦

&

𝑥

&

𝑥

!

= &𝑏 − 𝑦

(

𝑥

(

(13)

In forma vettoriale:

Se

y

ik

£

0

i

B

allora x

Bi

cresce al crescere di x

k

e così x

Bi

continua a essere non

negativo. (

ottimo illimitato

)

(14)

Se esiste una componente i tale che yik > 0 allora xBi decresce al crescere di xk.

Il valore di xk verrà incrementato finché una delle variabili in base assumerà valore zero. Infatti noi vogliamo che:

La variabile xBi che si azzererà per prima verrà tolta dalle variabili di base e sarà rimpiazzata dalla variabile xk.

𝑥

!+

= 𝑏

1

− 𝑦

#(

𝑥

(

≥ 0

𝑥

!,

= 𝑏

2

− 𝑦

)(

𝑥

(

≥ 0

𝑥

!-

= 𝑏

𝑚

− 𝑦

*(

𝑥

(

≥ 0

………...……

………...……

(15)

………...………

………...………

Possiamo scrivere:

Dobbiamo considerare solo i rapporti in cui

𝑦

+( > 0

≤0 >0 >0

𝑥

!+

= 𝑏

1

− 𝑦

#(

𝑥

(

≥ 0 ⟺ sempre

𝑥

!,

= 𝑏

2

− 𝑦

)(

𝑥

(

≥ 0 ⟺ 𝑥

(

,% -,.

𝑥

!-

= 𝑏

𝑚

− 𝑦

*(

𝑥

(

≥ 0 ⟺ 𝑥

(

,& --.

(16)

Quindi, considerando i rapporti in cui yik >0, il valore assunto dalla

variabile xk sarà:

Il precedente test viene chiamato test dei minimi rapporti ed è utilizzato per individuare la variabile in base xBr che si azzererà per prima, al crescere di xk, e che quindi uscirà dalla base.

x

k

=

b

r

y

rk

= min

1im

b

i

y

ik

: y

ik

> 0

𝑥!' = 𝑏1 − 𝑦$)𝑥) ≥ 0 ⟺ 𝑏1 − 𝑦$) 𝑏𝑟 𝑦/) ≥ 0 𝑥!( = 𝑏𝑟 − 𝑦/)𝑥) ≥ 0 ⟺ 𝑏𝑟 − 𝑦/) 𝑏𝑟 𝑦/) ≥ 0 𝑥!) = 𝑏𝑚 − 𝑦0)𝑥) ≥ 0 ⟺ 𝑏𝑚 − 𝑦0) 𝑏𝑟 𝑦/) ≥ 0 ………...……… ………...………

(17)

Riassumendo:

• Fare assumere ad xk un valore positivo significa portare la variabile

xk in base.

• Nello stesso tempo il valore delle variabili di base: Ø Cresce se yik < 0;

Ø Decresce se yik > 0;

Ø Non cambia se yik=0.

• Il valore che assume xk in base è calcolato tramite il test dei minimi rapporti:

• La variabile xBr esce dalla base.

x

k

=

b

r

y

rk

= min

1im

b

i

(18)

Il coefficiente yrk è detto Pivot, (l’aggiornamento della base si dice Pivoting) e viene usato per aggiornare i valori delle variabili in base dopo l’ingresso in base di xk.

La nuova soluzione di base Le nuove variabili fuori base

𝑥

!1

= 𝑏

𝑖

− 𝑦

+(

𝑏

𝑟

𝑦

.(

𝑥

&

= 0 ∀𝑗 ∈ 𝑁′ con 𝑁

/

= {𝐵

.

} ∪ N\{k}

𝑥

(

=

𝑏

𝑟

𝑦

.(

(19)

Con il cambio delle variabili in base, la nuova matrice di

base risulta composta delle stesse colonne della vecchia

base ad eccezione del fatto che

la colonna associata a

è

stata sostituita dalla colonna associata a x

k

.

(20)

La nuova soluzione di base (a meno di casi degeneri) ha migliorato il valore della funzione obiettivo:

>0 >0

𝑧 = 𝑧( − (𝑧) − 𝑐)) 𝑏𝑟

𝑦𝑟𝑘 < 𝑧0

Riferimenti

Documenti correlati

Data una matrice A (mxn) è possibile definire alcune operazioni sulle righe e sulle colonne utili a risolvere un sistema di equazioni lineari.. Operazioni elementari

soluzione), supponiamo che il coefficiente di una delle variabili sia cambiato

Attraverso il software Statistica 6.0 da una matrice di partenza composta da m colonne (le variabili, rappresentate dalle concentrazioni degli elementi) e n righe (i campioni),

R 4 alla base canonica E, ovvero la matrice che porta come colonne le coordinate dei vettori della base B ort.. La matrice del cambio di coordinate dalla base E alla base

Le due basi sono quella originaria, i cui elementi sono le variabili originarie (TD ecc.), e la base delle componenti principali, cioè la base degli autovettori della matrice Q..

Se C ` e la matrice associata al cambiamente di base dalla base canonica a questa nuova base, allora CAC −1 ` e una matrice diagonale con sulla diagonale n, 0, 0,... Quale pu` o

caso 1.2) variazione di un coefficiente di costo relativo ad una variabile in base. Data una soluzione di base ottima supponiamo che il coefficiente di una delle variabili

Stabilire se esiste una base di V rispetto alla quale la matrice associata a f