Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizi di Ottimizzazione Lineare: Metodo del Simplesso, Dispense di Matematica Generale

Questo documento spiega, passo dopo passo, il metodo del simplesso. è semplice da capire, efficace, e comunicativo. All'interno ci sono degli esempi, svolti passo dopo passo.

Tipologia: Dispense

2013/2014
In offerta
30 Punti
Discount

Offerta a tempo limitato


Caricato il 10/07/2014

elisabeta2
elisabeta2 🇮🇹

4

(5)

4 documenti

1 / 9

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
IL METODO DEL SIMPLESSO
Il metodo del simplesso si utilizza nella soluzione dei problemi di Programmazione Lineare, in
particolare per quelli che abbiano più di due variabili e che non possano essere ricondotti a problemi
di Programmazione Lineare in due variabili, perché se le variabili sono due o sono riconducibili a
due, si preferisce sempre il metodo grafico o quello algebrico.
Problemi di massimo :
si schematizza il problema riconoscendo qual è la funzione da massimizzare e scrivendo le
equazioni e le disequazioni che rappresentano i vincoli
se il sistema dei vincoli è espresso nella forma
++
++
++
0x0x0x
bxaxa
bxaxa
bxaxa
k21
knkn11k
2nn2121
1nn1111
...
...
...
...
...
si procede così:
si inseriscono le cosiddette variabili di scarto ( 321 sedss ,) in modo da far diventare il
sistema un sistema di equazioni:
++
++
++=
0x0x0x
20x
120x3x2x4
40xxx
vincoli
x350x200x300zremassimizzadafunzione
321
3
321
321
321
:
:
diventa
=+
=+++
=+++
+++++=
0s0s0s0x0x0x
20sx
120sx3x2x4
40sxxx
vincoli
s0s0s0x350x200x300zremassimizzadafunzione
321321
33
2321
1321
321321
:
:
si costruisce una tabella:
coefficienti z
base X1 X2 X3 S1 S2 S3 soluzioni
rapporti
0 S1 1 1 1 1 0 0 40 40/1=40
0 S2 4 2 3 0 1 0 120 120/3=40
0 S3 0 0 1 0 0 1 20 20/1=20
coef. z 300 200 350 0 0 0
z 0 0 0 0 0 0 0
=z-coef. z
-300 -200 -350 0 0 0
nella quale evidenziamo di rosso le colonne che rappresentano (con la matrice identità) la
prima soluzione ammissibile (o di base) e che corrispondono alla soluzione del sistema
scritto nella forma
=
=
=
33
3212
3211
x20s
x3x2x4120s
xxx40s
0z
0xxx20s120s40s 321321
=
======
La riga z si calcola facendo: [ 004010
+
+
] [ 002010
+
+
] [ 103010
+
+
]
ecc.
si attiva una delle variabili non di scarto per migliorare la soluzione, cioè si fa entrare
una nuova colonna della matrice identità al posto di un’altra; si sceglie di attivare la
variabile x3 perché nella riga
=z-coef. Z è quella che ha il valore più basso (-350) e, nel
disattivare una delle variabili attive, occorre fare attenzione che non diventi negativa
pf3
pf4
pf5
pf8
pf9
Discount

In offerta

Anteprima parziale del testo

Scarica Esercizi di Ottimizzazione Lineare: Metodo del Simplesso e più Dispense in PDF di Matematica Generale solo su Docsity!

IL METODO DEL SIMPLESSO

Il metodo del simplesso si utilizza nella soluzione dei problemi di Programmazione Lineare, in

particolare per quelli che abbiano più di due variabili e che non possano essere ricondotti a problemi

di Programmazione Lineare in due variabili, perché se le variabili sono due o sono riconducibili a

due, si preferisce sempre il metodo grafico o quello algebrico.

Problemi di massimo :

si schematizza il problema riconoscendo qual è la funzione da massimizzare e scrivendo le

equazioni e le disequazioni che rappresentano i vincoli

 se il sistema dei vincoli è espresso nella forma

x 0 x 0 x 0

a x a x b

a x a x b

a x a x b

1 2 k

k 1 1 kn n k

21 1 2 n n 2

11 1 1 n n 1

