elaborato di teoria dello sviluppo dei processi chimici algoritmo del simplesso studenti: amabile...
TRANSCRIPT
Elaborato di Teoria dello Sviluppo dei Processi Chimici
Elaborato di Teoria dello Sviluppo dei Processi Chimici
Algoritmo del simplessoAlgoritmo del simplesso
Studenti:
Amabile Roberto 564/18
Donatantonio Riccardo 564/19
Farace Antonio 564/28
Perfetto Alfonso 564/45
Studenti:
Amabile Roberto 564/18
Donatantonio Riccardo 564/19
Farace Antonio 564/28
Perfetto Alfonso 564/45
Docente:
Prof. Michele Miccio
Docente:
Prof. Michele Miccio
Struttura del lavoro
Il lavoro si compone delle seguenti fasi:
1. Realizzazione di un software in ambiente LabView 7.0™
2. Approfondimento di argomenti trattati durante il corso inerenti la programmazione lineare
3. Svolgimento di problemi di programmazione lineare risolti mediante l’algoritmo del simplesso al fine di verificare il corretto funzionamento del SimpLab 1.0
Problema generaleLa semplicità nel calcolo della soluzione di base per il caso di tutti vincoli ≤ è legata alla presenza di un minore unitario dei coefficienti delle variabili aggiunte.
1 2 3 4
1 2 3 5
2 5 6 8
2 5
x x x x
x x x x
Es.
Minore unitario
Nel caso generale la presenza di questo minore unitario dei coefficienti non è garantita e in verità quasi mai verificata.
Variabili artificialiVista la facilità di calcolo della b.a. nel caso in cui vi sia un minore unitario dei coefficienti si è arrivati all’idea di costruire quest’ultimo, nel caso generale, mediante l’aggiunta di altre variabili dette variabili artificiali.
Es. 1 2 3
1 2 3
1 2 3
2 5 6 8
2 5
3 2 4 9
x x x
x x x
x x x
1 2 3 4
1 2 3 5
1 2 3 6 7
2 5 6 8
2 5
3 2 4 9
x x x x
x x x x
x x x x x
1 2 3 4
1 2 3
1 2 3 6
2 5 6 8
2 5
3 2 4 9
x x x x
x x x
x x x x
Forma canonica slack
surplus
artificiali
Minore unitario
Problema artificialeL’aggiunta delle variabili artificiali ovviamente non è cosa “lecita”; questo infatti trasforma il nostro problema in un nuovo problema che ha delle variabili in più rispetto a quello di partenza.Di contro però va detto che di questo nuovo problema noi riusciamo a conoscere banalmente la prima soluzione di base ammissibile, come fatto per il caso di vincoli tutti di tipo ≤, e per questo definendo opportunamente una nuova funzione obiettivo potremmo riuscire ad arrivare alla soluzione b.a. del problema originario ottimizzando questo nuovo obiettivo.
La nuova funzione obiettivo che si definisce prende il nome di Forma d’Inammissibilità.
La Forma d’Inammissibilità è definita come:
1
a
n jj
w X
n=numero di variabili del problema originario
a=numero di variabili artificiali
Xn+j=variabili artificiali
Questa funzione va minimizzata tenendo in conto che:
•Se min w=0: l’n-pla X0 in cui la w è minima è una soluzione basica ammissibile per la funzione obiettivo del problema originario. Questo perchè si possono escludere tutte le variabili artificiali poiché la loro somma è nulla
•Se min w>0: non esiste una soluzione basica ammissibile per il problema originario
Forma d’Inammissibilità
Il TableauLa procedura di calcolo che porta alla determinazione del valore di ottimo della funzione obiettivo si basa su un processo iterativo che parte con la costruzione di una matrice detta Tableau e di volta in volta continua con l’aggiornamento di quest’ultima fino al raggiungimento della soluzione ottima. La costruzione del Tableau parte dal problema in forma canonica con l’aggiunta di variabili artificiali.Riassumendo, quindi, in base al tipo di vincolo devo aggiungere al problema delle variabili:
•Slack: per vincoli di tipo
•Artificiali: per vincoli di tipo =
•Artificiali e Surplus: per vincoli di tipo
Costruzione del Tableau
a11 a12 a13 a1n
a21 a22 a23 a2n
am1 am2 am3 amn
(-z) c1 c2 c3 cn
X1 X2 X3 Xn
10
0
01
0
0 0
0
1
0
0 0-1
0
0
0
1
0
0
0
Xn+1 Xn+jXn+j+1
b1
b2
bm
0
Xa
Xb
Xq
Matrice dei tassi di assorbimentoCoefficienti di costo Risorse
Variabili decisionali
Minore unitario delle variabili slack
Variabili surplus
Variabili in base
Il Tableau assume la forma:
(-w) d1 d2 d3 dn 0 1 dj0
Coefficienti di costo modificati più quelle artificiali
Condizione di ottimalitàResta ora da stabilire quando il ciclo del simplesso deve arrestarsi, cioè come verificare il raggiungimento della soluzione ottima. A questo scopo notiamo che:
( ) j 1;mj
j
zc
X
( )
j 1;mjj
zc
X
Da questo è evidente che, durante le iterazioni del simplesso, nel caso in cui tutti i coefficienti di costo sono positivi/negativi siamo in una condizione di minimo/massimo della F.O.La condizione di ottimo quindi sarà, per il problema a minimizzare:
0 j 1;mjc 0 j 1;mjc
Con m = numero totale di variabili.
Metodo delle due fasi
Aggiungere variabili slack
Aggiungere variabili slack e
artificiali
Rendere i termini noti non negativi
Aggiungere variabili artificiali
Vincoli di tipo
Aggiungere forma di inammissibilità
Tutti i dj0
w=0
Scelta colonna pivot s: ds=min dj
Scelta riga pivot r: br/ars=min bi/ais
Pivoting sul perno ars
STOP: nessuna soluzione ammissibile
NO
Eliminare colonne con dj >0. Eliminare
la forma di inammissibilità
SÌ
Tutti i
cj0
cj>0
Tutti gli
ais=0
NO
Scelta colonna pivot s: cs=min cj
STOP: soluzione basica
ammissibile minima
STOP: infinite
soluzioni
STOP: soluzione
non limitata
NO
SÌ
START fase 1
START fase 2
SÌ
SÌ
NO
NO
, =,
=
Metodo dei grossi pesiSi procede aggiungendo le variabili slack, surplus o artificiali in base al tipo di vincoli.
Si introducono dei coefficienti di costo per le variabili artificiali detti penalità in modo da ottenere:
1
aT
n jj
z C X P X
Con o.d.g.(P)>>o.d.g.(ci)
•-P se il problema è a massimizzare
•+P se il problema è a minimizzare
Se il problema è a minimizzare le variabili artificiali saranno le prime ad uscire dalla base (per il “grosso peso” di P) e non vi rientreranno più.