Sei sulla pagina 1di 118

1

1 Introduzione
1.1 Le origini della R.O. . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Fasi della R.O. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1
1
2

Programmazione Lineare

2 Problemi di Programmazione Lineare


2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Esempi di Problemi di Programmazione Lineare . . . . . . . .
2.3 Formulazione di modelli di P.L. . . . . . . . . . . . . . . . . .
2.3.1 Passi Fondamentali: . . . . . . . . . . . . . . . . . . . .
2.4 Ipotesi della Programmazione Lineare . . . . . . . . . . . . . .
2.5 Insiemi Convessi . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1 Punti Estremi. . . . . . . . . . . . . . . . . . . . . . .
2.5.2 Iperpiani e Semispazi . . . . . . . . . . . . . . . . . . .
2.5.3 Coni. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.4 Direzioni di un insieme convesso. Direzioni estreme. . .
2.6 Insiemi poliedrali e coni poliedrali. . . . . . . . . . . . . . . .
2.6.1 Cono poliedrale. . . . . . . . . . . . . . . . . . . . . . .
2.6.2 Definizione Geometrica di Punto Estremo . . . . . . .
2.7 Soluzioni di Base. . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1 Esempio di pianificazione regionale: . . . . . . . . . . .
2.8 Teorema Fondamentale della P. L. . . . . . . . . . . . . . . . .
2.8.1 Interpretazione geometrica del Teorema Fondamentale.
2.9 Spazio di Riferimento. . . . . . . . . . . . . . . . . . . . . . .
2.9.1 Spazio di riferimento e vincoli di disuguaglianza . . . .
2.9.2 Ottimalit`a . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

7
7
9
12
13
14
15
17
17
20
21
22
23
24
25
31
33
36
40
42
43

3 Metodo del Simplesso


3.1 Pivoting (Prima Interpretazione) . . . . . . . . .
3.1.1 Eliminazione di Gauss. . . . . . . . . . . .
3.2 Pivoting (Seconda Interpretazione). . . . . . . . .
3.3 Interpretazione geometrica. . . . . . . . . . . . . .
3.3.1 Prima Interpretazione. . . . . . . . . . . .
3.3.2 Seconda Interpretazione . . . . . . . . . .
3.4 Ricerca della soluzione possibile ottima. . . . . . .
3.5 Significato dei costi ridotti. . . . . . . . . . . . . .
3.5.1 Significato geometrico di cs zs . . . . . . .
3.5.2 Interpretazione economica dei costi ridotti.
3.6 Procedura del Metodo del Simplesso . . . . . . .
3.6.1 Scelta del vettore uscente. . . . . . . . . .
3.6.2 Passi dellalgoritmo del Simplesso. . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

55
55
56
59
64
64
65
65
72
72
73
74
76
76

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

2
4 Casi Particolari di Problemi di P. L.
4.1 Degenerazione e Ciclaggio. . . . . . . . . . . . . . .
4.1.1 Regola di Bland. . . . . . . . . . . . . . . .
4.2 Soluzione illimitata. . . . . . . . . . . . . . . . . . .
4.3 Soluzioni multiple ottime. . . . . . . . . . . . . . .
4.4 Variabili con limitazioni e variabili libere. . . . . . .
4.4.1 Variabili libere. . . . . . . . . . . . . . . . .
4.4.2 Variabili con limite inferiore. . . . . . . . . .
4.4.3 Variabile con limite superiore finito. . . . . .
4.4.4 Miglioramento della soluzione base possibile.
4.5 Variabili Artificiali (Metodo delle due Fasi). . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

81
82
82
85
85
88
88
89
89
93
103

5 Metodo del Simplesso Modificato


109
5.1 Confronto fra Simplesso e Simplesso Modificato. . . . . . . . . . . 115

Capitolo 1
Introduzione
La Ricerca Operativa pu`o essere definita come un compendio di tecniche descrittive ed analitiche, che tendono allottimizzazione, utilizzate per facilitare il
compito di chi, uomo daffari o amministratore, deve prendere delle decisioni.
Consideriamo, per esempio, i seguenti problemi:
Qual`e il modo migliore per un responsabile di servizi sanitari di organizzare
i turni del (o gestire il) personale per fornire un servizio efficiente?
Oppure, in presenza di scarse materie prime, qual`e il modo migliore di mescolarle, per ottenere un mix di prodotti diversi in modo ottimale rispetto ad obiettivi
dati?
Oppure, come pu`o unazienda di trasporto pubblico distribuire i mezzi a disposizione in modo da ridurre al massimo i tempi di attesa degli utenti?
Oppure, dati dei macchinari vecchi di un certo numero di anni qual`e la politica
ottima per un determinato periodo di tempo nella gestione delle macchine stesse
(sostituzione, manutenzione)?
In una organizzazione con pi`
u settori o pi`
u componenti la tendenza di ciascuna
`e di crescere in modo autonomo con i propri obiettivi e sistemi di valutazione,
perdendo di vista il collegamento con le altre componenti e quindi dimenticando
come le attivit`a e gli obiettivi debbano essere quelli dellorganizzazione nel suo
complesso. Ci`o che va bene per una componente, spesso va a detrimento di
unaltra, quindi queste devono lavorare in modo incrociato. Con laumentare
della specializzazione infatti, diventa sempre pi`
u difficile distribuire le risorse fra
le varie attivit`a nel modo migliore per lorganizzazione nel suo complesso.
Questi problemi sono un contesto favorevole per il diffondersi della ricerca
operativa nota anche come scienza dellorganizzazione e della gestione.

1.1

Le origini della R.O.

La ricerca operativa nasce in ambito militare allincirca durante la Seconda Guerra


Mondiale. A causa degli sforzi bellici, cera la necessit`a urgente di allocare
3

CAPITOLO 1. INTRODUZIONE

in maniera efficiente le risorse (che erano scarse) fra le varie operazioni militari e, allinterno di ciascuna operazione, alle varie attivit`a. I comandi militari
americano ed inglese si avvalsero della collaborazione di scienziati per applicare
lapproccio scientifico a questo e ad altri problemi strategici e tattici. Ci`o dette luogo al primo gruppo di ricercatori operativi che facevano esclusivamente ricerche
in campo militare.
Il successo della R.O. in campo militare dest`o nel dopoguerra linteresse della
industria e del mondo economico; cos` consulenti finanziari ed ingegneri che avevano lavorato nei gruppi di R.O. durante la guerra, continuarono ad approfondire
i loro studi applicando le tecniche individuate in settori civili. Si erano infatti
resi conto che in differenti contesti i problemi erano analoghi a quelli affrontati
durante la guerra. La R.O. cominci`o quindi ad entrare nellindustria, negli affari,
nella pubblica amministrazione.
Due fattori hanno giocato un ruolo fondamentale per il rapido sviluppo della
R.O. nel dopoguerra:
1. I progressi fatti nel miglioramento di tecniche a disposizione degli esperti
di R.O. (un primo esempio `e il metodo del Simplesso per risolvere problemi
di programmazione lineare che risale al 1947 per opera di Dantzig). Molti
degli strumenti della R.O. come la programmazione lineare, la programmazione dinamica, la teoria delle code, la gestione delle scorte erano gi`a
sufficientemente sviluppati negli anni 50.
2. Oltre al rapido sviluppo della teoria della R.O., un secondo fattore che ha
dato impulso allo sviluppo in questo campo `e stato il massiccio avvento dei
calcolatori elettronici.

1.2

Fasi della R.O.

Compito della Ricerca Operativa `e la preparazione scientifica delle decisioni procedendo, per quanto `e possibile, secondo le seguenti fasi:
1. Riconoscere i fattori essenziali (deterministici o aleatori);
2. Scoprire le relazioni che vincolano e condizionano quei fattori;
3. Costruire un modello matematico:
(a) Tradurre le ralazioni in termini matematici stabilendo un complesso di
equazioni o disequazioni le cui soluzioni definiscono tutte le politiche
che si vogliono prendere in considerazione nello svolgimento di quelle
attivit`a (VINCOLI);

1.2. FASI DELLA R.O.

(b) Associare alla generica politica possibile una funzione matematica che
esprima un valore economico o sociale tale che il livello ottimo (max.
o min.) di tale valore sia lobiettivo che si vuole raggiungere nello
svolgimento di attivit`a (FUNZIONE OBIETTIVO);
4. Formulare un algoritmo risolutivo che sfrutti lelaborazione automatica in
base al modello matematico costruito (punti 3.a e 3.b).
Con le fasi 1 e 2 si riesce a formulare il problema che in genere `e vago e difficile
da schematizzare. Si dovranno stabilire con chiarezza gli obiettivi in modo da
non eliminare fini ed alternative. Allinterno di unorganizzazione si cercher`a
la soluzione che vada bene nel complesso, piuttosto che per una sua parte. Si
accettano pertanto soluzioni sub-ottime per delle componenti dellorganizzazione
ma che sono lottimo per lorganizzazione nel suo complesso. La formulazione del
problema riveste perci`o una grande importanza.
Con le fasi 3.a e 3.b si ha lacostruzione del modello matematico del problema
formulato in fase 1 e 2. Necessariamente si dovranno operare dei tagli sui fattori
in gioco in modo da far entrare nel modello solo i fattori essenziali. Il modello deve essere rappresentativo della realt`a; in esso non vanno inclusi dettagli
inesssenziali o sovrabbondanti. Le decisioni da prendere devono essere quantificabili e saranno rappresentate dalle variabili di decisione (x1 , ..., xn ) i cui valori
sono da determinare. La misura dellefficienza (profitto o costo) `e espressa come
funzione matematica (funzione obiettivo o f.o.) delle variabili di decisione.
Le variabili sono soggette a restrizioni, dette vincoli in 3.a. Il problema `e
quindi determinare il valore delle variabili che massimizzano o minimizzano la
f.o. soddisfacendo i vincoli. Lottimo indicato dallo studio non `e assoluto perch`e
`e relativo ai soli fattori presenti nel modello, che `e solamente una idealizzazione
del sistema reale. I risultati di uno studio di R.O. perci`o vanno discussi con gli
esperti del settore (committenti). Se il problema `e ben impostato la soluzione
sar`a una buona approssimazione del corso ideale delle azioni.
In genere non basta trovare una soluzione ma occorre verificare la validit`a del
modello. Si dovr`a quindi:
* Verificare il modello con dati di prova e vedere se i risultati che si ottengono
sono plausibili;
* Fare un Test Retrospettivo (Validation) su dati storici per vedere quanto
bene il modello si adatta a ci`o che realmente `e accaduto e vedere se si hanno
miglioramenti pratici.

CAPITOLO 1. INTRODUZIONE

Parte I
Programmazione Lineare

Capitolo 2
Problemi di Programmazione
Lineare
2.1

Introduzione

Un problema di programmazione investe luso efficiente o lallocazione di risorse


limitate per raggiungere determinati obiettivi. Le soluzioni di un problema di
programmazione sono contraddistinte dal fatto che:
* Un largo numero soddisfa le condizioni base;
* La scelta di una particolare soluzione dipende dagli scopi e dagli obiettivi del
problema;
* Una soluzione ottima soddisfa sia le condizioni del problema che lobiettivo
dato.
Un problema di programmazione lineare (P.P.L.) `e una particolare
sottoclasse dei problemi di programmazione.
Tale problema `e descritto attraverso:
1. Relazioni lineari del tipo
a1 x1 + a2 x2 + ... + an xn = b
detti vincoli con
aj , b: costanti note
xj : variabili da determinare
b: valore della risorsa a disposizione
aj : livello dellattivit`a
9

10

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE


2. Una funzione lineare da massimizzare o minimizzare del tipo:
c1 x1 + c2 x2 + ... + cn xn
detta funzione obiettivo.

Un P.P.L. pu`o essere sempre ricondotto alla seguente forma detta forma
standard:
min(c1 x1 + c2 x2 + .... + cn xn )
con le condizioni
a11 x1 + a12 x2 + ... + a1n xn = b1
.. ..
. .
am1 x1 + am2 x2 + ... + amn xn = bm
x1 , x2 , ..., xn 0
dove
cj , bi , aij con i = 1..m, j = 1..n ed m < n sono costanti. (si suppone
bi 0).
La programmazione lineare (P.L.) tratta soluzioni non negative e sistemi
di equazioni lineari sottodeterminati. In notazione vettoriale, il problema in forma
standard diventa:
min cT x = z
con Ax = b
x 0
dove
x: vettore colonna di dimensione n;
cT : vettore riga di dimensione n;
A: matrice m n;
b: vettore colonna di dimensione m.

2.2. ESEMPI DI PROBLEMI DI PROGRAMMAZIONE LINEARE

2.2

11

Esempi di Problemi di Programmazione Lineare

Esempio (Base).
Una ditta produce prodotti in vetro di alta qualit`a, comprese porte e finestre. La
ditta `e suddivisa in tre reparti, a seconda del materiale prodotto:
Reparto 1(R1): produce intelaiature metalliche;
Reparto 2(R2): produce prodotti in legno;
Reparto 3(R3): produce vetri ed assembla i prodotti.
A seguito di una riduzione delle ordinazioni si vuole procedere ad una ristrutturazione aziendale che preveder`a la soppressione dei vecchi articoli e la immissione di nuovi:
Prodotto 1: Porta a vetri con cornice in alluminio;
Prodotto 2: Finestra con cornice in legno.
Il Reparto Marketing indica come necessario produrre i due nuovi prodotti
al massimo delle disponibilit`a di capacit`a dei reparti. Si esegue una analisi delle
seguenti attivit`a dei reparti:
a) Percentuale della capacit`a di produzione di ogni reparto per la lavorazione
dei prodotti 1 e 2;
b) Percentuale richiesta per la produzione di una unit`a di prodotto per ciascun
reparto nellunit`a di tempo (ad esempio il minuto);
c) Profitto unitario per ogni prodotto.
Abbiamo che le variabili decisionali (x1 e x2 ) saranno il numero di unit`a
prodotte per unit`a di tempo e sia z il contributo al profitto (sempre nellu.t.).
Dallanalisi dellattivit`a risultano i seguenti dati:
Prodotto 1:
usa 1% della capacit`a di R1 nellu.t.
usa 3% della capacit`a di R3 nellu.t.
Prodotto 2:
usa 2% della capacit`a di R2 nellu.t.
usa 2% della capacit`a di R3 nellu.t.
Disponibilit`a dei Reparti:
Reparto 1: ha 4% della capacit`a totale disponibile
Reparto 2: ha 12% della capacit`a totale disponibile
Reparto 3: ha 18% della capacit`a totale disponibile
Profitti:
Prodotto 1: per ogni unit`a prodotta si ha un profitto di 3 $
Prodotto 2: per ogni unit`a prodotta si ha un profitto di 5 $
Riassumendo:

12

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Reparto
Capacit`a P1
1
1
2
0
3
3
Profitto unit. ($)
3

Capacit`a P2 Capac. Max. (per u.t.)


0
4
2
12
2
18
5

Indicando con x1 e x2 le quantit`a di pezzi P1 e P2 da produrre, le xi saranno


le variabili di decisione. Il problema sopra esposto `e un classico problema di P.L.
del tipo di miscelazione di prodotti. La f.o. (indicata con z) sar`a:
max z = 3x1 + 5x2
e rappresenter`a il profitto nellunit`a di tempo.
I vincoli introdotti sono dovuti alla limitatezza delle risorse (cio`e alle limitate
capacit`a di produzione di ciascun reparto) cio`e:
Reparto 1 x1 4
Reparto 2 2x2 4
Reparto 3 3x1 + 2x2 18
Poich`e il tasso di produzione (cio`e le quantit`a prodotte) non pu`o essere negativo si avr`a inoltre:
x1 0 ; x2 0
Soluzione Grafica
Poiche si hanno solamente due variabili, si pu`o rappresentare il problema graficamente. Consideriamo due assi cartesiani x1 e x2 . Dobbiamo, per prima cosa,
trovare i valori possibili di x1 e x2 che rispettino i vincoli imposti. Essendo x1 0
e x2 0 si considera solo il quadrante positivo.

x1

(2,6)

2 x2 = 12
3 x1 + 2 x2 = 18
(4,3)

K
x1 = 4

3 x1 + 5 x2 = 36
x2

3 x1 + 5 x2 = 15

Figura 2.1

3 x1 + 5 x2 = 26

2.2. ESEMPI DI PROBLEMI DI PROGRAMMAZIONE LINEARE

13

Si consideri la retta x1 = 4 che limita i valori consentiti per la produzione in


% nellunit`a di tempo in R1. Analogamente si considerano le restrizioni 2x2 = 12
per R2 e 3x1 + 2x2 = 18 per R3. Nella regione K del piano individuata dai vincoli
si deve ora prendere il punto che massimizza il valore di z cio`e max(3x1 +5x2 = 2).
Se si prende z = 15, si vede che vi sono molti punti di tale retta che appartengono
a K (cio`e che soddisfano il sistema dei vincoli). Con il valore z = 26 la retta
considerata `e parallela alla precedente ed `e pi`
u lontana dallorigine; dobbiamo
ricercare la retta pi`
u lontana dallorigine (cio`e si considerano rette per valori
crescenti di z) con almeno un punto nella regione ammissibile K. Questa retta
passa per il punto (2, 6), quindi lequazione a cui corrisponde il valore massimo
della funzione obiettivo `e: 3x1 + 5x2 = 36
Il punto (2, 6) si trova allintersezione delle due rette: 2x2 = 12 e 3x1 + 2x2 =
18 e pu`o essere trovato algebricamente come soluzione contemporanea delle due
equazioni (cio`e mettendole a sistema). La soluzione:
x1 = 2; x2 = 6; z = 36
indica che lottimo per la ditta produttrice sar`a di produrre (nellu.t.) il
prodotto 1 al tasso di 2 pezzi al minuto ed il prodotto 2 a quello di 6 pezzi al
minuto, per avere un profitto massimo di 36$ al minuto. In base al modello
prefissata, nessuna altra combinazione di valori sar`a pi`
u conveniente.
Esempio 2.1.
Si voglia risolvere il seguente problema. Una azienda deve pianificare il lavoro
per produrre i propri prodotti P1 , ..., P6 , utilizzando le macchine M1 , ..., M4 . Si
conosce la disponibilit`a massima (espressa in ore) per ciascuna macchina in un
mese e cio`e:
M1 135; M2 140; M3 175; M4 160;
Per ogni prodotto si individuano i tempi di lavorazione su ogni macchina:
P1
P2
P3
P4
P5
P6

M1
3
4
6
5
2
7

M2
2
8
4
3
5
6

M3
6
5
4
8
7
5

M4
4
6
7
5
8
2

Si hanno infine i seguenti profitti unitari per ogni unit`a dei vari prodotti:
P1 10; P2 12; P3 14; P4 11; P5 10; P6 10;
Lufficio programmazione vuole conoscere quante unit`a di ciascun prodotto
conviene produrre per massimizzare il profitto totale.

14

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Soluzione algebrica
Si esprimono le 4 variabili x1 , x2 , x3 , x4 in funzione di x5 e x6 :
829x5 + 1007x6 25
173
85x5 95x6 + 1765
=
173
39x5 + 48x6 + 820
=
173
543x5 828x6 + 2290
=
173

x1 =
x2
x3
x4

per le condizioni di non negativit`a (xj 0, j) si ha che:


(a): 829x5 + 1007x6 25
(b): 85x5 + 95x6 1765
(c): 39x5 48x6 820
(d): 543x5 + 828x6 2290
La funzione obiettivo sar`a quindi:
max z =

2153x5 + 2224x6 + 57600


173

Esprimendo le relazioni in forma grafica (Figura 2.2) si osserva che la (c) `e


ridondante (non `e cio`e influente nella determinazione dellinsieme delle soluzioni
possibili).
x6
b)
c)
d)

a)
x5

Figura 2.2

2.3

Formulazione di modelli di P.L.

La P.L. si occupa dello studio di sistemi esprimibili tramite modelli matematici


composti da relazioni lineari. Diamo una generica (e semplice) definizione di
sistema.

2.3. FORMULAZIONE DI MODELLI DI P.L.

15

Definizione 1 Un sistema `e un insieme di elementi intercorrelati. E quindi


una entit`a composta da almeno due elementi e da una relazione che lega ciascun
elemento ad un qualsiasi altro (almeno ad uno) elemento dellinsieme.
Nella P.L. il sistema sotto esame `e scomponibile in funzioni elementari, dette
attivit`
a. Una attivit`a `e quindi una componenete del sistema, di cui non ci interessa per`o la struttura interna; sappiamo che in essa viene svolto un certo processo
ma non sappiamo come. Vi sono altre componenti del sistema che confluiscono
dentro lattivit`a (ad esempio materie prime, mano dopera, approvvigionamenti)
ed altre che escono dalle attivit`a (come i prodotti finiti di un certo lavoro). Gli
elementi che entrano ed escono dalle varie attivit`a si dicono risorse.

Risorse
in
ingresso

Attivit

Risorse
in
uscita

Figura 2.3
Una attivit`a `e dunque un processo che trasforma delle risorse in ingresso in
risorse in uscita.
Vediamo ora come si procede alla costruzione del modello matematico. Questa
`e la parte pi`
u difficile che si deve affrontare per la variet`a e lambiguit`a che
presentano i problemi reali.

2.3.1

Passi Fondamentali:

1. Definizione del gruppo di attivit`a:


Si deve scomporre il sistema in componenti elementari, le attivit`a, e scegliere
una adeguata unit`a di misura per ciascuna di esse;
2. Definizione del gruppo di risorse:
Si devono individuare le classi di oggetti consumati o prodotti dalle attivit`a
e scegliere una unit`a di misura per ciascuna di esse; una delle risorse `e scelta
per rappresentare il costo/profitto;
3. Determinazione dei coefficienti di input-output:
Si determinano le quantit`a delle varie risorse consumate o prodotte per
far raggiungere il livello unitario a ciascuna attivit`a; Questi numeri sono i

16

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE


coefficienti di proporzionalit`a fra i livelli di attivit`a ed i flussi delle risorse:
sia aij il coefficiente relativo alla i-esima risorsa ed alla j-esima attivit`a;
4. Determinazione dei flussi esogeni:
Si riferiscono alla quantit`a delle risorse di interscambio fra il sistema ed il
mondo esterno. Sia bi il flusso esogeno delli-esima risorsa;
5. Stesura delle equazioni di bilancio materiale:
Si assegnano livelli di attivit`a xj ( 0) incogniti alle attivit`a j. Per ogni
risorsa poi si scrive la corrispondente equazione che esprime luguaglianza
tra la somma algebrica dei flussi di tale risorsa attraverso le varie attivit`a ed
il corrispondente flusso esogeno. Il flusso della risorsa i attraverso lattivit`a
j `e dato dal prodotto del livello di attivit`a xj per il coefficiente di i/o aij .

Una volta costruito il modello si pu`o porre il problema in termini matematici.


Se consideriamo lesempio base si ha che il sistema `e un sistema di produzione di
oggetti (porte e finestre) di due tipi.
Le attivit`a sono:
1) produzione di porte a vetri con cornici in alluminio;
2) produzione di finestre in legno.
Le risorse sono le capacit`a di produzione dei reparti (risorsa consumata) ed il
guadagno ricavato dalla produzione del materiale (risorsa prodotta)
I coefficienti di i/o (gli aij ) sono le percentuali di produzione nellu.t. per
produrre una unit`a di prodotto j nel reparto i.
I flussi esogeni (bi ) sono indicati dalla capacit`a totale di produzione del reparto
i nellu.t.

2.4

Ipotesi della Programmazione Lineare

Perch`e un problema di P.L. sia correttamente formulato, debbono essere verificate


4 ipotesi:
1. Proporzionalit`a:
Per ogni variabile xj il suo contributo al costo `e cj xj mentre il contributo al
vincolo i-esimo `e aij xj (ci`o significa che il livello dellattivit`a xj deve essere
direttamente proporzionale sia ai flussi di risorse che ai costi). Questa `e
una ipotesi su ciascuna attivit`a considerata indipendentemente dalle altre.
2. Additivit`a:
* Il costo totale `e somma dei costi individuali delle singole attivit`a;

2.5. INSIEMI CONVESSI

17

* Il contributo totale delli-esimo vincolo `e somma dei contributi individuali


