• Non ci sono risultati.

Lezionidi RicercaOperativa Lezionen 12 °

N/A
N/A
Protected

Academic year: 2021

Condividi "Lezionidi RicercaOperativa Lezionen 12 °"

Copied!
28
0
0

Testo completo

(1)

Lezione n

°

12

Algoritmo del Simplesso:

- Metodo delle 2 Fasi - Metodo del Big-M - Esempi

R. Cerulli

F. Carrabs

Lezioni di Ricerca Operativa

Università degli Studi di Salerno

(2)

Metodo Delle Due Fasi

Dato il seguente problema di PL in forma STANDARD:

dove A è una matrice mxn, con m<n, a rango pieno e b ≥ 0, supponiamo di voler utilizzare il metodo del simplesso per risolvere il problema.

Ci occorre una base iniziale

𝑚𝑖𝑛 𝑧 = 𝑐

!

𝑥

A𝑥 = 𝑏

(3)

Metodo Delle Due Fasi

Se tra le colonne di A non è presente la matrice identità, l’individuazione di una sottomatrice quadrata mxm di A (ossia una base

di Rm da cui partire) può essere un’operazione costosa.

Il problema viene risolto modificando artificialmente il sistema dei vincoli come segue:

Si aggiunge una variabile artificiale yi ad ogni vincolo del sistema. Per costruzione, nel nuovo sistema è presente una matrice identità

(associata alle variabili y).

A𝑥 = 𝑏

𝑥 ≥ 0

A𝑥 + 𝐼𝑦 = 𝑏

𝑥 ≥ 0, 𝑦 ≥ 0

(4)

Metodo Delle Due Fasi

Una soluzione (x’,y’) del nuovo sistema sarà soluzione anche del sistema di partenza se e solo se y’=0.

Per ottenere una tale soluzione (se esiste) risolviamo il seguente problema di PL.

𝑚𝑖𝑛 𝑔 = .

!

𝑦

𝑖

A𝑥 + 𝐼𝑦 = 𝑏

𝑥 ≥ 0, 𝑦 ≥ 0

(5)

Metodo Delle Due Fasi

Per risolvere il nuovo problema possiamo utilizzare il simplesso a partire dalla matrice identità generata dalle colonne associate alle variabili artificiali y.

Quindi nella prima fase del metodo si risolve il problema:

Si noti che inizialmente tutte le variabili y sono in base mentre tutte le variabili x sono fuori base.

𝑚𝑖𝑛 𝑔 = '

!

𝑦𝑖 A𝑥 + 𝐼𝑦 = 𝑏 𝑥 ≥ 0, 𝑦 ≥ 0

Se il problema originale ammette una soluzione ottima finita, quale sarà il minimo numero di iterazioni necessarie al simplesso per azzerare le variabili artificiali?

(6)

Metodo Delle Due Fasi

Alla fine della prima fase possono verificarsi due casi:

1) g* > 0

Þ Ax=b non ammette soluzione. Il problema di

partenza è inammissibile e non si passa alla seconda fase.

2) g* = 0

Þ Ax=b ammette soluzione.

Si passa alla seconda fase risolvendo il problema iniziale

utilizzando la base ottima della prima fase come base di

partenza per il simplesso.

Perché non avremo mai un ottimo illimitato per il problema

della prima fase?

(7)

Metodo Delle Due Fasi: Esempio

Problema della

prima fase

𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 𝑥1 + 𝑥2 ≥ 1 𝑥1 + 2𝑥2 ≤ 4 𝑥 ≥ 0 𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 𝑥1 + 𝑥2 − 𝑥3 = 1 𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0 𝑚𝑖𝑛 𝑔 = 𝑥"# 𝑥1 + 𝑥2 − 𝑥3 + 𝑥"# = 1 𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0, 𝑥"# ≥ 0 Forma standard

D’ora in poi indicheremo le variabili artificiali con l’apice a per poterle distinguere dalle variabili del problema di partenza.

(8)

Metodo Delle Due Fasi:

𝟏

°

fase

Matrice Identità

(Base Iniziale)

𝑚𝑖𝑛 𝑔 = 𝑥"# 𝑥1 + 𝑥2 − 𝑥3 + 𝑥"# = 1 𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0, 𝑥"# ≥ 0

B = {5,4}

N = {1,2,3}

(9)

Metodo Delle Due Fasi:

𝟏

°

fase

Test di Ottimalità: calcolo di z

j

– c

j

per j∈N = {1,2,3}

𝐴

"

= 1 0

0 1

𝑥

𝐵

= 𝐴

"#$

𝑏 ⟹ 𝑥

𝐵

= 𝐼𝑏 ⟹ 𝑥

𝐵