si procede così:

  • si inseriscono le cosiddette variabili di scarto ( s 1 , s 2 ed s 3 ) in modo da far diventare il

sistema un sistema di equazioni:

x 0 x 0 x 0

x 20

4 x 2 x 3 x 120

x x x 40

vincoli

funzionedamassimizzare z 300 x 200 x 350 x

1 2 3

3

1 2 3

1 2 3

1 2 3

diventa

x 0 x 0 x 0 s 0 s 0 s 0

x s 20

4 x 2 x 3 x s 120

x x x s 40

vincoli

funzionedamassimizzare z 300 x 200 x 350 x 0 s 0 s 0 s

1 2 3 1 2 3

3 3

1 2 3 2

1 2 3 1

1 2 3 1 2 3

  • si costruisce una tabella :

coefficienti z base X 1 X 2 X 3 S 1 S 2 S 3 soluzioni rapporti

0 S 1 1 1 1 1 0 0 40 40/1= 0 S 2 4 2 3 0 1 0 120 120/3=

0 S 3 0 0 1 0 0 1 20 20/1= 20

coef. z 300 200 350 0 0 0 z 0 0 0 0 0 0 0 ∆∆∆∆=z-coef. z -300^ -200^ -350^0 0

nella quale evidenziamo di rosso le colonne che rappresentano (con la matrice identità) la

prima soluzione ammissibile (o di base) e che corrispondono alla soluzione del sistema

scritto nella forma

3 3

2 1 2 3

1 1 2 3

s 20 x

s 120 4 x 2 x 3 x

s 40 x x x

z 0

s 1 40 s 2 120 s 3 20 x 1 x 2 x 3 0

La riga z si calcola facendo: [ 0 ⋅ 1 + 0 ⋅ 4 + 0 ⋅ 0 ] [ 0 ⋅ 1 + 0 ⋅ 2 + 0 ⋅ 0 ] [ 0 ⋅ 1 + 0 ⋅ 3 + 0 ⋅ 1 ]

ecc.

  • si attiva una delle variabili non di scarto per migliorare la soluzione, cioè si fa entrare

una nuova colonna della matrice identità al posto di un’altra; si sceglie di attivare la

variabile x 3 perché nella riga ∆∆∆∆=z-coef. Z è quella che ha il valore più basso (-350) e, nel

disattivare una delle variabili attive, occorre fare attenzione che non diventi negativa

nessuna delle soluzioni: per questo e si disattiva la variabile s 3 che ha il rapporto più basso

e garantisce in tal modo la non negatività delle soluzioni.

Si procede così:

  • si individua come posizione “pivot” la posizione a 33 dove c’è già 1
  • si sottrae alla seconda riga la terza riga moltiplicata per 3 e alla prima riga la

terza riga in modo da ottenere 0 in tutta la colonna del “pivot”

coefficienti z base X 1 X 2 X 3 S 1 S 2 S 3 soluzioni

0 S 1 1-0 1-0 1-1 1-0 0-0 0-1 40- 0 S 2 4-0⋅ 3 2-0⋅ 3 3-1⋅ 3 0- 0 ⋅ 3 1- 0 ⋅ 3 0- 1 ⋅ 3 120-20⋅ 3 0 S 3 0 0 1 0 0 1 20 coef. z 300 200 350 0 0 0 z 0 0 0 0 0 0 0 ∆∆∆∆=z-coef. z -300 -200 -350 0 0 0

coefficienti z base X 1 X 2 X 3 S 1 S 2 S 3 soluzioni rapporti

0 S 1 1 1 0 1 0 -1 20 20/1=

0 S 2 4 2 0 0 1 -3 60 60/4= 15

350 X 3 0 0 1 0 0 1 20 (20/0=∞!)

coef. z 300 200 350 0 0 0 z 0 0 350 0 0 350 7000 ∆∆∆∆=z-coef. z -300 -200 0 0 0 350

la soluzione si può ancora migliorare, perché ci si ferma soltanto quando nella riga “ ∆∆∆∆=z-