delle singole attivit`a.
Ci`o vuol dire che non vi sono interazioni tra le attivit`a, cio`e non vi sono
nel modello elementi del tipo xi xj . Lipotesi si applica sia alla F.O.
che ai vincoli, ciascuno dei quali si pu`o interpretare come luso globale
di qualche risorsa. Ladditivit`a si riferisce perci`o alleffetto congiunto
delle attivit`a.
3. Divisibilit`a:
Questa ipotesi assicura che le variabili decisionali possono essere divise in
qualunque livello frazionario; si possono ottenere quindi valori non interi
per le variabili decisionali. Se tale ipotesi non `e verificata, cio`e se una o pi`
u
variabili pu`o assumere valori solamante interi, si parla allora di programmazione intera.
4. Determinismo:
I coefficienti aij , bi , ci sono noti in maniera deterministica. Qualsiasi elemento probabilistico si suppone quindi approssimato da questi coefficienti
con qualche corrispondenza deterministica.

2.5

Insiemi Convessi

Definizione 2 Dato uno spazio vettoriale E n un insieme C E n `e convesso se


x1 , x2 C e [0, 1], reale il punto x= x1 + (1 )x2 C
Interpretazione geometrica:
In un insieme convesso, dati due punti appartenenti allinsieme, ogni punto del
segmento che li unisce appartiene anchesso allinsieme:

x2

x1

x
x2

x1

Insieme convesso

Insieme non convesso

Figura 2.4
Proposizione 1 Per gli insiemi convessi C di E n valgono le seguenti relazioni:

18

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE


1. Se C `e un insieme convesso e `e un numero reale, allora linsieme
C = {x : x = c, c C} `e convesso;

2C

C
O

Figura 2.5

2. Se C e D sono insiemi convessi allora

C + D = {x : x = c + d, c C, d D}

`e convesso;

C+D

Figura 2.6

3. Lintersezione di due insiemi convessi `e un insieme convesso.

2.5. INSIEMI CONVESSI

19

C
U

D
O

Figura 2.7

2.5.1

Punti Estremi.

Un punto x C `e detto punto estremo di C se non pu`o essere espresso come


combinazione convessa (in senso stretto) di due punti distinti di C. Cio`e se
x= x1 + (1 )x2 con (0, 1) e x1 , x2 C x = x1 = x2 .

x1 punto estremo
x2

x2 e x3 non sono
punti estremi

x1

x3

Figura 2.8

2.5.2

Iperpiani e Semispazi

Un iperpiano in E n generalizza la nozione di retta in E 2 e di piano in E 3 .


Un iperpiano
H in E n`e un insieme della forma:

H = x E n : aT x = b con a vettore colonna e b scalare; a `e detto gradiente
o normale delliperpiano.
Un iperpiano si pu`o anche definire come linsieme dei punti x= (x1 , ..., xn )
che soddisfano lequazione:
n


j=1

aj xj = b.

La costante b pu`o essere eliminata riferendosi ad un punto fisso x0 delliperpiano,


cio`e:

20

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Se x0 H aT x0 = b
x H aT x = b
per differenza: aT (x x0 ) = 0
Quindi H pu`o essere rappresentato come linsieme dei punti che soddisfano la
relazione:
aT (x x0 ) = 0
dove x0 `e un qualunque punto fissato di H.
Osservazione: aT `e ortogonale al vettore (x x0 ) x H .
Esempi.

direzione di aT
iperpiano H
direzione di
x-x0

x0

In E2

Figura 2.9
direzione di aT
iperpiano H
x0

90
x

direzione di x-x0

In E3

Figura 2.10
Un iperpiano divide E n in due regioni dette semispazi:


1) Un semispazio `e un insieme di punti della forma x E n : aT x b con a


vettore riga di E n e b scalare;
1) Un semispazio pu`o essere anche rappresentato dallinsieme

2.5. INSIEMI CONVESSI

21


x E n : aT x b .

Lunione dei due semispazi x E n : aT x b x E n : aT x b = E n .


 Fissato un punto
 x0 su H che definisce i due semispazi, il secondo semispazio
( x E n : aT x b ) pu`o essere espresso come


x E n : aT (x x0 ) 0

o come


x E n : aT (x x0 ) 0 .

Esempio:

aT
x
semispazio t.c.
aT(x-x0) >= 0

x-x

x0

Figura 2.11
Il semispazio in figura, cio`e, `e costituito da tutti i punti t.c. (x x0 ) forma
un angolo acuto ( 2 ) con aT .
In E 2 una relazione a1 x1 + a2 x2 = b con a1 , a2 , b = costanti, definisce una

retta. In E 3 una relazione lineare definisce un piano. In E n H = x : aT x = b
definisce un iperpiano.
Esempio: Dato il vettore aT = (a1 , a2 ) = (2, 1) in E 2 2x1 x2 = 1 `e una
retta.
Se si considera lo spazio E 2 si hanno le seguenti definizioni:


Definizione 3 Il semipiano H = x : aT x b `e detto semipiano positivo


(semispazio positivo di E 2 )
Definizione 4 Il semipiano H + = x : aT x b `e detto semipiano negativo
(semispazio negativo di E 2 )

22

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Sia H + che H contengono liperpiano H. Nellesempio precedente in E 2 i


semipiani H + e H cio`e:
H + = {x : 2x1 x2 1} e H = {x : 2x1 x2 1}
contengono entrambi
la retta H = {x : 2x1 x2 = 1} cio`e il prodotto interno

x1
a x = (2, 1) x2 = 2x1 x2 = 1.
T

x2

H1/2

2x1-x2 = 1

H+
x1
aT

-1

Figura 2.12

2.5.3

Coni.

Definizione 5 Un insieme C E n `e un cono se


x C x C, 0.
Definizione 6 Un cono convesso `e un insieme convesso C che `e anche un
cono.

CONO

CONO CONVESSO

Figura 2.13

2.5. INSIEMI CONVESSI

23

Osservazioni:
1. Un cono convesso contiene sempre lorigine (basta infatti prendere = 0);
2. Sia dato un qualunque x C ed il raggio o semiretta
{x : 0} C;
un cono convesso si pu`o allora definire anche come un insieme convesso
costituito dai raggi uscenti dallorigine.

2.5.4

Direzioni di un insieme convesso. Direzioni estreme.

Definizione 7 Un raggio `e pi`


u in generale un insieme di punti della forma:
{x0 + d : 0}
dove d `e un vettore non nullo (detta direzione del raggio) ed x0 un punto
qualsiasi.
Un raggio `e un esempio di insieme convesso. Un caso particolare `e il raggio
uscente dallorigine per cui si ha x0 =0.
Definizione 8 Due vettori d1 e d2 sono distinti (o non equivalenti) se d1
non pu`o essere rappresentato come multiplo positivo di d2 .
In E 2 , qualsiasi direzione non multipla di d1 o d2 pu`o essere rappresentata
come 1 d1 + 2 d2 con 1 , 2 > 0.
Definizione 9 Chiamiamo direzione estrema (analogamente alla definizione
di punto estremo), una direzione di un insieme convesso che non pu`o essere
rappresentata come combinazione positiva di due direzioni distinte dellinsieme.
Definizione 10 Un raggio estremo `e un raggio contenuto nellinsieme convesso, la cui direzione `e una direzione estrema.
Un cono convesso `e caratterizzato completamente dai suoi raggi estremi (o
direzioni estreme).

24

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Esempio: In E 2 consideriamo il cono convesso le cui direzioni estreme sono


d1 = (1, 1) e d2 = (0, 1) :
x2
d2(0,1)
d1(1,1)

(0,0)

x1

Figura 2.14
linsieme {(x1 , x2 ) : x1 0 e x1 x2 } rappresenta il cono convesso con direzioni estreme d1 e d2 date.
Dato un insieme di vettori d1 , ..., dk si pu`o considerare un cono convesso C
generato da questi vettori. Questo cono `e formato da tutte le combinazioni non
negative di d1 , ..., dk , cio`e:

2.6

C = j dj : j 0, j = 1, ..., k
j=1

Insiemi poliedrali e coni poliedrali.

Definizione 11 Un insieme poliedrale o poliedro `e lintersezione di un numero finito di semispazi.


Definizione 12 Un politopo `e un insieme poliedrale limitato.
Poich`e un semispazio pu`o essere rappresentato da una disuguaglianza del tipo:
aTi x bi con bi scalare
allora un insieme poliedrale pu`o essere rappresentato dal sistema:
aTi x bi i = 1, ..., m
Quindi un insieme poliedrale pu`o anche essere rappresentato da:
{x : Ax b} con A matrice m n
aTi `e un vettore riga ad n componenti;
x `e un vettore colonna ad n componenti;
b `e un vettore colonna ad m componenti.

2.6. INSIEMI POLIEDRALI E CONI POLIEDRALI.

25

Esempio:
Consideriamo linsieme poliedrale definito da:
1) 2x1 + x2 4
2) x1 + x2 3
3) x1 2
4) x1 0
5) x2 0

x1

1)
3)

4)

2)

5)

x2

Figura 2.15
Dallintersezione dei 5 semispazi si ottiene la parte colorata in figura 2.15. La
disuguaglianza 1) non influenza in effetti la regione colorata; tale relazione quindi
`e detta ridondante o irrilevante per il poliedro.

2.6.1

Cono poliedrale.

I coni poliedrali sono una particolare classe di insiemi poliedrali.


Definizione 13 Un cono poliedrale `e lintersezione di un numero finito di
semispazi i cui iperpiani passano per lorigine.
In altre parole C `e un cono poliedrale se pu`o essere rappresentato come:
C = {x : Ax 0}
Si noti che li-esima riga di A `e il vettore normale alliperpiano che definisce
li-esimo semispazio.
Esempio:
C = {x : x1 x2
2x
2 0}
 0, x1

1 1
0
x1
A=
b=
x=
1 2
0
x2

26

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE


aT1 = (a11 , a12 ) = (1, 1)
aT2 = (a21 , a22 ) = (1, 2)
x = (1, 2) C

x1

x=(1,2)

x1-x2=0
x1-2x2=0

x2
a1T
a2T

Figura 2.16

2.6.2

Definizione Geometrica di Punto Estremo

Definizione 14 Sia in E n X = {x : Ax b, x 0} un insieme poliedrale con


Am n e b = vettore a m componenti.
Chiamiamo iperpiani di definizione di X gli iperpiani associati agli m+n
semispazi che definisce X (sono m+n in quanto m sono i vincoli e quindi i semispazi Ax b, ed n sono i vincoli x 0.
Proposizione 2 Linsieme degli iperpiani di definizione `e costituito da elementi
linearmente indipendenti se la matrice dei coefficenti associata a tale insieme di
equazioni ha rango massimo per righe.
Quindi:
Definizione 15 Un punto x X `e un punto estremo o vertice di X, se x giace
su n iperpiani di definizione di X linearmente indipendenti.
Definizione 16 Un punto estremo `e degenere se pi`
u di n iperpiani passano per
quel punto estremo.
Definizione 17 Lordine di degenerazione `e data dal numero di iperpiani
che eccedono gli n iperpiani di definizione.
Definizione 18 Un insieme poliedrale con almeno un punto estremo degenere `e
detto insieme poliedrale degenere.

2.7. SOLUZIONI DI BASE.

27

Esempio di punti estremi degeneri in E 3 :


C

Figura 2.17
Nella figura 2.17 linsieme poliedrale ha punti estremi individuati da n = 3
iperpiani di definizione (es. A e B) linearmente indipendenti.
Ci sono anche punti estremi degeneri (es. C) che sono individuati da n = 4
iperpiani. Lordine di degenerazione `e dunque 1. In particolare vi `e pi`
u di una
possibilit`a di scelta di 3 dei 4 iperpiani che siano linearmente indipendenti, e che
diano dunque questo vertice come loro intersezione. Nessuno degli iperpiani di
definizione, comunque, pu`o essere tolto senza modificare la struttura del poliedro
non ci sono vincoli ridondanti.

2.7

Soluzioni di Base.

Consideriamo il sistema Ax =b con:


A = matrice m n
x = vettore a n componenti
b = vettore a m componenti
Consideriamo la matrice aumentata (A, b) con m righe e (n + 1) colonne.
1. Se rango(A, b) > rango(A) allora b non pu`o essere espresso come combinazione lineare delle colonne a1 , ..., an non c`e soluzione al sistema
iniziale;
2. Se rango(A, b) = rango(A) = k (k n) allora dopo aver riordinato le righe
di A sia

(A, b) =

A 1 b1
A 2 b2

con A1 di dim. k n, A2 di dim. (m k) n, b1 di dim. k, b2 di dim. m k


e rango(A1 ) = rango(A1 , b1 ) = k.

28

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Osservazione: Poich`e se un vettore x soddisfa A1 x = b1 allora soddisfa anche


A2 x = b2 (in quanto ciascuna riga `e combinazione lineare delle altre k), automaticamente si possono eliminare i vincoli ridondanti A2 x = b2 e considerare
solo A1 x = b1 .
Poich`e rango(A1 ) = k, si possono estrarre da A1 , k colonne linearmente indipendenti (eventualmente riordinando le colonne di A1 ). Sia B la sottomatrice
di A1 composta da tali colonne t.c. det B = 0 si pu`o scrivere:
A1 = (B, N) con N matrice k (n k)
B esiste sicuramente in quanto rango(A1 ) = k. B `e detta Matrice di base
(perch`e B forma una base di E k ).
N `e detta Matrice non basica.
Scomponiamo x in xB e xN cio`e:
xTB = (x1 , ..., xk ) xTN = (xk+1 , ..., xn )
quindi A1 x = b1 si pu`o scrivere come:

x
(B, N ) B
xN

= b1 cio`e BxB + N xN = b1

Essendo B non singolare B 1 . Premoltiplicando per B 1 si ha:


B 1 BxB + B 1 NxN = B 1 b1
xB = B 1 b1 B 1 NxN
Se k = n N non esiste, quindi lespressione precedente si riduce a xB =
B b1 si ha una sola soluzione.
Se k < n assegnando
valori arbitrari a xN si pu`o ricavare univocamente
 
x
xB ed avere quindi xB soluzione di A1 x = b1 .
1

Definizione 19 Chiamiamo soluzione base (s.b.) la soluzione ottenuta ponendo xN = 0 e xB = B 1 b1 , per il sistema A1 x = b1 dove B sia una matrice di
base di A1 .
Definizione 20 Chiamiamo variabili di base le componenti di x associate alle
colonne di B.
La soluzione base corrisponde ad una espressione per il vettore b come combinazione lineare di questi vettori di base.
Consideriamo il caso m < n e consideriamo dora in poi di essere nel caso in
cui k = m. cio`e supponiamo che le righe di A siano linearmente indipendenti. La

2.7. SOLUZIONI DI BASE.

29

dipendenza lineare fra le righe di A infatti porterebbe alla contraddittoriet`a dei


vincoli o a una ridondanza che pu`o essere eliminata. Facciamo quindi lipotesi
di rango completo cio`e che la matrice A (m n) ha m < n e le m righe sono
linearmente indipendenti. Sotto questa ipotesi si ha che Ax =b avr`a sempre
almeno una soluzione base. In una soluzione base non necessariamente tutte le
variabili di base sono = 0.
Definizione 21 Una soluzione base `
e degenere se una o pi`
u variabili di base
assume valore nullo.
Se la soluzione di base `e non degenere le variabili di base (e quindi B)
sono identificate immediatamente come le componenti non nulle della soluzione.
Se la s.b. `e degenere vi `e ambiguit`a in quanto si possono scambiare variabili di
base nulle con variabili non di base.
Introduciamo adesso il vincolo x 0. Consideriamo quindi il sistema dei
vincoli
Ax = b
x 0
Definizione 22 Un vettore x che soddisfa tale sistema di vincoli `e detto soluzione
possibile per tali vincoli.
Definizione 23 Una soluzione possibile che sia anche basica `e detta soluzione
base possibile (s.b.p.).
Definizione 24 Se una soluzione base possibile `e degenere si dice soluzione
base possibile degenere.
Esempio:
Sia K = {x E 2 : x1 + x2 = 0, x1 0, x2 0} = {(0, 0)}
A = (1, 1) b = 0
x2

x1+x2=0

K
x1

Figura 2.18

30

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Il vettore (0, 0) `e lunica soluzione di base ed `e degenere.


Se analizziamo i vincoli che determinano K vediamo che il loro numero (3) `e
sovrabbondante perch`e bastano due vincoli (in questo caso due rette) per individuare il punto (0, 0) (lordine di degenerazione `e dunque 1). In generale se su
una soluzione di base insistono pi`
u vincoli di quelli necessari ad individuarla
la soluzione `e degenere.
Introduciamo adesso la f.o.; consideriamo quindi il problema nella sua forma
standard cio`e:
min cT x
con Ax = b
x 0
Definizione 25 Una soluzione possibile che soddisfi i vincoli e che minimizzi la
f.o. `e detta soluzione possibile ottima (s.p.o.).
Definizione 26 Se la s.p.o. `e anche soluzione di base `e allora detta soluzione
base possibile ottima (s.b.p.o.)
Se , la s.b.p.o. `e proprio ci`o che vogliamo determinare.
Esercizio.
Consideriamo i vincoli seguenti:
P1
+x1

R1
R2

P2
+2x2

P3
P4
+x3
=5
+2x3 +x4 = 4

Sia Ax =b con A = (B, N) xB = B 1 b B 1 N xN cio`e


1 0 1 0
0 2 2 1

Si ha dunque:
B=

1 0
0 2

da cui la soluzione

x1
x2

1 0
0 1/2

1 0
0 1/2
5
4

x1
x2
x3
x4


xB =

5
4

x1
x2

1 0

0 1/2


5 x3
=
2 x3 12 x4

1 0
2 1

xN =


x3
x4

x3
x4

2.7. SOLUZIONI DI BASE.


Esercizio:

1 0 1
Dati A =
0 3 2


1 0
Sia B =
0 3



x1
Allora
=
x2

31

5
b=
10

1
B 1 =
0

1 0
0 1/3

x1 + x3 = 5
3x + 3x3 = 10
 2


0
x1
xB =
xN = (x3 ) = (0)
1/3
x


 2
5
5
= 10 quindi P1 = (5, 10
, 0)
3
10
3
{

x3
P2=(0,0,5)

(5,0,0)
x1

(0,10/3,0)
x2

P1=(5,10/3,0)

Figura 2.19

x1
1 1
1 1/2
Se invece x B =
B=
B 1 =
0 2
0 1/2
x3







x1
1 1/2
5
0
1
1
Da cui x B =
= B b B xN =
=
x3
0 1/2
10
5
quindi P2 = (0, 0, 5)
Il punto P1 corrisponde ad una prima soluzione base possibile ed anche P2
`e corrispondente ad una soluzione base possibile per`o `e degenere. Consideriamo
ora:






x2
0 1
23 31
1
xB =
B=
B =
x3
3 2
1 0







2
1
x2
3 3
5
0
1
1
xB =
= B b B xN =
=
quindi P3 =
x3
1 0
10
5
(0, 0, 5) `e ancora s.b.p. degenere e coincide con P2 .
Poich`e linsieme delle soluzioni possibili del p.p.l. `e un insieme convesso K
ottenuto dallintersezione di un insieme finito di vincoli lineari (Ax = b, x 0),
la frontiera di K (se K non `e vuoto) `e composta da sezioni dei corrispondenti
iperpiani. K `e una regione di E n che pu`o essere:
1. Un insieme vuoto il problema non ha soluzione;
2. Un poliedro convesso limitato il problema ha soluzione:
(a) con un valore ottimo per la f.o. oppure

32

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE


(b) ha infinite soluzioni ottime;
3. Un poliedro convesso non limitato il problema ha soluzione ma lottimo
pu`o non essere finito.

Modelli di p.l. validi sono quelli per cui ci i riporta ai casi 2) e 3). Poich`e K `e
un convesso, se il problema ha pi`
u di una soluzione allora ne ha infinite. Inoltre
la f.o. assuma il valore ottimo in un punto estremo; questo si vedr`a attraverso
due teoremi:
* il teorema fondamentale della programmazione lineare;
* il teorema di equivalenza.
Esempi di possibili soluzioni ottime in E 2 .
Tipo (2): Poliedro convesso limitato (politopo): a) una unica soluzione
ottima finita; b) soluzioni ottime con valore finito, e sono un numero infinito.
x2

Sol. ottima

A)

x1
x2

B)

Infiniti ottimi alternativi

x1

Figura 2.20
Tipo (3) Poliedro convesso non limitato: c) una unica soluzione ottima
finita; d) soluzioni ottime con valore finito, in numero infinito; e) la soluzione
ottima `e infinita.
x2

Sol. ottima

C)
x1
x2

Infinite sol. ottime

D)
x1
x2

Non esiste sol. ottima

E)
x1

Figura 2.21

2.7. SOLUZIONI DI BASE.

2.7.1

33

Esempio di pianificazione regionale:

Un ufficio tecnico vuole pianificare la produzione agricola annuale di 3 Kibbuz


di Israele che sono consorziati. La produzione agricola di ciascun Kibbuz `e limitata: 1) dai terreni agricoli disponibili; 2) dalla quantit`a di acqua assegnata per
lirrigazione della societ`a che gestisce le risorse idriche. I dati sono raccolti nella
seguente tabella
Kibbuz Acri di terreno util. Acqua assegnata (m3 )
1
400
720.000
2
600
960.000
3
300
450.000
I raccolti programmati per lanno in corso sono: A - Grano; B - Mais; C Barbabietola.
I raccolti differiscono per: 1) resa prevista per acro (stima); 2) fabbisogno di
acqua.
Il Ministero dellAgricoltura impone inoltre un limite al totale di acri coltivabili
per tipo di prodotto cio`e:
Tipo di raccolto

Max. acri Consumo di acqua Guadagno


(m3 /acro)
($/acro)
A - Grano
600
3.600
400
B - Mais
500
2.400
300
C - Barbabietola
325
1.200
100
I tre Kibbuz decidono di:
- coltivare in proporzione al terreno che hanno a disposizione (la met`a in questo
caso). Esempio:
il Kibbuz 1 coltiva 200 dei 400 acri che possiede;
il Kibbuz 2 coltiva 300 dei 600 acri che possiede;
il Kibbuz 3 coltiva 150 dei 300 acri che possiede.
Ciascuno quindi coltiva la met`a degli acri disponibili.
- ciascun Kibbuz pu`o scegliere di coltivare una qualsiasi combinazione di acri per
tipologia di prodotto.
Lobiettivo `e pianificare la ripartizione fra i tipi di raccolto per ciascun Kibbuz
in modo da rispettare:
1. le limitazioni imposte dal Ministero;
2. la disponibilit`a di terreno e acqua di ciascun Kibbuz;
per rendere massimo il guadagno globale netto per i tre Kibbuz.

34

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Formulazione del problema:


Bisogna determinare il numero di acri da assegnare a ciascun tipo di coltivazione
per ciascun Kibbuz. Le variabili decisionali sono 9 e le indichiamo con xij i =
1, 2, 3 e j = 1, 2, 3 dove i = tipo di raccolto e j = numero di Kibbuz. Si ha quindi:
raccolto
A - Grano
B - Mais
C - Barbabietola

Acri alloc. K1 Acri alloc. K2 Acri alloc. K3


x11
x12
x13
x21
x22
x23
x31
x32
x33

La funzione obiettivo (o misura di efficienza) z `e il guadagno totale netto


quindi:
max z = 400(x11 + x12 + x13 ) + 300(x21 + x22 + x23 ) +
+100(x31 + x32 + x33 )
= 400

x1j + 300

j=1

x2j + 100

j=1

x3j

j=1

I vincoli sono:
1) Terreno utilizzabile per ogni Kibbuz:
3

i=1
3

i=1
3

xi1 400
xi2 600
xi3 300

i=1

2) Allocazione idrica per ogni Kibbuz:


3600x11 + 2400x21 + 1200x31 720.000
3600x12 + 2400x22 + 1200x32 960.000
3600x13 + 2400x23 + 1200x33 450.000
3) Acri di terreno complessivi da utilizzare per coltura:
per A : x11 + x12 + x13 600
per B : x21 + x22 + x23 500
per C : x31 + x32 + x33 325

2.8. TEOREMA FONDAMENTALE DELLA P. L.

35

4) Coltivazione proporzionale agli acri posseduti per ogni Kibbuz:


3
3


x11 + x21 + x31
x12 + x22 + x32
=
3
xi1 2
xi2 = 0
400
600
i=1
i=1

3
3

