Teoria della ProgrammazioneLineare
Teoria della Programmazione Lineare – p. 1/89
I problemi di PL in forma canonica
In forma scalare:
max∑n
j=1 cjxj∑n
j=1 aijxj ≤ bi i = 1, . . . ,m
xj ≥ 0 j = 1, . . . , n
Teoria della Programmazione Lineare – p. 2/89
Prodotto scalare tra vettori
Vettore di dimensione n
p = (p1 · · · pn)
Dato un altro vettore di dimensione n
q = (q1 · · · qn)
Il prodotto scalare tra i due vettori è un valore scalare:
pq =n∑
j=1
pjqj
Esempio:
p = (2 3 6) q = (3 8 7) pq = 2 ∗ 3 + 3 ∗ 8 + 6 ∗ 7 = 72Teoria della Programmazione Lineare – p. 3/89
Proprietà
Siano p,q1,q2 ∈ Rn e α, β ∈ R. Allora:
p(αq1 + βq2) = α(pq1) + β(pq2)
Esempio:
p = (2 3 6) q1 = (1 2 5) q2 = (6 0 3) α = 2 β = 3
p(αq1 + βq2) = 2 ∗ 20 + 3 ∗ 4 + 6 ∗ 19 = 166
α(pq1) + β(pq2) = 2 ∗ 38 + 3 ∗ 30 = 166
Teoria della Programmazione Lineare – p. 4/89
Generalizzazione della proprietà
Dati i vettori p,q1,q2, . . . ,qt ∈ Rn e gli scalariα1, α2, . . . , αt ∈ R, si ha che
p[α1q1 + α2q2 + · · · + αtqt] = p
[t∑
i=1
αiqi
]
=t∑
i=1
αi(pqi)
Teoria della Programmazione Lineare – p. 5/89
Prodotto matrice-vettore
Data una matrice A di ordine m × n (m righe e n colonne)
a11 . . . a1n
......
...am1 . . . amn
ed un vettore p di dimensione n
p = (p1 · · · pn)
Il prodotto matrice-vettore è un vettore di dimensione m lacui componente i è il prodotto scalare tra la i-esima riga diA e il vettore p:
n∑
j=1
aijpj
Teoria della Programmazione Lineare – p. 6/89
Prodotto vettore-matrice
Data una matrice A di ordine m × n (m righe e n colonne)
a11 . . . a1n
......
...am1 . . . amn
ed un vettore q di dimensione m
q = (q1 · · · qm)
Il prodotto vettore-matrice è un vettore di dimensione n lacui componente j è il prodotto scalare tra la j-esimacolonna di A e il vettore q:
m∑
i=1
aijqiTeoria della Programmazione Lineare – p. 7/89
Esempi
A =
[
7 6 3
2 4 8
]
p = (3 8 7)
q = (4 5)
Ap = (7 ∗ 3 + 6 ∗ 8 + 3 ∗ 7 2 ∗ 3 + 4 ∗ 8 + 8 ∗ 7) = (90 94)
qA = (4 ∗ 7 + 5 ∗ 2 4 ∗ 6 + 5 ∗ 4 4 ∗ 3 + 5 ∗ 8) = (38 44 52)
Teoria della Programmazione Lineare – p. 8/89
PL in forma canonica
Introduciamo i seguenti vettori:
c ∈ Rn: vettore di dimensione n con componenti cj ,j = 1, . . . , n, ovvero:
c = (c1 c2 · · · cn);
x ∈ Rn: vettore di variabili di dimensione n concomponenti xj , j = 1, . . . , n, ovvero:
x = (x1 x2 · · · xn);
ai ∈ Rn, i = 1, . . . ,m: m vettori di dimensione n concomponenti aij, j = 1, . . . , n, ovvero:
ai = (ai1 ai2 · · · ain).
Teoria della Programmazione Lineare – p. 9/89
PL in forma canonica
Osservando che
cx =n∑
j=1
cjxj
e
aix =n∑
j=1
aijxj
abbiamo la seguente rappresentazione vettoriale per unproblema di PL in forma canonica:
max cx
aix ≤ bi i = 1, . . . ,m
x ≥ 0
Teoria della Programmazione Lineare – p. 10/89
PL in forma canonica
Si consideri la matrice A ∈ Rm×n che ha tante righe quantisono i vincoli del problema (m) e la cui i-esima riga è ilvettore ai e del vettore b = (b1 · · · bm) ∈ Rm di dimensionem con componenti bi, i = 1, . . . ,m. Osservando che
Ax = (a1x . . . amx)
possiamo scrivere la rappresentazione matriciale del problemadi PL in forma canonica:
max cx
Ax ≤ b
x ≥ 0
Teoria della Programmazione Lineare – p. 11/89
Esempio degli aiuti umanitari
Il vettore c = (14 5 4)Il vettore di variabili x = (x1 x2 x3)I vettori ai, i = 1, 2, 3
a1 = (10 30 20) a2 = (10 20 40) a3 = (30 10 5)
Il vettore b = (5100 8000 1805)La matrice A
10 30 20
10 20 40
30 10 5
Teoria della Programmazione Lineare – p. 12/89
PL canonici≡ PL generici
Osservazione Ogni problema di PL in forma generica puòessere trasformato in uno equivalente in forma canonica.
Trasformazione da min a max
min cx = −max −cx
Trasformazione vincolo ≥ in vincolo ≤
aix ≥ bi ⇔ −aix ≤ −bi
Trasformazione vincolo = in due vincoli ≤
aix = bi ⇔ aix ≤ bi, aix ≥ bi ⇔ aix ≤ bi, −aix ≤ −bi
Teoria della Programmazione Lineare – p. 13/89
PL canonici≡ PL generici
Sostituzione variabile ≤ 0 con variabile ≥ 0 Data xi ≤ 0,effettuare il cambio di variabile xi = −x′
i, dove x′i ≥ 0
Sostituzione variabile libera in segno con due variabili ≥ 0Data xi libera in segno, effettuare il cambio di variabilexi = x
′′
i − x′i, dove x′
i, x′′
i ≥ 0
Teoria della Programmazione Lineare – p. 14/89
Un esempio
Si trasformi il seguente problema di PL in forma generica inun problema di PL in forma canonica
min x1 + x2 + x3
x1 + 2x2 − x3 ≤ 3
x1 + 4x2 + 5x3 = 5
x1 − 2x2 + x3 ≥ 3
x1 ≥ 0
x2 ≤ 0
x3 libera in segno
Teoria della Programmazione Lineare – p. 15/89
Insiemi convessi
Un insieme C ⊆ Rn si dice convesso se
∀ x1,x2 ∈ C ∀ λ ∈ [0, 1] : λx1 + (1 − λ)x2 ∈ C,
ovvero se dati due punti qualsiasi in C, il segmento che licongiunge è anch’esso completamente contenuto in C.
Teoria della Programmazione Lineare – p. 16/89
Insiemi limitati e chiusi
Un insieme C si dice limitato se esiste una sfera di raggiofinito R che lo contiene.
Un insieme C si dice chiuso se contiene la sua frontiera.
Teoria della Programmazione Lineare – p. 17/89
Semispazi e iperpiani
Si definisce semispazio in Rn l’insieme di punti che soddisfauna disequazione lineare in Rn:
n∑
j=1
wjxj ≤ v
(in forma vettoriale: wx ≤ v).
Si definisce iperpiano in Rn l’insieme di punti che soddisfaun’equazione lineare in Rn:
n∑
j=1
wjxj = v
(in forma vettoriale: wx = v).Teoria della Programmazione Lineare – p. 18/89
Poliedri e politopi
Si definisce poliedro l’intersezione di un numero finito disemispazi e/o iperpiani. Se il poliedro è limitato esso vienechiamato politopo.
Teoria della Programmazione Lineare – p. 19/89
La regione ammissibileSa
La regione ammissibile Sa di un problema di PL in formacanonica
Sa = {x ∈ Rn : aix ≤ bi, i = 1, . . . ,m, x ≥ 0}.
è un poliedro.
Semispazi e iperpiani sono insiemi chiusi
L’intersezione di un numero finito di insiemi chiusi è uninsieme chiuso
⇓
I poliedri (e quindi Sa) sono insiemi chiusi
Teoria della Programmazione Lineare – p. 20/89
Convessità
Siano x,y ∈ Sa, ovvero
aix ≤ bi i = 1, . . . ,m x ≥ 0,
eaiy ≤ bi i = 1, . . . ,m y ≥ 0.
Per ogni λ ∈ (0, 1) e per ogni i ∈ {1, . . . ,m} avremo:
ai[λx + (1 − λ)y] =
= λ︸︷︷︸
>0
aix︸︷︷︸
≤bi
+(1 − λ)︸ ︷︷ ︸
>0
aiy︸︷︷︸
≤bi
≤
λbi + (1 − λ)bi = bi.
Teoria della Programmazione Lineare – p. 21/89
Continua
Inoltre:λ
︸︷︷︸
>0
x︸︷︷︸
≥0
+(1 − λ)︸ ︷︷ ︸
>0
y︸︷︷︸
≥0
≥ 0.
Quindi:λx + (1 − λ)y ∈ Sa.
⇓
La regione ammissibile Sa è un insieme convesso.
Teoria della Programmazione Lineare – p. 22/89
Limitatezza e illimitatezza
La regione ammissibile Sa può essere:
= ∅
max x1 + x2
x1 ≤ −1
x1 + x2 ≤ 1
x1, x2 ≥ 0
un poliedro limitato (politopo)
max x1 + x2
x1 + x2 ≤ 1
x1, x2 ≥ 0
Teoria della Programmazione Lineare – p. 23/89
Continua
un poliedro illimitato
max x1 + x2
x1 − x2 ≤ 0
x1, x2 ≥ 0
Teoria della Programmazione Lineare – p. 24/89
Ricapitolando ...
... la regione ammissibile Sa di un problema di PL è unpoliedro e come tale è un insieme chiuso e convesso.Inoltre, può essere un insieme vuoto, un insieme limitato(politopo) oppure un insieme illimitato.
Teoria della Programmazione Lineare – p. 25/89
Vertici di Sa
Si definisce vertice di Sa un punto x ∈ Sa tale che nonesistono due punti distinti x1,x2 ∈ Sa, x1 6= x2, tali che
x =1
2x1 +
1
2x2.
ovvero x è il punto medio del segmento che congiunge x1 ex2.
Teoria della Programmazione Lineare – p. 26/89
Alcuni risultati
Teorema
Dato un problema di PL in forma canonica, se Sa 6= ∅, alloraSa contiene almeno un vertice.
Osservazione
Sa ha sempre un numero finito di vertici.
Teoria della Programmazione Lineare – p. 27/89
Raggi
Nel caso Sa sia un poliedro illimitato possiamo ancheintrodurre le definizioni di raggio e raggio estremo.
Si definisce raggio di Sa un vettore r tale che
∀ x0 ∈ Sa ∀ λ ≥ 0 : x0 + λr ∈ Sa,
cioè la semiretta con origine in x0 e direzione r ècompletamente contenuta in Sa per qualsiasi punto x0 ∈ Sa.
Teoria della Programmazione Lineare – p. 28/89
Raggi estremi
Un raggio r di Sa si definisce raggio estremo di Sa se nonesistono altri due raggi r1 e r2 di Sa con direzioni distinte,ovvero
r1 6= µr2 ∀ µ ∈ R,
tali che
r =1
2r1 +
1
2r2.
Osservazione
Sa ha sempre un numero finito di raggi estremi.
Teoria della Programmazione Lineare – p. 29/89
Teorema di rappresentazione diSa
Teorema Sia dato un problema di PL in forma canonica conSa 6= ∅. Siano v1, . . . ,vk i vertici di Sa e, nel caso in cui Sa
sia un poliedro illimitato, siano r1, . . . , rh i raggi estremi diSa. Allora
x ∈ Sa
se e solo se
∃ λ1, . . . , λk ≥ 0,k∑
i=1
λi = 1, ∃ µ1, . . . , µh ≥ 0
tali che
x =k∑
i=1
λivi +h∑
j=1
µjrj .
Teoria della Programmazione Lineare – p. 30/89
Ovvero ...
... i punti in Sa sono tutti e soli i punti ottenibili come sommadi
una combinazione convessa dei vertici di Sa
una combinazione lineare con coefficienti non negatividei raggi estremi di Sa
Quindi un numero finito di oggetti (vertici e raggi estremi) mipermettono di rappresentare tutto l’insieme Sa.
Teoria della Programmazione Lineare – p. 31/89
L’insieme delle soluzioni ottimeSott
Insieme soluzioni ottime
Sott = {x∗ ∈ Sa : cx∗ ≥ cx ∀ x ∈ Sa},
Sott ⊆ Sa, quindi Sa = ∅ ⇒ Sott = ∅.
Teoria della Programmazione Lineare – p. 32/89
Una, nessuna, infinite
Osservazione
Se Sott è un insieme finito e non vuoto, Sott contiene un solopunto.
Dimostrazione Per assurdo sia Sott un insieme finito econtenga più di un punto. Siano x1,x2 ∈ Sott, x1 6= x2, duepunti distinti di Sott.
Teoria della Programmazione Lineare – p. 33/89
Continua
Per l’ottimalità di x1 e x2 si deve avere cx1 = cx2.
Per la convessità di Sa e x1,x2 ∈ Sa:
λx1 + (1 − λ)x2 ∈ Sa ∀ λ ∈ (0, 1),
Per la linearità della funzione obiettivo ∀ λ ∈ (0, 1):
c[λx1+(1−λ)x2] = λcx1+(1−λ)cx2 = λcx1+(1−λ)cx1 = cx1.
Quindi:λx1 + (1 − λ)x2 ∈ Sott ∀ λ ∈ (0, 1)
cioè tutto il segmento che congiunge x1 e x2 è contenuto inSott, il che contraddice la finitezza dell’insieme Sott.
Teoria della Programmazione Lineare – p. 34/89
Le diverse forme possibili diSott
Caso 1 Sa = ∅ ⇒ Sott = ∅.
Caso 2 Sa 6= ∅ e politopo.Politopo è insieme chiuso e limitato, funzione obiettivo èlineare e quindi continua ⇒ (Teorema di Weierstrass)Sott 6= ∅.Sono possibili due sottocasi.
Caso 2.1 Sott è costituito da un solo punto.
max 2x1 + x2
x1 + x2 ≤ 1
x1, x2 ≥ 0
Teoria della Programmazione Lineare – p. 35/89
Continua
Caso 2.2 Sott è costituito da un insieme infinito e limitato dipunti.
max x1 + x2
x1 + x2 ≤ 1
x1, x2 ≥ 0
Teoria della Programmazione Lineare – p. 36/89
Continua
Caso 3 Sa 6= ∅ e poliedro illimitato. Sono possibili quattrosottocasi.
Caso 3.1 Sott = ∅ in quanto l’obiettivo è illimitato, ovveroesiste una sequenza infinita di punti {xk} di Sa lungo cuila funzione obiettivo cresce a +∞. Formalmente:
∃ {xk} : xk ∈ Sa ∀ k e cxk → +∞ k → +∞.
max x1 + x2
−x1 + x2 ≤ 0
x1 − x2 ≤ 1
x2 ≥ 1
x1, x2 ≥ 0Teoria della Programmazione Lineare – p. 37/89
Continua
Caso 3.2 Sott è costituito da un solo punto.
max −x1
−x1 + x2 ≤ 0
x1 − x2 ≤ 1
x2 ≥ 1
x1, x2 ≥ 0
Teoria della Programmazione Lineare – p. 38/89
Continua
Caso 3.3 Sott è costituito da un insieme infinito e limitato dipunti.
max −x2
−x1 + x2 ≤ 0
x1 − x2 ≤ 1
x2 ≥ 1
x1, x2 ≥ 0
Teoria della Programmazione Lineare – p. 39/89
Continua
Caso 3.4 Sott è costituito da un insieme infinito e illimitato dipunti.
max x1 − x2
−x1 + x2 ≤ 0
x1 − x2 ≤ 1
x2 ≥ 1
x1, x2 ≥ 0
Teoria della Programmazione Lineare – p. 40/89
Un lemma
Lemma
Dato un problema di PL in forma canonica, se Sott 6= ∅,allora per ogni raggio estremo r di Sa si ha:
cr ≤ 0.
Teoria della Programmazione Lineare – p. 41/89
Dimostrazione
Per assurdo supponiamo esista un raggio estremo r taleche
cr > 0
Sott 6= ∅ ⇒ Sa 6= ∅.
Sia x0 ∈ Sa. Per definizione di raggio avremo che
∀ λ ≥ 0 : x0 + λr ∈ Sa.
Valore funzione obiettivo in punti x0 + λr:
c(x0 + λr) = cx0 + λ cr︸︷︷︸
>0
→︸︷︷︸
λ→+∞
+∞
Allora Sott = ∅ in quanto l’obiettivo è illimitato sulla regioneammissibile, il che contraddice Sott 6= ∅.
Teoria della Programmazione Lineare – p. 42/89
Teorema fondamentale della PL
Teorema
Dato un problema di PL in forma canonica, se Sott 6= ∅,allora Sott contiene almeno un vertice di Sa.
Teoria della Programmazione Lineare – p. 43/89
Dimostrazione
Siano v1, . . . ,vk i vertici di Sa e, nel caso in cui Sa sia unpoliedro illimitato, indichiamo con r1, . . . , rh i raggi estremi diSa.
Se Sott 6= ∅, sia x∗ ∈ Sott.
Per assurdo supponiamo che
v1, . . . ,vk 6∈ Sott
da cui:cvi < cx∗ i = 1, . . . , k
Teoria della Programmazione Lineare – p. 44/89
Continua
Per il teorema di rappresentazione di Sa, x∗ ∈ Sa implicache
∃ λ∗1, . . . , λ
∗k ≥ 0,
k∑
i=1
λ∗i = 1, ∃ µ∗
1, . . . , µ∗h ≥ 0
tali che
x∗ =k∑
i=1
λ∗i vi +
h∑
j=1
µ∗jrj .
Quindi:
cx∗ = c
k∑
i=1
λ∗i vi +
h∑
j=1
µ∗jrj
Teoria della Programmazione Lineare – p. 45/89
Continua
Per la linearità della funzione obiettivo
cx∗ =k∑
i=1
λ∗i (cvi) +
h∑
j=1
µ∗j(crj).
Dal lemma precedente:
crj ≤ 0 j = 1, . . . , h.
Teoria della Programmazione Lineare – p. 46/89
Continua
Quindi:
cx∗ =k∑
i=1
λ∗i (cvi) +
h∑
j=1
µ∗j
︸︷︷︸
≥0
(crj)︸ ︷︷ ︸
≤0
.
da cui:
cx∗ ≤k∑
i=1
λ∗i (cvi).
Teoria della Programmazione Lineare – p. 47/89
Continua
Da cvi < cx∗, ∀ i segue che:
cx∗ ≤k∑
i=1
λ∗i (cvi)︸ ︷︷ ︸
<cx∗
<k∑
i=1
λ∗i (cx
∗).
NB: lo strettamente minore vale perchè almeno uno dei λ∗i è
strettamente positivo in quanto la loro somma deve esserepari a 1.
Quindi:
cx∗ < (cx∗)k∑
i=1
λ∗i = cx∗.
il che è assurdo.Teoria della Programmazione Lineare – p. 48/89
Un commento
Il teorema fondamentale della PL è alla base dellaprocedura di risoluzione che descriveremo, l’algoritmo delsimplesso.
Infatti, tale algoritmo ricerca la soluzione ottima cercando dispostarsi ad ogni iterazione in modo intelligente da unvertice all’altro di Sa. Per modo intelligente si intende chel’algoritmo tenta di spostarsi ad una data iterazione da unvertice a uno con valore della funzione obiettivo maggiore.
Teoria della Programmazione Lineare – p. 49/89
I problemi di PL in forma standard
I problemi di PL in forma standard hanno la seguenteformulazione:
max cx
aix = bi i = 1, . . . ,m
x ≥ 0
o, equivalentemente, in forma matriciale:
max cx
Ax = b
x ≥ 0
Teoria della Programmazione Lineare – p. 50/89
Un’osservazione
Osservazione
Ogni problema di PL in forma canonica può esseretrasformato in uno equivalente in forma standard.
Teoria della Programmazione Lineare – p. 51/89
Dimostrazione
Problema di PL in forma canonica
max cx
aix ≤ bi i = 1, . . . ,m
x ≥ 0
aix ≤ bi ⇔ aix + yi = bi, yi ≥ 0.
Quindi, il problema di PL in forma canonica è equivalente alseguente:
max cx
aix + yi = bi i = 1, . . . ,m
x ≥ 0
yi ≥ 0 i = 1, . . . ,m
che è in forma standard. Teoria della Programmazione Lineare – p. 52/89
Continua
Ogni problema di PL può essere ricondotto ad unoequivalente in forma canonica.
Ogni problema in forma canonica può essere ricondotto aduno equivalente in forma standard.
Quindi: ogni problema di PL può essere ricondotto ad unoequivalente in forma standard.
NB: nella pratica si passa direttamente da un problema diPL in forma generica ad uno equivalente in forma standard,senza passare necessariamente attraverso un problema informa canonica.
Teoria della Programmazione Lineare – p. 53/89
Un esempio
Si trasformi il seguente problema di PL in forma generica inun problema di PL in forma standard
min x1 + x2 + x3
x1 + 2x2 − x3 ≤ 3
x1 + 4x2 + 5x3 = 5
x1 − 2x2 + x3 ≥ 3
x1 ≥ 0
x2 ≤ 0
x3 libera in segno
Teoria della Programmazione Lineare – p. 54/89
Ipotesi aggiuntiva
Si richiede che la matrice dei vincoli A ∈ Rm×n abbia rango(= numero di righe linearmente indipendenti = numero dicolonne linearmente indipendenti) pari a m, il numero dellesue righe, il che equivale a richiedere che:
non ci sono righe di A ottenibili come combinazionilineari di altre righe di A;
esistono m colonne della matrice A che formano unamatrice quadrata invertibile.
NB: Si può dimostrare che anche questa non è unacondizione restrittiva e che ci si può sempre ricondurre adessa.
Teoria della Programmazione Lineare – p. 55/89
Esempi
A1 =
1 2 1 3
2 1 3 4
3 0 5 5
Rango di A1 < m = 3
A2 =
[
1 2 2 1 −1
3 7 1 3 1
]
Rango di A2 = m = 2
Teoria della Programmazione Lineare – p. 56/89
Base di un problema di PL
Si definisce base di un problema di PL in forma standard unsottinsieme:
B = {xi1 , . . . , xim}
di m delle n variabili del problema di PL con la proprietà chela matrice AB ∈ Rm×m ottenuta considerando le solecolonne di A relative alle variabili xik , k = 1, . . . ,m, siainvertibile.
Le variabili dell’insieme B verranno dette variabili in base,quelle al di fuori di B verranno raggruppate nell’insieme:
N = {xim+1, . . . , xin}
e verranno dette variabili fuori base.
Teoria della Programmazione Lineare – p. 57/89
Un esempio
Dato
max 3x1 + 4x2 + 2x3 + 2x4 + x5
x1 + 2x2 + 2x3 + x4 − x5 = 2
x1 + 2x2 + x3 + 4x4 − 2x5 = 2
x1, x2, x3, x4, x5 ≥ 0
Matrice dei vincoli
A =
[
1 2 2 1 −1
1 2 1 4 −2
]
Teoria della Programmazione Lineare – p. 58/89
Continua
B1 = {x1, x2} → non è una base. Infatti
AB1=
[
1 2
1 2
]
non è invertibile
Invece, B2 = {x1, x3} è una base in quanto:
AB2=
[
1 2
1 1
]
è invertibile
Allo stesso modo si verifichi che B3 = {x3, x4} eB4 = {x4, x5} sono basi.
Teoria della Programmazione Lineare – p. 59/89
Riformulazione rispetto alla baseB
Data una base B, indichiamo con:
xB ∈ Rm il vettore delle variabili in base
xN ∈ Rn−m il vettore delle variabili fuori base
cB ∈ Rm il vettore dei costi relativi alle variabili in base
cN ∈ Rn−m il vettore dei costi relativi alle variabili fuoribase
AN ∈ Rm×(n−m) la matrice ottenuta da A considerandole sole colonne relative alle variabili fuori base.
Teoria della Programmazione Lineare – p. 60/89
Nell’esempio
Con la base B = {x1, x3} abbiamo:
xB = (x1 x3)
xN = (x2 x4 x5)
cB = (3 2)
cN = (4 2 1)
AN =
[
2 1 −1
2 4 −2
]
Teoria della Programmazione Lineare – p. 61/89
Riscrittura della riformulazione
Possiamo ora riscrivere il problema di PL in forma standardnella seguente forma equivalente:
max cBxB + cNxN
ABxB + ANxN = b
xB,xN ≥ 0
e quindi anche in questo modo:
max cBxB + cNxN
ABxB = b − ANxN
xB,xN ≥ 0
Teoria della Programmazione Lineare – p. 62/89
Nell’esempio
max
cBxB︷ ︸︸ ︷
3x1 + 2x3 +
cNxN︷ ︸︸ ︷
4x2 + 2x4 + x5
ABxB︷ ︸︸ ︷
x1 + 2x3 +
ANxN︷ ︸︸ ︷
2x2 + x4 − x5 = 2
x1 + x3 + 2x2 + 4x4 − 2x5 = 2
x1, x3︸ ︷︷ ︸
xB
, x2, x4, x5︸ ︷︷ ︸
xN
≥ 0
Teoria della Programmazione Lineare – p. 63/89
E quindi ...
max
cBxB︷ ︸︸ ︷
3x1 + 2x3 +
cNxN︷ ︸︸ ︷
4x2 + 2x4 + x5
ABxB︷ ︸︸ ︷
x1 + 2x3 =
b−ANxN︷ ︸︸ ︷
2 − 2x2 − x4 + x5
x1 + x3 = 2 − 2x2 − 4x4 + 2x5
x1, x3︸ ︷︷ ︸
xB
, x2, x4, x5︸ ︷︷ ︸
xN
≥ 0
Teoria della Programmazione Lineare – p. 64/89
Continua
Moltiplichiamo ora i vincoli di uguaglianza per A−1B :
max cBxB + cNxN
A−1B ABxB = A−1
B b − A−1B ANxN
xB,xN ≥ 0
e quindi da A−1B ABxB = IxB = xB
max cBxB + cNxN
xB = A−1B b − A−1
B ANxN
xB,xN ≥ 0
Questo equivale a risolvere il sistema dato dai vincoli diuguaglianza considerando la variabili in base comeincognite del sistema e quelle fuori base come parametri.
Teoria della Programmazione Lineare – p. 65/89
Nell’esempio
max 3x1 + 2x3 + 4x2 + 2x4 + x5
x1 = 2 − 2x2 − 7x4 + 3x5
x3 = 0 + 3x4 − x5
x1, x3, x2, x4, x5 ≥ 0
Teoria della Programmazione Lineare – p. 66/89
Riformulazione rispetto alla base B
Infine, sostituendo xB nell’obiettivo:
cBxB + cNxN = cB
(A−1
B b − A−1B ANxN
)+ cNxN
da cui:
max cBA−1B b + (cN − cBA−1
B AN )xN
xB = A−1B b − A−1
B ANxN
xB,xN ≥ 0
Questa riformulazione viene detta riformulazione delproblema di PL rispetto alla base B.
NB: tale riformulazione è del tutto equivalente al problemaoriginario di PL.
Teoria della Programmazione Lineare – p. 67/89
Nell’esempio
Riformulazione rispetto alla base B = {x1, x3}:
max 6 − 2x2 − 13x4 + 8x5
x1 = 2 − 2x2 − 7x4 + 3x5
x3 = 0 + 3x4 − x5
x1, x3, x2, x4, x5 ≥ 0
Teoria della Programmazione Lineare – p. 68/89
Soluzioni di base
Si definisce soluzione di base associata alla base B, laseguente soluzione del sistema di vincoli di uguaglianzaottenuta ponendo xN = 0:
xB = A−1B b xN = 0.
Nell’esempio:
x1 = 2 x3 = 0 x2 = x4 = x5 = 0
Teoria della Programmazione Lineare – p. 69/89
Ammissibilità e non degenerazione
Se A−1B b ≥ 0 la soluzione di base si dice ammissibile.
Questo vuol dire che appartiene alla regione ammissibiledel problema di PL in quanto, oltre a soddisfare i vincoli diuguaglianza del problema, soddisfa anche quelli di nonnegatività delle variabili.
Se inoltre si ha A−1B b > 0 si parla di soluzione di base non
degenere, altrimenti si parla di soluzione di base degenere.
Teoria della Programmazione Lineare – p. 70/89
Nell’esempio
B2 = {x1, x3} → soluzione di base ammissibile e degenere
B3 = {x3, x4}: la soluzione di base è
x3 = 6/7 x4 = 2/7 x1 = x2 = x5 = 0,
che è ammissibile e non degenere
B4 = {x4, x5}: la soluzione di base è
x4 = −1 x5 = −3 x1 = x2 = x3 = 0,
che è non ammissibile.
Teoria della Programmazione Lineare – p. 71/89
Osservazione
Data una soluzione di base ammissibile e non degenereesiste un’unica base che la rappresenta, mentre unasoluzione di base ammissibile e degenere è rappresentatada più basi.
Si verifichi, ad esempio, che la base B5 = {x1, x4} ha comesoluzione di base associata:
x1 = 2 x4 = 0 x2 = x3 = x5 = 0,
che è la stessa associata alla base B2.
Teoria della Programmazione Lineare – p. 72/89
Ma ...
... cosa hanno a che fare le basi e le soluzioni di base con ilteorema fondamentale della PL?
La risposta ci viene dalla seguente osservazione.
Osservazione L’insieme dei vertici di Sa coincide con l’insiemedelle soluzioni di base ammissibili del problema di PL.
In pratica, vertici e di soluzioni di base ammissibili sono lastessa cosa vista da due punti di vista diversi: quellogeometrico (i vertici) e quello algebrico (le soluzioni di baseammissibili).
Teoria della Programmazione Lineare – p. 73/89
Basi adiacenti
Due basi B′ e B′′ si definiscono adiacenti se hanno m − 1variabili uguali e differiscono per una sola variabile.
Nell’esempio le basi B3 = {x3, x4} e B4 = {x4, x5} sonoadiacenti, mentre non lo sono B2 = {x1, x3} e B4.
Teoria della Programmazione Lineare – p. 74/89
Soluzioni di base adiacenti
Due soluzioni di base distinte si definiscono adiacenti seesistono due basi B′ e B′′ che le rappresentano e che sonotra loro adiacenti.
Si noti che due basi adiacenti non corrispondononecessariamente a due soluzioni di base adiacenti. Esseinfatti possono corrispondere alla stessa soluzione di basecome accade, ad esempio, con le basi B2 = {x1, x3} eB5 = {x1, x4}.
Teoria della Programmazione Lineare – p. 75/89
Riformulazione rispetto alla baseB
Sia data la base:
B = {xi1 , . . . , xim}.
conN = {xim+1
, . . . , xin}
l’insieme delle variabili fuori base. Abbiamo visto che, datala base B, la riformulazione del problema di PL rispetto allabase B è data da
max cBA−1B b + (cN − cBA−1
B AN )xN
xB = A−1B b − A−1
B ANxN
xB,xN ≥ 0
Teoria della Programmazione Lineare – p. 76/89
Continua
Indichiamo con:
γ0 il valore cBA−1B b;
γj , j = 1, . . . , n − m, le componenti del vettore
cN − cBA−1B AN ;
βr, r = 1, . . . ,m, le componenti del vettore A−1B b;
αrj , r = 1, . . . ,m, j = 1, . . . , n − m, le componenti dellamatrice −A−1
B AN
Teoria della Programmazione Lineare – p. 77/89
Continua
In forma scalare possiamo riscrivere la riformulazionerispetto alla base B nel seguente modo:
max γ0 +∑n−m
j=1 γjxim+j
xi1 = β1 +∑n−m
j=1 α1jxim+j
· · ·
xik = βk +∑n−m
j=1 αkjxim+j
· · ·
xim = βm +∑n−m
j=1 αmjxim+j
x1, . . . , xn ≥ 0
Teoria della Programmazione Lineare – p. 78/89
Nell’esempio
Riformulazione rispetto alla base B2 = {x1, x3}:
max 6 − 2x2 − 13x4 + 8x5
x1 = 2 − 2x2 − 7x4 + 3x5
x3 = 0 + 3x4 − x5
x1, x3, x2, x4, x5 ≥ 0
Teoria della Programmazione Lineare – p. 79/89
Passaggio ad una base adiacente
Supponiamo ora di voler passare dalla base B alla baseadiacente B′ ottenuta rimuovendo da B la variabile xik ,1 ≤ k ≤ m, e sostituendola con la variabile fuori base xim+h
,1 ≤ h ≤ n − m, ovvero:
B′ = {xi1 , . . . , xik−1, xim+h
, xik+1, . . . , xim}.
La prima domanda che ci dobbiamo porre è :
quando B′ è effettivamente una base. Perché lo sia si deveavere che AB′ è invertibile.
Teoria della Programmazione Lineare – p. 80/89
Continua
Si ha che AB′ è invertibile e quindi B′ è una base se e solose nella riformulazione associata alla base B il coefficientedi xim+h
nell’equazione relativa a xik è diverso da 0, ovverose e solo se:
αkh 6= 0.
Nell’esempio:{x1, x2} non è una base{x1, x5} è una base
Teoria della Programmazione Lineare – p. 81/89
L’operazione di cardine
Tale operazione consente di passare dalla riformulazionerispetto alla base B a quella rispetto alla base adiacente B′.Per fare questo dovremo compiere le seguenti operazioni.
Ricavare xim+hdall’equazione relativa a xik , cioè:
xim+h= −
βk
αkh
+1
αkh
xik −n−m∑
j=1, j 6=h
αkj
αkh
xim+j.
sostituire ogni occorrenza della variabile xim+hnelle
restanti equazioni e nell’obiettivo con la parte destra ditale equazione
Teoria della Programmazione Lineare – p. 82/89
Esempio
Dalla riformulazione rispetto a B2 = {x1, x3} a quellarispetto a B6 = {x1, x5}
Ricavo x5 dall’equazione relativa a x3
x5 = 0 − x3 + 3x4
Sostituisco la parte destra dell’equazione nei restantivincoli e nell’obiettivo
max 6 − 2x2 − 13x4 + 8(0 − x3 + 3x4)
x1 = 2 − 2x2 − 7x4 + 3(0 − x3 + 3x4)
x5 = 0 − x3 + 3x4
x1, x3, x2, x4, x5 ≥ 0
Teoria della Programmazione Lineare – p. 83/89
Riformulazione rispetto a B6 = {x1, x5}
max 6 − 2x2 − 8x3 + 11x4
x1 = 2 − 2x2 + 2x4 − 3x3
x5 = 0 − x3 + 3x4
x1, x3, x2, x4, x5 ≥ 0
Teoria della Programmazione Lineare – p. 84/89
Nota bene
Per poter recuperare dalle riformulazioni alcuneinformazioni (nel seguito vedremo, ad esempio, comesfruttare la riformulazione rispetto a una base B per poterottenere la matrice A−1
B ) è necessario mantenere un ordinetra le variabili in una base. Quindi se nella base B′ lavariabile xim+h
sostituisce la variabile xik a cui corrispondela k-esima equazione della riformulazione rispetto a B,nella riformulazione rispetto a B′ l’equazione relativa allavariabile xim+h
dovrà ancora essere la k-esima, mentre laposizione delle equazioni relative a tutte le altre variabilideve rimanere invariata rispetto alla precedenteriformulazione.
Teoria della Programmazione Lineare – p. 85/89
Nell’esempio ...
... la variabile x5 ha preso il posto della x3 e l’equazionerelativa alla x5 è stata messa nella stessa posizione (laseconda) in cui si trovava quella della x3, mentre la restanteequazione ha mantenuto la posizione originaria.
Teoria della Programmazione Lineare – p. 86/89
Un altro esempio
Passaggio da B6 = {x1, x5} a B4 = {x4, x5}
Ricavo x4 dall’equazione relativa a x1
x4 = −1 + 1/2x1 + x2 + 3/2x3
Sostituisco la parte destra dell’equazione nei restantivincoli e nell’obiettivo
max 6 − 2x2 − 8x3 + 11(−1 + 1/2x1 + x2 + 3/2x3)
x4 = −1 + 1/2x1 + x2 + 3/2x3
x5 = 0 − x3 + 3(−1 + 1/2x1 + x2 + 3/2x3)
x1, x3, x2, x4, x5 ≥ 0
Teoria della Programmazione Lineare – p. 87/89
Continua
Riformulazione rispetto a B4 = {x4, x5}:
max −5 + 11/2x1 + 9x2 + 17/2x3
x4 = −1 + 1/2x1 + x2 + 3/2x3
x5 = −3 + 3/2x1 + 3x2 + 7/2x3
x1, x3, x2, x4, x5 ≥ 0
Teoria della Programmazione Lineare – p. 88/89
Nota bene
Le operazioni di cardine che abbiamo eseguito sugliesempi ci hanno consentito di passare da una base ad unaadiacente e, nel secondo esempio, anche da una soluzionedi base ad una adiacente. Tuttavia, nel secondo casosiamo passati da una soluzione di base ammissibile (quellaassociata a B6) ad una non ammissibile (quella associata aB4). Nell’algoritmo di risoluzione che ci apprestiamo adiscutere la scelta della base adiacente verso cui muoversinon verrà fatta a caso come abbiamo fatto nei precedentiesempi, ma sarà guidata da regole precise chefondamentalmente ci consentiranno di spostarsi tra verticidella regione ammissibile migliorando il valore dellafunzione obiettivo.
Teoria della Programmazione Lineare – p. 89/89