coef. z” ci sono solo valori positivi o nulli. Attiviamo, quindi la variabile x 1 (che ha il

valore più basso -300) e disattiviamo la variabile s 2 che presenta il rapporto più basso:

  • si evidenzia la posizione a 21 del “pivot” e si divide tutta la seconda riga per 4 in

modo da ottenere 1 nella posizione “pivot”

  • si sottrae alla prima riga la seconda riga (si può lasciare invariata la riga 3 che ha

già lo 0 al posto a 31 ) in modo da ottenere 0 in tutta la colonna del “pivot”

coefficienti z base X 1 X 2 X 3 S 1 S 2 S 3 soluzioni

0 S 1 1-1 1-0,5 0-0 1-0 0-0,25 -1+0,75 20- 0 S 2 4/4=1 2/4=0,5 0/4=0 0/4=0 ¼=0,25 (^) -3/4=-0,75 60/4= 15 350 X 3 0 0 1 0 0 1 20 coef. z 300 200 350 0 0 0 z 0 0 350 0 0 350 7000 ∆∆∆∆=z-coef. z -300 -200 0 0 0 350

coefficienti z base X 1 X 2 X 3 S 1 S 2 S 3 soluzioni rapporti

0 S 1 0 0,5^0 1 -0,25 -0,25 5 5/0,5= 10

300 X 1 1 0,5 0 0 0,25 -0,75 15 15/0,5=

350 X 3 0 0 1 0 0 1 20 (20/0=∞!)

coef. z 300 200 350 0 0 0 z 300 150 350 0 75 125 11500 ∆∆∆∆=z-coef. z 0 -50 0 0 75 125

la soluzione si può ancora migliorare: attiviamo la variabile x 2 (che ha ancora il valore

negativo) e disattiviamo la variabile s 1 che presenta il rapporto più basso:

  • si evidenzia la posizione a 12 del “pivot” e si divide tutta la seconda riga per 0,5 in

modo da ottenere 1 nella posizione “pivot”

  • si sottrae alla seconda riga la prima riga ( si può lasciare invariata la riga 3 che

ha già lo 0 al posto a 32 ) in modo da ottenere 0 in tutta la colonna del “pivot”

coefficienti z base X 1 X 2 S 1 S 2 S 3 soluzioni rapporti 0 S 1 0 0 1 0,666 -1,333 6 2 x 1 1 0 0 0,444 0,444 10 1 x 2 0 1 0 -0,111 0,888 8 coef. z 2 1 0 0 0 - z 2 1 0 0,777 1,777 28 ∆∆ ∆∆=z-coef. z 0 0 0 0,777 1,777 33

il massimo della funzione z è z ( 10 ; 8 )= 33

N.B. Da ora in poi metteremo sempre anche lo zero nella cella destinata all’eventuale termine noto

 Se il sistema dei vincoli ha disequazioni con il ≥ a volte si può moltiplicare a destra e

sinistra del segno ≥ per -1 e la disequazione diventa come le altre con il ≤; a volte questo

non si può fare perché nella colonna delle soluzioni verrebbe un valore negativo. In

questo caso per far diventare la disequazione col ≥ una equazione, non si aggiunge una

variabile di scarto positiva, bensì si toglie! Rimane, allora, da costruire la colonna

mancante della matrice identità:

z = 200 x 1 + 150 x 2 soggetta ai vincoli

1 2

1 2

1 2

1 2

x i

x x

x x

x x

x x

coefficienti z base X 1 X 2 S 1 S 2 S 3 S 4 soluzioni rapporti

0 S 1 3 2 1 0 0 0 180 0 S 2 1 2 0 1 0 0 100 0 S 3 1 -2 0 0 1 0 20 1 1 0 0 0 -1 10

coef. z 200 150 0 0 0 0 0 z ∆∆∆∆=z-coef. z

per costruire la colonna mancante della matrice identità (quella con 1 nella quarta riga) scegliamo la

colonna di x 1 (ma sarebbe indifferente scegliere la colonna x 2 che ha lo stesso rapporto)

coefficienti z base X 1 X 2 S 1 S 2 S 3 S 4 soluzioni rapporti 0 S 1 0 -1 1 0 0 3 150 50 0 S 2 0 1 0 1 0 1 90 90 0 S 3 0 -3 0 0 1 1 10 10 200 X 1 1 1 0 0 0 -1 10 - coef. z 200 150 0 0 0 0 0 z 200 200 0 0 0 -200 2000 ∆∆∆∆=z-coef. z 0 50 0 0 0 -200 2000