x13 + x23 + x33
x12 + x22 + x32
=
xi2 2
xi3 = 0
600
300
i=1
i=1

3
3


x11 + x21 + x31
x13 + x23 + x33
=
4
xi3 3
xi1 = 0
300
400
i=1
i=1

5) Vincoli di non negativit`a:


xij 0 i = 1, 2, 3 j = 1, 2, 3

2.8

Teorema Fondamentale della P. L.

Teorema 1 Dato un P.P.L. in forma standard:


z = min cT x
Ax = b
x0

(2.1)

con A matrice m n e rango(A) = m:


i) se una soluzione possibile una soluzione base possibile;
ii) se una soluzione possibile ottima una soluzione base possibile ottima.
Dimostrazione:
i) Siano a1 , ..., an i vettori colonna che costituiscono A. Supponiamo che xT =
(x1 , ..., xn ) sia una soluzione possibile; la soluzione allora soddisfa i vincoli, cio`e
vale che
x1 a1 + x2 a2 + ... + xn an = b
o anche, in forma estesa

x1

a11
a21
...
am1

+ x2

a12
a22
...
am2

+ ... + xn

a1n
a2n
...
amn

b1
b2
...
bm

36

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Supponiamo che esattamente p delle xi variabili (i = 1, ..., n) siano positive e


supponiamo, per convenienza, che siano le prime p. Si ha:
x1 a1 + ... + xp ap = b

(2.2)

Si distinguono allora due casi:


i.1) a1 , ..., ap linearmente indipendenti;
i.2) a1 , ..., ap linearmente dipendenti.
Caso i.1)
Se a1 , ..., ap sono linearmente indipendenti sar`a sicuramente che p m.
Se p = m la dimostrazione `e completa avendo trovato una soluzione di base
per definizione (m vettori linearmente indipendenti) quindi abbiamo trovato una
soluzione base possibile.
Se p < m essendo rango(A) = m per ipotesi, si possono trovare, fra i rimanenti
n p vettori colonna di A, un numero m p di questi t.c. linsieme totale di m
vettori sia linearmente indipendente. Se alle variabili corrispondenti agli m p
vettori aggiunti si assegna valore nullo la soluzione base trovata `e possibile e
degenere.
Caso i.2)
Siano a1 , ..., ap linearmente dipendenti una combinazione lineare non
banale di detti vettori che `e nulla; si possono quindi trovare p costanti y1 , ..., yp
non tutte nulle t.c.
y1 a1 + ... + yp ap = 0

(2.3)

Moltiplicando la (2.3) per uno scalare e sottraendola dalla (2.2) si ha:


(x1 y1 )a1 + (x2 y2 )a2 + ... + (xp yp )ap = b

(2.4)

Tale equazione vale , e le componenti (xi yi ) corrispondono ad una


soluzione delle uguaglianze lineari, anche se possono violare la condizione che
(xi yi ) 0. Se indichiamo con y = (y1 , ..., yp , 0, ..., 0) si avr`a che, ,
(x y)

(2.5)

`e soluzione delle uguaglianze (2.2) (perch`e (y1 a1 + ... + yn an ) = 0) A(x


y) = Ax Ay = Ax =b.
Per = 0 si ottiene la soluzione originale. Al crescere di le varie componenti
assumono valore rispetto alle precedenti a seconda che i rispettivi yi siano 0.
Poich`e si pu`o verificare che almeno un yi > 0 (infatti se tutti gli yi = 0 sono negativi allora si possono considerare gli yi = yi che ugualmente verificano la (2.3))
almeno una componente (xi yi ) decresce allaumentare di . Incrementiamo
fino a che si annulla almeno una componente e prendiamo

2.8. TEOREMA FONDAMENTALE DELLA P. L.

37

=min {xi /yi : yi > 0}


i

Per tale valore di la soluzione (x y) (data da (2.5)) `e soluzione possibile


con al pi`
u (p1) componenti positive (cio`e variabili positive). Ripetendo tale procedimento, se necessario, si eliminano le variabili positive fino a che non si ottiene
una soluzione possibile con le corrispondenti colonne linearmente indipendenti.
A questo punto si ritorna al caso i.1).
Esempio:
Sia dato il sistema:
x1 + x3 + 3x4 = 10
x2 + x3 = 3
xT = (3, 2, 1, 2); p = 4; A = (a1 , a2, a3 , a4 ) 
a1 = 10 , a2 = 01 , a3 = 11 , a4 = 30 , b = 10
3
 

 

 

 

 

3 10 + 2 01 + 1 11 + 2 30 = 10

3
T
x `e soluzione possibile.
Sia y T = (5, 14,
14, 3) tale
che 5a1 + 14a2
14a3 + 3a4 =0,


 


 
1
0
1
3
(3 5) 0 + (2 14) 1 + (1 + 14) 1 + (2 3) 0 = 10
3


2 2
= min xyii : yi > 0 = min{ 35 , 14
, 3 } = 17 (i = 2)
x1 = 16
, x2 = 0, x3 = 3, x4 = 11

7
7

16
11
x = ( 7 ,0, 3, 7)`e ancora
soluzione possibile. Infatti si ha:
 
1
10
16 1
11 3
+3 1 + 7 0 = 3
7 0
p `e ancora
unaltra terna y1 , y3 , y4 t.c.

> m quindi
  si trova

1
1
3
0
y1 0 + y3 1 + y4 0 = 0 e questa `e
y1 = 3, y3 = 0, y4 =
 +1
xi
= min yi : yi > 0 = xy44 = 11
(per i = 4), quindi si annulla il quarto
7
elemento e la soluzione possibile diventa:
x1 = 16
+ 3 11
= 7; x3 = 3
7
7
T
x = (7, 0, 3, 0) `e soluzione base possibile avendo solamente 2 componenti
positive
e corrisponde
alla base:



1 1
1
1
B=
da cui xB = B 1 b B 1 N xN con B 1 =
0 1
0 1

ii) Sia xT = (x1 , ..., xn ) soluzione possibile ottima, cio`e sia cT x = min .
Come nel caso i) supponiamo che esistano esattamente p componenti x1 , ..., xp
positive; si distinguono allora due casi:
ii.1) a1 , ..., ap siano linearmente indipendenti si affronta esattamente come il
caso i.1);

38

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

ii.2) a1 , ..., ap siano linearmente dipendenti si procede come nel caso i.2).
In questo caso si deve per`o dimostrare che la soluzione (x y) `e ottima.
Come in i.2) si dimostra che c`e soluzione base possibile; per vedere che `e anche
ottima si sostituisce al posto di x nella f.o. ottenendo quindi:
cT (x y) = cT x cT y

(2.6)

Per sufficientemente piccolo xy `e soluzione possibile per valori di 0


(perche rispetta ancora i vincoli). Perche sia anche sol. ottima deve essere perci`o
cT y = 0.
Infatti se cT y = 0 si pu`o trovare un appropriato in grandezza e segno t.c.
(2.6) sia pi`
u piccola di cT x, contro lipotesi di soluzione possibile ottima posta
per x; mantenendo ancora lipotesi che xy sia soluzione possibile deve essere
quindi cT y = 0.
Avendo stabilito che la nuova soluzione, con meno componenti positive, `e anche essa ottima, si pu`o procedere alla dimostrazione come nel caso i.2) trovando
quindi un opportuno per azzerare le componenti eccedenti le m per la dipendenza lineare.
Dal teorema fondamentale della p.l. si deduce che la soluzione ad un p.p.l. si
riduce alla ricerca di soluzioni basi possibili. Poich`e con n variabili ed m vincoli
il problema ha al pi`
u:

n
n!
=
soluzioni base
m
m!(n m)!

corrispondenti al modo in cui si possono scegliere m vettori colonna tra n


dati, ne segue che vi `e un numero finito di possibilit`a. Il teorema porta alla
determinazione delle soluzioni in maniera ovvia, ma inefficiente, in quanto utilizza
una ricerca esaustiva.

2.8.1

Interpretazione geometrica del Teorema Fondamentale.

Il principale collegamento tra teoria algebrica (usata per dimostrare il teorema)


e teoria geometrica `e la relazione formale fra soluzioni base possibili e punti estremi di un politopo (cio`e di un insieme poliedrale limitato, dove per insieme
poliedrale si considera lintersezione di un numero finito di semispazi). Ricordiamo la definizione di punto estremo:
Il punto x di un insieme convesso C `e un punto estremo di C se non pu`o
essere espresso come combinazione convessa di due punti distinti x1 e x2 C,
cio`e se x1 , x2 C t.c. x= x1 + (1 )x2 con 0 < < 1, x1 = x2 =x.
Un punto estremo `e quindi un punto che non pu`o giacere sul segmento congiungente due altri punti distinti dellinsieme.

2.8. TEOREMA FONDAMENTALE DELLA P. L.

39

Teorema 2 Equivalenza fra punti estremi e soluzioni base possibili.


Sia A matrice mn di rango m, b vettore a m componenti e sia K un politopo
convesso consistente di tutti i vettori x di dimensione n tali che:
Ax = b
x0

(2.7)

x `e punto estremo di K `e soluzione base possibile per (2.7).


Dimostrazione:
) Sia x= (x1 , ..., xm , 0, ..., 0) soluzione base possibile per (2.7); dimostriamo
che x `e punto estremo di K.
Dallipotesi si ha che x1 a1 + ... + xm am = b, se a1 , ..., am sono le prime m
colonne di A linearmente indipendenti. Supponiamo che x possa essere espresso
come combinazione convessa di altri due punti di K; sia dunque
x = y + (1 )z, 0 < < 1, y = z
Poiche x, y, z 0 (essendo punti di K) e poiche (0, 1) le ultime n m
componenti di y e z sono nulle (essendo nulle le corrispondenti componenti di x).
Per cui
y1 a1 + ... + ym am = b
z1 a1 + ... + zm am = b
Dato che b pu`o essere espresso in uno e in un sol modo come combinazione
lineare di a1 , ..., am che sono per ipotesi lin. ind. x= y =z e quindi x `e punto
estremo di K.
) Viceversa sia x punto estremo di K vogliamo far vedere che x `e soluzione
base possibile per (2.7).
Supponiamo che le componenti non nulle di x siano le prime p, allora
x1 a1 + ... + xp ap = b con xi > 0 i = 1, ..., p
x sar`a soluzione base possibile se a1 , ..., ap sono linearmente indipendenti.
Dimostriamo che lo sono per assurdo; supponiamo cio`e che a1 , ..., ap siano lin.
dipendenti esister`a una combinazione lineare non banale che `e nulla:
y1 a1 + ... + yp ap = 0 con yi non tutti nulli

40

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Sia y= (y1 , ..., yp , 0, ..., 0) un vettore ad n componenti; poiche xi > 0 con


1 i p, `e possibile scegliere un t.c.
x + y 0 e x y 0
Si ha quindi:
1
1
x = (x + y) + (x y)
2
2
che esprime x come combinazione convessa di due vettori distinti di K, assurdo
essendo per ipotesi x punto estremo deve essere che a1 , ..., ap sono linearmente
indipendenti e quindi x `e una soluzione base possibile (se p < m sar`a una
soluzione base possibile degenere).
Dalla corrispondenza fra punti estremi e soluzioni base possibili discendono
alcune propriet`a geometriche del politopo convesso K che definisce linsieme dei
vincoli di un P.P.L.
Corollario 1 Se linsieme convesso K corrispondente a (2.7) `e non vuoto
esiste almeno un punto estremo.
(La dimostrazione `e banale: se K = {} esiste almeno una soluzione possibile
al sistema per il teorema fondamentale della p.l. esiste una soluzione base
possibile (x) che, per il teorema di equivalenza equivale a dire che x `e un punto
estremo di K).
Corollario 2 Se esiste una soluzione ottima finita ad un p.p.l. esiste una
soluzione ottima finita che `e punto estremo dellinsieme dei vincoli.
Corollario 3 Linsieme dei vincoli K corrispondenti a (2.7) ha al pi`
u un numero
finito di punti estremi.
Dimostrazione:
Dal momento che esiste solo un numero finito di soluzioni di base, ottenute prendendo m vettori tra gli n vettori colonna di A, i punti estremi sono un sottoinsieme
di queste soluzioni di base, quindi sono un numero finito.
Corollario 4 Se K `e un poliedro convesso corrispondente a (2.7) allora consiste
di punti che sono combinazione convessa di un numero finito di punti.
Consideriamo un insieme poliedrale limitato, ad esempio quello in fig., formato
da 5 semispazi in E 2 :

2.8. TEOREMA FONDAMENTALE DELLA P. L.


x3

41

x4

x2

x5
x1

Figura 2.22
In questo caso abbiamo 5 punti estremi (x1 , .., x5 ). Si pu`o notare che qualunque
punto dellinsieme K pu`o essere rappresentato come combinazione convessa (o
media pesata) di x1 , .., x5 . Per mostrare ci`o prendiamo un punto x; questo pu`o
essere rappresentato come combinazione convessa di x4 e y cio`e:
x = y + (1 )x4 con (0, 1)
A sua volta y pu`o essere espresso come combinazione convessa di x1 e x2 :
y = x1 + (1 )x2 con (0, 1)
Quindi:
x = (x1 + (1 )x2 ) + (1 )x4
poiche (0, 1), (0, 1) anche e (1 ) (0, 1)
x = x1 + (1 )x2 + (1 )x4
quindi x `e stato rappresentato come combinazione convessa di x1 , x2 ed x4 . In
generale ogni punto di un politopo pu`o essere rappresentato dalla combinazione
convessa di suoi punti estremi.
Dal teorema di equivalenza e dal Corollario 3 si ricava subito:
Teorema 3 Se la f.o. di un p.p.l. assume il suo valore ottimo in pi`
u di un
punto estremo assume lo stesso valore per ogni combinazione convessa di questi
particolari punti.
Supponiamo di volore min cT x. Per ipotesi cT x assume il minimo in pi`
u di un
punto estremo; siano x1 , ..., xq tali punti:
cT x1 = cT x2 = ... = cT xq = min = z

42

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE


Sia x una combinazione convessa di questi punti, cio`e:
x=

i xi con i 0 t.c.

i=1

i = 1

cT x = cT (1 x1 + ... + q xq ) = 1 cT x1 + ... + q cT xq =

i z = z

Per esmpio, in E 2 , siano x1 e x2 i due punti estremi in cui la f.o. assume il


suo valore massimo, allora in un qualunque punto x= 1 x1 + 2 x2 la f.o. assume
lo stesso valore:

x1

x1

Figura 2.23
Osservazione:
La corrispondenza fra soluzioni base possibili e punti estremi `e biunivoca ma in
generale non esiste biunivocit`a fra soluzioni base possibili e matrici di base.

2.9

Spazio di Riferimento.

Consideriamo un p.p.l. in forma standard:

z = min cT x
Ax = b
x 0
Detti aj i vettori colonna di A, si pu`o anche scrivere

2.9. SPAZIO DI RIFERIMENTO.

43

z = min

cj xj

j=1
n

aj xj = b

j=1

xj 0 con j = 1, .., n

Dati i vettori a1 , ..., an si vogliono trovare scalari non negativi x1 , ..., xn t.c.
valgano le suddette relazioni.
n

Si noti che la collezione di vettori della forma
aj xj formano, con x1 , .., xn >
j=1

0, un cono generato da a1 , .., an .


Il problema ammette cos` soluzione possibile se il vettore b appartiene a questo
cono.
ESEMPIO 1

a1

a3

ESEMPIO 2

a4

a1

a3

a4

a2

a2
b

Figura 2.24
Nellesempio 1 la regione possibile nello spazio di riferimento non `e vuota,
mentre lo `e nellesempio 2. Consideriamo due sistemi:
1)

2x1 + x2 + x3 = 2
x1 + 3x2 + x4 = 3
xi , x2 , x3 , x4 0
Lo spazio di riferimento associato `e generato dai vettori:
a1 =
2)

2
1

; a2 =

1
3

; a3 =

1
0

; a4 =

0
1

44

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

2x1 + x2 + x3 = 1
x1 + 3x2 + x4 = 2
x1 , x2 , x3, x4 0
Lo spazio di riferimento `e lo stesso, ma in questo caso b
/ allo spazio generato
dai 4 vettori a1 , .., a4 .
ESEMPIO 2

ESEMPIO 1

a2

a2
b

a4

a4
a3

a3

a1

a1

Figura 2.25

2.9.1

Spazio di riferimento e vincoli di disuguaglianza

Consideriamo ora i vincoli della forma di disuguaglianza:


n

aj xj b con xj 0, j = 1, .., n

j=1

e consideriamo una interpretazione dellammissibilit`a.


Se una soluzione possibile allora questo cono deve intersecare linsieme dei
vettori che sono del vettore di riferimento b.
Esempio:
CASO 1

a1

CASO 2

Cono generato da
a1, a2 e a3

Cono generato da
a1, a2 e a3

a2

a2
a3

a1

b
Vettori <= b

a3

b
Vettori <= b

Figura 2.26

2.9. SPAZIO DI RIFERIMENTO.

2.9.2


n


j=1

45

Ottimalit`
a

aj xj b con xj 0, j = 1, .., n `e un sistema possibile sse b al cono gen-

erato da a1 , ..., an . Le variabili x1 , ..., xn devono essere scelte in modo da minin



mizzare
cj xj . Il problema di p.l. si pu`o riformulare come segue:
j=1

Trovare x1 , ..., xn 0 t.c.




 

a1
a
a
b
x1 + 2 x2 + ... + n xn =
c1
c2
cn
z


dove lobiettivo
e di minimizzare z = ci xi . In pratica si cerca di rappre `
b
sentare il vettore z per il pi`
u piccolo z possibile, nel cono generato dai vettori

a1
c1

... cnn .
Per includere la f.o. nello spazio di riferimento abbiamo quindi incrementato
la sua dimensione da m a m + 1.
Esempio:
min(2x1 3x2 ) = z
x1 + 2x2 2
x1 , x2 0

Per trasformare il vincolo da disuguaglianza ad uguaglianza, aggiungiamo un


variabile di slack x3 0. Il problema quindi consiste nel trovare x1 , x2 , x3 0
t.c.

1
2

x1 +

2
3

x2 +

1
0

x3 =

2
z

Siamo quindi passati dallo spazio di riferimento E 1 a quello E 2 ; risolvendo il


problema per forma grafica si trova che lo z minimo che da luogo ad una soluzione
possibile `e z = 4.
a3 (1,0)

a1

a2

(1,-2)
(2,-3)
(2,-4)

Figura 2.27

46

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Esempio:
min(2x1 3x2 ) = z
x1 + 2x2 0
x1 , x2 0
In questo caso si aggiunge una variabile di surplus e ci si riporta alla forma
standard.

1
2

x1 +

2
3

x2 +

1
0

x3 =

2
z

con z da minimizzare. La
mostra come in questo caso per
 figura
  seguente
 
1
2
1
il cono generato dai vettori 2 , 3 , 0 la f.o. non `e limitata inferiormente
nello spazio di riferimento, per cui, dato che z si pu`o ridurre in modo arbitrario
si ha che z = .

(-1,0) a3

a1

a2
(1,-2)
(2,-3)

Figura 2.28
Le variabili di slack e di surplus, dette anche variabili di non uso, si inseriscono
quando il problema non `e in forma standard e lo si vuole riportare a tale forma.
Esempio.
Consideriamo adesso il sistema:

x1 + x2 + x3 = 1
x1 , x2 , x3 0

2.9. SPAZIO DI RIFERIMENTO.

47

x3

x1
x2

Figura 2.29

Linsieme delle soluzioni possibili appare in grigio in figura. Ci sono tre punti
estremi corrispondenti a tre soluzioni di base per x1 + x2 + x3 = 1. Essendovi un
solo vincolo A = (a1 , a2 , a3 ) = (1, 1, 1).

x1

T
Ax = b (1, 1, 1)
x2 = 1 x = (x1 , x2 , x3 ) b = (1)
x3
Le soluzioni base possibili corrispondenti ai tre punti estremi sono:

1
0
0

x1 = 0 x2 = 1 x3 = 0
0
0
1
Poich`e rango(A) = 1 le soluzioni sono non degeneri.

Esempio di soluzione base possibile degenere.


Sia dato il sistema dei vincoli:

x1 + x2 + x3 = 1
x1 + x2 + 2x3 = 1
xi 0, i = 1, 2, 3

48

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE


x3

x1
x1=(1,0,0)
x3=(1/2,1/2,0)
x2

x2=(0,1,0)

Figura 2.30
Si ha:
A=

1 1 1
1 1 2

b=

1
1

Ordiniamo le colonne di A in modo da determinare la sottomatrice B1 costituita da due vettori colonna linearmente indipendenti. Si ha:

A1 =

x1

a1 a2 a3 

1 1 1
1 2 1

B1 =

a1 a3 

1 1
1 2

det(B1 ) = 1 = 0





x1
1
x1
1

= x3 = 0 ; xB1 =
=
; xN1 = (0)
x3
0
x2
0

x1 =

xB1
xN1

B11 b
0

Permutando in modo analogo le colonne di A si ottiene unaltro punto estremo:

A2 =

x2

a3 a2 a1 

B2 =

1 1
2 1

det(B2 ) = 1 = 0





x3
0
x3
0

= x2 = 1 ; xB2 =
=
; xN2 = (0)
x2
1
x1
0

x2 =

1 1 1
2 1 1

a3 a2 

xB2
xN2

B21 b
0

Le componenti > 0 di x1 e x2 sono in numero minori del rango di A le


soluzioni base possibili trovate sono degeneri. La soluzione xT3 = (1/2, 1/2, 0) `e
possibile
e corrisponde alla sottomatrice
e non
 degenere, ma non di base perch`
1 1
B3 =
che ha det B3 = 0.
1 1

2.9. SPAZIO DI RIFERIMENTO.

49

Esempio:
Consideriamo ora linsieme vincolare in E 3 :
x1 + x2 + x3 = 1
2x1 + 3x2 = 1
x1 , x2 , x3 0
x3

(0,1/3,2/3)

(1/2,0,1/2) (2,-1,0)

x1
x2

Figura 2.31
Linsieme mostrato in figura ha 2 punti estremi (o soluzioni base) possibili,
cio`e ( 12 , 0. 12 ) e (0, 13 , 23 ). Se si risolve il sistema, vi sono tre soluzioni base, di cui
la terza `e (2, 1, 0) che per`o non `e possibile perch`e x2 = 1 < 0.



a
a
a
x
1
1
2
3


1

1 1 1
A1 =
b=
x=
x2
1
2 3 0
x3

Sia B1 = (a1 , a3 ) =
xB1 =

x1
x3

1 1
2 0

la prima base e N1 = (a3 ) =

1
3

, quindi

e xN1 = (x2 ). Ponendo x2 = 0:






x
1 1 1 1
1
da cui x3 = 12 e x1 = 12 .
x3 =
2 0 3
1
x2



1 1
1
Sia B2 = (a2 , a3 ) =
la seconda base e N2 = (a1 ) =
, quindi
3 0
2


x2
xB2 =
e xN2 = (x1 ). Ponendo x1 = 0:
x3





x2
1 1 1
1

da cui x2 = 12 e x3 = 23 .
x3 =
3 0 2
1
x1

50

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Esempio (soluzioni base possibili):


Dato linsieme poliedrale definito da:

x1 + x2 6
x2 3
x1 , x2 0
x2
(0,6)

P3=(0,3)

P1=(3,3)

P5=(0,0)

P2=(6,0)

x1

Figura 2.32
Per riportarci al caso Ax = b, x 0 introduciamo le variabili di slack. Il
sistema diventa:

x1 + x2 + x3 = 6
x2 + x4 = 3
x1 , x2 , x3 , x4 0

