Sei sulla pagina 1di 16

Simplesso matriciale Tableau del Simplesso

Manipolazione algebrica su matrici di dati


Riporta solo le informazioni necessarie dedotte dalle iterazioni successive del simplesso matriciale: coeff. delle variabili (valori della matrice A) termini noti delle equazioni (vettore b) variabili di base di ciascuna equazione Nota. Le variabili non di base non sono esplicitamente riportate (sono = 0)
Corso di Ricerca Operativa - A. Sciomachen 1

Tableau del Simplesso iniziale


Si considera il problema in forma aumentata Si trasforma la f.o. in equazione Si predispone una tabella
con tante righe quanti sono i vincoli del problema + 1 (la prima riga la f.o.) m+1 righe con tante colonne quante sono le variabili (originali + variabili slack ) n colonne una riga sopra riporta il nome delle variabili una colonna a sinistra riporta le variabili in base una colonna a destra riporta il valore attuale delle variabili Corso di Ricerca Operativa - A. Sciomachen 2

Tableau del Simplesso: esempio


A partire da un problema di PL in forma standard si aggiungono le variabili slack e si ottiene la forma aumentata del problema
max 4x1 + 2x2 max 4x1 + 2x2 40x1 + 30x2 4320 40x1 + 30x2 + x3= 4320 x1 + x2 130 x1 + x2 + x4 = 130 x1 90 x1 + x5 = 90 x2 120 x2 + x6 = 120 x 1, x 2 0 x1, x2 , x3, x4, x5, x6 0

Corso di Ricerca Operativa - A. Sciomachen

Tableau del Simplesso iniziale


1a riga: coeff. f.o. cambiati di segno Valori variabili di base (z come variabile) (allinizio termini noti) x1 x2 x3 x4 x5 x6

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

Soluzione iniziale: test di ottimalit


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 1300 90 120

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

Nuova soluzione (operazione di pivot)


Trasformazione di una variabile non di base (attualmente = 0) in una di base e viceversa Passo 1: determinare la variabile entrante variabile (non di base) nellequazione della f.o. con coeff. negativo maggiore colonna di pivot

Corso di Ricerca Operativa - A. Sciomachen

Scelta variabili per nuova soluzione


Max incremento: x1 con coeff. -4
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

Colonna di Pivot (variabile che entra in base)


Corso di Ricerca Operativa - A. Sciomachen 8

Nuova soluzione (operazione di pivot)


Passo 2: determinare la variabile uscente Identificare SOLO i coeff. > 0 della colonna di pivot Calcolare il rapporto tra i termini noti (a destra) e tali coeff. Identificare la riga che corrisponde al minimo valore di questi rapporti Riga di pivot Elemento di pivot (cardine): intersezione della 9 riga e della colonna di pivot
Corso di Ricerca Operativa - A. Sciomachen

Scelta variabili per nuova soluzione


Elementi > 0 colonna pivot 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

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

360 720 40 90 120

Matrice I coeff. della f.o. < 0 la soluzione Corso di Ricerca Operativa - A. Sciomachennon ottimale 14

Scelta variabili per nuova soluzione


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

360 720 40 90 120

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!