la prima soluzione ammissibile è allora ( 10 ; 0 )dove z = 2000 ; è una soluzione migliorabile;

scegliamo la colonna con il il ∆<0 inferiore agli altri… e continuiamo come sempre:

coefficienti z base X 1 X 2 S 1 S 2 S 3 S 4 soluzioni rapporti

0 S 1 0 8 1 0 -3 0 120 15 0 S 2 0 4 0 1 -1 0 80 20 0 S 4 0 -3 0 0 1 1 10 -3, 200 X 1 1 -2 0 0 1 0 20 - coef. z 200 150 0 0 0 0 0 z 200 -400 0 0 200 0 4000 ∆∆∆∆=z-coef. z 0 -550 0 0 200 0 4000

coefficienti z base X 1 X 2 S 1 S 2 S 3 S 4 soluzioni rapporti

150 X 2 0 1 0,125 0 -0,375 0 15 - 0 S 2 0 0 -0,5 1 0,5 0 20 40 0 S 4 0 0 0,375 0 -0,125 1 55 - 200 X 1 1 0 0,25 0 0,25 0 50 200 coef. z 200 150 0 0 0 0 0 z 200 150 68,75 0 -6,25 0 12250 ∆∆∆∆=z-coef. z 0 0 68,75 0 -6,25 0 12250

coefficienti z base X 1 X 2 S 1 S 2 S 3 S 4 soluzioni rapporti

150 X 2 0 1 -0,25 0,75 0 0 30 0 S 3 0 0 -1 2 1 0 40 0 S 4 0 0 0,25 0,25 0 1 60 200 X 1 1 0 0,5 -0,5 0 0 40 coef. z 200 150 0 0 0 0 0 z 200 150 62,5 12,5 0 0 12500 ∆∆∆∆=z-coef. z 0 0 62,5 12,5 0 0 12500

la soluzione ottimale si raggiunge in ( 40 ; 30 )dove la funzione raggiunge il suo massimo valore:

z = 12250

 Se il sistema dei vincoli ha delle equazioni, si può diminuire il numero delle variabili

oppure procedere direttamente con il metodo del simplesso; se la funzione da

massimizzare è

z = 6 x 1 + 8 x 2 + 5 x 3 + 2 x 4 e i vincoli sono espressi dal sistema

x 0

x 2 x 6 x 15

2 x x x 6

2 x 2 x x 12

i

2 3 4

1 3 4

1 2 3

Si può porre x 4 = 2 x 1 + x 3 − 6 e riscrivere l’intero problema in tre variabili anziché in quattro:

z = 6 x 1 + 8 x 2 + 5 x 3 + 2 ( 2 x 1 + x 3 − 6 ) = 10 x 1 + 8 x 2 + 7 x 3 − 12 con i vincoli

( )

1 2 3

1 3

1 2 3

1 2 3

1 2 3

1 3

2 3 1 3

1 2 3

x x x

x x

x x x

x x x

x x x

x x

x x x x

x x x

Oppure si costruisce la tabella del simplesso nel solito modo:

coef z base x 1 x 2 x 3 x 4 s 1 s 2

sol. base rapporti 8 x 2 0 1 -1 0,5 0,5 0 3 - 6 x 1 1 0 0,5 -0,5 0 0 3 6 0 s 2 0 0 3 5,5 -0,5 1 12 4 coef z 6 8 5 2 0 0 0 z 6 8 -5 1 4 0 42 ∆∆^ ∆∆=z-coef. z^0 0 -10^ -1^4 0

Nella nuova tabella abbiamo ancora un ∆∆∆∆ negativo, quindi entra un altro pivot al posto di 3 con i

conti seguenti

coef z base x 1 x 2 x 3 x 4 s 1 s 2