1 1 1 0
La matrice dei vincoli A =
= (a1 , a2 , a3 , a4 ). Dalle definizioni
0 1 0 1
una soluzione base possibile corrisponde ad una matrice 2x2 detta base B con
B 1 b non negativo. Vediamo come `e possibile estrarre la matrice B da A:
1)


1 1
B1 = (a1 , a2 ) =
0 1

det B1 = 1









x1
1 1
6
3

= B1 b =
=

xB1 =

x2
0
1
3
3




x1 =

x3
0

xN1 =
=

x4
0
2)

2.9. SPAZIO DI RIFERIMENTO.


B2 = (a1 , a4 ) =

1 0
0 1

51

det B2 = 1









x
1
0
6
6

1
1

= B2 b =
=

xB2 =

x4
0
1
3
3




x2 =

x2
0

xN2 =
=

x
0
3

3)

1 1
B3 = (a2 , a3 ) =
1 0

det B3 = 1









x
0
1
6
3

= B31 b =
=
xB3 =

x3
1
1
3
3




x3 =

x1
0

xN3 =
=

x4
0
4)


1 0
B4 = (a2 , a4 ) =
1 1

det B4 = 1









x
1
0
6
6

2
1
x =

= B4 b =
=

B4

1
1
3
3
x4




x4 =

x1
0

xN4 =
=

x3
0
5)


1 0
B5 = (a3 , a4 ) =
0 1

det B5 = 1









x
1
0
6
6

= B51 b =
=

xB5 =

x4
0
1
3
3




x5 =

x1
0

xN5 =
=

x2
0
Osservazione 1:
I punti relativi alle basi 1,2,3,5 sono soluzioni base possibili, mentre il punto
associato alla base 4 non `e base possibile perche non rispetta il vincolo di non
negativit`a. Si hanno quindi 4 soluzioni base possibili:

xT1 = (3, 3, 0, 0), xT2 = (6, 0, 0, 3)


xT3 = (0, 3, 3, 0), xT5 = (0, 0, 6, 3)

52

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

Tali punti appartengono ad E 4 in quanto abbiamo aggiunto due variabili di


slack. Se proiettiamo quaste soluzioni in E 2 , cio`e nello spazio di x1 e x2 si hanno i
4 punti in figura, cio`e P1 , P2 , P3 , P5 . In questo caso il numero di possibili soluzioni
di base `e limitato dan numero di modi in cui si possono estrarre 2 colonne su 4
cio`e:

n
4
4321
4!
=
=
=
=6
m
2
2! 2!
2121

Osservazione 2:
C`e un modo intuitivo per individuare le soluzioni di base e le soluzioni di base
possibili:
Ogni vincolo, compresi quelli di non negativit`a, pu`o essere associato in modo
univoco ad una variabile; cos` x1 0 `e associato alla variabile x1 e la retta x1 = 0
`e la frontiera del semispazio corrispondente al vincolo x1 0. Lo stesso si pu`o
dire di x2 0 a cui corrisponde x2 = 0. x1 + x2 6 pu`o essere associato alla
variabile x3 e x3 = 0 `e la frontiera del semispazio x1 + x2 6. Se disegnamo la
frontiera per i vari vincoli si ottiene il grafico in figura:
x2
(4)
x1 = 0
(3)

(1)

x4 = 0

x3 = 0
(2)

(5)
x2 = 0

x1

Figura 2.33
Le soluzioni base corrispondono allintersezione di due rette del grafico. Le
rette corrispondono alle variabili di base.
Nel grafico ci sono 5 intersezioni corrispondenti alle 4 soluzioni di base trovate.
La (4) `e per`o nella regione non ammissibile e, come visto analiticamente, non `e
soluzione possibile. Si osservi infine che non c`e nessuna intersezione tra le rette
x4 = 0 e x2 = 0 e quindi nessuna soluzione `e associataa queste due variabili non
basiche (corrisponderebbe infatti alla coppia di vettori a1 , a3 che non possono
formare una base in quanto det B13 = det(a1 , a3 ) = 0).
Una volta individuata la regione ammissibile si possono immediatamente distinguere le soluzioni di base da quelle che sono anche basi possibili.

2.9. SPAZIO DI RIFERIMENTO.

53

Esempio di soluzione base possibile degenere.


Dato il sistema:
x1 + x2
x2
x1 + 2x2
x1 , x2
max(x1 + 3x2 )

6
3
9
0
z

x1 = 0
x2
(0,9/2)
Z max

x3 = 0
(3,3)

x4 = 0

(0,3)
x5 = 0
x1
x2 = 0

(9,0)

Z min

Figura 2.34
La regione ammissibile `e la stessa dellesempio precedente poiche il terzo vincolo `e ridondante. Se aggiungiamo le variabili di slack si ottiene:
x1 + x2 + x3
x2 + x4
x1 + 2x2 + x5
xi

=
=
=

6
3
9
0 i = 1, .., 5

Si ha quindi:

1 1 1 0 0

A = (a1 , a2 , a3 , a4 , a5 ) = 0 1 0 1 0

1 2 0 0 1

Consideriamo la soluzione base possibile associata a B1 = (a1 , a2 , a3 ), det(B1 ) =


1.
x1 = (xB1 , xN1 )

x1
1 1 1
6
0 2 1
6
3

0
xB1 =
x2 = 0 1 0 3 = 0 1
3 = 3
x3
1 2 0
9
1 1 1
9
0

54

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE


x4
0
xN1 =
=
x5
0
Questa soluzione `e degenere in quanto x3 = 0 `e una variabile di base. Si
verifica inoltre che la stessa soluzione si ottiene con le basi B2 = (a1 , a2 , a4 ) e
B3 = (a1 , a2 , a5 ). Le basi B1 , B2 e B3 rappresentano cos` lo stesso punto estremo:
(x1 , x2 , x3 , x4 , x5 ) = (3, 3, 0, 0, 0)
Questa soluzione base possibile `e degenere perch`e contiene una variabile di
base a livello 0. Gli altri punti estremi invece corrispondono a soluzioni base
possibili non degeneri (sono intersezioni di due sole rette).
Questo `e comunque un caso particolare perch`e abbiamo gi`a visto che la degenerazione non `e solo il risultato di vincoli ridondanti. Come nellesempio precedente, anche in questo caso, associando una variabile a ciascun vincolo, si nota
quali sono le soluzioni di base e quelle di base possibili:

x1 = 0

(4)

(6)
(3)

(1)

x4 = 0
x5 = 0

x3 = 0
(2)

(5)
x2 = 0

(7)

Figura 2.35
Dalla figura si desume immediatamente come i punti (6) e (7), pur essendo
suluzioni di base non siano sol. possibili.
Osservazione:
La corrispondenza tra soluzioni base possibili e punti estremi `e biunivoca, ma
la biunivocit`a non esiste tra soluzioni base possibili e matrici di base, in quanto
abbiamo visto come matrici di base possano determinare soluzioni di base non
possibili.
Introduciamo ora una funzione obiettivo; sia max z = x1 + 3x2 . Per ogni
valore finito di z si ha una retta per cui, facendo variare z si ha un fascio di rette
parallele. Il valore ottimo si avr`a per la retta passante dal solo punto in comune
tra la retta e la regione ammissibile e din corrispondenza del quale si realizza il
massimo valore di z

2.9. SPAZIO DI RIFERIMENTO.

55

Esempio:
Consideriamo linsieme vincolare:
8
x1 + x2
3
x1 + x2
2x1
x1 , x2

4
2
3
0

x1 = 0

x4=0 (2)

x5=0 (3)

x3=0 (1)

x2 = 0
F.O. = -2x1-x2

Figura 2.36
Dalla figura si nota che linsieme ha 5 punti estremi corrispondenti a soluzioni
base possibili. Ci riportiamo alla forma standard introducendo delle variabili di
slack.
Linsieme vincolare diventa:
8
x1 + x2 + x3
3
x1 + x2 + x4
2x1 + x5
x1 , x2 , x3 , x4 , x5

4
2
3
0

Una soluzione base si ottiene mettendo a zero due variabili qualsiasi e risolvendo rispetto alle altre.
Osserviamo che ogni spigolo corrisponde ad una variabile = 0 ed un vertice a
due variabili = 0. Si vede dallesempio che anche se il problema non `e espresso
in forma standard, i punti estremi dellinsieme definito dai vincoli del sistema
lineare corrispondono alle soluzioni possibili di base. Se si introduce una f.o. ,
ad esempio z = 2x1 x2 , per ogni valore fissato di z si ha una retta, perci`o
al variare di z si ha un fascio di rette parallele. Il valore ottimo del p.p.l. `e il
max (o il min) valore di z per cui la retta ha un punto in comune con la regione

56

CAPITOLO 2. PROBLEMI DI PROGRAMMAZIONE LINEARE

ammissibile.Graficamente risulta chiaro che i punti soluzione includeranno sempre


almeno un punto estremo. Nel caso in figura lottimo `e xT = (3/2, 1/2) con
z = 7/2.

Capitolo 3
Metodo del Simplesso
Dato un p.p.l. in forma standard, si passa da una soluzione base possibile (cio`e da
un punto estremo) dellinsieme vincolare ad unaltra (o ad un altro) in modo da
migliorare il valore della funzione obiettivo. Si passa quindi da un punto estremo
allaltro fino a che non si `e trovato lottimo. Dal teorema fondamentale dell p.l.
si ha la garanzia che `e sufficiente considerare solo soluzioni base possibili nella
ricerca dellottimo. Mostreremo un metodo efficiente per muoversi fra soluzioni
di base al fine di raggiungere il valore ottimo (sia esso minimo o massimo). per
capire come funziona la procedura del simplesso `e necessario, per prima cosa,
capire il processo di pivoting su un insieme di equazioni lineari. Di questo
diamo due interpretazioni, una duale dellaltra.

3.1

Pivoting (Prima Interpretazione)

Consideriamo il sistema Ax =b cio`e:


a11 x1 + ... + a1n xn = b1
...
...
= ...
am1 x1 + ... + amn xn = bm

(3.1)

In E n queste sono m relazioni lineari che devono essere soddisfatte (dal vettore
x). Se ai indica li-esima riga di A , si pu`o esprimere il sistema come:
ai x = b1
... = ...
m
a x = bm

(3.2)

Se m < n e le relazioni sono linearmente indipendenti non esiste una sola


soluzione, ma una variet`a lineare di soluzioni. Ununica soluzione esiste se ag57

58

CAPITOLO 3. METODO DEL SIMPLESSO

giungiamo a queste n m equazioni lineari linearmente indipendenti della forma


(per esempio):
ek x = 0 con ek vettore unitario: (0, .., 0,

in pos. k

, 0, .., 0)

Il sistema cos` ottenuto `e equivalente al precedente in quanto si verifica facilmente che xk = 0 per k = m + 1, .., n. In questo modo abbiamo ottenuto una
soluzione di base per il sistema (anche se se ne potrebbero trovare anche altre
imponendo n m relazioni diverse da quelle specificate).

3.1.1

Eliminazione di Gauss.