= 𝑏

𝑥

%&

𝑥

4

=

𝐴

#$"

𝑏 = 1 0

0 1

4

1

= 1

4

𝑥

78

= 1,

𝑥

4

= 4

𝑧

1

− 𝑐

1

= 1 0 𝐼 1

1

− 0 = 1

𝑧

2

− 𝑐

2

= 1 0 𝐼 1

2

− 0 = 1

𝑧

3

− 𝑐

3

= 1 0 𝐼 −1

0

− 0 = −1

(10)

Metodo Delle Due Fasi:

𝟏

°

fase

x

2

entra in base

Quale variabile esce dalla base?

Test dei minimi rapporti:

𝑥

%&

esce dalla base; x

2

entra in base con valore 1

𝑥

%&

𝑥

4

= 𝑏 = 1

4

𝑦

2

= 𝐴

" #$

𝑎

2

= 𝐼 1

2

= 1

2

𝑥

2

= min

$'(')

𝑏

𝑖

𝑦

𝑖𝑘

: 𝑦𝑖𝑘 > 0 = min

$'(')

1

1

,

4

2

= 1 =

𝑏

1

𝑦

1𝑘

Nuova base: B = {2,4} N = {1,3,5}

(11)

Metodo Delle Due Fasi:

𝟏

°

fase

Test di Ottimalità: calcolo di z

j

– c

j

per j∈N = {1,3,5}

𝐴

"

= 1 0

2 1

𝑥

2

𝑥

4

=

𝐴

"#$

𝑏 = 1

−2 1

0

1

4

= 1

2

𝑧

1

− 𝑐

1

= 0 0

1

0

−2 1

1

1

− 0 = 0

𝐴

"#$

= 1

0

−2 1

𝑧

3

− 𝑐

3

= 0 0

1

0

−2 1

−1

0

− 0 = 0

𝑧

5

− 𝑐

5

= 0 0

1

0

−2 1

1

0

− 1 = −1

Soluzione ottima

(12)

Metodo Delle Due Fasi:

𝟏

°

fase

Soluzione Ottima della Prima fase

Si può passare alla seconda fase

Si risolve il problema iniziale utilizzando come base di partenza:

𝑔

= 𝑐

𝐵

𝐴

"#$

𝑏

𝑔

= 0 0

1

0

−2 1

1

4

= 0

B = {2,4} N = {1,3,5}

𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 𝑥1 + 𝑥2 − 𝑥3 = 1 𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0

(13)

Metodo Delle Due Fasi:

𝟐

°

fase

Test di Ottimalità: calcolo di z

j

– c

j

per j∈N = {1,3}

𝐴

"

= 1 0

2 1

𝑥

2

𝑥

4

=

𝐴

"#$

𝑏 = 1

−2 1

0

1

4

= 1

2

𝑧

1

− 𝑐

1

= −2 0

1

0

−2 1

1

1

− −1 = −1

𝐴

"#$

= 1

0

−2 1

𝑧

3

− 𝑐

3

= −2 0

1

0

−2 1

−1

0

− 0 = 2

x3 entra in base

(14)

Metodo Delle Due Fasi:

𝟐

°

fase

x

3

entra in base

Quale variabile esce dalla base?

Test dei minimi rapporti:

x

4

esce dalla base; x

2

entra in base con valore 1

𝑥

2

𝑥

4

= 1

2

𝑦

3

= 𝐴

"#$

𝑎

3

= 1

−2 1

0

−1

0

= −1

2

𝑥

3

= min

$'(')

𝑏

𝑖

𝑦

𝑖𝑘

: 𝑦𝑖𝑘 > 0 = min

$'(')

2

2

= 1 =

𝑏

2

𝑦

2𝑘

Nuova base: B = {2,3} N = {1,4}

(15)

Metodo Delle Due Fasi:

𝟐

°

fase

Test di Ottimalità: calcolo di z

j

– c

j

per j∈N = {1,4}

𝐴

"

= 1 −1

2

0

𝑥

2

𝑥

3

=

𝐴

"#$

𝑏 =

0

$ +

−1

$

+

1

4

= 2

1

𝑧

1

− 𝑐

1

= −2 0

0

1

?

2

−1

1

?

2

1

1

− −1 = −1 + 1 = 0

𝐴

#$"

=

0

1

?

2

−1

1

?

2

𝑧

4

− 𝑐

4

= −2 0

0

1

?

2

−1

1

?

2

0

1

− 0 = −1

Soluzione ottima

(16)

Metodo Del Big-M

Ø Nella prima fase del metodo delle due fasi, la funzione obiettivo del problema originale è completamente ignorata.

