z x3 x4 x5 x6
-4 40 1 1
0 0 4320 0 130 0 90 Righe = 120 0 1 0 0 0 1 f.o. + vincoli Colonne = Variabili (6) (1+4) (coefficienti) Corso di Ricerca Operativa - A. Sciomachen 4
-2 0 0 0 30 1 0 0 1 0 1 0 0 0 0 1
Soluzione iniziale
1 sola var di base in ogni vincolo! Matrice I
z x3 x4 x5 x6 x1 -4 40 1 1 0 x2 -2 30 1 0 1 x3 0 1 0 0 0 x4 0 0 1 0 0 x5 0 0 0 1 0 x6 0 0 0 0 1 0 4320 130 90 120
Soluzione iniziale (origine): le variabili in base sono le variabili slack, le variabili decisionali sono = 0 (non di base) Profitto=0, tutta Corso la risorsa disponibile (non produco) di Ricerca Operativa - A. Sciomachen 5
x1 -4 40 1 1 0
x2 -2 30 1 0 1
x3 0 1 0 0 0
x4 0 0 1 0 0
x5 0 0 0 1 0
x6 0 0 0 0 1
La soluzione attuale (iniziale) ottima se e solo se tutti i coefficienti nella riga della f.o. sono 0 Se s stop, altrimenti nuova iterazione
Corso di Ricerca Operativa - A. Sciomachen 6
x1 -4 40 1 1 0
x2 -2 30 1 0 1
x3 0 1 0 0 0
x4 0 0 1 0 0
x5 0 0 0 1 0
x6 0 0 0 0 1
Calcolo dei rapporti (4320/40, 130/1, 90/1) Elemento di Pivot Rapporto minimo: riga di Pivot Nuova soluzione: x1 di base, x5 non di base (=0) Corso di Ricerca Operativa - A. Sciomachen 10
Nuovo tableau
Il nuovo Tableau deve corrispondere ad una soluzione di base ammissibile (adiacente) Ogni variabile di base deve essere presente in un solo vincolo con coeff. unitario matrice I Lelemento di pivot (cardine) lelemento 1 della corrisponde colonna della matrice identit Tutti gli altri elementi della colonna di pivot devono essere = 0 (eliminazione della variabile) Per ottenere il nuovo Tableau si effettuano delle operazioni elementari di riga
Corso di Ricerca Operativa - A. Sciomachen 11
Nuovo tableau
Se lelemento di pivot 1 si dividono tutti i coeff. della riga di pivot per lelemento di pivot (pivot = 1)
Si sostituisce nella riga di pivot il nome della variabile uscente di base con quella entrante altra riga (compresa la f.o) se il coeff. della colonna di pivot = 0 si riporta esattamente la stessa riga
Corso di Ricerca Operativa - A. Sciomachen 12
Nuovo tableau
Altrimenti si moltiplica la nuova riga di pivot per tale coeff. se il coeff. della colonna di pivot < 0 si somma elemento per elemento la nuova riga di pivot con la riga da aggiornare se il coeff. della colonna di pivot > 0 si sottrae elemento per elemento la nuova riga di pivot alla riga da aggiornare
Corso di Ricerca Operativa - A. Sciomachen 13
Nuovo tableau
z x3 X4 X1 X6
X1 0 0 0 1 0
x2 -2 30 1 0 1
x3 0 1 0 0 0
x4 0 0 1 0 0
x5 4 -40 -1 1 0
x6 0 0 0 0 1
Matrice I coeff. della f.o. < 0 la soluzione Corso di Ricerca Operativa - A. Sciomachennon ottimale 14
x1 0 0 0 1 0
x2 -2 30 1 0 1
x3 0 1 0 0 0
x4 0 0 1 0 0
x5 4 -40 -1 1 0
x6 0 0 0 0 1
Colonna di pivot: max valore assoluto coeff < 0 f.o. Elementi > 0 colonna pivot Calcolo dei rapporti (720/30, 40/1, 120/1) Rapporto minimo: riga di Pivot Corso di Ricerca Operativa - A. Sciomachen 15 Elemento di Pivot
Nuovo tableau
Si effettuano le operazioni elementari illustrate nella iterazione precedente e si ottiene il nuovo Tableau x1 0 0 0 1 0 x2 0 1 0 0 0 x3 1/15 1/30 -1/30 0 -1/30 x4 0 0 1 0 0 x5 4/3 -4/3 1/3 1 4/3 x6 0 0 0 0 1
z x2 x4 x1 x6
408 24 16 90 96
Matrice I Tutti i coeff. della f.o. sono > 0 la BFS corrente Corso di Ricerca Operativa - A. Sciomachen 16 ottimale: stop!