Se le (3.2) sono linearmente indipendenti si pu`o sostituire una equazione con


unaltra ottenuta da un multiplo di questa pi`
u una combinazione lineare delle
altre equazioni del sistema. Una tale operazione `e nota come leliminazione di
Gauss e permette di ricondursi ad una forma triangolare o forma canonica. E
noto che con operazioni di moltiplicazione e sottrazione si pu`o riportare il sistema
(3.1) alla forma equivalente, cio`e avente le stesse soluzioni:

x1 +
+y1,m+1 xm+1 + ... + y1,n xn = y10
x2 + +y2,m+1 xm+1 + ... + y2,n xn = y20
xm + ym,m+1 xm+1 + ... + ym,n xn = ym0

(3.3)

Rispetto a questa forma canonica le variabili x1 , .., xm sono dette variabili di


base, mentre le variabili xm+1 , .., xn sono dette variabili non di base. La soluzione
corrispondente si ricava facilmente come:
x1 = y10 ; x2 = y20 ; ... ; xm = ym ; xm+1 = 0; ... ; xn = 0
o nella forma vettoriale xT = (y o , 0) dove y 0 `e il vettore m-dimensionale dei
termini noti della (3.3) e 0 `e un vettore nullo con n m componenti. Rilassiamo
la definizione di forma canonica:
Definizione 27 Un sistema `e in forma canonica se fra le n variabili ve ne
sono m basiche con la propriet`a che ciascuna compaia in uno e in un sol vincolo
con coefficiente unitario e che nessuna coppia (o pi`
u di una) di queste variabili
compaia nella stessa equazione.
Ci`o equivale a dire che, riordinando in qualche modo le variabili del sistema,
questo assume la forma canonica (3.3). In forma tabulare il sistema (3.3) assume
la forma:

3.1. PIVOTING (PRIMA INTERPRETAZIONE)

1 0 ... 0 y1,m+1 ... y1n y10


0 1 ... 0 y2,m+1 ... y2n y20
...
...
...
...
...
0 ...
1 ym,m+1
ymn ym0

59

(3.4)

Attraverso il pivoting si risolve adesso il seguente problema:


Dato un sistema in forma canonica, come si fa a fare diventare non basica
una variabile basica e viceversa, ottenendo comunque una forma canonica?
Supponiamo di voler rimpiazzare la variabile di base xr con 1 r m con
una variabile non di base xs con m + 1 s n. Se yrs = 0 si divide la riga
r (detta riga pivot) per yrs (ottenendo cos` un coefficiente unitario per xs ). Da
ciascuna delle altre righe poi si sottrae un opportuno multiplo della riga r per
far diventare nullo il coefficiente di xs in tutte le altre equazioni (eccetto quindi
lr-esima). Queste operazioni trasformano la colonna s-esima della tavola in un
vettore unitario (cio`e con 1 nel posto (r,s)) e non alterano le colonne relative alle
altre variabili di base (eccetto la colonna r che viene ovviamente modificata).
Esplicitamente, il generico coefficiente yij (lelemento di riga i e colonna j dopo
la trasformazione) sar`a:

per i = r j yrj
=

yrj
yrs

per i = r, j = s yis
=0

per ottenere ci`o si deve trovare, per ogni i, il multiplo opportuno i tale
che:

yis
= yis

yrs

yrs i

= 0 yis i = 0 i = yis

per i = r, j = s yij = yij


yrj
yrs

yrj

yrs i

= yij

yrj
y
yrs is

`e il coefficiente di xj nella riga r dopo averla divisa per yrs ;

i `e lelemento per cui si moltiplica la riga r dopo averla moltiplicata per


1
che `e il coefficiente di xs nella riga i.
yrs
Quindi:
yrj
yis
(3.5)
yrs
`e la relazione che si usa per determinare tutti i coefficienti ad eccezione di quelli
della riga r, che sono semplicemente divisi per lelemento pivot yrs . Riassumendo:
yij = yij

yij = yij
yij =

yrj
yrs

yrj
yis per i = r
yrs
per i = r

60

CAPITOLO 3. METODO DEL SIMPLESSO

Esempio.
Consideriamo il sistema:
2x1 + x2 + x3 = 2
x1 + 2x2 + x3 = 3

(a)
(b)

e la corrispondente matrice dei coefficienti (comprensiva, come ultima colonna,


del vettore dei termini noti):
(A, b) =

2 1 1 2
1 2 1 3

Si divide la (a) per 2 (o si moltiplica per 1/2):


x1 +

x2 x3
+
=1
2
2

(a)

Si sottrae la (a) da (b):


1
3
x2 + x3 = 2
2
2
Dopo il primo passo il sistema `e diventato:

(b)

x2 x3
+
= 1
2
2
3
x3
x2 +
= 2
2
2

x1 +

Si divide (b) per

Si moltiplica per

3
2

1
2

:
1
4
x2 + x3 =
3
3
(b) e si sottrae da (a):

1
1
x1 + x3 =
3
3
Dopo il secondo passo il sistema dunque diventa:
1
1
+ x3 =
3
3
1
4
x2 + x3 =
3
3

x1

La tavola iniziale mi si `e dunque cos` modificata:

(a)

(b)

3.2. PIVOTING (SECONDA INTERPRETAZIONE).

(A , b ) =

1 0
0 1

1
3
1
3

1
3
4
3

61

Il sistema `e ora in forma canonica; le variabili di base sono x1 e x2 ed assumono


valore rispettivamente di 13 e 43 ; la variabile non di base `e x3 ed assume valore
nullo; la soluzione `e quindi:
1
4
x1 = ; x2 = ; x3 = 0;
3
3
Dato il sistema precedente in forma canonica, vogliamo ora rimpiazzare la
variabile di base x2 (r = 2) con la variabile non di base x3 (s = 3). Lelemento
pivot della tavola sar`a yrs = y23 = 13 = 0. Possiamo allora dividere la riga 2 per
y23 ottenendo:
3x2 + x3 = 4

(b)

Si sottrae dalla riga (a) la riga (b) moltiplicata per 1:


x1 x2 = 1

(a)

Il sistema, in forma tabellare, `e dunque cos` trasformato:

(A , b ) =

1 1 0 1
0 3 1 4

Per questa nuova forma canonica si ottiene la soluzione base:


x1 = 1; x2 = 0; x3 = 4;
che non `e una soluzione base possibile, essendo x1 < 0. Allo stesso modo se
invece di x2 si rimpiazza x1 si ottiene la soluzione base x1 = 0; x2 = 1; x3 = 1
che `e anche soluzione base possibile.

3.2

Pivoting (Seconda Interpretazione).

Il sistema nella forma (1) pu`o essere interpretato in E m come unequazione di


vettori. Se indichiamo con a1 , ..., am le colonne di A si pu`o riscrivere la (1) nella
forma:
x1 a1 + x2 a2 + ... + xn an = b

(3.6)

Si esprime quindi b come combinazione lineare dei vettori a1 , ..., an . Se m < n


e i vettori ai (i = 1, .., n) rappresentano E m allora non c`e ununica soluzione, ma

62

CAPITOLO 3. METODO DEL SIMPLESSO

una famiglia di soluzioni. Il vettore b ha comunque ununica rappresentazione


come combinazione lineare di un dato sottoinsieme di vettori di A che siano
linearmente indipendenti. Si ottiene una soluzione base ponendo a zero (n m)
delle xi (i = 1, .., n) variabili.
Sia dato il sistema nella forma tabulare canonica (3.4). In tal caso i primi
m vettori formano un base di E m ed ogni altro vettore della tavola pu`o essere
espresso come combinazione lineare di questi vettori di base. Poiche i primi m
vettori sono unitari si avr`a:
a1 = e1 ; a2 = e2 ; ... ; am = em ;
e quindi, in generale i vettori aj si potranno esprimere come:
aj = y1j e1 + y2j e2 + ... + ymj em =
= y1j a1 + y2j a2 + ... + ymj am

(3.7)

La tavola dunque pu`o essere vista come la rappresentazione dei vettori aj in


termini dei vettori di base (cio`e la j-esima colonna rappresenta appunto il vettore
aj ). In particolare la colonna (n+1)-esima rappresenta b. Vogliamo ora sostituire
un vettore di base ar (r = 1, .., m) con uno non di base as (s = m + 1, .., n), nel
caso ovviamente che tale sostituzione porti ad avere una base, cio`e che i vettori
a1 , .., ar1 , as , ar+1 , .., am formino una base (siano linearmente indipendenti). In
questo caso ogni altro vettore di A potr`a essere espresso come combinazione lineare della nuova base. Per trovare la nuova rappresentazione dei vettori occorrer`a
aggiornare la tavola.
La condizione di indipendenza lineare vale yrs = 0. Infatti ogni vettore aj
pu`o essere espresso in funzione della vecchia matrice di base attraverso la (3.7)
e, in particolare per as , si ha:
as = y1s a1 + y2s a2 + ... + yrs ar + ... + yms am =
=

(yis ai ) + yrs ar

i=1,i=r

Risolvendo rispetto ad ar si ottiene:


ar =

m

1
yis
as
a
yrs
y i
i=1,i=r rs

Sostituendo la (3.8) nella (3.7) si ha:


aj = y1j a1 + y2j a2 + ... + ymj am =

(3.8)

3.2. PIVOTING (SECONDA INTERPRETAZIONE).


m

63

m

1
yis

=
(yij ai ) + yrj
as
ai =
yrs
i=1,i=r
i=1,i=r yrs

i=1,i=r

yis
yrj
(yij
)ai +
a
yrs
yrs s

Si ottengono cos` i coefficienti della nuova tavola con as in base al posto di ar


:
yij = yij
yij =

yrj
yrs

yrj
yis per i = r
yrs
per i = r

Tali formule sono identiche alle (3.5), cio`e a quelle ottenute con la prima
interpretazione.
Con il teorema fondamentale della p.l. abbiamo visto che, nella ricerca del
valore ottimo, `e necessario considerare solo soluzioni base possibili al sistema
Ax = b, x 0. Abbiamo ora dimostrato come, con loperazione di pivoting,
si possa passare da una soluzione base ad unaltra. Il pivoting per`o non garantisce la non negativit`a della soluzione. Nelleseguire il pivoting allora devono
essere rispettate alcune condizioni nel passare da una soluzione base possibile ad
unaltra.
Perch`e la nuova soluzione sia ancora base possibile, data una base non `e
possibile prefissare le due variabili che dovranno essere scambiate; `e comunque
possibile fissare la variabile che si vuole far diventare basica e di conseguenza
determinare la variabile basica che diventer`a non basica. Mostreremo il perche
di tutto questo. Per semplicit`a supporremo che:
Hp: Ogni soluzione possibile al sistema Ax = b, x 0 , sia non degenere.
Ci`o `e necessario per evitare che il metodo del simplesso si blocchi, e ci`o si
verifica in caso di soluzione degenere se non si aggiustano le cose in maniera
opportuna. Tale Hp. sar`a reintrodotta successivamente.
Determinazione del vettore che esce dalla base.
Sia x= (x1 , ..., xm , 0, ..., 0) una soluzione base possibile o equivalentemente sia
x1 a1 + ... + xm am = b
xi 0 i = 1, .., m

(3.9)

Supponiamo di volere che as entri in base, rappresentiamo tale vettore in


termini della base corrente:

64

CAPITOLO 3. METODO DEL SIMPLESSO

as = y1s a1 + ... + yms am

(3.10)

moltiplichiamo la (3.10) per 0 e sommiamola e sottraiamola dalla (3.9).


Si ha:
(x1 y1s )a1 + (x2 y2s )a2 + ... + (xm yms )am + as = b

(3.11)

Abbiamo cos` una rappresentazione di b con al pi`


u (m+1) vettori. Se = 0
si ottiene la vecchia rappresentazione, cio`e la vecchia base possibile. Al crescere
di cresce il coefficiente di as e, per piccoli valori di la soluzione sar`a sempre
possibile, ma non di base.
Se qualche coefficiente dei vettori di base diminuisce al crescere di (ci`o si
verifica per yis > 0) si pu`o assegnare a il valore che fa azzerare per primo uno
dei coefficienti dei vettori di base ai , i = 1, .., m. Si prender`a dunque:
=min
i

xi
: yis > 0
yis

(3.12)

Si ottiene cos` una nuova soluzione base possibile con as al posto di ar , dove
r `e lindice in corrispondenza del quale si ottiene il minimo . Se pi`
u di un indice
i `e associato al valore minimo in (3.12) la nuova soluzione `e degenere ed uno
qualunque dei vettori con componente nulla pu`o essere preso come vettore che
esce di base.
Se nessun yis `e positivo i coefficienti in (3.11) non si annulleranno mai al
crescere di , per cui non `e possibile determinare una soluzione base possibile. In
questo caso si possono avere valori arbitrariamente grandi nei coefficienti della
(3.11) linsieme K delle soluzioni possibili `e illimitato.
Consideriamo il sistema in forma tabulare; vogliamo ora mantenere la soluzione
base possibile supponendo di partire con una forma canonica e soluzione base corrispondente non negativa, cio`e possibile. Sia
a1 a2
1 0 ...
0 1 ...
...
...
0 ...

am
0
0
1

am+1

an

y1,m+1 ... y1n y10


y2,m+1 ... y2n y20
...
...
...
ymn ym0
ym,m+1

Per quanto detto x1 = y10 ; ... ; xm = ym0 `e soluzione base possibile (se yi0 0
i). Vogliamo portare in base il vettore as con s > m : si determina allora quale
elemento di as sar`a il pivot, calcolando i rapporti yyi0
per yis > 0 e prendiamo il
is
minimo in base alla (3.12). Ci`o garantir`a che tutte le componenti della soluzione
base saranno 0.

3.2. PIVOTING (SECONDA INTERPRETAZIONE).

65

Consideriamo ad esempio il sistema in forma canonica:


a1 a2 a3 a4 a5 a6

1
0
0

12
60
90

0
1
0

0
0
1

1
2
4

1
3
1

2
1
4

La base `e a1 , a2 , a3 associata alla soluzione base possibile:


xT = (12, 60, 90, 0, 0, 0)
Vogliamo ora far entrare in base a4 ; per stabilire quale sar`a lelemento pivot
della quarta colonna si calcola:
=min
i

12 60 90
, ,
= 12 i = 1
1 2 4

Osservazione: Il minimo `e stato calcolato per tutti gli elementi di a4 perch`e


sono tutti positivi.
Lelemento pivot `e dunque y14 = 1 r = 1; allora:
1) Si divide per y14 la prima riga (resta quindi inalterata);
2) Si moltiplica per 2 la prima riga e si sottrae dalla seconda;
3) Si moltiplica per 4 la prima riga e si sottrae dalla terza.
Si ottiene cos` la nuova tavola:
a1
a1 1
a2 2
a3 4

a2 a3 a4

a5

0
1
0

1
2 12 b1
1 3 36 b2
3 4 42 b3

0
0
1

1
0
0

a6

corrispondente alla soluzione base possibile xT = (0, 36, 42, 12, 0, 0).
Approccio duale:
Si basa sullanalisi per righe anziche per colonne. Se lelemento pivot `e yrs , si
divide la riga r per yrs per trasformare in 1 yrs . Perche yr0 (e quindi xr ) rimanga
positivo deve essere yrs > 0. Si sottraggono poi multipli della r-esima riga da
ciascuna delle altre righe per ottenere valori nulli in corrispondenza degli elementi
della colonna s. Gli elementi della colonna b resteranno positivi (o non negativi)
se il pivot `e scelto in modo opportuno.
Loperazione, riga per riga, consiste nel togliere dalli-esima riga, lr-esima
is
moltiplicata per yyrs
. La nuova soluzione, letta sullultima colonna, sar`a:

66

CAPITOLO 3. METODO DEL SIMPLESSO

xi = xi

yis

xr (dove xi = yi0
, xi = yi0 , xr = yr0 )
yrs

Perche questa sia non negativa deve essere:


xi

yis
xi
xr
xr > 0
>
yrs
yis
yrs

Si giunge quindi alla conclusione che r deve essere lindice che minimizza i
rapporti xi /yis .

3.3
3.3.1

Interpretazione geometrica.
Prima Interpretazione.

Consideriamo lo spazio in cui `e rappresentato x, cio`e E n detto spazio delle


attivit`
a. In questo spazio la regione ammissibile `e un insieme convesso e le
soluzioni base possibili sono punti estremi. Punti estremi adiacenti giacciono su
uno spigolo comune.
Esempio.
x1 + x2 + x3 = 1
2x1 + 3x2 +
= 1
x1 , x2 , x3 0

x3

(0,1/3,2/3)

(1/2,0,1/2)
(2,-1,0)
x1

x2

Figura 3.1

3.4. RICERCA DELLA SOLUZIONE POSSIBILE OTTIMA.

3.3.2

67

Seconda Interpretazione

Consideriamo lo spazio in cui sono rappresentate le colonne di A e b, cio`e lo spazio


di riferimento E m . La relazione fondamentale `e:
a1 x1 + ... + an xn = b
Per n = 4 e m = 2 si ha per esempio:

a2
b
a4
a3
a1

Figura 3.2
Una soluzione possibile rappresenta b come combinazione degli ai . Una soluzione
base possibile si ha dando due pesi positivi ad esempio ad a1 ed a2 , poiche b giace
nel cono convesso generato da tali vettori. Non si potr`a costruire una s.b.p. con
pesi positivi con a1 ed a3 . Quindi se il metodo parte con a1 ed a2 come base, se
si fa entrare a3 dovr`a uscire a1 .

3.4

Ricerca della soluzione possibile ottima.

Supponiamo, senza perdere di generalit`a, di avere come f.o. :


min cT x
(infatti se si vuole max cT x ci`o equivale ad avere min(cT x))
Lidea `e di scegliere la colonna entrante in base in modo da ridurre il valore
della f.o. rispetto alla base precedente. Questo `e il passo che completa lalgoritmo
del simplesso. Abbiamo gi`a visto come si determina il vettore che esce dalla base
per mantenere lammissibilit`a della soluzione. Dobbiamo quindi vedere come si
determina il vettore che entra in base. Sia:
(xTB , 0) = (y10 , ..., ym0 , 0, ..., 0)
una soluzione base possibile associata ad una tavola con la matrice identit`a
costruita dalle prime m colonne (cio`e in forma canonica):

68

CAPITOLO 3. METODO DEL SIMPLESSO

a1

am

1 ...
... 1
0 ...

0
...
1

am+1

an

y1,m+1 ... y1,n y10


...
...
...
ym,m+1 ... ym,n ym0

(3.13)

Il valore della f.o. corrispondente a qualunque soluzione x `e:


z = c1 x1 + ... + cn xn

(3.14)

e quindi per la soluzione di base il valore corrispondente `e:


z0 = cTB xB dove cTB = (c1 , ..., cm )

(3.15)

Se invece di avere la soluzione (xTB , 0) avessimo qualche altra soluzione ottenuta assegnando valori arbitrari alle variabili xm+1 , .., xn , per ottenere la soluzione
si risolverebbe il sistema per le rimanenti variabili. Si avrebbe quindi:

x1 = y10
x2 = y20
...
xm = ym0

j=m+1
n

y1j xj
y2j xj

(3.16)

j=m+1
n

ymj xj

j=m+1

Da queste relazioni, sostituendole nella (3.14) si ha:

z = cT x = c1 (y10

y1j xj ) + c2 (y20

j=m+1
n

+cm (ym0

y2j xj ) + ... +

j=m+1

ymj xj ) + cm+1 xm+1 + ... + cn xn

j=m+1

= c1 y10 + ... + cm ym0 + (cm+1

ci yi,m+1 )xm+1 + ... +

i=1

+(cn

ci yin )xn

i=1

Se indichiamo con z0 =

m


ci yi0 e con

i=1
m

zj =

i=1

ci yij per j = m + 1, .., n

(3.17)

3.4. RICERCA DELLA SOLUZIONE POSSIBILE OTTIMA.

69

si pu`o scrivere
z = z0 + (cm+1 zm+1 )xm+1 + ... + (cn zn )xn

(3.18)

La (3.18) `e la relazione fondamentale per individuare la colonna pivot; infatti ci da il modo in cui cambia il valore della f.o. in funzione delle variabili
xm+1 , ..., xn .
Dalla (3.18) si vede se c`e vantaggio ad introdurre in base una delle variabili
non di base. Facendo infatti aumentare il valore di xj da 0 a qualche valore
positivo, per j = m+1, .., n avremo una diminuzione della f.o. solo se (cj zj ) < 0.
Vogliamo ora ottenere lo stesso risultato da un altro punto di vista. Posto
T
a0 = (y10 , ..., ym0 ), sia ai li-esima colonna della tavola; qualsiasi soluzione x
soddisfa:
x1 e1 + ... + xm em = a0 xm+1 am+1 ... xn an
Facendo il prodotto interno di queste equazioni vettoriali con cTB si ha:
c1 x1 + ... + cm xm = cTB a0 cTB am+1 xm+1 ... cTB an xn
Se si pone zj = cTB aj , con j = m + 1, .., n si ha quindi:
n

ci xi = c x =

j=m+1

cTB a0 +

(cj zj )xj

j=m+1

che non `e altro che la (3.18). Possiamo quindi formulare la condizione di


miglioramento della f.o. come teorema.
Teorema 4 Miglioramento della soluzione base possibile.
Data una soluzione base possibile non degenere con valore z0 per la f.o., se
per qualche j vale che (cj zj ) < 0 esiste una soluzione possibile con valore z
della f.o. tale che z < z0 .
Se la colonna aj pu`o sostituire un vettore della base si ottiene una nuova
soluzione base possibile con z < z0 ;
Se aj non pu`o sostituire un vettore della base linsieme delle soluzioni K `e
illimitato e la funzione obiettivo pu`o essere ridotta arbitrariamente (verso ).
Dimostrazione:
Sia (x1 , .., xm , 0, .., 0) la soluzione base possibile tale che la f.o.= z0 . Supponiamo
che cm+1 zm+1 < 0, allora si potranno costruire nuove soluzioni possibili della
forma:
?

(x1 , x2 , .., 0, .., xm , xm+1 , 0, .., 0)

70

CAPITOLO 3. METODO DEL SIMPLESSO

dove il punto interrogativo sopra lo zero sta ad indicare che a priori non si
conosce quale delle variabili di base verr`a tolta dalla base nella nuova soluzione.
Se si sostituisce tale soluzione nella f.o.:
z = cT x = z0 + (cm+1 zm+1 )xm+1 + ... + (cn zn )xn
si ha:
z z0 = (cm+1 zm+1 )xm+1 < 0
per cui z < z0 per ogni possibile soluzione di questo tipo.
Pi`
u grande sar`a reso xm+1 , maggiore sar`a il decremento della funzione obiettivo. Daltra parte laumento di xm+1 da 0 ad un certo valore positivo fara
diminuire, rimanere costanti o incrementare le altre componenti di base. Lincremento
di xm+1 si arresta quando un xi , per i {1, .., m} si azzera, cio`e quando si ottiene
una nuova soluzione base possibile.
Se al crescere di xm+1 non si azzera nessun xi con i = {1, .., m} allora si pu`o
continuare allinfinito ad aumentare xm+1 e di conseguenza a diminuire la f.o. che
sar`a perci`o illimitata ().
Ricordiamo anche come si ottiene da xm+1 o, in generale, da xs il vettore che
esce dalla base.
Da:
(x1 y1s )a1 + ... + (xm yms )am + as = b
si determina r tale che
r =min
i

xi
: yis > 0
yis

o anche, dato che per ogni s.b.p. xi = yi0 :


r =min
i

yi0
: yis > 0
yis

Osservazioni:
1) i valori (cj zj ) sono detti costi ridotti perche sono i coefficienti delle
variabili non basiche in uno spazio ridotto, cio`e lo spazio relativo alle variabili
non di base nella funzione obiettivo. Infatti:
z = z0 +

(cj zj )xj

j=m+1

`e riferita ad uno spazio di dimensione (n m).

3.4. RICERCA DELLA SOLUZIONE POSSIBILE OTTIMA.

71

2) Interpretazione di cj zj < 0.
Sia cj zj < 0 per una variabile non di base. Riguardiamo la definizione di zj
e facciamo alcune considerazioni sul significato del criterio usato per fare entrare
in base il vettore aj se cj zj < 0.
Indichiamo:
z = cT x = cTB xB + cTN xN
con cTB vettore dei costi associato alle variabili di base (m componenti) e
con cTN vettore dei costi associato alle variabili non di base (ad n-m componenti).
Si ha dunque:
(B|N ) =

xB
xN

= b xB = B 1 b B 1 N xN

Poiche N = (am+1 , ..., an ), nellipotesi che B sia composta dalle prime m


colonne di A, si ha:
B 1 N = B 1 (am+1 , ..., an ) =

B 1 aj

j=m+1
n

quindi B 1 N xN =

B 1 cj xj

j=m+1

Sostituendolo nellespressione di z si ha:

z = cTB B 1 b
= cTB B 1 b+

j=m+1
n

B 1 aj xj +

cj xj cTB

j=m+1

ma B

cj xj =

j=m+1

B 1 aj xj

j=m+1

1j


aj =
ci yij .
... quindi per ogni j si ha cTB B 1 aj =

iIB
ymj
Con IB si indicano gli indici di base; nellipotesi che B sia composta dalle
prime m colonne di A allora IB = {1, ..., m}.

Per definizione si ha che zj =


z =

m


i=1

cTB B 1 b+

= cTB B 1 b+

ci yij (costi ombra) quindi


n

j=m+1
n

j=m+1

cj xj

j=m+1

(cj zj )xj

zj xj =

72

CAPITOLO 3. METODO DEL SIMPLESSO

espressione che avevamo gi`a visto.


Se x `e soluzione di base possibile (x1 , ..., xm ) 0 e (xm+1 , ..., xn ) = 0. Se
cs zs < 0 per s [m + 1, n] vogliamo far cambiare il livello di xs da 0 ad un
certo valore positivo, lasciando a 0 le altre variabili non di base. Si considera
quindi linfluenza sulla f.o. della sola componente (cs zs )xs e cio`e:
z = cTB B 1 b + (cs zs )xs
Se si incrementa xs di una unit`a allora le variabili di base saranno incrementate, decrementate o lasciate inalterate della quantit`a yis con i = 1, .., m
(rispettivamente se yis > 0, yis < 0, yis = 0). Infatti il livello delle variabili di
base sar`a modificato in base alle relazioni:
xi = yi0 yis xs
quindi se la variabile xs aumenta di una unit`a, xi diminuir`a di yis (se yis > 0)
oppure aumenter`a di yis se yis < 0. Il guadagno che ne proviene incrementando
m

xs (in termini ad esempio di riduzione del costo) di una unit`a `e zs , cio`e
ci yis .
i=1

Se cs zs `e negativo, ogni unit`a di incremento di xs porta ad una riduzione del


costo globale di cs zs ; conviene quindi incrementare xs il pi`
u possibile. Se cs zs
`e positivo, un incremento di xs fa aumentare il costo globale con un guadagno
netto della modifica negativo tale operazione non conviene. Se cs zs = 0, un
incremento di xs porta ad una soluzione con lo stesso costo.
Corollario 5 Se xj `e una variabile di base cj zj = 0.
Dimostrazione:
Dato che
zj = cTB B 1 aj =

ci yij

iIB

essendo aj vettore di base, avr`a una sola componente = 0 (la j-esima) cio`e
sar`a y[j]j = 1 e y[j]i = 0 i = j. Allora
zj =

ci yij = cj cj zj = cj cj = 0 c.v.d.

iIB

Teorema 5 Condizioni di ottimalit`a.


Se per qualche soluzione base possibile si verifica che cj zj 0, j la
soluzione trovata z0 `e ottima.

3.4. RICERCA DELLA SOLUZIONE POSSIBILE OTTIMA.

73

Dimostrazione:
La tesi si ricava immediatamente dalla relazione:
z = cT x = z0 + (cm+1 zm+1 )xm+1 + ... + (cn zn )xn
dove zj =

yij ci , j = m + 1, ..., n

i=1

Verifichiamo comunque direttamente. Sia x s.b.p. (xT = (x1 , ..., xm , 0, ..., 0))
t.c. cj zj 0 j e sia z0 funzione obiettivo associata ad x, cio`e:
x1 a1 + ... + xm am = b
x1 c1 + ... + xm cm = z0
T

Supponiamo che esista unaltra s.b.p. x (x = (x1 , ..., xn )) tale che:


x1 a1 + ... + xn an = b

(3.19)

x1 c1 + ... + xn cn = z

(3.20)

Si vuol far vedere che z0 z . Poiche per ipotesi cj zj 0, j se si sostituisce


zj a cj in (3.20) (essendo cj zj ) si ha una minorazione cio`e:
x1 z1 + ... + xn zn z

(3.21)

Sostituiamo in (11) lespressione di aj per ciascun aj , cio`e aj = y1j a1 + ... +


ymj am ; si avr`a
x1 (y11 a1 + ... + ym1 am ) + ... + xn (y1n a1 + ... + ymnam ) = b
In forma sintetica
x1

yi1 ai + ... +

i=1

xn

yin ai = b

i=1

Se si riordina rispetto ai vettori di base ai , con i = 1, .., m si ottiene:

j=1

y1j xj a1

j=1

y2j xj a2

+ ... +

j=1

ymj xj am

Se in (13) ad ogni zj si sostituisce la sua espressione si ha:

=b

(3.22)

74

CAPITOLO 3. METODO DEL SIMPLESSO

x1

yi1 ci + x2

i=1

yi2 ci + ... + xn

i=1

yin ci z

i=1

Quindi riordinando rispetto ai costi delle variabili di base:

j=1

y1j xj c1 +

j=1

y2j xj c2 + ... +

j=1

ymj xj cm z

Poiche a1 , ..., am sono m vettori (di dimensione m) linearmente indipendenti,


possiamo esprimere b in uno ed in un sol modo come combinazione lineare di tali
vettori; pertanto da x1 a1 + ... + xm am =b e dalla (3.22) ne possiamo dedurre che:

x1 =
cio`e xi =

j=1
n

y1j xj ; ...; xm =

ymj xj

j=1

yij xj i

j=1

La (3.22) diventa quindi:

x1 a1 + ... + xm am = b
e dato che x1 c1 + ... + xm cm z
Allora z0 z c.v.d.

3.5

Significato dei costi ridotti.

3.5.1

Significato geometrico di cs zs .

Siano date le due relazioni vincolari:

x1 + 3x2 + 5x3 + 6x4 = 3


6x1 + 4x2 + 2x3 + x4 = 2
x1 , x2 , x3 , x4 0

3.5. SIGNIFICATO DEI COSTI RIDOTTI.

75
a4

z3

z0
a1

a3
c3

a2

y1j
a4

a3

a2
y2j

a1

Figura 3.3
Si vuole il min(5x 1 + 3x2 + 4x3+ 6x4 ).
1 3 5 6
Una base di A =
`e una sottomatrice B (2 x 2). Consideriamo
6 4 2 1
il costo associato a ciascuna variabile j come terza componente di aj e cio`e sia aj

a1j

il vettore a2j . Si ha quindi:


cj

1
3
5
6
3

a1 = 6 , a2 = 4 , a3 = 2 , a4 = 1 e b = 2 .
5
3
4
6
z
Da un punto di vista algebrico abbiamo visto che se consideriamo a4 ed a1
come vettori di base e z0 `e il valore della funzione obiettivo (c3 z3 ) rappresenta il decremento apportato a z da a3 (essendo c3 z3 < 0). Dal punto di
vista geometrico poiche la retta b interseca il cono K allora esistono soluzioni
possibili al problema. Si vede subito che a1 e a4 sono linearmente indipendenti.
Prendiamo dunque come primi due vettori di base a1 e a4 . Il punto a2 `e al di
sotto delliperpiano generato dai due vettori di base (c2 z2 < 0). Il punto a3 `e
a distanza z3 dalliperpiano ed a3 ne sta al di sotto (infatti c3 z3 < 0). Poiche
(c2 z2 ) < (c3 z3 ) entra a2 .
A questo punto bisogna decidere qual`e il vettore che deve uscire di base. Si
vede che b pu`o essere espresso come combinazione positiva di a2 ed a4 , ma non `e
invece contenuto nel cono generato da a1 ed a2 . Quindi a2 `e introdotto in base
eliminando a1 . Continuando con il procedimento si va ad introdurre in base a3
eliminando a4 . La base a2 , a3 fornisce cos` la soluzione ottima.

3.5.2

Interpretazione economica dei costi ridotti.

Consideriamo il problema della dieta. Si vuole determinare la dieta pi`


u economica che soddisfi le richieste minime dei principi nutritivi per mantenersi in buona
salute. In un magazzino siano venduti n cibi al costo unitario, per il prodotto j,
di cj . Si conoscono m principi nutritivi fondamentali che devono essere assunti

76

CAPITOLO 3. METODO DEL SIMPLESSO

per una dieta equilibrata. Ogni persona deve soddisfare cos` ad un fabbisogno
giornaliero minimo per ciascun principio nutritivo i (sia tale fabbisogno bi ). Supponiamo inoltre che nel cibo j sia presente, nellunit`a di prodotto, una quantit`a
aij del principio nutritivo i. Se indichiamo con xj il numero di unit`a (o semplicemente la quantit`a) del cibo j nelle dieta, il problema diventa:
z = min(c1 x1 + ... + cn xn )
n

aij xj bi con i = 1, .., m

j=1

xj 0 con j = 1, .., n

Se invece supponiamo che i principi nutritivi debbano essere assunti nella


esatta misura indicata, si ha il problema in forma standard:
z = min cT x
Ax = b
x 0
Ciascuna colonna aj della matrice A fornisce i principi nutritivi contenuti
nella unit`a di cibo j. Se consideriamo la base composta dalle prime m colonne di
A, la tavola del simplesso mi dice come i principi nutritivi possono essere assunti
nella giornata ricavandoli dalla combinazione dei cibi della base. Se la soluzione
trovata non `e ottima, si considera un cibo j non in base: sia cj il costo unitario
di tale prodotto, si confronta con il costo del prodotto sintetico elaborato in
laboratorio:
zj =

ci yij

iIB

Se il prodotto j sono ad esempio carote, e cj `e il costo unitario delle carote


acquistate dallortolano, zj `e il costo di una pillola che sostituisce lunit`a di carota
ed `e composta con i principi nutritivi contenuti nei cibi di base. Se cj = cj zj < 0
`e pi`
u vantaggioso mangiare le carote invece che le pillole, quindi si mettono in
base le carote!
In generale zj `e il prezzo di una unit`a della colonna aj quando `e costituita
dalla base corrente. La differenza fra il prezzo reale del prodotto ed il prezzo del
prodotto in pillole ci dice se la colonna (cio`e il cibo) deve o no entrare in base,
cio`e far parte dei cibi da acquistare per lalimentazione giornaliera.

3.6

Procedura del Metodo del Simplesso

Supponiamo di iniziare con una s.b.p. e che la tavola corrispondente al sistema


Ax =b sia in forma canonica (esista cio`e una sottomatrice identit`a) per questa

3.6. PROCEDURA DEL METODO DEL SIMPLESSO

77

soluzione. Se non esiste una sottomatrice identit`a tra le n colonne di A si utilizzer`a


una tecnica particolare (detta delle variabili artificiali) che vedremo in seguito.
Ci poniamo quindi nellipotesi di avere una forma canonica per il sistema. Alla
tavola iniziale aggiungiamo una riga contenente i costi ridotti cj = cj zj e il
valore attuale della f.o. cambiato di segno (z0 ); abbiamo cos` la tavola del
simplesso. Supponiamo inoltre di aver ordinato i vettori in modo che i primi m
formino la base canonica. Si ha quindi:
a1 a2
1

0
1

...
0

...
...
...

...

am

am+1

as

an

0
0

y1,m+1
y2,m+1

y1s
y2s

y1n
y2n

ym,m+1

yms

ymn

y10
y20
...
yn0

cm+1

cn

z0

...

cs

...

La soluzione base corrispondente a questa tavola `e:


xi =

yi0 con i = 1, .., m


0 con i = m + 1, .., n

che abbiamo supposto essere possibile, cio`e yi0 0 per ogni i; la f.o. assume
inizialmente valore z0 . I costi ridotti cj indicano se aj pu`o essere scelto come
vettore entrante in base.
Se i coefficienti cj sono tutti non negativi siamo arrivati alla soluzione
ottima.
Se esiste qualche cj < 0 si pu`o migliorare la f.o. portando la componente
xj nella soluzione.
Se pi`
u di un costo ridotto cj < 0, si pu`o scegliere una qualunque tra le corrispondenti variabili xj per fare entrare in base ed il vettore aj relativo sar`a
considerato come colonna pivot. Comunemente in questo caso si sceglie la variabile che fa diminuire maggiormente la f.o. cio`e quella relativa al massimo valore
di cj in valore assoluto. Un altro metodo potrebbe essere quello di considerare il
min (max |cj zj | yyi0
per yij > 0) cj < 0. Se i cj sono molti `e preferibile scegliere
ij
j

il primo metodo, cio`e min{cj : cj < 0}, per scegliere la variabile entrante in base
e questo per non rallentare troppo lalgoritmo.
In pratica alla tavola del simplesso abbiamo aggiunto una variabile (z) e
lultima riga non rappresenta cos` altro che lequazione:
c1 x1 + .... + cn xn z = 0
Abbiamo quindi m + 1 equazioni ed m + 1 variabili di base (si suppone che
z sia una di queste). Non importa aggiungere unaltra colonna per z in quanto

78

CAPITOLO 3. METODO DEL SIMPLESSO

questa sarebbe sempre (0, ...., 0, 1)T . Inizialmente quindi lultima riga contiene
i costi cj ed un termine noto (inizialmente nullo) e pu`o essere considerata per
rappresentare questo vincolo aggiuntivo.
Mediante le operazioni standard di pivoting su questa riga, gli elementi (costi
ridotti) associati alle variabili di base diverranno uguali a zero. Ci`o `e equivalente
a trasformare lultima riga nella:
cm+1 xm+1 + cm+2 xm+2 + ... + cn xn z = z0
che non `e altro che luguaglianza gi`a vista:
n

cT x = z0 +

(cj zj )xj

j=m+1

3.6.1

Scelta del vettore uscente.

Dopo aver scelto la colonna s su cui fare il pivoting, la scelta dellelemento pivot
si ottiene selezionando il min (yi0 /yis : yis > 0).
i[1,m]

Ad esempio, se il minimo si ottiene per i = r (con r [1, m]) lelemento


pivot sar`a yrs . La variabile xs sar`a quindi sostituita con xi(r) , cio`e con la variabile
r-esima della base corrente. La tavola sar`a cos` modificata:
yij =

yij

yrj
y
yrs is

yrj
yrs

per i = r
per i = r

Quindi

yij =

!
! y
! ij
!
! yrj

yis
yrs

yrs

!
!
!
!
!

Se invece accade che yis 0 i [1, m] allora siamo nel caso di soluzione
illimitata.

3.6.2

Passi dellalgoritmo del Simplesso.

Step 0) Formare una tavola corrispondente al sistema in forma canonica. I


costi ridotti si ottengono con operazioni sulle righe.
Step 1) Se cj 0 j = 1, .., n STOP: La soluzione base possibile trovata `e
ottima; altrimenti vai allo Step 2.
Step 2) Scegliere lindice s tale che cs = min {cj : cj < 0}.

