• Non ci sono risultati.

I problemi di PL in forma standard

N/A
N/A
Protected

Academic year: 2021

Condividi "I problemi di PL in forma standard"

Copied!
128
0
0

Testo completo

(1)

Il metodo del simplesso

(2)

I problemi di PL in forma standard

I problemi di PL in forma standard hanno la seguente formulazione:

max cx

aix = bi i = 1, . . . , m x ≥ 0

o, equivalentemente, in forma matriciale:

max cx

Ax = b x ≥ 0

(3)

Un’osservazione

Osservazione

Ogni problema di PL in forma canonica può essere trasformato in uno equivalente in forma standard.

(4)

Dimostrazione

Problema di PL in forma canonica

max cx

aix ≤ bi i = 1, . . . , m x ≥ 0

aix ≤ bi ⇔ aix + yi = bi, yi ≥ 0.

Quindi, il problema di PL in forma canonica è equivalente al seguente:

max cx

aix + yi = bi i = 1, . . . , m

(5)

Continua

Ogni problema di PL può essere ricondotto ad uno equivalente in forma canonica.

Ogni problema in forma canonica può essere ricondotto ad uno equivalente in forma standard.

Quindi: ogni problema di PL può essere ricondotto ad uno equivalente in forma standard.

NB: nella pratica si passa direttamente da un problema di PL in forma generica ad uno equivalente in forma standard, senza passare necessariamente attraverso un problema in forma canonica.

(6)

Un esempio

Si trasformi il seguente problema di PL in forma generica in un problema di PL in forma standard

min x1 + x2 + x3 x1 + 2x2 − x3 ≤ 3 x1 + 4x2 + 5x3 = 5

x1 − 2x2 + x3 ≥ 3 x1 ≥ 0

x2 ≤ 0

x3 libera in segno

(7)

Ipotesi aggiuntiva

Si richiede che la matrice dei vincoli A ∈ Rm×n abbia rango pari a m, il numero delle sue righe, il che equivale a

richiedere che:

non ci sono righe di A ottenibili come combinazioni lineari di altre righe di A;

esistono m colonne della matrice A che formano una matrice quadrata invertibile.

NB: Si può dimostrare che anche questa non è una

condizione restrittiva e che ci si può sempre ricondurre ad essa.

(8)

Esempi

A1 =



1 2 1 3 2 1 3 4 3 0 5 5



Rango di A1 < m = 3

A2 =

"

1 2 2 1 −1 3 7 1 3 1

#

Rango di A2 = m = 2

(9)

Base di un problema di PL

Si definisce base di un problema di PL in forma standard un sottinsieme:

B = {xi1, . . . , xim}

di m delle n variabili del problema di PL con la proprietà che la matrice AB ∈ Rm×m ottenuta considerando le sole

colonne di A relative alle variabili xik, k = 1, . . . , m, sia invertibile.

Le variabili dell’insieme B verranno dette variabili in base, quelle al di fuori di B verranno raggruppate nell’insieme:

N = {xim+1, . . . , xin}

(10)

Un esempio

Dato

max 3x1 + 4x2 + 2x3 + 2x4 + x5 x1 + 2x2 + 2x3 + x4 − x5 = 2 x1 + 2x2 + x3 + 4x4 − 2x5 = 2

x1, x2, x3, x4, x5 ≥ 0 Matrice dei vincoli

A =

"

1 2 2 1 −1 1 2 1 4 −2

#

(11)

Continua

B1 = {x1, x2} → non è una base. Infatti

AB

1 =

"

1 2 1 2

#

non è invertibile

Invece, B2 = {x1, x3} è una base in quanto:

AB

2 =

"

1 2 1 1

#

è invertibile

Allo stesso modo si verifichi che B3 = {x3, x4} e B4 = {x4, x5} sono basi.

(12)

Riformulazione rispetto alla base B

Data una base B, indichiamo con:

xB ∈ Rm il vettore delle variabili in base

xN ∈ Rn−m il vettore delle variabili fuori base

cB ∈ Rm il vettore dei costi relativi alle variabili in base cN ∈ Rn−m il vettore dei costi relativi alle variabili fuori base

AN ∈ Rm×(n−m) la matrice ottenuta da A considerando le sole colonne relative alle variabili fuori base.

(13)

Nell’esempio

Con la base B = {x1, x3} abbiamo:

xB = (x1 x3)

xN = (x2 x4 x5) cB = (3 2)

cN = (4 2 1)

AN =

"

2 1 −1 2 4 −2

#

(14)

Riscrittura della riformulazione

Possiamo ora riscrivere il problema di PL in forma standard nella seguente forma equivalente:

max cBxB + cNxN

ABxB + ANxN = b xB, xN ≥ 0

e quindi anche in questo modo:

max cBxB + cNxN ABxB = b − ANxN

xB, xN ≥ 0

(15)

Nell’esempio

max

cBxB