Ø La prima fase ha, infatti, come obiettivo l’individuazione di una qualsiasi soluzione di base ammissibile del problema originale e quindi non necessariamente una buona soluzione di base ammissibile.

Ø Il Big-M è un metodo alternativo al metodo delle 2 fasi che tiene conto anche della funzione obiettivo originale durante la risoluzione del problema.

(17)

Metodo Del Big-M

Il problema di PL viene risolto modificando artificialmente il sistema dei vincoli esattamente come fatto per il due fasi aggiungendo le

variabili artificiali al sistema.

Ciò che cambia è la funzione obiettivo usata dal metodo del Big-M.

Alla funzione obiettivo di P vengono sommate (nel caso di un problema di minimo) le variabili artificiali moltiplicate per un coefficiente M ”molto grande”.

𝑃 𝑀

𝑚𝑖𝑛 𝑧 = 𝑐

𝑇

𝑥 + 𝑀𝑦

A𝑥 + 𝐼𝑦 = 𝑏

𝑥 ≥ 0, 𝑦 ≥ 0

𝑃 𝑚𝑖𝑛 𝑧 = 𝑐

𝑇

𝑥

A𝑥 = 𝑏

𝑥 ≥ 0

(18)

Metodo Del Big-M

Problema del Big-M

𝑃 𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 𝑥1 + 𝑥2 ≥ 1 𝑥1 + 2𝑥2 ≤ 4 𝑥 ≥ 0 𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 𝑥1 + 𝑥2 − 𝑥3 = 1 𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0 𝑃 𝑀 𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 + 𝑀𝑥"# 𝑥1 + 𝑥2 − 𝑥3 + 𝑥"# = 1 𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0, 𝑥"# ≥ 0 Forma standard

(19)

Matrice Identità

(Base Iniziale)

B = {5,4}

N = {1,2,3}

𝑃 𝑀 𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 + 𝑀𝑥"# 𝑥1 + 𝑥2 − 𝑥3 + 𝑥"# = 1 𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0, 𝑥"# ≥ 0

(20)

Test di Ottimalità: calcolo di z

j

– c

j

per j∈N = {1,2,3}

𝐴

"

= 1 0

0 1

𝑥

%&

𝑥

4

=

𝐴

#$"

𝑏 = 1 0

0 1

1

4

= 1

4

𝑧

1

− 𝑐

1

= 𝑀 0 𝐼 1

1

− −1 = 𝑀 + 1

𝑧

2

− 𝑐

2

= 𝑀 0 𝐼 1

2

− −2 = 𝑀 + 2

𝑧

3

− 𝑐

3

= 𝑀 0 𝐼 −1

0

− 0 = −𝑀

𝐴

"#$

= 1 0

0 1

𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 + 𝑀𝑥!" 𝑥1 + 𝑥2 − 𝑥3 + 𝑥!" = 1 𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0, 𝑥!" ≥ 0 Entra in base x2

(21)

x

2

entra in base

Quale variabile esce dalla base?

Test dei minimi rapporti:

𝑥

%&

esce dalla base; x

2

entra in base con valore 1

𝑥

%&

𝑥

4

= 𝑏 = 1

4

𝑦

2

= 𝐴

" #$

𝑎

2

= 𝐼 1

2

= 1

2

𝑥

1

= min

$'(')

𝑏

𝑖

𝑦

𝑖𝑘

: 𝑦𝑖𝑘 > 0 = min

$'(')

1

1

,

4

2

= 1 =

𝑏

1

𝑦

1𝑘

Nuova base: B = {2,4} N = {1,3,5}

(22)

Test di Ottimalità: calcolo di z

j

– c

j

per j∈N = {1,3,5}

𝐴

"

= 1 0

2 1

𝑥

2

𝑥

4

=

𝐴

"#$

𝑏 = 1

−2 1

0

1

4

= 1

2

𝑧

1

− 𝑐

1

= −2 0

1

0

−2 1

1

1

− −1 = −1

𝐴

"#$

= 1

0

−2 1

𝑧

3

− 𝑐

3

= −2 0

1

0

−2 1

−1

0

− 0 = 2

x3 entra in base 𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 + 𝑀𝑥!" 𝑥1 + 𝑥2 − 𝑥3 + 𝑥!" = 1 𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0, 𝑥!" ≥ 0

𝑧

5

− 𝑐

5

= −2 0

1

0

−2 1

1

0

− 𝑀 = −𝑀 − 2

(23)

x

3

entra in base

Quale variabile esce dalla base?

Test dei minimi rapporti:

x

4

esce dalla base; x

3

entra in base con valore 1

𝑥

2

𝑥

4

= 1

2

𝑦

3

= 𝐴

"#$

𝑎

3

= 1

−2 1