3.6. PROCEDURA DEL METODO DEL SIMPLESSO

79

Step 3) Se yis 0 i IB STOP: La soluzione del problema `e illimitata;


altrimenti vai allo Step 4.
Step 4) Scegliere lindice r tale che

yr0
yrs

=min
iIB

yi0
yis

: yis > 0 .

Step 5) Trovato il pivot yrs aggiorno la tavola del simplesso con le formule:
yij = yij
yij =

yrj
yis per i = r
yrs

yrj
per i = r
yrs

e quindi si torna allo Step 1.


La tavola di partenza del metodo del simplesso `e cos` composta:
riga
1

CB
ci1

IB
i1

m
m+1

cim

im

con cj = cj

iIB

c1
a1
y11

.. cr
.. ar
.. y1r

.. cm
.. am
.. y1m

cm+1
am+1
y1,m+1

.. cs
.. as
.. y1s

.. cn
.. an
.. y1n

a0
yi0

ym1
c1

.. ymr
.. cr

.. ymm
.. cm

ym,m+1
cm+1

.. yms
.. cs

.. ymn
.. cn

ym0
z0

yij ci .

Esempio.
Consideriamo il seguente P.P.L. in forma canonica:
min(x2 3x3 + 2x5 )
con
x1 + 3x2 x3 + 2x5 = 7
2x2 + 4x3 + x4 = 12
4x2 + 3x3 + x5 + x6 = 10
Il problema `e gi`a in forma standard. Analizziamo infatti la matrice A:

1 3 1 0 2 0
0
2 4 1 0 0
A=

0 4 3 0 1 1

80

CAPITOLO 3. METODO DEL SIMPLESSO

La prima base canonica `e formata dai vettori a1 , a4 e a6 per cui B = (a1 , a4 , a6 )


= I3 quindi IB = (1, 4, 6). Il vettore dei termini noti `e posto in a0 (perci`o yi0 = bi ).
Si ha dunque la tavola seguente:
riga
1
2
3
4

CB
0
0
0

IB
1
4
6

a1
1
0
0
0

a2
3
2
4
1

a3
1
4
3
3

a4
0
1
0
0

a5
2
0
1
2

a6
0
0
1
0

a0
7
12
10
0

Poiche c3 = min {cj : cj < 0} = 3 a3 `e il vettore candidato per entrare in


base. Poiche esiste yi3 > 0, la soluzione non `e illimitata e si pu`o quindi cercare il
vettore 
che esce
e:
 dalla base e cio`
10
12
,
=
=
3

r
= 2 ai(r) = ai(2) a4 `e il vettore che esce di
min 12
4 3
4
base e si pu`o procedere alla trasformazione della tavola tramite lelemento pivot
y23 :

y10 =

y30 =

!
! y
! ij
!
! yrj

yis
yrs

rs
!
! 10 3
!
!
! 12 4

!
!
!
!
!

!
!
!
!
!

!
!
! 7 1 !
!
!
!
!
! 12 4 !

= 10; y20 =

= 1; z0 = y40 =

!
!
! 0 3 !
!
!
!
!
! 12 4 !

12
4
=9

Per quanto riguarda il vettore a2 :

y12 =

!
!
! 3 1 !
!
!
!
!
! 2 4 !

5
2
1
= ; y22 =
= ecc...
2
4
2

La tavola aggiornata `e dunque:


riga
1
2
3
4

CB
0
3
0

IB
1
3
6

a1
1
0
0
0

a2
5
2

12
52
12

a3
0
1
0
0

a4
1
4
1
4

34
3
4

a5
2
0
1
2

a6
0
0
1
0

a0
10
3
1
9

Seconda iterazione: Il test di ottimalit`a fallisce in quanto c2 < 0 ed esiste


inoltre yi2 > 0 la soluzione non `e illimitata ed il vettore uscente sar`a a1 che
verr`a sostituito da a2 . Trasformando la tavola secondo lelemento pivot y12 si
ottiene:

3.6. PROCEDURA DEL METODO DEL SIMPLESSO

riga
1
2
3
4

CB
1
3
0

IB
2
3
6

a1
2
5
1
5

1
1
5

a2
1
0
0
0

a3
0
1
0
0

a4

a5

1
10
3
10

4
5
2
5

12
4
5

3
8
5

81

a6
0
0
1
0

a0
4
5
11
11

Terza iterazione: Il test di ottimalit`a `e verificato (infatti cj 0 j) quindi


abbiamo trovato la soluzione ottima che sar`a:
xT = (0, 4, 5, 0, 0, 11) e z = 11.
Esercizio:
Sia dato il problema:

max 3x1 + 5x2


x1
2x2
3x1 + 2x2
x1 , x2

z
4
12
18
0

Riportiamo il problema in forma standard, aggiungendo opportune variabili


di slack, e cambiando segno alla funzione obiettivo:

min 3x1 5x2


x1 + x3
2x2 + x4
3x1 + 2x2 + x5
xi

=
=
=
=

z
4
12
18
0 con i = 1, .., 5

1 0 1 0 0
4

A = 0 2 0 1 0 b = 12

3 2 0 0 1
18
Allinizio la base unitaria `e formata dalle colonne relative alle variabili di slack

(a3 , a4 , a5 ) per cui cj = cj
yij ci = cj (dato che ci = 0 per i IB ).
iIB

82

CAPITOLO 3. METODO DEL SIMPLESSO

Tavola 1:
riga
1
2
3

CB
0
0
0

IB
3
4
5

min cj = c2 entra a2 e min

a1
1
0
3
3


yi0
yi2

a2
0
2
2
5

a3
1
0
0
0

a4
0
1
0
0

12
2

: yi2 > 0 =

a5
0
0
1
0

a0
4
12
18
0

esce a4 il pivot `e y22 :

Tavola 2:
riga
1
2
3

CB
0
5
0

IB
3
2
5

min cj = c1 entra a1 e min

a1
1
0
3
3


yi0
yi1

a2
0
1
0
0

a3
1
0
0
0

a4
0

a5
0
1
0
2
1 1
5
0
2

: yi1 > 0 =

6
3

a0
4
6
6
30

esce a5 il pivot `e y31 :

Tavola 3:
riga
1
2
3

CB
0
5
3

IB
3
2
1

a1
0
0
1
0

a2
0
1
0
0

a3
1
0
0
0

a4

a5

1
3
1
2

1
3

13
3
2

0
1
3

a0
2
6
2
36

cj 0 j siamo arrivati alla soluzione ottima x0 = (2, 6, 2, 0, 0). z0 = 36


`e il valore della funzione obiettivo ma, dato che il problema era di massimo ed
avevamo fatto una sostituzione iniziale, si ha che zmax = 36.

Capitolo 4
Casi Particolari di Problemi di P.
L.
Non sempre la scelta della variabile entrante o uscente `e unica. Vediamo come ci
si comporta in caso di possibili scelte alternative:
1. Pi`
u variabili non basiche hanno lo stesso valore minimo per il costo ridotto
negativo.
In questo caso tali variabili possono indifferentemente entrare in base decrementando il valore della f.o. della stessa quantit`a. Poiche `e impossibile
sapere quale scelta conduce alla determinazione dellottimo nel minor numero di passi la scelta `e indifferente e pertanto possiamo decidere di scegliere
la variabile di minor indice fra quelle associate al minimo costo ridotto.
2. Pi`
u variabili di base sono candidate ad essere variabili uscenti.
u
Si ha dunque che min {yi0 /yis : yis > 0} si ottiene in corrispondenza di pi`
i
indici i.
(a) Qualche variabile rimane in base a valore 0 quindi si ha una soluzione
degenere;
(b) Se una di queste variabili di base degeneri mantiene il suo valore nullo
fino a quando `e scelta, in una iterazione successiva, per uscire dalla
base la corrispondente variabile entrante deve essere anchessa nulla
altrimenti la variabile uscente diverrebbe negativa. Infatti:
yi0 yis < 0 poiche yi0 = 0 e > 0 yis = 0
In questo caso quindi z rimane invariato.
83

84

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

4.1

Degenerazione e Ciclaggio.

Individuata una s.b.p. degenere, `e possibile che, dopo aver scelto una nuova
colonna s per entrare in base, il rapporto minimo yyi0
sia 0 per cui la variabile
is
uscente avr`a valore 0. per quanto visto in precedenza la variabile xs entrer`a
in base con valore 0 la f.o. non sar`a decrementata e la nuova s.b.p. sar`a
anchessa degenere. Questo processo pu`o continuare fino a che non si ottiene
la soluzione degenere originale. Il risultato di ci`o `e che lalgoritmo `e entrato in
un ciclo che si pu`o ripetere infinitamente. Questo fenomeno `e detto ciclaggio
ed in questo caso non `e pi`
u assicurata la terminazione dellalgoritmo. Nella
pratica tale inconveniente si verifica molto difficilmente a causa degli errori di
arrotondamento effettuati dallelaboratore e spesso esempi di ciclaggio devono
essere costruiti appositamente (Esempi di Beale). Nel 1977 Bland ha proposto
una regola che permette allalgoritmo del simplesso di giungere a termine anche
in caso di degenerazione.

4.1.1

Regola di Bland.

Sia x una soluzione base possibile non ottima, allora fra gli indici j
/ IB tali che
cj cTB B 1 aj < 0 si sceglie:


/ IB : cj cTB B 1 aj < 0
s = min j

Analogamente fra tutti i possibili i IB per cui yyi0


= min si sceglie lindice r
is
che corrisponde alla colonna della sottomatrice B di A con indice pi`
u basso cio`e:


yi0
r = min i IB :
= min
yis
Esempio di Ciclaggio.

Risolviamo il seguente problema di p.l. in forma standard:


3
1
min x1 + 150x2 x3 + 6x4 = z
4
50
con i vincoli:
1
x1 60x2
4
1
x1 90x2
2

1
x3 + 9x4 + x5
25
1
x3 + 3x4 + x6
50
x3 + x7
xj

= 0
= 0
= 1
0

4.1. DEGENERAZIONE E CICLAGGIO.

85

I)
riga CB

IB

1
2
3

0
0
0

5
6
7

riga
1
2
3

CB
34
0
0

IB
1
6
7

a1
1
4
1
2

0
34

a2

a3

a4

a5

a6

a7

a0

60
90
0
150

1
25
1
50

9
3
0
6

1
0
0
0

0
1
0
0

0
0
1
0

0
0
1
0

1
1
50

II)
a1
1
0
0
0

a2
240
30
0
30

a3
4
25

a4
36
15
0
33

3
50

1
7
50

a5
4
2
0
3

a6
0
1
0
0

a7
0
0
1
0

a0
0
0
1
0

III)
riga CB

IB

a1

34

1
2
3

1
150 2
0
7

1
0
0
0

a2

a3

a4

a5

a6

a7

a0

12
1
15
0
1

1
2
25

84
12
0
12

0
0
1
0

0
0
1
0

a2
0

a3
1

a4
525
2

a5
75
2

a6
25

1
0
0

0
0
0

1
120
75
2

1
60
0
25 1
3
0

8
25
1
500

0
1
0
0

1
30

0
1

IV)
riga
1

CB
1
50

IB
3

a1

2
3

150
0

2
7

1
160
25
8

25
8

1
4

1
40
525
2

a7
0

a0
0
0
1
0

V)
riga
1
2
3

CB
1
50
6
0

IB
3
4
7

a1
125
2
14
125
2
12

a2
10500
40
10500
120

a3
1
0
0
0

a4
0
1
0
0

a5
50

a6
150
1
23
3
50 150
1 1

a7
0
0
1
0

a0
0
0
1
0

86

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

VI)
riga CB
1
0

IB
5

a1
54

a2
210

a3

2
3

4
7

1
6

30
0
330

1
150
1

6
0

0
74

1
50

1
50

a4
0

a5
1

1
0
0

0
0
0

a4
9
3
0
6

a5
1
0
0
0

a6
3
+ 13

a7
0

a0
0

0
2

0
1
0

0
1
0

a6
0
1
0
0

a7
0
0
1
0

a0
0
0
1
0

VII)
riga
1
2
3

CB
0
0
0

IB
5
6
7

a1
1
4
1
2

0
34

a2
60
90
0
150

a3
1
25
1
50
1
1
50

La VII equivale quindi alla I sono in condizione di ciclaggio.


Applichiamo ora la Regola di Bland, scegliendo una sequenza diversa per
le variabili entranti. Le scelte effettuata nelle tabelle I, II, III, IV rimangono
invariate. Nella tabella V si ha che:
min {cj : cj 0} = 1
j

per cui entra a1 (e non a5 ) e di conseguenza esce a7 invece che a3 .


Le nuove tabelle saranno quindi:
VI)
riga
1
2
3

CB
1
50
6
34

IB
3
4
1

a1
0
0
1
0

a2
0
2
168
36

a3
1
0
0
0

a4
0
1
0
0

a5
0
2
15

45
75

a6
0
1
15
12
5
11
5

a7
1

a0
1

1
250
2
125
1
125

1
250
2
125
1
125

VII)
riga
1
2
3

CB
1
50
0
34

IB
3
5
1

a1
0
0
1
0

a2
0
15
180
15

a3
1
0
0
0

a4
0
15
2

21
2

a5
0
1
0
0

a6
0
12
2
3
2

a7
1

a0
1

3
100
1
25
1
20

3
150
1
25
1
20

Il metodo ora arriva alla conclusione e conduce alla soluzione ottima:


1
3
1
x = ( , 0, 1, 0,
, 0, 0); z0 =
25
150
20

4.2. SOLUZIONE ILLIMITATA.

4.2

87

Soluzione illimitata.

Ci`o accade quando nessuna variabile pu`o uscire dalla base, cio`e quando si verifica
che tutte le componenti di as sono negative o nulle : yis 0 i. In questo caso
non si pu`o annullare nessuna componente del vettore che deve entrare in base,
cio`e non si annulla alcun coefficiente della somma:
(y10 y1s )a1 + ... + (ym0 yms )am + as = b
In questo caso quindi i vincoli non impediscono la diminuzione illimitata della
funzione obiettivo.

4.3

Soluzioni multiple ottime.

Abbiamo gi`a visto che se il minimo per la f.o. si ottiene in corrispondenza di pi`
u
punti estremi, allora si hanno infinite soluzioni ottime (non basiche). Come ci si
accorge di questo caso durante lesecuzione dei passi dellalgoritmo del simplesso
?
Lalgoritmo ha termine quando cj 0 j. Vi saranno soluzioni ottime multiple se, nella soluzione ottima trovata, vi sar`a cj = 0 per pi`
u di m variabili. In
questo caso infatti vi sono pi`
u soluzioni base possibili ottime in quanto facendo
entrare in base una delle variabili non basiche a costo ridotto nullo si otterr`a una
nuova soluzione base possibile ottima perche il valore della f.o. non cambia. Vi
saranno allora infinite soluzioni possibili ottime.
Se non si esclude la degenerazione la condizione:
cTN cTB B 1 N 0
`e condizione solo sufficiente per garantire lottimalit`a della soluzione.
Ci`o `e provato dal seguente controesempio:
f.o.: z = min x3 x4
Vincoli:
x1 + x3 + x4 = 0
x2 + x3 + x4 = 1
ogni i = 1, .., 4.

xi 0 per 

1 0 1 1
0
1 0
A=
, b=
. Sia B =
= (a1 , a2 ) ed
0 1 1 1
1
0 1


1 1
N=
= (a3 , a4 ).
1 1
La soluzione base `e x= (0, 1, 0, 0) degenere ed ottima (z = 0) ma la condizione
di ottimalit`a non `e verificata:



1 0
1 1
T
T 1
cN cB B N = (1, 1) (0, 0)
= (1, 1)
0 1
1 1

88

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

Esempio con soluzioni multiple.


Una fabbrica produce due tipi di stoffe T1 e T2 con le materie prime R1 , R2 e R3 .
per ogni unit`a di stoffa prodotta si ha il seguente fabbisogno di risorse:
Risorsa
R1
R2
R3

T1
4u
5u
1u

T2
1u
3u
2u

La disponibilit`a delle risorse non pu`o essere superata e si ha che R1 56u,


R2 105u e R3 56u. Si vuole determinare la strategia di produzione ottima
in modo da massimizzare il guadagno.
Si conosce il profitto per ogni unit`a di stoffa di tipo T1 e T2 venduta e cio`e
4$ per una unit`a di T1 ed 1$ per una unit`a di T2 . Le variabili da trovare sono
quindi:
x1 = quantit`a di T1 da produrre;
x2 = quantit`a di T2 da produrre.
La f.o. `e max(4x1 + x2 ) = min(4x1 x2 ) ed i vincoli sono:
4x1 + x2
5x1 + 3x2
x1 + 2x2
x1 , x2

56
105
56
0

(a)
(b)
(c)

x1
(b)

(c)

(a)

x2

Figura 4.1
Si pu`o subito osservare che il primo vincolo ha la stessa espressione della f.o.
pertanto vi sono sicuramente due punti estremi che corrispondono allo stesso
valore della funzione obiettivo; per adesso non possiamo dire niente di pi`
u.
Introduciamo opportune variabili di slack e riportiamoci in forma standard,
che `e in questo caso anche forma canonica. Possiamo quindi applicare lalgoritmo
del simplesso con la base dinnesco:

4.3. SOLUZIONI MULTIPLE OTTIME.

89

B = (a3 , a4 , a5 ) IB = (3, 4, 5)
riga
1
2
3

CB
0
0
0

IB
3
4
5

a1
4
5
1
4

a2
1
3
2
1

a3
1
0
0
0

a4
0
1
0
0

a5
0
0
1
0

a0
56
105
56
0

Poiche min cj < 0 = c1 = 4 la variabile


e x1 ; il test di
 entrante in
 base `
yi0
illimitatezza fallisce (yi1 > 0) e si ha che min yi1 : yi0 > 0 = 14 r = 1 la
variabile uscente `e x3 . La tavola risulta cos` modificata:
riga
1
2
3

CB
4
0
0

IB
1
4
5

a1
1
0
0
0

a2

a3

1
4
7
4
7
4

1
4

54
14
1

a4
0
1
0
0

a5
0
0
1
0

a0
14
35
42
56

Dato che cj 0 j siamo arrivati ad una soluzione massima:


xT1 = (14, 0, 0, 35, 42)
ed il valore della f.o. `e uguale a 56.
Si osservi che cj = 0 per j = 1, 2, 4, 5 ma dato che la base `e costituita solamente
dai vettori a1 , a4 e a5 si desume che siamo arrivati ad una soluzione base ottima
multipla. Se si fa entrare in base a2 il valore della f.o. non cambia ed abbiamo
quindi una nuova soluzione base ottima. Infatti:
min
i

yi0
: yi2 > 0 = min {14 4, 35 4/7, 42 4/7} = min {56, 20, 24} = 20
yi2

Il vettore che esce di base `e il secondo della base corrente (a4 ), per cui aggiornando la tavola:
riga
1
2
3

CB
4
1
0

IB
1
2
5

a1
1
0
0
0

a2
0
1
0
0

a3
3
7

57
1
1

a4
17
4
7

1
0

a5
0
0
1
0

a0
9
20
7
56

La soluzione trovata xT2 = (9, 20, 0, 0, 0, 7) `e ancora soluzione base possibile


ottima. Qualsiasi combinazione convessa delle due soluzioni x1 e x2 `e ancora
soluzione possibile ottima non basica. Si avr`a quindi che:
x = x1 + (1 )x2 0 1
`e ancora soluzione possibile ottima.

90

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

4.4

Variabili con limitazioni e variabili libere.

In molti casi le variabili sono limitate sia inferiormente che superiormente. Il


livello di una attivit`a produttiva pu`o essere infatti limitato dai servizi disponibili
o la quantit`a di materiale trasportato fra due punti pu`o essere limitata da vincoli
di capacit`a. Una variabile xi in un p.p.l. pu`o essere soggetta cos` a limitazioni
della forma:
gi xi hi

4.4.1

Variabili libere.

Definizione 28 Si definisce libera una variabile xi non soggetta a limiti finiti.


Questa variabile pu`o essere eliminata dalle successive considerazioni:
Primo metodo di Eliminazione.
Se x1 `e libera, pu`o allora assumere valori sia positivi che negativi; allora si pu`o
scrivere:
x1 = u1 v1 con u1 0, v1 0
Sostituendo (u1 v1 ) al posto di x1 nei vincoli e nella f.o. si mantiene la
linearit`a del sistema e la non negativit`a delle soluzioni. Lunico inconveniente
risiede nel fatto che si aumenta il numero di variabili, una in pi`
u per ogni variabile
libera. Nel caso precedente si avrebbe n + 1 variabili date da u1 , u2 , x2 , ... , xn .
Secondo metodo di Eliminazione.
Si pu`o eliminare x1 insieme ad una relazione vincolare. Consideriamo un vincolo
con coefficiente non nullo di x1 ad esempio:
ai1 x1 + ... + a1n xn = bi con ai1 = 0

(4.0)

Se si esplicita (4.0) rispetto ad x1 , in modo da esprimerla in funzione delle


altre variabili pi`
u una costante, sostituendo tale espressione per x1 nei rimanenti
vincoli, si otterr`a un problema equivalente ma espresso solo in termini di x1 , ..., xn .
Poiche li-esima relazione `e identicamente uguale e 0 pu`o essere eliminata. Questa
sostituzione `e valida perche qualsiasi combinazione di x2 , ..., xn porta ad un valore
possibile x1 , non essendo x1 ristretta in segno. Questa semplificazione porta ad
un p.p.l. in forma standard con n 1 variabili e m 1 vincoli. Il valore di x1 si
otterr`a, successivamente alla risoluzione del sistema, sostituendo in (4.0) i valori
determinati per le altre variabili.

4.4. VARIABILI CON LIMITAZIONI E VARIABILI LIBERE.

4.4.2

91

Variabili con limite inferiore.

Questo caso, cambiando eventualmente di segno e traslando di una costante, pu`o


essere ricondotto al caso xi 0.
Esempio:
Se deve essere xi gi con gi < 0, sostituendo xi = xi gi si ha che xi 0. Si
sostituisce quindi (xi + gi ) al posto di xi nel sistema dei vincoli e nella f.o.

4.4.3

Variabile con limite superiore finito.

Sia:
0 xi hi
Supponiamo per semplicit`a che tutte le variabili siano limitate superiormente.
Se cos` non fosse si suppone di limitarle con un numero molto grande. Sia quindi:
min cT x = z
Ax = b
0 xh

(4.1)

Possiamo ricondurci alla forma standard introducendo variabili di slack y e