z }| { 3x1 + 2x3 +

cNxN

z }| {

4x2 + 2x4 + x5

ABxB

z }| { x1 + 2x3 +

ANxN

z }| {

2x2 + x4 − x5 = 2 x1 + x3 + 2x2 + 4x4 − 2x5 = 2

x1, x3

| {z }

xB

, x2, x4, x5

| {z }

xN

≥ 0

(16)

E quindi ...

max

cBxB

z }| { 3x1 + 2x3 +

cNxN

z }| {

4x2 + 2x4 + x5

ABxB

z }| { x1 + 2x3 =

b−ANxN

z }| {

2 − 2x2 − x4 + x5 x1 + x3 = 2 − 2x2 − 4x4 + 2x5

x1, x3

| {z }

xB

, x2, x4, x5

| {z }

xN

≥ 0

(17)

Continua

Moltiplichiamo ora i vincoli di uguaglianza per A−1B : max cBxB + cNxN

A−1

B ABxB = A−1B b − A−1B ANxN xB, xN ≥ 0

e quindi da A−1B ABxB = IxB = xB

max cBxB + cNxN

xB = A−1B b − A−1B ANxN xB, xN ≥ 0

Questo equivale a risolvere il sistema dato dai vincoli di

(18)

Nell’esempio

max 3x1 + 2x3 + 4x2 + 2x4 + x5 x1 = 2 − 2x2 − 7x4 + 3x5

x3 = 0 + 3x4 − x5 x1, x3, x2, x4, x5 ≥ 0

(19)

Riformulazione rispetto alla base B

Infine, sostituendo xB nell’obiettivo:

cBxB + cNxN = cB A−1

B b − A−1B ANxN

+ cNxN da cui:

max cBA−1

B b + (cN − cBA−1

B AN)xN xB = A−1B b − A−1B ANxN

xB, xN ≥ 0

Questa riformulazione viene detta riformulazione del problema di PL rispetto alla base B.

NB: tale riformulazione è del tutto equivalente al problema

(20)

Nell’esempio

Riformulazione rispetto alla base B = {x1, x3}: max 6 − 2x2 − 13x4 + 8x5

x1 = 2 − 2x2 − 7x4 + 3x5 x3 = 0 + 3x4 − x5

x1, x3, x2, x4, x5 ≥ 0

(21)

Soluzioni di base

Si definisce soluzione di base associata alla base B, la seguente soluzione del sistema di vincoli di uguaglianza ottenuta ponendo xN = 0:

xB = A−1B b xN = 0.

Nell’esempio:

x1 = 2 x3 = 0 x2 = x4 = x5 = 0

(22)

Ammissibilità e non degenerazione

Se A−1B b ≥ 0 la soluzione di base si dice ammissibile.

Questo vuol dire che appartiene alla regione ammissibile del problema di PL in quanto, oltre a soddisfare i vincoli di uguaglianza del problema, soddisfa anche quelli di non negatività delle variabili.

Se inoltre si ha A−1B b > 0 si parla di soluzione di base non degenere, altrimenti si parla di soluzione di base degenere.

(23)

Nell’esempio

B2 = {x1, x3} → soluzione di base ammissibile e degenere B3 = {x3, x4}: la soluzione di base è

x3 = 6/7 x4 = 2/7 x1 = x2 = x5 = 0, che è ammissibile e non degenere

B4 = {x4, x5}: la soluzione di base è

x4 = −1 x5 = −3 x1 = x2 = x3 = 0, che è non ammissibile.

(24)

Osservazione

Data una soluzione di base ammissibile e non degenere esiste un’unica base che la rappresenta, mentre una

soluzione di base ammissibile e degenere è rappresentata da più basi.

Si verifichi, ad esempio, che la base B5 = {x1, x4} ha come soluzione di base associata:

x1 = 2 x4 = 0 x2 = x3 = x5 = 0, che è la stessa associata alla base B2.

(25)

Ma ...

... cosa hanno a che fare le basi e le soluzioni di base con il teorema fondamentale della PL?

La risposta ci viene dalla seguente osservazione.

Osservazione L’insieme dei vertici di Sa coincide con l’insieme delle soluzioni di base ammissibili del problema di PL.

In pratica, vertici e di soluzioni di base ammissibili sono la stessa cosa vista da due punti di vista diversi: quello

geometrico (i vertici) e quello algebrico (le soluzioni di base ammissibili).

(26)

Basi adiacenti

Due basi B e B′′ si definiscono adiacenti se hanno m − 1 variabili uguali e differiscono per una sola variabile.

Nell’esempio le basi B3 = {x3, x4} e B4 = {x4, x5} sono adiacenti, mentre non lo sono B2 = {x1, x3} e B4.

(27)

Soluzioni di base adiacenti

Due soluzioni di base distinte si definiscono adiacenti se

esistono due basi B e B′′ che le rappresentano e che sono tra loro adiacenti.

Si noti che due basi adiacenti non corrispondono

necessariamente a due soluzioni di base adiacenti. Esse infatti possono corrispondere alla stessa soluzione di base come accade, ad esempio, con le basi B2 = {x1, x3} e

B5 = {x1, x4}.

(28)

Riformulazione rispetto alla base B

Sia data la base:

B = {xi1, . . . , xim}.

con

N = {xim+1, . . . , xin}

l’insieme delle variabili fuori base. Abbiamo visto che, data la base B, la riformulazione del problema di PL rispetto alla base B è data da

max cBA−1

B b + (cN − cBA−1

B AN)xN xB = A−1B b − A−1B ANxN

(29)

Continua

Indichiamo con:

γ0 il valore cBA−1B b;

γj, j = 1, . . . , n − m, le componenti del vettore cN − cBA1

B AN;

βr, r = 1, . . . , m, le componenti del vettore A−1B b;

αrj, r = 1, . . . , m, j = 1, . . . , n − m, le componenti della matrice −A−1B AN

(30)

Continua

In forma scalare possiamo riscrivere la riformulazione rispetto alla base B nel seguente modo:

max γ0 + Pn−m

j=1 γjxim+j xi1 = β1 + Pn−m

j=1 α1jxim+j

· · · xik = βk + Pn−m

j=1 αkjxim+j

· · ·

xim = βm + Pn−m

j=1 αmjxim+j x1, . . . , xn ≥ 0

(31)

Nell’esempio

Riformulazione rispetto alla base B2 = {x1, x3}: max 6 − 2x2 − 13x4 + 8x5

x1 = 2 − 2x2 − 7x4 + 3x5 x3 = 0 + 3x4 − x5

x1, x3, x2, x4, x5 ≥ 0

(32)

Passaggio ad una base adiacente

Supponiamo ora di voler passare dalla base B alla base adiacente B ottenuta rimuovendo da B la variabile xik,

1 ≤ k ≤ m, e sostituendola con la variabile fuori base xim+h, 1 ≤ h ≤ n − m, ovvero:

B = {xi1, . . . , xik−1, xim+h, xik+1, . . . , xim}.

La prima domanda che ci dobbiamo porre è :

quando B è effettivamente una base. Perché lo sia si deve avere che AB è invertibile.

(33)

Continua

Si ha che AB è invertibile e quindi B è una base se e solo

se nella riformulazione associata alla base B il coefficiente di xim+h nell’equazione relativa a xik è diverso da 0, ovvero se e solo se:

αkh 6= 0.

Nell’esempio:

{x1, x2} non è una base {x1, x5} è una base

(34)

L’operazione di cardine

Tale operazione consente di passare dalla riformulazione rispetto alla base B a quella rispetto alla base adiacente B. Per fare questo dovremo compiere le seguenti operazioni.

Ricavare xim+h dall’equazione relativa a xik, cioè:

xim+h = − βk

αkh + 1

αkh xik

n−mX

j=1, j6=h

αkj

αkh xim+j. sostituire ogni occorrenza della variabile xim+h nelle

restanti equazioni e nell’obiettivo con la parte destra di tale equazione

(35)

Esempio

Dalla riformulazione rispetto a B2 = {x1, x3} a quella rispetto a B6 = {x1, x5}

Ricavo x5 dall’equazione relativa a x3 x5 = 0 − x3 + 3x4

Sostituisco la parte destra dell’equazione nei restanti vincoli e nell’obiettivo

max 6 − 2x2 − 13x4 + 8(0 − x3 + 3x4) x1 = 2 − 2x2 − 7x4 + 3(0 − x3 + 3x4)

x5 = 0 − x3 + 3x4 x1, x3, x2, x4, x5 ≥ 0

(36)

Riformulazione rispetto a B 6 = {x 1 , x 5 }

max 6 − 2x2 − 8x3 + 11x4 x1 = 2 − 2x2 + 2x4 − 3x3

x5 = 0 − x3 + 3x4 x1, x3, x2, x4, x5 ≥ 0

(37)

Nota bene

Per poter recuperare dalle riformulazioni alcune

informazioni (nel seguito vedremo, ad esempio, come

sfruttare la riformulazione rispetto a una base B per poter ottenere la matrice A−1B ) è necessario mantenere un ordine tra le variabili in una base. Quindi se nella base B la

variabile xim+h sostituisce la variabile xik a cui corrisponde la k-esima equazione della riformulazione rispetto a B,

nella riformulazione rispetto a B l’equazione relativa alla variabile xim+h dovrà ancora essere la k-esima, mentre la posizione delle equazioni relative a tutte le altre variabili deve rimanere invariata rispetto alla precedente

riformulazione.

(38)

Nell’esempio ...

... la variabile x5 ha preso il posto della x3 e l’equazione relativa alla x5 è stata messa nella stessa posizione (la

seconda) in cui si trovava quella della x3, mentre la restante equazione ha mantenuto la posizione originaria.

(39)

Un altro esempio

Passaggio da B6 = {x1, x5} a B4 = {x4, x5} Ricavo x4 dall’equazione relativa a x1

x4 = −1 + 1/2x1 + x2 + 3/2x3

Sostituisco la parte destra dell’equazione nei restanti vincoli e nell’obiettivo

max 6 − 2x2 − 8x3 + 11(−1 + 1/2x1 + x2 + 3/2x3) x4 = −1 + 1/2x1 + x2 + 3/2x3

x5 = 0 − x3 + 3(−1 + 1/2x1 + x2 + 3/2x3) x1, x3, x2, x4, x5 ≥ 0

(40)

Continua

Riformulazione rispetto a B4 = {x4, x5}:

max −5 + 11/2x1 + 9x2 + 17/2x3 x4 = −1 + 1/2x1 + x2 + 3/2x3 x5 = −3 + 3/2x1 + 3x2 + 7/2x3

x1, x3, x2, x4, x5 ≥ 0

(41)

Nota bene

Le operazioni di cardine che abbiamo eseguito sugli

esempi ci hanno consentito di passare da una base ad una adiacente e, nel secondo esempio, anche da una soluzione di base ad una adiacente. Tuttavia, nel secondo caso

siamo passati da una soluzione di base ammissibile (quella associata a B6) ad una non ammissibile (quella associata a B4). Nell’algoritmo di risoluzione che ci apprestiamo a

discutere la scelta della base adiacente verso cui muoversi non verrà fatta a caso come abbiamo fatto nei precedenti esempi, ma sarà guidata da regole precise che

fondamentalmente ci consentiranno di spostarsi tra vertici della regione ammissibile migliorando il valore della

funzione obiettivo.

(42)

Ipotesi iniziale

Data la base B e la riformulazione rispetto ad essa:

max γ0 + Pn−m

j=1 γjxim+j xi1 = β1 + Pn−m

j=1 α1jxim+j

· · · xik = βk + Pn−m

j=1 αkjxim+j

· · ·

xim = βm + Pn−m

j=1 αmjxim+j x1, . . . , xn ≥ 0

supponiamo che βk ≥ 0, k = 1, . . . , m, ovvero la base B è

(43)

Nota bene

Due problemi non banali sono:

stabilire se esiste una base ammissibile (o, equivalentemente, stabilire se Sa 6= ∅)

nel caso esista, determinarne una.

Questi problemi li affronteremo in seguito. Per il momento supponiamo di avere già a disposizione una base

ammissibile B.

(44)

Coefficienti di costo ridotto

I coefficienti γj delle variabili fuori base nell’obiettivo della riformulazione rispetto alla base B vengono detti coefficienti di costo ridotto delle variabili fuori base.

Questi esprimono la variazione dell’obiettivo in

corrispondenza dell’incremento di un’unità della variabile fuori base corrispondente.

(45)

Infatti ...

... se consideriamo l’obiettivo della riformulazione:

γ0 +

n−mX

j=1

γjxim+j,

e supponiamo di tenere a 0 il valore di tutte le variabili fuori base tranne la variabile xim+h il cui valore viene

incrementato a 1, otteniamo Il nuovo valore dell’obiettivo γ0 + γh con una variazione rispetto al valore γ0 (quello nella soluzione di base associata a B) pari proprio al valore γh del coefficiente di costo ridotto della variabile fuori base xim+h.

(46)

Un esempio

Sia data la seguente riformulazione rispetto alla base ammissibile {x1, x2} di un problema di PL:

max 2 + x3 − x4 x1 = 2 + x3 + x4 x2 = 1 + 2x3 + x4

x1, x2, x3, x4 ≥ 0

Il valore dell’obiettivo nella corrispondente soluzione di base è la costante che appare nell’obiettivo (2).

(47)

Continua

Se teniamo a 0 il valore di x4 e portiamo a 1 quello di x3, il valore dell’obiettivo diventa 3, con una variazione pari al coefficiente di costo ridotto (+1) di x3

Se teniamo a 0 il valore di x3 e portiamo a 1 quello di x4, il valore dell’obiettivo diventa 1, con una variazione pari al coefficiente di costo ridotto (-1) di x4

(48)

Verifica di ottimalità

Alla base ammissibile B è associata una soluzione di base ammissibile (un vertice di Sa). Posso stabilire se questa

soluzione appartiene a Sott?

Data una variabile fuori base, il cui valore è nullo nella soluzione di base associata a B, quando "conviene" far crescere da 0 il valore di tale variabile?

Solo quando il suo coefficiente di costo ridotto è positivo, altrimenti il valore dell’obiettivo o rimane invariato (se il coefficiente è nullo) o diminuisce (se è negativo).

(49)

Quindi ...

... se tutte le variabili fuori base hanno coefficiente di costo ridotto minore o uguale a 0, ovvero

γj ≤ 0 j = 1, . . . , n − m.

la soluzione di base associata a B è soluzione ottima del problema di PL.

(50)

Una dimostrazione formale

Il valore dell’obiettivo in corrispondenza della soluzione di base associata a B è γ0.

Inoltre in Sa si ha xim+j ≥ 0, j = 1, . . . , n − m. Quindi per il valore dell’obiettivo in Sa si avrà:

γ0 +

n−mX

j=1

γj

|{z}≤0

xim+j

| {z }

≥0

≤ γ0,

ovvero in Sa il valore dell’obiettivo non può mai superare il valore γ . Essendo questo anche il valore dell’obiettivo per

(51)

In forma vettoriale

Ricordando che γj sono le componenti del vettore cN − cBA−1

B AN (detto anche, per questa ragione, vettore dei coefficienti di costo ridotto), in forma vettoriale la

condizione sufficiente di ottimalità si esprime nel modo seguente:

cN − cBA−1

B AN ≤ 0.

(52)

La condizione non è necessaria!

Può succedere che la soluzione di base sia già una soluzione ottima ma la condizione di ottimalità non sia soddisfatta. Ciò però può accadere solo nel caso di una soluzione di base degenere.

(53)

Un esempio

Sia data la seguente riformulazione rispetto alla base {x3, x4} di un problema di PL:

max x1

x3 = 1 − x2 x4 = −x1

x1, x2, x3, x4 ≥ 0 La soluzione di base corrispondente è:

x3 = 1 x4 = 0 x1 = x2 = 0.

Si noti che è degenere. La condizione di ottimalità non è soddisfatta (il coefficiente di x1 nell’obiettivo è pari a 1).

(54)

Continua

Passiamo ora, con l’operazione di cardine, alla base

adiacente {x1, x3}. La riformulazione rispetto a questa base è la seguente:

max −x4

x3 = 1 − x2 x1 = −x4

x1, x2, x3, x4 ≥ 0

Ora la condizione di ottimalità è soddisfatta e quindi la

soluzione di base associata è ottima. Ma se osserviamo la soluzione di base associata, questa coincide esattamente

(55)

Osservazione

Si può dimostrare che data una soluzione di base ottima esiste sempre almeno una base corrispondente per la quale la condizione di ottimalità è soddisfatta.

Nell’esempio abbiamo visto come la stessa soluzione di base sia rappresentata sia dalla base {x3, x4} che dalla base {x1, x3}. La prima base non soddisfa la condizione, ma questa è soddisfatta dalla seconda base.

(56)

Verifica di illimitatezza

Supponiamo ora che la condizione di ottimalità non sia soddisfatta. Un’altra domanda che possiamo porci è la seguente: quando il problema ha valore dell’obiettivo illimitato?

Una condizione sufficiente perché questo si verifichi è la seguente:

∃ γh > 0 : αrh ≥ 0 r = 1, . . . , m.

(57)

Infatti ...

... nella riformulazione rispetto alla base B poniamo a zero tutte le variabili fuori base tranne la variabile xim+h con

γh > 0. Ciò che rimane è:

max γ0 + γhxim+h

xi1 = β1 + α1hxim+h

· · ·

xim = βm + αmhxim+h x1, . . . , xn ≥ 0

Cosa succede se faccio crescere il valore della variabile xim+h?

(58)

Continua

Per ogni r ∈ {1, . . . , m}: xir = βr

|{z}≥0

+ αrh

|{z}≥0

xim+h

| {z }

≥0

≥ 0,

quindi per ogni possibile valore non negativo di xim+h le

variabili in base continuano ad avere valore non negativo e quindi rimaniamo all’interno di Sa.

Ma vediamo ora cosa succede all’obiettivo:

γ0 + γh

|{z} xim+h

x |{z}→+∞

+∞,

(59)

Un esempio

Sia data la seguente riformulazione rispetto alla base {x1, x2} di un problema di PL:

max 2 + x3 − x4 x1 = 2 + x3 + x4 x2 = 1 + 2x3 + x4

x1, x2, x3, x4 ≥ 0

Il coefficiente di x3 nell’obiettivo è positivo e non negativi sono anche i coefficienti di x3 nelle equazioni dei vincoli.

(60)

Continua

Se poniamo x4 = 0 e x3 = t ≥ 0 il problema diventa:

max 2 + t

x1 = 2 + t x2 = 1 + 2t x1, x2, x3, x4 ≥ 0 da cui si nota che i punti

x1 = 2 + t x2 = 1 + 2t x3 = t x4 = 0

sono tutti in Sa per ogni t ≥ 0, mentre il valore dell’obiettivo cresce a +∞ al crescere di t a +∞.

(61)

Cambio di base

Cosa succede se nessuna delle due condizioni di arresto (ottimalità e illimitatezza) è soddisfatta?

Effettuo un cambio di base passando da quella attuale ad una adiacente.

Ma come scelgo la base adiacente verso cui spostarmi?

Voglio cercare di spostarmi in una base adiacente che:

sia ancora ammissibile

la soluzione di base corrispondente abbia valore della funzione obiettivo non peggiore rispetto a quella attuale.

(62)

Variabile da far entrare in base

Scelgo la variabile fuori base da far entrare in base cercando di garantire un miglioramento del valore dell’obiettivo

Quali variabili fuori base (e quindi a valore nullo nella soluzione di base) possono consentirmi di migliorare il valore dell’obiettivo?

Dovremo far crescere quelle con coefficiente di costo ridotto γj positivo (facendo crescere le altre il valore dell’obiettivo diminuisce oppure non cambia). Quindi dobbiamo restringere l’attenzione alle sole variabili

(63)

E...

... se c’è più di una variabile con coefficiente di costo ridotto positivo?

Qui adotteremo la regola di scelta tra queste variabili che consiste nel scegliere quella che fa crescere più

rapidamente il valore dell’obiettivo e cioè la variabile xim+h tale che:

γh = max

j=1,...,n−m γj,

tenendo comunque presente che questa non è l’unica regola possibile.

Nel caso il massimo sia raggiunto da più variabili adottiamo

(64)

Nell’esempio

Data la seguente riformulazione rispetto alla base {x1, x2} di un problema di PL:

max 2 + 2x3 + 2x4 + x5 x1 = 1 − x3 + x4 + x5 x2 = 2 − x3 − x4 − x5

x1, x2, x3, x4, x5 ≥ 0

In questo caso tutte le variabili fuori base hanno

coefficiente di costo ridotto positivo. Tra queste considero quelle il cui coefficiente di costo ridotto è massimo (la x3 e la x4). Tra le due scelgo quella con indice minore e quindi la

(65)

Variabile uscente dalla base

Una volta scelta la variabile xim+h che dovrà entrare in base, quale variabile in base dovrà farle posto, ovvero quale sarà la variabile in base xik che dovrà uscire dalla base?

Se la scelta della variabile che entra in base è guidata dal desiderio di far crescere il valore dell’obiettivo, la scelta della variabile uscente dalla base sarà motivata dal

desiderio di non uscire dalla regione ammissibile.

(66)

Continua

Nella riformulazione rispetto alla base corrente fissiamo a 0 tutte le variabili fuori base tranne la xim+h. Si avrà dunque:

max γ0 + γhxim+h

xi1 = β1 + α1hxim+h

· · ·

xim = βm + αmhxim+h x1, . . . , xn ≥ 0

Fino a quando possiamo far crescere il valore di xim+h senza uscire dalla regione ammissibile?

(67)

Continua

Abbiamo due casi:

Caso 1 Per tutti gli r ∈ {1, . . . , m} tali che αrh ≥ 0 vediamo che:

xir = βr + αrh

|{z}≥0

xim+h

| {z }

≥0

≥ βr ≥ 0.

Quindi in questo caso non abbiamo alcuna restrizione sulla crescita di xim+h.

(68)

Continua

Caso 2 Per gli r tali che αrh < 0, allora vediamo che il valore di xim+h può crescere al massimo fino a:

− βr αrh

e oltre questo valore la variabile xir assume valori

negativi (si esce quindi dalla regione ammissibile Sa).

(69)

Quindi ...

... se vogliamo rimanere in Sa, ci dobbiamo arrestare non appena una variabile xir con αrh < 0 si annulla al crescere di xim+h. Questa sarà la variabile xik tale che

αkh < 0 e − βk

αkh = min

r : αrh<0



− βr αrh

 .

(Criterio dei minimi rapporti).

Nel caso il minimo sia raggiunto da più variabili la scelta ricade, per convenzione, su quella con indice più piccolo.

La variabile xik sarà quella che uscirà dalla base.

(70)

Nell’esempio

Abbiamo precedentemente scelto x3 come variabile

entrante in base. Quale variabile dovrà uscire dalla base?

Sia la x1 che la x2 sono candidate (per entrambe il

coefficiente di x3 nelle rispettive equazioni è negativo).

Qual è la prima che si annulla al crescere di x3?

(71)

Continua

Fissando a 0 tutte le variabili fuori base tranne la x3 si ottiene:

max 2 + 2x3 x1 = 1 − x3 x2 = 2 − x3

x1, x2, x3, x4, x5 ≥ 0

e si può vedere che per mantenersi in Sa (cioè per mantenere non negative le variabili in base x1 e x2)

possiamo far crescere x3 al massimo fino al valore 1. In

corrispondenza di tale valore si annulla la variabile x1 e tale variabile sarà quella che dovrà uscire di base.

(72)

Continua

Equivalentemente, utilizzando il criterio dei minimi rapporti:

x1 → − 1

−1 = 1 x2 → − 2

−1 = 2.

Il minimo dei rapporti (pari a 1) è raggiunto in

corrispondenza della variabile x1 e quindi questa sarà la variabile che dovrà uscire dalla base.

(73)

E infine ...

... una volta selezionata la variabile entrante in base (la xim+h) e quella uscente di base (la xik) con le regole viste, non resta che compiere l’operazione di cardine nel modo già descritto in precedenza ottenendo la riformulazione rispetto alla nuova base B.

(74)

Nell’esempio

Entra x3 ed esce x1.

L’operazione di cardine porta alla seguente riformulazione rispetto alla nuova base B = {x2, x3}:

max 4 − 2x1 + 4x4 + 3x5 x3 = 1 − x1 + x4 + x5 x2 = 3 + x1 − 2x4 − 2x5

x1, x2, x3, x4, x5 ≥ 0

(75)

Ed ora...

... non facciamo altro che iterare sulla nuova base B quanto fatto sulla base precedente B.

(76)

L’algoritmo del simplesso

Inizializzazione Sia B0 una base ammissibile e k = 0.

Passo 1- verifica ottimalit `a Se soddisfatta la condizione di ottimalità: STOP . La soluzione di base associata a Bk è una soluzione ottima del problema. Altrimenti si vada al Passo 2.

Passo 2 - verifica di illimitatezza Se è soddisfatta la

condizione di illimitatezza, allora: STOP, si ha Sott = ∅ in quanto l’obiettivo del problema è illimitato. Altrimenti si vada al Passo 3.

Passo 3 - scelta variabile entrante in base Si selezioni la variabile xim+h che dovrà entrare in base attraverso la

(77)

Il metodo del simplesso

Passo 4 - scelta variabile uscente dalla base Si selezioni la variabile xik che dovrà uscire dalla base attraverso la regola vista.

Passo 5 - operazione di cardine Si generi la nuova base Bk+1 sostituendo in Bk la variabile xik con la variabile xim+h e si esegua la corrispondente operazione di

cardine. Quindi, si ponga k = k + 1 e si ritorni al Passo 1.

(78)

Nell’esempio

Condizione di ottimalità? NO Condizione di illimitatezza? NO Variabile entrante in base: x4 Variabile uscente dalla base: x2 Operazione di cardine:

max 10 − 2x2 − x5

x3 = 5/2 − 1/2x1 − 1/2x2 x4 = 3/2 + 1/2x1 − 1/2x2 − x5

x1, x2, x3, x4, x5 ≥ 0

(79)

Continua

Condizione di ottimalità? SI!

Soluzione ottima: soluzione di base associata alla base {x3, x4}:

x1 = x2 = x5 = 0 x3 = 5/2 x4 = 3/2 Valore ottimo: γ0 = 10

(80)

Puntualizzazione

L’algoritmo del simplesso e i suoi derivati (di cui vedremo un esempio più avanti) non sono gli unici algoritmi di

risoluzione per problemi di PL.

Altri metodi di risoluzione per i problemi di PL sono i cosidetti algoritmi del punto interno.

(81)

E non dimentichiamo ...

... che abbiamo ipotizzato di avere già a disposizione una base ammissibile B0 ma non abbiamo ancora visto come si può stabilire se esiste e, nel caso esista, come trovarla.

(82)

Miglioramento valore obiettivo

Il valore dell’obiettivo nella nuova soluzione di base ottenuta sostituendo xik nella base con xim+h è

γ0 − γh βk αkh. con:

βk ≥ 0 per l’ammissibilità della soluzione di base associata a B.

γh > 0 per la regola di scelta della variabile entrante in base.

αkh < 0 per la regola di scelta della variabile uscente

(83)

Quindi ...

γ0 − γh

|{z}>0

≥0

z}|{βk αkh

|{z}<0

≥ γ0.

ovvero: il valore dell’obiettivo nella nuova soluzione di base associata a B è non peggiore rispetto al valore γ0 nella

soluzione di base associata a B.

(84)

Inoltre ...

...se βk > 0, il che si verifica sempre nel caso di soluzioni di base non degeneri, il nuovo valore dell’obiettivo è

strettamente migliore rispetto al precedente.

Nel caso degenere può succedere che i due valori siano uguali. In questo caso si può dimostrare che le due basi B e B rappresentano la stessa soluzione di base.

(85)

Finitezza del simplesso

Se tutte le soluzioni di base ammissibili in un problema di PL sono non degeneri, allora il metodo del simplesso

termina in un numero finito di iterazioni.

(86)

Infatti ...

... ad ogni iterazione la nuova soluzione di base

ammissibile (o vertice) ha un valore strettamente migliore rispetto alla precedente e quindi è diversa da tutte quelle che la hanno preceduta.

Essendo il numero di soluzioni di base ammissibili finito ( i vertici sono in numero finito), il metodo dovrà arrestarsi

dopo un numero finito di iterazioni o restituendo una soluzione ottima oppure stabilendo che il problema ha obiettivo illimitato.

(87)

E nel caso degenere?

Si può verificare la situazione di ciclaggio.

Trovandosi in un vertice degenere, l’algoritmo del simplesso può generare la seguente sequenza di basi che

rappresentano tutte questo stesso vertice degenere:

Bt→ Bt+1→ · · · → Bt+r−1→ Bt+r = Bt.

Una volta tornato nella base Bt si ripete tutto il ciclo: siamo entrati in un loop!

(88)

Ma ...

... la situazione di ciclaggio si verifica molto raramente nella pratica ed esistono anche regole particolari per la scelta

delle variabili da far entrare e uscire di base, dette regole anticiclaggio (che non vedremo), che consentono

all’algoritmo di terminare in un numero finito di iterazioni.

(89)

Soluzioni ottime uniche e multiple

Una volta trovata una soluzione ottima del problema (un punto in Sott) ci possiamo chiedere se ce ne sono altre.

Se

γj < 0 j = 1, . . . , m, allora: soluzione ottima unica

(90)

Infatti ...

... in Sa si avrà:

γ0 +

n−mX

j=1

γj

|{z}<0

xim+j

| {z }

≥0

≤ γ0,

Inoltre:

xim+j > 0 ⇒ γ0 +

n−mX

j=1

γjxim+j < γ0

Quindi il valore ottimo γ0 si ottiene solo con xim+j = 0 ∀ j,

(91)

Esempio

max 4 − x1 − x2 x3 = 2 + x1 − x2

x4 = 1 − 2x2 x1, x2, x3, x4 ≥ 0

(92)

E se esiste un qualche γ h = 0 ?

Esistono in tal caso più soluzioni ottime?

Non è detto. Sono possibili diversi casi.

(93)

Riformulazione ristretta

Riscriviamo la riformulazione rispetto alla base B tenendo a 0 tutte le variabili fuori base tranne la xim+h con γh = 0.

Avremo:

max γ0

xi1 = β1 + α1hxim+h

· · ·

xim = βm + αmhxim+h x1, . . . , xn ≥ 0

(94)

Caso 1

Esiste h tale che γh = 0 e

αrh ≥ 0 r = 1, . . . , m,

Esiste certamente un insieme illimitato di soluzioni ottime.

(95)

Esempio

max 4 − x2

x3 = 2 + x1 − x2 x4 = 1 − 2x2 x1, x2, x3, x4 ≥ 0 Per tutti i t ≥ 0, i punti

x1 = t x2 = 0 x3 = 2 + t x4 = 1 sono soluzioni ottime.

(96)

Caso 2

Esiste h tale che γh = 0 e

∀ r : αrh < 0 si ha che βr > 0,

Esiste certamente un insieme limitato di soluzioni ottime: il segmento che congiunge la soluzione di base attuale con quella (distinta) ottenuta attraverso un’operazione di

cardine che fa entrare in base xim+h e sceglie secondo la regola già vista la variabile da far uscire di base.

(97)

Esempio

max 4 − x2

x3 = 2 + x1 − x2 x4 = 1 − x1 + 2x2

x1, x2, x3, x4 ≥ 0 Per tutti i t ∈ [0, 1], i punti

x1 = t x2 = 0 x3 = 2 + t x4 = 1 − t sono soluzioni ottime.

(98)

Caso 3

Per ogni h tale che γh = 0 si ha che:

∃ r : αrh < 0 e βr = 0,

In tal caso non possiamo dire se esiste un’unica soluzione ottima o se vi sono soluzioni ottime multiple.

(99)

Esempio 1

max 4 − x2

x3 = 2 + x1 − x2 x4 = −x1 − x2 x1, x2, x3, x4 ≥ 0 Esiste una sola soluzione ottima.

(100)

Esempio 2

max 2 − x3

x4 = x1 − x2 − x3 x5 = −x1 + x2 + x3 x1, x2, x3, x4, x5 ≥ 0 Tutte le soluzioni:

x3 = x4 = x5 = 0 x1 = x2 = α ∀ α ≥ 0,

sono ammissibili e ottime (il caso α = 0 coincide con la soluzione di base associata alla base {x4, x5}).

(101)

Come calcolare A −1 B

Come vedremo è importante conoscere, data una base B e la relativa matrice AB, l’inversa A−1B di tale matrice. Non è però sempre necessario calcolare da zero tale inversa. In alcuni casi la riformulazione rispetto alla base B ci fornisce già la matrice A−1B . Quali sono questi casi?

Quelli in cui alcune colonne della matrice A formano la matrice identica I, ovvero esistono m variabili [xt1, . . . , xtm] le cui corrispondenti colonne nella matrice A formano la matrice identica di ordine m × m.

(102)

Esempio

max x1 − x3 − 2x4 − 2x5 x1 + x2 + x4 = 8 x1 − x2 + x3 = 4 x1 + 2x2 + x5 = 12 x1, x2, x3, x4, x5 ≥ 0 Prendiamo le m = 3 variabili [x4, x3, x5]

x4

 1 0

 x3

 0 1

 x5

 0 0



Riferimenti

Documenti correlati

La particolare struttura “quasi diagonale” del miniblocco di Jordan J i,j si ottiene inserendo tra le colonne della matrice di trasformazione T queste catene di

[r]

La matrice di trasferimento H(z) [o H(s) ] di un sistema dinamico lineare, coincide con la matrice di trasferimento della sola parte

In questo caso oc- corre procedere alla determinazione delle catene v (k) i,j di autovettori generalizzati per i = 1, 2,... In questo caso si preferisce utilizzare la forma reale

Il problema dato venga dapprima posto nella

Ogni Logical Process A, dichiara un valore di lookahead L A : il time stamp di ogni evento generato da LP deve essere LT A + L A. Il lookahead è necessario per

• L’aggiunta della rete anticipatrice (e quindi dello zero legato all’azione derivativa) permette di migliorare il margine di fase (allargando la banda). • Per la taratura si

Ogni problema in forma canonica può essere ricondotto ad uno equivalente in forma standard.. Quindi: ogni problema di PL può essere ricondotto ad uno equivalente in