0

−1

0

= −1

2

𝑥

3

= min

$'(')

𝑏

𝑖

𝑦

𝑖𝑘

: 𝑦𝑖𝑘 > 0 = min

$'(')

2

2

= 1 =

𝑏

2

𝑦

2𝑘

Nuova base: B = {2,3} N = {1,4,5}

(24)

Test di Ottimalità: calcolo di z

j

– c

j

per j∈N = {1,4,5}

𝐴

"

= 1 −1

2

0

𝑥

2

𝑥

3

=

𝐴

"#$

𝑏 =

0

$ +

−1

$

+

1

4

= 2

1

𝑧1 − 𝑐1 = −2 0 0 < 1 2 −1 1<2 1 1 − −1 = −1 + 1 = 0

𝐴

"#$

=

0

1

?

2

−1

1

?

2

𝑧4 − 𝑐4 = −2 0 0 < 1 2 −1 1<2 0 1 − 0 = −1 Soluzione ottima 𝑧5 − 𝑐5 = −2 0 0 < 1 2 −1 1<2 1 0 − 𝑀 = −𝑀

Metodo Del Big-M

𝑚𝑖𝑛 𝑧 = −𝑥1 − 2𝑥2 + 𝑀𝑥!" 𝑥1 + 𝑥2 − 𝑥3 + 𝑥!" = 1

𝑥1 + 2𝑥2 + 𝑥4 = 4 𝑥 ≥ 0, 𝑥!" ≥ 0

(25)

Metodo Del Big-M: valore per M

Ø Quanto deve essere grande il valore della M affinchè il metodo del

Big-M lavori correttamente?

Il valore della M deve essere abbastanza grande da garantire che il valore della funzione obiettivo 𝑐𝑇𝑥, in una qualsiasi soluzione di base

ammissibile del problema P, sia sempre minore del valore della funzione obiettivo del Big-M in una qualsiasi soluzione di base ammissibile del problema P(M) avente almeno una variabile artificiale maggiore di zero.

Perché il valore della M è sempre finito anche se la regione ammissibile di P è aperta?

(26)

Metodo Del Big-M: possibili soluzioni

Risoluzione del problema

P(M)

Ottimo finito Ottimo illimitato 𝑥𝑎 = 0 Soluzione ottima per P 𝑥𝑎 ≠ 0 P è inammissibile 𝑥𝑎 = 0 Ottimo illimitato per P 𝑥𝑎 ≠ 0 P è inammissibile

(27)

Metodo Del Big-M: difetti

1. Non è facile calcolare il valore della M;

2. L’utilizzo di un valore molto grande, nella computazione dell’algoritmo, può rendere più complessi i calcoli da effettuare;

3. Se il valore di M è troppo grande, si possono verificare errori di rounding-off, durante la computazione, che possono alterare la corretta selezione delle variabili che devono entrare in base.

(28)

Esercizi

Risolvere i seguenti problemi di PL utilizzando sia il metodo delle due fasi sia il metodo del Big-M.

𝑚𝑖𝑛 𝑧 = −4𝑥1 − 𝑥2 2𝑥1 + 𝑥2 ≥ 4 𝑥1 + 2𝑥2 ≥ 4 𝑥 ≥ 0 𝑚𝑖𝑛 𝑧 = −4𝑥1 − 𝑥2 2𝑥1 + 𝑥2 ≤ 1 𝑥1 + 2𝑥2 ≥ 4 𝑥 ≥ 0

Riferimenti

Documenti correlati

impiegato per calcolarlo e il numero di iterazioni fatte, la soluzione ottima al termine dell’esecuzione, se trovata, con il tempo totale di calcolo, il numero di nodi esplorati e

Applicando il metodo di Fourier-Motzkin, risolvere il seguente problema di Programmazione Lineare, esibendo il valore della soluzione ottima (e delle variabili)

(5 punti) Si dimostri che se un problema di PL ammette pi` u di una soluzione ottima, allora ammette infinite soluzioni ottime..

Determinare per ciascuno di essi il numero di iterazioni necessarie, l’ordine di convergenza e il fattore asintotico di convergenza. Usare kmax=50, come numero massimo di iterazioni,

Indicare le approssimazioni della soluzione che si ottengono applicando tre iterazioni del metodo di bisezione partendo dall’intervallo deter- minato e tre iterazioni del metodo

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

a) i vincoli sono verificati dalle variabili duali ottime ottenute al punto 1. Allora la soluzione ottima duale non cambia e, per la dualit`a forte, neanche la soluzione ottima

il simplesso utilizzando come base iniziale le colonne della matrice (A,I) associate alle variabili artificiali y. y sono in base mentre tutte le variabili x sono