cio`e:
min cT x
Ax
x+y
x

=
=
=

z
b
h
0, y 0

(4.2)

Il problema cos` trasformato pu`o essere risolto con lalgoritmo del simplesso
standard per`o si ha un alto costo sia in termini di occupazione di memoria che
di tempo di calcolo richiesto. Se dim(A) = m x n il nuovo problema avr`a infatti
dimensione (m + n) x 2n. Laggiunta di limitazioni superiore incrementa cos`
notevolmente le dimensioni della matrice standard. Deriviamo allora un altro
metodo che permette di risolvere questo problema non incrementando le dimensioni della matrice.
Definizione 29 Una soluzione base possibile estesa corrispondente al problema (4.1) `e una soluzione possibile per cui n m variabili (non basiche) sono al
loro limite inferiore (zero) o superiore (hi ) e le rimanenti m variabili (basiche)
corrispondono a colonne di A linearmente indipendenti.

92

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

Nel seguito supporremo che ogni s.b.p.e. sia non degenere, cio`e che le m variabili di base non assumano ne valore nullo, ne il limite superiore corrispondente.
Supponiamo di partire con una s.b.p.estesa e si analizzino le variabili poste
ai limiti (cio`e quelle non basiche) per vedere se un loro ingresso in base pu`o
migliorare la soluzione. Una variabile al suo limite inferiore pu`o essere solamente
incrementata, e lincremento `e conveniente, dal punto di vista della diminuzione
della f.o., solo se il costo ridotto `e negativo. Daltra parte una variabile al suo
limite superiore pu`o essere solo decrementata, e tale decremento `e conveniente
solo se il costo ridotto `e positivo.
Sia xi una variabile non basica candidata ad entrare in base. Se si cambia il suo
valore con continuit`a da un limite allaltro, contemporaneamente cambieranno i
valori delle variabili di base. Si possono quindi verificare due casi:
1. il valore di una variabile di base diventa uguale al suo limite inferiore o
superiore;
2. la variabile non basica raggiunge il suo limite opposto prima che si verifichi
un cambiamento per qualche variabile di base.
Se si verifica per primo il caso 1) allora si ha un cambiamento di base, la
variabile non basica xi diventa di base ed una variabile che era in base va al suo
limite inf. o sup. (cio`e esce di base).
Se si verifica il caso 2) allora non si avr`a un cambiamento di base.
Il contemporaneo verificarsi dei casi 1) e 2) porta ad una soluzione degenere
(per adesso ignoriamo questo caso).
La procedura termina quando non sar`a pi`
u possibile avere un miglioramento
della funzione obiettivo.
Esempio 1.
min 2x1 + x2 + 3x3 2x4 + 10x5 = z
con x1 + x3 x4 + 2x5 = 5
x2 + 2x3 + 2x4 + x5 = 9
e 0 x1 7, 0 x2 10, 0 x3 1, 0 x4 5, 0 x5 3
La tavola originale, dopo aver calcolato i costi ridotti ed avendo posto le
variabili non basiche al limite inferiore, `e dunque:
riga
1
2

CB
2
1

IB
1
2

a1
1
0
0

a2
0
1
0

a3
1
2
1

a4
1
2
2

a5
2
1
5

a0
5
9
19

4.4. VARIABILI CON LIMITAZIONI E VARIABILI LIBERE.

93

La soluzione base possibile estesa ha posto x3 , x4 e x5 tutte al loro limite


inferiore per cui la prima s.b.p.e. `e
x = (5, 9, 0, 0, 0)
Nella ricerca della variabile uscente si considerano adesso solo i costi ridotti
negativi perch`e tutte le variabili non basiche sono al limite inferiore; si sceglie a4
come candidato ad entrare in base in quanto:
min {1, 2} = 2 s = 4
Facciamo ora crescere x4 dal suo valore minimo (0); gli elementi critici (in
corrispondenza dei quali ci possono essere dei cambiamenti) si hanno quando si
azzera il rapporto:
yi0
yi0 hi
per yi4 > 0 (cio`e per i = 2) oppure
per yi4 < 0 (cio`e per i = 1)
yi4
yi4
Per yi4 < 0 si guarda se la variabile xi corrispondente pu`o arrivare al suo
limite superiore, cio`e si calcola:


yi0 hi
y10 h1
57
min
: yi4 < 0 =
=
=2
yi4
y14
1
cio`e incrementando x4 da 0 a 2 si ha che x1 = 7.
Per yi4 > 0 si guarda se la variabile xi corrispondente va al suo limite inferiore
(0), cio`e si sceglie:


y20
9
yi0
min
: yi4 > 0 =
=
yi4
y24
2
cio`e incrementando x4 da 0 a 92 si ha che x2 = 0.
Fra questi due valori trovati per x4 , cio`e fra 2 e 92 devo scegliere il minimo,
altrimenti una variabile di base supera i limiti prefissati. Si capisce quindi che per
far funzionare il metodo del simplesso in caso di variabili limitate devo apportare
alcune modifiche nella scelta del pivot e nelle formule di trasformazione.
Esempio 2:
Sia dato il sistema di vincoli:
x1 + x2
x1 + 2x2
con 0
0

5
4
x1 4
x2 4

94

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.


Aggiungendo opportune variabili di slack, si trasforma in forma standard:

x1 + x2 + x3
x1 + 2x2 + x4
con 0
0
0
0

=
=

5
4
x1
x2
x3
x4

1 0
Prendiamo la base B = (a2 , a4 ) =
2 1
equivale a risolvere il sistema per x2 ed x4 , cio`e:

4
4

B 1 =

1 0
2 1

. Ci`o

x2 = 5 x1 x3
x4 = 6 + 3x1 + 2x2
La procedura di risoluzione del problema con variabili limitate inferiormente
e superiormente si basa sul seguente teorema:
Teorema 6 Una soluzione base possibile estesa `e ottima per il problema:
z = min cT x
Ax = b
0xh
se per le variabili non di base xj si ha:
cj 0 per xj = 0
cj 0 per xj = hj
La dimostrazione segue direttamente dalla espressione:
z = cT x = z0 + (c[m+1] z[m+1] )x[m+1] + ... + (c[n] z[n] )x[n]
Se non valgono le condizioni del teorema la soluzione pu`o essere migliorata.
I calcoli procedono in maniera analoga a quella del simplesso, anche se si deve
modificare la scelta dellelemento pivot. Consideriamo il caso pi`
u generale, cio`e:

4.4. VARIABILI CON LIMITAZIONI E VARIABILI LIBERE.

95

z = min cT x
Ax = b
g xh
Partizioniamo A = (B|N1 |N2 ) e quindi xT = (xB , xN1 , xN2 ) in modo tale che:
- xB siano le variabili di base;
- xN1 = g N1 siano le variabili non di base al loro limite inferiore;
- xN2 = hN2 siano le variabili non di base al loro limite superiore.
Si avr`a quindi che:
xB = B 1 b B 1 N1 g N1 B 1 N2 hN2
Se g B xB hB x `e detta soluzione base possibile;
Se invece g B < xB < hB x `e detta soluzione base possibile non degenere.

4.4.4

Miglioramento della soluzione base possibile.

Scomponiamo anche il vettore c secondo le componenti di base e non di base,


cio`e:
cT = (cTB , cTN1 , cTN2 )
ed esprimiamo le variabili di base e la f.o. in termini dei vettori xN1 ed xN2 :
xB = B 1 b B 1 N1 xN1 B 1 N2 xN2
z = cTB xB + cTN1 xN1 + cTN2 xN2 =
= cTB (B 1 b B 1 N1 xN1 B 1 N2 xN2 ) + cTN1 xN1 + cTN2 xN2 =
= cTB B 1 b + (cTN1 cTB B 1 N1 )xN1 + (cTN2 cTB B 1 N2 )xN2
Supponiamo che nella soluzione base corrente sia:
xN1 = g N1 , xN2 = hN2 , g B xB hB
Si pu`o rappresentare allora la soluzione con la seguente tavola:
I
0

B 1 N1
cTN1 cTB B 1 N1

B 1 N2
cTN2 cTB B 1 N2

a0
z0

dove cTN1 cTB B 1 N1 e cTN2 cTB B 1 N2 sono i costi ridotti delle variabili non
basiche rispettivamente al loro limite inferiore e superiore. Se cj < 0 per una
variabile j IN1 cio`e al limite inferiore un aumento di xj far`a diminuire il

96

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

valore della funzione obiettivo. Analogamente Se cj > 0 per una variabile j IN2
cio`e al limite superiore una diminuzione di xj far`a diminuire il valore della
funzione obiettivo. Lindice s della variabile entrante sar`a dunque tale che:
cs =min
j

min cj , max cj

jIN1

jIN2

Se s IN1 xs sar`a incrementata da gs ;


Se s IN2 xs sar`a decrementata da hs .
Esaminiamo separatamente i due casi:
Caso 1: Incremento di xs dal suo limite inferiore gs .
Sia s lincremento che si avr`a, cio`e
xs = gs + s

(4.3)

(quando xs non `e variabile di base s = 0). Le variabili non basiche diverse


da xs non hanno cambiamenti. Si ha:
xB = a0 , z = z0 (con a0 = B 1 b B 1 N1 g N1 B 1 N2 hN2 )
Sostituendo la (4.3) nelle espressioni di xB e di z si ha:

"

a0

#$

as

" #$ %

xB = B 1 b B 1 N1 g N1 B 1 N2 hN2 B 1 as s =
= a0 as s

z = cTB B 1 b + cN1 g N1 + cN2 g N2 + (cs zs )s =

(4.4)

(4.5)

= z0 + (cs zs )s
Poiche cs = (cs zs ) < 0 `e conveniente scegliere s il pi`
u grande possibile. La
crescita di s si arresta per uno dei tre motivi seguenti:
a) xs raggiunge il suo limite superiore hs s = hs gs = s ;
b) xi(r) (lr-esima variabile della base corrente) raggiunge il suo limite inferiore
gi(r) . Ci`o si verifica se yis > 0, i IB . Infatti dalla (4.4) si ricava:
g B xB = a0 as s
quindi

4.4. VARIABILI CON LIMITAZIONI E VARIABILI LIBERE.

97

as s a0 g B
Se as 0 (cio`e se tutti gli elementi yis sono 0) s pu`o essere preso
arbitrariamente grande e s = s = ;
Se as > 0 (cio`e se esiste almeno un elemento > 0)
s =min
iIB

yi0 gi
yis

: yis > 0 =

yr0 gi(i)
yrs

= s

La variabile di base xi(r) che ha raggiunto il limite inferiore `e dunque candidata


ad uscire di base.
c) xi(r) raggiunge il suo limite superiore hi(r) . Ci`o si verifica se yis < 0, i IB .
Infatti dalla (4.4) si ricava:
a0 as s = xB hB
quindi
as s hB a0
Se as 0 (cio`e tutti gli elementi sono 0) s pu`o essere preso arbitrariamente grande e s = s = ;
Se as < 0 (cio`e se esiste almeno un elemento < 0)
s =min
iIB

y

i0 hi(i)

yis

: yis < 0 =

yr0 hi(r)
yrs

= s .

La variabile xr che ha raggiunto il limite superiore `e dunque candidata ad


uscire di base.
I tre casi a), b) e c) danno il massimo incremento per s possibile nei tre casi,
dunque si sceglier`a:
s = min(s , s , s )
Se s = la variabile xs pu`o assumere qualsiasi valore e la f.o. `e illimitata.
Se invece s < la nuova soluzione si ottiene ponendo xs = gs + s e le variabili
di base saranno modificate dalla relazione xB = a0 as s .
Aggiornamento della tavola per incremento di xs .
Se si `e verifica il:

98

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

Caso 1a) cio`e s = s = hs gs la matrice di base non `e modificata,


rimanendo xs non basica. Si modifica solo il vettore dei termini noti e tale
cambiamento si riflette sulla f.o. e sui valori delle variabili di base:
z = z0 + cs s ; xB = a0 as s
Caso 1b) cio`e s = s oppure
Caso 1c) cio`e s = s
La tavola, esclusi a0 e z0 , `e trasformata con il pivoting su yrs (sia esso
positivo o negativo). Allora z = z0 + cs s e xB = a0 as s esclusa li(r)-esima
componente di xB che diventa xi(r) = yr0 = gs + s per tener conto del valore di
xs che entra in base.
Alternativamente a ci`o, si pu`o effettuare laggiornamento
di a0 e z0 usando
 
a0
il pivoting su yrs dopo per`o aver sostituito il vettore z0 con:







ai(r)
a0
as
a0
Caso 1b):
+
gs
gi(r) =
z0
c
z0
0

 s 




a0
as
ai(r)
a0
Caso 1c):
+
gs
hi(r) =
z0
cs
0
z0
Si effettuer`a quindi il pivoting sulla tavola cos` modificata nellultima colonna
cio`e su:
I B 1 N1
B 1 N2
a0
T
T 1
T
T 1
0 cN1 cB B N1 cN2 cB B N2 z0
Caso 2: Decremento di xs dal suo limite superiore hs .
Sia s il decremento di xs , si avr`a:
xs = hs s

(4.6)

(quando xs non `e variabile basica s = 0). Le variabili non basiche diverse da


xs non hanno cambiamenti. Si ha:
xB = a0 , z = z0
Sostituendo la (4.6) nelle espressioni di xB e di z si ha:
"

a0

#$

as

" #$ %

xB = B 1 b B 1 N1 g N1 B 1 N2 hN2 + B 1 as s =
= a0 + as s
ed analogamente
z = z0 cs s
Lincremento di s pu`o essere arrestato per tre motivi:

4.4. VARIABILI CON LIMITAZIONI E VARIABILI LIBERE.

99

a) xs raggiunge il suo limite inferiore gs s = hs gs = s ;


b) xi(r) (variabile di base) raggiunge il suo limite inferiore gi(r) yis < 0 e
quindi:
s =min
iIB

yi0 gi(i)
yr0 gi(r)
: yis < 0 =
= s
yis
yrs

oppure s = dato che gB a0 + as s as s a0 gB se as 0 (cio`e


non esiste alcun valore < 0) allora s pu`o essere preso arbitrariamente grande.
c) xi(r) (variabile di base) raggiunge il suo limite superiore hi(r) yis > 0 e
quindi:
s =min
iIB

yi0 hi(i)
yr0 hi(r)
: yis > 0 =
= s
yis
yrs

oppure s = dato che a0 + as s hB as s hB a0 se as 0 (cio`e


non esiste alcun valore > 0) allora s pu`o essere preso arbitrariamente grande.
Dai tre casi si ricava quindi il massimo decremento s da:
s = min(s , s , s )
Se s = la variabile xs pu`o assumere qualsiasi valore e la f.o. `e illimitata.
Se invece s < si pone in base xs = hs s .
Aggiornamento della tavola per decremento di xs .
Caso 2a) cio`e s = s = hs gs xs rimane non basica ma va al limite
inferiore. Si aggiorna solo a0 e z0 :
z = z0 cs s ; xB = a0 + as s
Casi 2b e 2c) entra as ed esce ai(r) . La tavola `e aggiornata con il pivoting
su yi(r),s ( 0). a0 e z0 possono essere aggiornati direttamente tenendo conto
che x = hs s oppure sostituendo lultima colonna della tavola con il vettore
 i(r)
a0
cos` calcolato:
z0







ai(r)
a0
as
a0
Caso 2b):
+
hs
gi(r) =
z0
c
z0
0

 s 




ai(r)
a0
as
a0
Caso 2c):
+
hs
hi(r) =
z0
cs
z0
0
e procedendo quindi alla trasformazione.

100

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

Esempio:
min 2x1 4x2 x3 = z
con 2x1 + x2 + x3 10
x1 + x2 x3 4

e 0 x1 4, 0 x2 6
1 x3 4
Si riporta il problema in forma standard aggiungendo le variabili di slack x4 e
x5 che saranno limitate inferiormente da 0 e superiormente da +. Inizialmente
la base sar`a composta dai vettori a4 ed a5 e le variabili non basiche saranno
poste al loro limite inferiore, cio`e x1 = 0, x2 = 0, e x3 = 1. Le variabili di base
assumeranno cos` valore:
x4 = 10 1 = 9
x5 = 4 + 1 = 5
e z0 = cTB b0 + cTN1 xN1 = 0 1 = 1.
Per la prima tavola si pu`o quindi scrivere: c1 = 2, c2 = 4, c3 = 1. Si
indica inoltre con (+) le variabili al loro limite inferiore, che possono quindi essere
aumentate, e con (-) quelle al loro limite superiore, che possono quindi essere solo
diminuite.
Prima iterazione:
riga CB
1
0
2
0

IB
4
5

a1
2
1
2
+

a2
1
1
4
+

a3
1
1
1
+

a4
1
0
0

a5
0
1
0

a0
9
5
+1

Poiche cj < 0 j
/ IB cio`e j IN1 min {cj } = c2 a2 `e candidato ad
entrare in base. Si calcola quindi il minimo tra 2 , 2 e 2 per trovare lincremento
di x2 , cio`e:
2 ) h2 = 6 2 = h2 g2 = 6
2 ) min 91 , 51 = 5 r = 2 i(r) = 5
yi2 >0

2 ) Non esiste yi2 < 0 2 = cio`e nessuna variabile di base pu`o raggiungere il limite superiore.
Poiche min(2 , 2 , 2 ) = min(6, 5, ) = 2 = 5 la variabile x5 va al suo limite inferiore, in questo caso 0, ed esce di base. La tabella viene quindi modificata
usando come pivot yrs = y22 :

4.4. VARIABILI CON LIMITAZIONI E VARIABILI LIBERE.

101

Seconda iterazione:

a0
z0

a0
z0

as
cs

gs

ai(r)
0

gi(r) =

9
1
0
9

=
5 + 1 0 1 0 = 5
+1
4
0
+1
cio`e in questo caso rimane invariato. La tabella quindi diventa:
riga CB
1
0
2
4

IB
4
2

a1
1
1
2
+

a2
0
1
0
0

a3
2
1
5
+

a4
1
0
0

a5
1
1
4
+

a0
4
5
21

Tutte le variabili non basiche sono al loro limite inferiore ed il min cj = c3


a3 `e il candidato ad entrare in base. Si incrementa quindi x3 dal suo limite
inferiore (che `e 1) fino a che non si verifica il min(3 , 3 , 3 ), cio`e:
3 ) 3 = h3 g3 = 4 1 = 3 (incremento possibile se si passa dal lim. inf. al
lim. sup.)
 y g 
3 ) 3 = min i0 yi3i(i) = 40
= 2 r = 1 i(r) = 4
2
yi3 >0

3 ) 3 =min

yi3 <0

y

i0 hi(i)

yi3

56
1

= 1 r = 2 i(r) = 2

Si calcola min {3 , 3 , 3 } = min {3, 2, 1} = 1 = 3 quindi x3 si incrementa con


un valore 3 = 1 che va aggiunto al suo valore attuale cio`e x3 = g3 + 3 = 1+1 = 2;
a2 esce di base e la variabile a2 `e posta al suo limite superiore quindi diventa
x2 = 6.
z0

c3

La f.o. diventa z =21 5 1 = 26 z0 = +26. Si ha inoltre:


x4
x2

= a0 = a0 a3 3 =

4
5

2
1

1=

2
6

Da ci`o si vede che x2 ha raggiunto il limite superiore e quindi si sostituisce


con x3 = 2 e si ha quindi il vettore soluzione:

x4
x3

2
2

Gli elementi della tavola si possono


  quindi aggiornare con il pivot y23 = 1.
a0
Laltro modo per aggiornare z
`e quello di aggiungervi un multiplo gs del
0
vettore entrante (perche in questo caso xs = x3 era al limite inferiore) e si sottrae
poi un multiplo h2 del vettore uscente (in questo caso x2 che va al limite superiore
h2 ). Si ottiene il vettore:

102

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

y10
4
2
0
6

y20 = 5 + 1 1 6 1 = 2
z0
21
5
0
16
Sostituendo questo vettore nella tavola della seconda iterazione si ha:
riga CB
1
0
2
4

IB
4
2

a1
1
1
2
+

a2
0
1
0

a3
2
1
5
+

a4
1
0
0

a5
1
1
4
+

a0
6
2
16

Applicando poi il pivoting su y23 si ottiene:


Terza iterazione:
riga
1
2

CB
0
1

IB
4
3

a1
3
1
3
+

a2
2
1
5

a3
0
1
0

a4
1
0
0

a5
1
1
1
+

a0
2
2
26

Il min cj per j IN1 `e c1 = 3 = min {3, 1} s = 1 ed a1 `e il candidato


per entrare in base. Notiamo anche che non esiste j IN2 t.c. cj > 0 in quanto
c2 = 5. Si ha quindi che x1 deve crescere dal suo valore minimo. Calcoliamo di
quanto:
1 ) 1 = h1 g1 = 4
0=4

yi0 gi(i)
1 ) 1 = min
= 23 r = 1 i(r) = 4
y1
yi1 >0

1 ) 1 =min

yi1 <0

y

i0 hi(i)

yi1

24
1

= 2 r = 2 i(r) = 3

1 = min {1 , 1 , 1 } = 23 1 = 1 per cui x4 esce di base ed `e posta al suo


limite inferiore (x4 = 0); a1 invece entra in base e la variabile x1 aumenta il suo
valore di 1 = 23 per cui x1 = g1 + 1 = 0 + 23 = 23 . Il valore della f.o. cambiata di
segno `e z0 = 26 + 3 23 = 28.
La tavola della terza iterazione dovrebbe essere modificata nellultima colonna:
moltiplicando a1 per il suo valore attuale (cio`e il lim. inf. = 0) e poi sommando
il risultato ad a0 , si dovrebbe poi moltiplicare a4 per il limite inferiore cui deve
essere posta la variabile non pi`
u basica, cio`e x4 . Poiche anche questo valore `e 0 il
vettore a0 non viene modificato e si pu`o quindi eseguire il pivoting direttamente
sulla tavola della terza iterazione usando come elemento pivot yrs = y11 = 3 :

4.4. VARIABILI CON LIMITAZIONI E VARIABILI LIBERE.

103

Quarta iterazione:
riga CB
1
2
2
1

IB
1
3

a1
1
0
0

a2

a3
0
1
0

2
3

13

a4

a5

a0

1
3
1
3

1
3

2
3
8
3

1
+

23

0
+

28

Poiche cj 0 per tutte le variabili non basiche al limite inferiore e cj 0 per


tutte le variabili non basiche al limite superiore abbiamo trovato la soluzione
ottima che `e :
&

8
2
x=
, 6, , 0, 0
3
3
di cui x1 =

2
3

e x3 =

8
3

'

sono le variabili di base, e la funzione obiettivo `e:


z = 28

Esempio 2:
min 2x1 + x2 + 3x3 2x4 + 10x5 = z
x1 + x3 x4 + 2x5 = 5
x2 + 2x3 + 2x4 + x5 = 9

con 0 x1 7, 0 x2 10, 0 x3 1
0 x4 5, 0 x5 3
Prima iterazione: Inizialmente B = (a1 , a2 ) e nella prima soluzione base estesa si considera xN = 0. Si calcolano i costi ridotti:

c3 = c3 yi3 ci = 3 (2 + 2) = 1

c4 = c4 yi4 ci = 2 (2 + 2) = 2 (min)

c5 = c5 yi5 ci = 10 (4 + 1) = 5

e la f.o. z0 = ci yi0 = 10 + 9 = 19. Si ha dunque la:
riga
1
2

CB
2
1

IB
1
2

a1
1
0
0

a2
0
1
0

a3
1
2
1
+

a4
1
2
2
+

a5
2
1
5
+

a0
5
9
19

x4 `e la variabile candidata ad entrare in base. Per determinare la variabile


uscente si calcola:

104

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

a) 4 = h4 g4 = 5
0 = 5
yi0 gi(i)
b) 4 = min
= 92 cio`e per x4 =
yi4
yi4 >0

c) 4 =min

yi4 <0

y

i0 hi(i)

yi4

57
1

9
2

x2 = 0 (r = 2 e i(r) = 2)

= 2 cio`e per x4 = 2 x1 = 7 (r = 1 e i(r) = 1)

Dato che il minimo `e 92 , x1 esce di base e va al suo limite superiore.


Seconda iterazione: Si effettua la modifica della ultima colonna della tavola
precedente:

a0
z0

a0
z0

as
cs

gs

ai(r)
0

hi(r)

5
1
1

= 9 + 2 0 0
7=
19
2
0

57
2

9
=
=

9
19
19

Effettuando il pivoting sullelemento y14 si ottiene la seconda tavola:


riga
1
2

CB
2
1

IB
4
2

a1
1
2
2

a2
0
1
0

a3
1
4
3
+

a3 `e il candidato per entrare in base:


Si calcola:
a) 3 = h3 g3 = 1
0 = 1
yi0 gi(i)
b) 3 = min
= 54 cio`e per x3 =
yi3
yi3 >0

c) 3 =min

yi3 <0

y

i0 hi(i)

yi3

25
1

5
4

a4
1
0
0

a5
2
5
1
+

a0
2
5
15

x2 = 0 (r = 2 e i(r) = 2)