sol. base rapporti 8 x 2 0+0 1+0 -1+1 0,5+(5,5)/3 0,5-0,5/3 0+1/3 3+4 - 6 x 1 1-0 0-0 0,5-10,5 -0,5-(5,5)/30,5 0+0,5/3*0,5 0 3 6 0 s 2 0/3 0/3 3/3 (5,5)/3 -0,5/3 1/3 12/3 4 coef z 6 8 5 2 0 0 0 z 6 8 -5 1 4 0 42 ∆∆ ∆∆=z-coef. z 0 0 -10 -1 4 0 42

e la tabella diventa

coef z base x 1 x 2 x 3 x 4 s 1 s 2

sol. base rapporti 8 x 2 0 1 0 2,333 0,333 0,333 7 6 x 1 1 0 0 -1,416 0,083 -0,166 1 5 x 3 0 0 1 1,833 -0,166 0,333 4 coef z 6 8 5 2 0 0 0 z 6 8 5 19,33 2,333 3,333 82 ∆∆ ∆∆=z-coef. z 0 0 0 17,33 2,333 3,333 82

La soluzione finale, pertanto, sarà: il massimo della funzione è rappresentato da z ( 1 ; 7 ; 4 )= 82

Problemi di minimo :

Si schematizza il problema riconoscendo qual è la funzione da minimizzare e scrivendo le equazioni

e le disequazioni che rappresentano i vincoli, quindi si procede così:

se la funzione da minimizzare è z = 8 x 1 + 4 x 2 + 2 x 3 e il sistema di vincoli è

x 0 x 0 x 0

x x 10

x 3 x 6

x 2 x x 14

1 2 3

1 3

2 3

1 2 3

  • posso risolvere il problema come ho fatto prima, facendo attenzione che, trattandosi di un

minimo, alla riga “∆∆∆∆=z-coef. z” devono rimanere tutti negativi e non tutti positivi come nei

problemi di massimo:

coef. z base x 1 x 2 x 3 s 1 s 2 soluzioni rapporti

coef. z 8 4 2 0 0

z

come si può vedere non c’è nessuna colonna della matrice identità, quindi dobbiamo costruirla del

tutto: cominciamo dal rapporto positivo minore che è certamente

6 ; costruisco come sempre la

prima colonna della matrice identità (divido tutta la seconda riga per 3, con la solita combinazione

lineare di righe faccio diventare 0 gli altri due termini della colonna identità…)

coef. z base x 1 x 2 x 3 s 1 s 2 soluzioni rapporti

coef. z 8 4 2 0 0

z

Adesso il rapporto positivo minore, sul quale puntare per la seconda colonna della matrice identità

(senza voler alterare la colonna già costruita) è 16 2 , 3 , quindi divido tutta la prima riga per 2 , 3 e

procedo come sempre per costruire la seconda colonna della matrice identità:

coef. z base x 1 x 2 x 3 s 1 s 2 soluzioni

coef. z 8 4 2 0 0

z

Notiamo che la soluzione NON è accettabile, perché il valore della x 3 verrebbe negativo (-0,286);

la cosa però, per il momento non è rilevante in quanto non è ancora costruita del tutto la matrice

identità. Si continua, allora con il rapporto positivo minore sulla terza riga (per non alterare le

colonne della matrice identità già costruite) che è

10 , 286 : dividiamo tutta la terza riga per

1,143 e annulliamo la prima e la seconda riga della colonna x 1

coef. z base x 1 x 2 x 3 s 1 s 1 soluzioni rapporti

4 x 2 0 1 0 -0,375 -0,25 3 -

2 x 3 0 0 1 0,125 -0,25 1 -

8 x 1 1 0 0 -0,125 0,25 9 36

coef. z 8 4 2 0 0

z 8 4 2 -2,25 0,5 86

∆ 0 0 0 -2,25^ 0,5^86

la prima soluzione di base è, quindi, (9;3;1) dove z=86. Questa è accettabile perché tutte le variabili

hanno valore positivo, ma può essere migliorata, perché c’è ancora un numero positivo nella riga

dei ∆: come abbiamo sempre fatto scegliamo il rapporto positivo minore (ce n’è uno solo positivo)

ed evidenziamo la posizione del pivot: costruiremo la colonna (0 0 1) della matrice identità,

facendo “uscire” la variabile x 1 :

S

S