= 3 cio`e per x3 = 3 x4 = 5 (r = 1 e i(r) = 4)

3 = min {3 , 3 , 3 } = 1 x3 va al limite opposto e non si hanno modifiche nella base. La nuova tavola si ottiene quindi semplicemente apportando le
modifiche allultima colonna:

a0
z0

a0
z0

=
1
12

as
cs

2
1


s = 5 4
1
15
3

4.5. VARIABILI ARTIFICIALI (METODO DELLE DUE FASI).

105

Si ottiene quindi la tavola:


riga
1
2

CB
2
1

IB
4
2

a1
1
2
2

a2
0
1
0

a3
1
4
3

a4
1
0
0

a5
2
5
1
+

a0
3
1
12

Siamo dunque giunti alla soluzione ottima x= (7, 1, 1, 3, 0) con la f.o. z0 = 12.

4.5

Variabili Artificiali (Metodo delle due Fasi).

Se si ha:
min cT x = z
Ax b
x 0
con b 0. Una soluzione base possibile iniziale si trova facilmnete riportando
il problema in forma standard. Questa `e infatti formata dalle variabili di slack
che formano la base, mentre quelle naturali sono poste a 0. Se invece si ha:
min cT x = z
Ax = b
x 0
cio`e se il problema `e gi`a in forma standard, se non `e gi`a in forma canonica,
occorre considerare un problema ausiliario per trasformare il sistema in modo da
avere una matrice identit`a, costituita da vettori corrispondenti a variabili naturali
o di slack. Si introduce allora un vettore xa di variabili artificiali e si considera
il problema (detto problema ausiliario):

min

xn+i = t

i=1

Ax + Ixa = b
x 0
xa 0
Abbiamo introdotto una variabile ausiliaria per ogni riga del sistema vincolare
cio`e:

106

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

a11 x1 + ... + a1n xn + xn+1 = b1


....
....
= ....
am1 x1 + ... + amn xn + xn+m = bm
La matrice associata al problema ausiliario `e della forma (A|I) ed il sistema
`e in forma canonica; si pu`o applicare quindi il metodo del simplesso, sostituendo
le variabili artificiali con quelle naturali, cercando di minimizzare:
m

t=

xn+i detta forma di impossibilit`


a

i=1

Il nuovo obiettivo, corrispondente alla Prima Fase, permette di determinare


una prima soluzione base possibile, se questa esiste, al problema iniziale. Ci`o si
verifica se t = 0 cio`e se tramite lalgoritmo del simplesso sono state annullate
tutte le variabili artificiali che costituivano la base dinnesco. A questo punto
si pu`o riprendere in considerazione il problema originale trasformato senza pi`
u
considerare le variabili artificiali. Si inizia quindi la Seconda Fase con una
matrice identit`a formata da vettori naturali o di slack del problema e determinare
il min cT x cio`e la funzione obiettivo originale.

Alla fine della prima fase si pu`o verificare che xn+i = 0 senza che le variabili
artificiali siano uscite tutte dalla base. In tal caso si hanno in base delle variabili
artificiali con valore nullo che possono essere eliminate e ci`o vuol dire che i vincoli
corrispondenti a tali variabili sono sovrabbondanti.

Se min xn+i = 0 il sistema originale non ammette soluzioni possibili, non
potendo eliminare tutte le variabili artificiali.
Riassumendo:
Se un p.p.l. non `e in forma canonica si applica lalgoritmo del simplesso in 2
fasi:
Fase 1: Si sostituisce la f.o. originale con:
min t =

xn+i

i=1

con Ax + Ixa
x
xa
e xa
cTa

=
=

b
0
0
(xn+1 , ..., xn+m )
(1, ..., 1)

Se min t > 0 il problema non ammette soluzioni possibili STOP.


Se min t = 0 si avvia la fase 2.

4.5. VARIABILI ARTIFICIALI (METODO DELLE DUE FASI).

107

Fase 2: Si ritorna alla funzione obiettivo originale (min z = c1 x1 +...+cn xn ) con


i vincoli trasformati dalla fase 1 (senza le colonne relative alle variabili artificiali)
ricalcolando la m + 1 riga con i dati relativi al problema originale e cio`e:
cj = cj

yij ci e z0 = cTB a0 =

iIB

ci yi0

iIB

Esempio:
min 2x1 + x2 3x3
con x1 x2 + 2x3
3x1 + 2x2 + x3
x1 , x2 , x3

=
=
=

z
7
5
0

Fase 1: Si risolve inizialmente il problema ausiliario:


min x4 + x5
con x1 x2 + 2x3 + x4
3x1 + 2x2 + x3 + x5
x1 , x2 , x3

=
=
=

t
7
5
0

a4
1
0
0

a5
0
1
0

Costruiamo la prima tavola:


riga
1
2

CB
1
1

IB
4
5

a1
1
3
4

a2
1
2
1

a3
2
1
3

a0
7
5
12

Il vettore entrante `e a1 e quello uscente `e a5 . Si costruisce la seconda tavola


effettuando il pivoting su y21 :
riga
1
2

CB
1
0

IB
4
1

a1

a2

0
1
0

53
2
3
5
3

a3
5
3
1
3

53

a4

a5

a0

1
0
0

13
1
3
43

16
3
5
3

16
3

Il vettore entrante `e a3 e quello uscente `e a4 . Si costruisce la terza tavola


effettuando il pivoting su y13 :
riga
1
2

CB
0
0

IB
3
1

a1
0
1
0

a2
1
1
0

a3
1
0
0

a4
3
5

15
1

a5
15

a0

2
5

16
5
3
5

108

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

cj 0 j
3
( 5 , 0, 16
, 0, 0) `e
5

abbiamo la soluzione ottima. Dato che t = 0 allora x=


anche soluzione base possibile per il problema iniziale; possiamo
passare quindi alla:
Fase 2: Ricostruiamo lultima riga della tavola, tenendo conto della variazione
della funzione obiettivo:
cT = (2, 1, 3) cTB = (3, 2)
per cui
z0 =

cTB a0

= (3, 2)

16
3
3
5

42
42
z0 =
5
5

e
c2 = c2 z2 = 1
Si riparte dunque da:
riga
1
2

CB
3
2

yi2 ci = 1 [1 (3) + 1 2] = 4

IB
3
1

a1
0
1
0

a2
1
1
4

a3
1
0
0

a0
16
5
3
5
42
5

La colonna a2 entra in base a posto della a1 . La tavola viene cos` modificata:


riga
1
2

CB
3
1

IB
3
2

a1
1
1
4

a2
0
1
0

a3
1
0
0

a0
19
5
3
5
54
5

Siamo dunque arrivati alla soluzione ottima e cio`e:


&

3 19
x = 0, ,
5 5

'

e zmin =

54
5

Esempio 2.
Problema con vincoli ridondanti e soluzione multipla:
min 2x1 x2 + x4
con :
x1 + x2 + x3 + x4 + x5
x1 + x2 + 2x3 + 2x4 + 2x5
x1 + x2
x3 + x4 + x5

= z
=
=
=
=

5
8
2
3

4.5. VARIABILI ARTIFICIALI (METODO DELLE DUE FASI).

109

Si aggiungono le variabili artificiali e si ottiene:


min x6 + x7 + x8 + x9
con :
x1 + x2 + x3 + x4 + x5 + x6
x1 + x2 + 2x3 + 2x4 + 2x5 + x7
x1 + x2 + x8
x3 + x4 + x5 + x9
xi

= t
=
=
=
=

5
8
2
3
0 i = 1, ..., 9

Fase 1.
riga
1
2
3
4

CB
1
1
1
1

IB
6
7
8
9

a1
1
1
1
0
3

a2
1
1
1
0
3

a3
1
2
0
1
4

a4
1
2
0
1
4

a5
1
2
0
1
4

a6
1
0
0
0
0

a7
0
1
0
0
0

a8
0
0
1
0
0

a9
0
0
0
1
4

a0
5
8
2
3
18

Esistono cj < 0 con j


/ IB per cui:
- min cj = 4 per j = 3 (Regola di Bland modificata)
cj <0

- min

yi3 >0

5 8 3
, ,
1 1 1

= 3 r = 4 e i(r) = 9.

Entra a3 ed esce a9 . La nuova tavola `e dunque.


riga
1
2
3
4

CB
1
1
1
0

IB
6
7
8
3

a1
1
1
1
0
3

a2
1
1
1
0
3

a3
0
0
0
1
0

a4
0
0
0
1
0

a5
0
0
0
1
0

a6
1
0
0
0
0

a7
0
1
0
0
0

a8
0
0
1
0
0

a9
1
2
0
1
4

a0
2
2
2
3
6

a6
1
1
1
0
3

a7
0
1
0
0
0

a8
0
0
1
0
0

a9
1
1
1
1
1

a0
2
0
0
3
0

Esistono cj < 0 con j


/ IB per cui:
- min cj = 3 per j = 1
cj <0

- min {2, 2, 2} = 2 r = 1 e i(r) = 6.


yi1 >0

Entra a1 ed esce a6 :
riga
1
2
3
4

CB
0
1
1
0

IB
1
7
8
3

a1
1
0
0
0
0

a2
1
0
0
0
0

a3
0
0
0
1
0

a4
0
0
0
1
0

a5
0
0
0
1
0

110

CAPITOLO 4. CASI PARTICOLARI DI PROBLEMI DI P. L.

Dato che t = 0 siamo arrivati alla fine della fase 1. Si nota inoltre che le
variabili artificiali x6 e x7 sono rimaste in base con valore 0 e quindi il secondo
ed il terzo vincolo possono essere eliminati in quanto ridondanti.
Fase 2. Ricalcolo lultima riga:
Dato che cj = cj zj = cj cTB aj e z0 = cTB a0 si ha: c2 = 3; c4 = 1; c5 = 0;
z0 = 4. La fase 2 parte quindi dalla segunete tavola:
riga
1
2

CB
2
0

IB
1
3

a1
1
0
0

a2
1
0
3

a3
0
1
0

a4
0
1
1

a5
0
1
0

a0
2
3
4

a2
1
0
0

a3
0
1
0

a4
0
1
1

a5
0
1
0

a0
2
3
2

Entra a2 ed esce a1 :
riga CB
1
1
2
0

IB
2
3

a1
1
0
0

Siamo dunque arrivati alla soluzione ottima che risulta essere:


xT = (0, 2, 3, 0, 0) f.o. = zmin = 2
N.B. La soluzione trovata `e multipla, cio`e si potevano avere altre soluzioni (in
corrispondenza di altre basi) per cui z = zmin .

Capitolo 5
Metodo del Simplesso Modificato
Utilizzando la notazione matriciale, interpretiamo la procedura del simplesso attraverso le matrici. Sia B la sottomatrice di A corrispondente alle m variabili di
base:
A = [B, N] x = [xB , xN ] cT = (cTB , cTN )
Il p.p.l. standard diventa:
min cTB xB + cTN xN = z
con BxB + NxN = b
e xB 0, xN 0

(5.1)

La soluzione base possibile corrispondente alla base B `e quindi:


x = (xB , 0) con xB = B 1 b
(e dove si `e posto xN =0). Per qualsiasi valore di xN si pu`o calcolare xB dalla
(5.1) e si ha:
xB = B 1 b B 1 N xN
Sostituendo questultima uguaglianza nellespressione della funzione costo si
ottiene:


z = cTB B 1 b B 1 NxN + cTN xN = cTB B 1 b + (cTN cTB B 1 N)xN =


= cTB B 1 b + cN xN

dove cN = cTN cTB B 1 N sono i costi ridotti per le variabili non basiche. Dalle
componenti di cN si individua quale vettore entrer`a in base. Scriviamo ora la
tavola del simplesso in forma matriciale:
111

112

CAPITOLO 5. METODO DEL SIMPLESSO MODIFICATO

..
A
.
b

= B N
.
cT .. 0
cTB cTN

..
. b
..
. 0

Questa matrice, in genere, non `e in forma canonica e non corrisponde quindi


ad un determinato punto della procedura del simplesso. Se si usa B come base
allora si pu`o derivare dalla precedente tavola la seguente:

.
I ..
B 1 N

T =
.
0 .. cTN cTB B 1 N

..
.
B 1 b
..
. cTB B 1 b

A questa forma si giunge risolvendo il seguente sistema con il metodo di


Gauss-Jordan:

z +

BxB + NxN
T
cB xB + cTN xN

= b
= 0

si moltiplica la prima equazione per B 1 e per cTB :


cTB xB + cTB B 1 N xN = cTB B 1 b
z + cTB xB + cTN xN = 0
sottraendo la prima eq. dalla seconda si ha:
cTB xB + cTB B 1 N xN = cTB B 1 b
z + cTB xB + cTN xN cTB xB cTB B 1 N xN = cTB B 1 b
si divide quindi la prima eq. per cTB e si ottiene:
x = B 1 b
xB + B 1 N
 N
z + cTN cTB B 1 N xN = cTB B 1 b


da cui si ottiene la tavola T .


Dallanalisi di problemi di p.l. risolti con il metodo del simplesso si `e dedotto,
in modo empirico, che tale metodo converge allottimo in un numero di operazioni
di pivoting compreso tra m e 3m. Se si ha che m n loperazione di pivoting
sar`a fatta solo su un numero limitato di colonne; poiche le altre colonne non
saranno usate esplicitamente risulta quindi inutile il lavoro fatto dal simplesso per
trasformare tutta la tavola ad ogni iterazione. Il metodo del simplesso modificato
evita di effettuare conti inutili per colonne che non entreranno mai in base.
Data linversa B 1 della base corrente e data la soluzione corrente xB =
B 1 b = a0 il simplesso modificato si articola nei seguenti passi:

113
Step 1) Calcola i costi ridotti cN = cTN cTB B 1 N. Questo si fa calcolando prima
il vettore = cTB B 1 i cui componenti sono detti moltiplicatori del simplesso
e quindi i costi ridotti cN = cTN N. Se cN 0 STOP in quanto siamo
arrivati alla soluzione ottima, altrimenti si va allo Step 2.
Step 2) Si determina quale vettore as deve entrare in base e cio`e si sceglie
cs =min {cj : cj 0}. A questo punto si trasforma il vettore as attraverso B 1
cio`e

j I
/ B
as =

B 1 as che esprime quindi as in termini della base corrente.

> 0 STOP in quanto sono arrivato ad una soluzione ilStep 3) Se nessun yis
limitata, altrimenti si sceglie il vettore che dovr`a uscire di base calcolando lindice
r tale che:

yr0
=min

yis >0
yrs

yi0

yis

Step 4) Si aggiorna linversa B 1 e la soluzione corrente B 1 b e si ritorna allo


Step 1. Laggiornamento di B 1 avviene mediante pivoting su una sottomatrice

composta da B 1 e as con pivot lelemento yrs


. Anche B 1 b pu`o essere quindi
aggiornato alla nuova base mediante tale pivoting, aggiungendolo come colonna
alla sottomatrice suddetta.
Per iniziare la procedura del simplesso modificato occorre conoscere una base
possibile iniziale e la sua inversa. La matrice iniziale pu`o essere qualsiasi, e non
per forza una matrice identit`a come nel caso del simplesso semplice, purche si
calcoli la sua inversa.
In pratica il metodo del simplesso modificato procede nel modo seguente:
Si determina inizialmente una soluzione base possibile e si calcola linversa
B 1 della matrice di base. Si calcola quindi:
= cTB B 1 ; a0 = B 1 a0
e si forma quindi la prima tavola (nellipotesi che inizialmente B = I = B 1
si ha che a0 = a0 e z0 = cTB B 1 a0 = a0 ):

B 1 a0
z0

Si calcolano quindi i costi ridotti cj = cj aj : se ogni cj 0 STOP, altrimenti sia cs = min {cj : cj < 0} si aggiunge alla matrice la colonna as , trasformata

di as , (as = B 1 as ) ed il costo ridotto


a calcolato. Se non esiste yis
>0
  cs gi`

yi0
yr0
STOP, altrimenti si calcola min
= y = s (la colonna ai(r) `e perci`o la
y

yis >0

is

rs

colonna
che esce di base). Tramite lelemento yrs
si trasforma quindi la tavola

1
B
a0 , si ricalcolano quindi i nuovi e z0 , e si ricomicia il procedimento.

114

CAPITOLO 5. METODO DEL SIMPLESSO MODIFICATO

Esempio.
min x1 2x2 + x3 x4 4x5 + 2x6
con x1 + x2 + x3 + x4 + x5 + x6
2x1 x2 2x3 + x4
x3 + x4 + 2x5 + x6
xi

z
6
4
4
0 i = 1, .., 6

Si aggiungono le variabili di slack x7 , x8 e x9 ; la base iniziale `e B = (a7 , a8 , a9 ) =


I per cui = cTB B 1 = (0, 0, 0), a0 = a0 e z0 = a0 = 0:
Iterazione 1:
cB
0
0
0

IB
7
8
9

B 1
0
1
0
0

1
0
0
0

0
0
0
1

a0
6
4
4
0

Si calcolano i cj = cj aj :
c1 = c1 = 1, c2 = 2, c3 = 1, c4 = 1, c5 = 4, c6 = 2.
min {cj : cj < 0} = 4 = c5 entra in base a5 (se possibile)
j

 
a

Si calcola a5 = B 1 a5 = a5 e si associa c55 alla tavola iniziale.

Dato che a5 =
0 si cerca il vettore uscente di base:
2




yi0

min y : yis > 0 = min 61 , 42 = 2 r = 3, i(r) = 9 a9 esce di base e si


is

trasforma quindi la tavola B 1 a0


quindi i e z0 con:

1 0 12
= cTB B 1 = (0, 0, 4)
0 1 0
0 0 12
Si ha dunque:

usando y3s = 2 come pivot. Si ricalcolano

= (0, 0, 2); z0 = cTB a0 = 8.

Iterazione 2:
cB
0
0
4

IB
7
8
5

1
0
0
0

B 1
0
1
0
0

12
0
12
2

a0
4
4
2
8

115
Si calcolano i costi ridotti:

c1 = 1 + ( a1 ) = 1 + (0, 0, 2) 2 = 1
0
Allo stesso modo si trova:
c2 = 2, c3 = 3, c4 = 1, c6 = 4, c9 = 2 quindi min {cj } = c2 = 2 a2 `e
cj <0

candidato ad entrare in base. Si trasforma a2 :

1 0 12
1
1

1
a2 = B a2 = 0 1 0
1 = 1
0 0 12
0
0

Dato che esiste un unico yi2


> 0 (y12 ), ai(1) = a7 `e il vettore che esce di base.
Si applica il pivoting con pivot y12 = 1 e si ricalcola e z0 :

Iterazione 3:
cB
2
0
4

= cTB B 1

IB
2
8
5

1
1
0
1

B 1
0
1
0
0

12
12
1
2
1

a0
4
8
2
16

1 0 12
2

= (2, 0, 4) 1 1 12 = 0 ; z0 = cTB a0 = 16
0 0 12
1

Si ricalcolano i costi ridotti ottenendo:


c1 = 1, c3 = 4, c4 = 2, c6 = 5, c9 = 1 siamo arrivati alla soluzione ottima:
x = (0, 4, 0, 0, 2, 0, 0, 8) ; f.o. = 16
Esempio.
max 3x1 + x2 + 3x3
con 2x1 + x2 + x3
x1 + 2x2 + 3x3
2x1 + 2x2 + x3
xi

z
2
5
6
0 i = 1, 2, 3

Si aggiungono le variabili di slack x4 , x5 , x6 il problema `e in forma standard


e canonica. Si cambia la f.o. in z = min 3x1 x2 3x3 e si considera la prima
base:

116

CAPITOLO 5. METODO DEL SIMPLESSO MODIFICATO

B = (a4 , a5 , a6 ) = I = B 1
Per costruire la prima tavola del simplesso modificato si calcola:
= cTB B 1 = (0, 0, 0) ; z0 = xB = 0
e quindi:
cB
0
0
0

IB
4
5
6

B 1
0
1
0
0

1
0
0
0

a0
2
5
6
0

0
0
1
0

Si calcolano i costi ridotti cN = cN N = (3, 1, 3) min {cj : cj < 0} =


c1 = 3. a1 `e candidatoad
entrare in base:
2

a1 = B 1 a1 = a1 = 1 . Si aggiunge alla tavola e si calcolano i rapporti:


2

yi0

yi1

min( 22 , 51 , 62 ) = 1 esce di base a4 (si trasforma la base con il pivoting su y11 ).


Si ricalcolano i moltiplicatori del simplesso:
= cTB B 1 = (3, 0, 0)B 1 = ( 32 , 0, 0)
e la f.o.:

3
3
z0 = xB = ( 2 , 0, 0) 4
= 2 ottenendo cos` la tavola:
4
cB
3
0
0

IB
1
5
6

1
2

12

1
3
2

B 1
0
1
0
0

0
0
1
0

a0
1
4
4
3
2

Si calcolano i costi ridotti per i vettori

non di base:
1

c2 = c2 + a2 = 1 + ( 32 , 0, 0)
2 = 12
2

5.1. CONFRONTO FRA SIMPLESSO E SIMPLESSO MODIFICATO.

117

3
c3 = 3 + ( 2 , 0, 0) 3 = 32
1

3
c4 = 0 + ( 32 , 0, 0)
0 = 2
0
a3 `e dunque il
candidato adentrare

in base.
1
1
0
0
1
 
2

25
a
1
a3 = B 1 a3 =
2 1 0 3 = 2 . Si aggiunge c 3 alla tavola e
3
1 0 1
1
0
per yi3 > 0:
si calcola il min yyi0
i3


min 2, 85 = 85 esce a5 e lelemento pivot `e y23 = 52 . Con tale elemento


si trasforma B 1 , xB e z0 , si calcolano i nuovi moltiplicatori del simplesso e si
inseriscono nella nuova tavola (cambiati di segno):
cB
3
3
0

Dai costi ridotti cN =


ottima che `e dunque:

IB
1
3
6

7 6 3
, ,
5 5 5

&

3
5

15
1
6
5

B 1
15
2
5

0
3
5

xB
0
0
1
0

1
5
8
5

4
6
5

si deduce che siamo arrivati alla soluzione


'

1
8
6
, 0, , 0, 0, 4 ; f.o. =
x=
5
5
5

5.1

Confronto fra Simplesso e Simplesso Modificato.

Nel simplesso si usa una matrice di lavoro (m + 1) x (n + 1) mentre nel simplesso


modificato la matrice di lavoro `e (m+1) x (m+1). Se n m quindi c`e sostanziale
risparmio nello spazio utilizzato in memoria usando il simplesso modificato. Se
guardiamo le operazioni per iterazione si ha la seguente tabella:

Simplesso
Simplesso
Modificato

Moltipl.
Addiz.
Moltipl.
Addiz.

Pivoting
(n m + 1)(m + 1)
(n m + 1)m
(m + 1)2
(m + 1)m

cj zj

Totale
m(n m) + n + 1
m(n m) + m
(n m)m (m + 1)2 + m(n m)
(n m)m m(n + 1)

Dalla tabella si desume che il simplesso modificato converr`a quando:

118

CAPITOLO 5. METODO DEL SIMPLESSO MODIFICATO

m(n m) + (n + 1) + m(n m + 1) > (m + 1)2 + m(n m) + m(n + 1)


n + 1 m2 > (m + 1)2
n > 2m2 + 2m
Si ha dunque che il metodo del simplesso ha pi`
u operazioni del simplesso
modificato se n > 2m(m + 1); in questo caso quindi conviene usare il simplesso
modificato.
Se il problema ha una matrice sparsa, cio`e la densit`a (numero di elementi
= 0 diviso per il numero degli elementi della matrice) `e molto piccola (in molti casi
< 0.05) il simplesso modificato trae vantaggi nel calcolo di (cj zj ), vantaggio
calcolato in volte le operazioni della tavola. Essendo infatti zj = T aj si possono

saltare gli elementi nulli di aj nel calcolare i yij . Per quanto riguarda le matrici
la sparsit`a non porta a grandi benefici in quanto con linversione gli elementi nulli
vengono sostituiti velocementi da elementi = 0. Poiche empiricamente risulta
che in media il simplesso richiede da m a 3m iterazioni della tavola, il numero
di iterazioni `e O(m2 n), cio`e il numero di operazioni `e limitato superiormente da
Km2 n con K costante. La complessit`a del metodo del simplesso `e empiricamente
O(m2 n). Se n m e se molto piccola, lo sforzo computazionale del simplesso
modificato `e significativamente inferiore rispetto al simplesso.
Un ulteriore vantaggio proviene dalla riduzione degli errori di arrotondamento
cumulativi che sono evitati calcolando cj zj dai dati originali con aj aggiornato
direttamente.