• Non ci sono risultati.

I problemi di PL in forma canonica

N/A
N/A
Protected

Academic year: 2021

Condividi "I problemi di PL in forma canonica"

Copied!
89
0
0

Testo completo

(1)

Teoria della Programmazione

Lineare

(2)

I problemi di PL in forma canonica

In forma scalare:

max Pn

j=1 cjxj Pn

j=1 aijxj ≤ bi i = 1, . . . , m xj ≥ 0 j = 1, . . . , n

Teoria della Programmazione Lineare – p. 2/89

(3)

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 =

Xn j=1

pjqj

Esempio:

(4)

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

(5)

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 X

i=1

αiqi

#

=

Xt i=1

αi(pqi)

(6)

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 la cui componente i è il prodotto scalare tra la i-esima riga di A e il vettore p:

Xn j=1

aijpj

Teoria della Programmazione Lineare – p. 6/89

(7)

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 la cui componente j è il prodotto scalare tra la j-esima

colonna di A e il vettore q:

(8)

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

(9)

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 con componenti xj, j = 1, . . . , n, ovvero:

x = (x1 x2 · · · xn);

ai ∈ Rn, i = 1, . . . , m: m vettori di dimensione n con componenti aij, j = 1, . . . , n, ovvero:

(10)

PL in forma canonica

Osservando che

cx =

Xn j=1

cjxj

e

aix =

Xn j=1

aijxj

abbiamo la seguente rappresentazione vettoriale per un problema di PL in forma canonica:

max cx

aix ≤ bi i = 1, . . . , m x ≥ 0

Teoria della Programmazione Lineare – p. 10/89

(11)

PL in forma canonica

Si consideri la matrice A ∈ Rm×n che ha tante righe quanti sono i vincoli del problema (m) e la cui i-esima riga è il

vettore ai e del vettore b = (b1 · · · bm) ∈ Rm di dimensione m con componenti bi, i = 1, . . . , m. Osservando che

Ax = (a1x . . . amx)

possiamo scrivere la rappresentazione matriciale del problema di PL in forma canonica:

max cx

Ax ≤ b x ≥ 0

(12)

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

(13)

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 vincoloin vincolo

aix ≥ bi ⇔ −aix ≤ −bi

Trasformazione vincolo = in due vincoli

aix = bi ⇔ aix ≤ bi, aix ≥ bi ⇔ aix ≤ bi, −aix ≤ −bi

(14)

PL canonici ≡ PL generici

Sostituzione variabile ≤ 0 con variabile ≥ 0 Data xi ≤ 0, effettuare il cambio di variabile xi = −xi, dove xi ≥ 0

Sostituzione variabile libera in segno con due variabili ≥ 0 Data xi libera in segno, effettuare il cambio di variabile xi = x′′i − xi, dove xi, x′′i ≥ 0

Teoria della Programmazione Lineare – p. 14/89

(15)

Un esempio

Si trasformi il seguente problema di PL in forma generica in un 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

(16)

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 li congiunge è anch’esso completamente contenuto in C.

Teoria della Programmazione Lineare – p. 16/89

(17)

Insiemi limitati e chiusi

Un insieme C si dice limitato se esiste una sfera di raggio finito R che lo contiene.

Un insieme C si dice chiuso se contiene la sua frontiera.

(18)

Semispazi e iperpiani

Si definisce semispazio in Rn l’insieme di punti che soddisfa una disequazione lineare in Rn:

Xn j=1

wjxj ≤ v

(in forma vettoriale: wx ≤ v).

Si definisce iperpiano in Rn l’insieme di punti che soddisfa un’equazione lineare in Rn:

Xn j=1

wjxj = v

(in forma vettoriale: wx = v).

Teoria della Programmazione Lineare – p. 18/89

(19)

Poliedri e politopi

Si definisce poliedro l’intersezione di un numero finito di

semispazi e/o iperpiani. Se il poliedro è limitato esso viene chiamato politopo.

(20)

La regione ammissibile S a

La regione ammissibile Sa di un problema di PL in forma canonica

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 è un insieme chiuso

I poliedri (e quindi Sa) sono insiemi chiusi

Teoria della Programmazione Lineare – p. 20/89

(21)

Convessità

Siano x, y ∈ Sa, ovvero

aix ≤ bi i = 1, . . . , m x ≥ 0, e

aiy ≤ bi i = 1, . . . , m y ≥ 0.

Per ogni λ ∈ (0, 1) e per ogni i ∈ {1, . . . , m} avremo:

ai[λx + (1 − λ)y] =

= λ|{z}

>0

aix

|{z}

≤bi

+ (1 − λ)

| {z }

>0

aiy

|{z}

≤bi

(22)

Continua

Inoltre:

|{z}λ

>0

|{z}x

≥0

+ (1 − λ)

| {z }

>0

y

|{z}≥0

≥ 0.

Quindi:

λx + (1 − λ)y ∈ Sa.

La regione ammissibile Sa è un insieme convesso.

Teoria della Programmazione Lineare – p. 22/89

(23)

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

(24)

Continua

un poliedro illimitato

max x1 + x2 x1 − x2 ≤ 0

x1, x2 ≥ 0

Teoria della Programmazione Lineare – p. 24/89

(25)

Ricapitolando ...

... la regione ammissibile Sa di un problema di PL è un poliedro e come tale è un insieme chiuso e convesso.

Inoltre, può essere un insieme vuoto, un insieme limitato (politopo) oppure un insieme illimitato.

(26)

Vertici di S a

Si definisce vertice di Sa un punto x ∈ Sa tale che non esistono 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 e x2.

Teoria della Programmazione Lineare – p. 26/89

(27)

Alcuni risultati

Teorema

Dato un problema di PL in forma canonica, se Sa 6= ∅, allora Sa contiene almeno un vertice.

Osservazione

Sa ha sempre un numero finito di vertici.

(28)

Raggi

Nel caso Sa sia un poliedro illimitato possiamo anche introdurre 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

(29)

Raggi estremi

Un raggio r di Sa si definisce raggio estremo di Sa se non esistono 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.

(30)

Teorema di rappresentazione di S a

Teorema Sia dato un problema di PL in forma canonica con Sa 6= ∅. Siano v1, . . . , vk i vertici di Sa e, nel caso in cui Sa sia un poliedro illimitato, siano r1, . . . , rh i raggi estremi di Sa. Allora

x ∈ Sa se e solo se

∃ λ1, . . . , λk ≥ 0,

Xk i=1

λi = 1, ∃ µ1, . . . , µh ≥ 0

tali che

x =

Xk i=1

λivi +

Xh j=1

µjrj.

Teoria della Programmazione Lineare – p. 30/89

(31)

Ovvero ...

... i punti in Sa sono tutti e soli i punti ottenibili come somma di

una combinazione convessa dei vertici di Sa

una combinazione lineare con coefficienti non negativi dei raggi estremi di Sa

Quindi un numero finito di oggetti (vertici e raggi estremi) mi permettono di rappresentare tutto l’insieme Sa.

(32)

L’insieme delle soluzioni ottime S ott

Insieme soluzioni ottime

Sott = {x ∈ Sa : cx ≥ cx ∀ x ∈ Sa},

Sott ⊆ Sa, quindi Sa = ∅ ⇒ Sott = ∅.

Teoria della Programmazione Lineare – p. 32/89

(33)

Una, nessuna, infinite

Osservazione

Se Sott è un insieme finito e non vuoto, Sott contiene un solo punto.

Dimostrazione Per assurdo sia Sott un insieme finito e

contenga più di un punto. Siano x1, x2 ∈ Sott, x1 6= x2, due punti distinti di Sott.

(34)

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 in Sott, il che contraddice la finitezza dell’insieme Sott.

Teoria della Programmazione Lineare – p. 34/89

(35)

Le diverse forme possibili di S ott

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

(36)

Continua

Caso 2.2 Sott è costituito da un insieme infinito e limitato di punti.

max x1 + x2 x1 + x2 ≤ 1

x1, x2 ≥ 0

Teoria della Programmazione Lineare – p. 36/89

(37)

Continua

Caso 3 Sa 6= ∅ e poliedro illimitato. Sono possibili quattro sottocasi.

Caso 3.1 Sott = ∅ in quanto l’obiettivo è illimitato, ovvero esiste una sequenza infinita di punti {xk} di Sa lungo cui la funzione obiettivo cresce a +∞. Formalmente:

∃ {xk} : xk ∈ Sa ∀ k e cxk → +∞ k → +∞.

max x1 + x2

−x1 + x2 ≤ 0 x1 − x2 ≤ 1

x ≥ 1

(38)

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

(39)

Continua

Caso 3.3 Sott è costituito da un insieme infinito e limitato di punti.

max −x2

−x1 + x2 ≤ 0 x1 − x2 ≤ 1

x2 ≥ 1 x1, x2 ≥ 0

(40)

Continua

Caso 3.4 Sott è costituito da un insieme infinito e illimitato di punti.

max x1 − x2

−x1 + x2 ≤ 0 x1 − x2 ≤ 1

x2 ≥ 1 x1, x2 ≥ 0

Teoria della Programmazione Lineare – p. 40/89

(41)

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.

(42)

Dimostrazione

Per assurdo supponiamo esista un raggio estremo r tale che

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

|{z}>0

|{z}→

λ→+∞

+∞

Allora Sott = ∅ in quanto l’obiettivo è illimitato sulla regione ammissibile, il che contraddice Sott 6= ∅.

Teoria della Programmazione Lineare – p. 42/89

(43)

Teorema fondamentale della PL

Teorema

Dato un problema di PL in forma canonica, se Sott 6= ∅, allora Sott contiene almeno un vertice di Sa.

(44)

Dimostrazione

Siano v1, . . . , vk i vertici di Sa e, nel caso in cui Sa sia un

poliedro illimitato, indichiamo con r1, . . . , rh i raggi estremi di Sa.

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

(45)

Continua

Per il teorema di rappresentazione di Sa, x ∈ Sa implica che

∃ λ1, . . . , λk ≥ 0,

Xk i=1

λi = 1, ∃ µ1, . . . , µh ≥ 0

tali che

x =

Xk i=1

λi vi +

Xh j=1

µjrj.

Quindi:

cx = c

Xk

λi vi +

Xh

µjrj

(46)

Continua

Per la linearità della funzione obiettivo

cx =

Xk i=1

λi (cvi) +

Xh j=1

µj(crj).

Dal lemma precedente:

crj ≤ 0 j = 1, . . . , h.

Teoria della Programmazione Lineare – p. 46/89

(47)

Continua

Quindi:

cx =

Xk i=1

λi (cvi) +

Xh j=1

µj

|{z}≥0

(crj)

| {z }

≤0

.

da cui:

cx

Xk i=1

λi (cvi).

(48)

Continua

Da cvi < cx, ∀ i segue che:

cx

Xk i=1

λi (cvi)

| {z }

<cx

<

Xk i=1

λi (cx).

NB: lo strettamente minore vale perchè almeno uno dei λi è strettamente positivo in quanto la loro somma deve essere pari a 1.

Quindi:

cx < (cx)

Xk i=1

λi = cx.

il che è assurdo.

Teoria della Programmazione Lineare – p. 48/89

(49)

Un commento

Il teorema fondamentale della PL è alla base della

procedura di risoluzione che descriveremo, l’algoritmo del simplesso.

Infatti, tale algoritmo ricerca la soluzione ottima cercando di spostarsi ad ogni iterazione in modo intelligente da un

vertice all’altro di Sa. Per modo intelligente si intende che l’algoritmo tenta di spostarsi ad una data iterazione da un vertice a uno con valore della funzione obiettivo maggiore.

(50)

I problemi di PL in forma standard

I problemi di PL in forma standard hanno la seguente formulazione:

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

(51)

Un’osservazione

Osservazione

Ogni problema di PL in forma canonica può essere trasformato in uno equivalente in forma standard.

(52)

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 al seguente:

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

(53)

Continua

Ogni problema di PL può essere ricondotto ad uno equivalente in forma canonica.

Ogni problema in forma canonica può essere ricondotto ad uno equivalente in forma standard.

Quindi: ogni problema di PL può essere ricondotto ad uno equivalente in forma standard.

NB: nella pratica si passa direttamente da un problema di PL in forma generica ad uno equivalente in forma standard, senza passare necessariamente attraverso un problema in forma canonica.

(54)

Un esempio

Si trasformi il seguente problema di PL in forma generica in un 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

(55)

Ipotesi aggiuntiva

Si richiede che la matrice dei vincoli A ∈ Rm×n abbia rango (= numero di righe linearmente indipendenti = numero di colonne linearmente indipendenti) pari a m, il numero delle sue righe, il che equivale a richiedere che:

non ci sono righe di A ottenibili come combinazioni lineari di altre righe di A;

esistono m colonne della matrice A che formano una matrice quadrata invertibile.

NB: Si può dimostrare che anche questa non è una

condizione restrittiva e che ci si può sempre ricondurre ad essa.

(56)

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

(57)

Base di un problema di PL

Si definisce base di un problema di PL in forma standard un sottinsieme:

B = {xi1, . . . , xim}

di m delle n variabili del problema di PL con la proprietà che la matrice AB ∈ Rm×m ottenuta considerando le sole

colonne di A relative alle variabili xik, k = 1, . . . , m, sia invertibile.

Le variabili dell’insieme B verranno dette variabili in base, quelle al di fuori di B verranno raggruppate nell’insieme:

N = {xim+1, . . . , xin}

(58)

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

(59)

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} e B4 = {x4, x5} sono basi.

(60)

Riformulazione rispetto alla base B

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 fuori base

AN ∈ Rm×(n−m) la matrice ottenuta da A considerando le sole colonne relative alle variabili fuori base.

Teoria della Programmazione Lineare – p. 60/89

(61)

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

#

(62)

Riscrittura della riformulazione

Possiamo ora riscrivere il problema di PL in forma standard nella 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

(63)

Nell’esempio

max

cBxB

z }| { 3x1 + 2x3 +

cNxN

z }| {

4x2 + 2x4 + x5

ABxB

z }| { x1 + 2x3 +

ANxN

z }| {

2x2 + x4 − x5 = 2 x1 + x3 + 2x2 + 4x4 − 2x5 = 2

x1, x3

| {z }

xB

, x2, x4, x5

| {z }

xN

≥ 0

(64)

E quindi ...

max

cBxB

z }| { 3x1 + 2x3 +

cNxN

z }| {

4x2 + 2x4 + x5

ABxB

z }| { x1 + 2x3 =

b−ANxN

z }| {

2 − 2x2 − x4 + x5 x1 + x3 = 2 − 2x2 − 4x4 + 2x5

x1, x3

| {z }

xB

, x2, x4, x5

| {z }

xN

≥ 0

Teoria della Programmazione Lineare – p. 64/89

(65)

Continua

Moltiplichiamo ora i vincoli di uguaglianza per A−1B : max cBxB + cNxN

A−1B ABxB = A−1B b − A−1B ANxN xB, xN ≥ 0

e quindi da A−1B ABxB = IxB = xB

max cBxB + cNxN

xB = A−1B b − A−1B ANxN xB, xN ≥ 0

Questo equivale a risolvere il sistema dato dai vincoli di

(66)

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

(67)

Riformulazione rispetto alla base B

Infine, sostituendo xB nell’obiettivo:

cBxB + cNxN = cB A−1B b − A−1B ANxN

+ cNxN da cui:

max cBA−1B b + (cN − cBA−1B AN)xN xB = A−1B b − A−1B ANxN

xB, xN ≥ 0

Questa riformulazione viene detta riformulazione del problema di PL rispetto alla base B.

NB: tale riformulazione è del tutto equivalente al problema

(68)

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

(69)

Soluzioni di base

Si definisce soluzione di base associata alla base B, la seguente soluzione del sistema di vincoli di uguaglianza ottenuta ponendo xN = 0:

xB = A−1B b xN = 0.

Nell’esempio:

x1 = 2 x3 = 0 x2 = x4 = x5 = 0

(70)

Ammissibilità e non degenerazione

Se A−1B b ≥ 0 la soluzione di base si dice ammissibile.

Questo vuol dire che appartiene alla regione ammissibile del problema di PL in quanto, oltre a soddisfare i vincoli di uguaglianza del problema, soddisfa anche quelli di non negatività 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

(71)

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.

(72)

Osservazione

Data una soluzione di base ammissibile e non degenere esiste un’unica base che la rappresenta, mentre una

soluzione di base ammissibile e degenere è rappresentata da più basi.

Si verifichi, ad esempio, che la base B5 = {x1, x4} ha come soluzione 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

(73)

Ma ...

... cosa hanno a che fare le basi e le soluzioni di base con il teorema fondamentale della PL?

La risposta ci viene dalla seguente osservazione.

Osservazione L’insieme dei vertici di Sa coincide con l’insieme delle soluzioni di base ammissibili del problema di PL.

In pratica, vertici e di soluzioni di base ammissibili sono la stessa cosa vista da due punti di vista diversi: quello

geometrico (i vertici) e quello algebrico (le soluzioni di base ammissibili).

(74)

Basi adiacenti

Due basi B e B′′ si definiscono adiacenti se hanno m − 1 variabili uguali e differiscono per una sola variabile.

Nell’esempio le basi B3 = {x3, x4} e B4 = {x4, x5} sono adiacenti, mentre non lo sono B2 = {x1, x3} e B4.

Teoria della Programmazione Lineare – p. 74/89

(75)

Soluzioni di base adiacenti

Due soluzioni di base distinte si definiscono adiacenti se

esistono due basi B e B′′ che le rappresentano e che sono tra loro adiacenti.

Si noti che due basi adiacenti non corrispondono

necessariamente a due soluzioni di base adiacenti. Esse infatti possono corrispondere alla stessa soluzione di base come accade, ad esempio, con le basi B2 = {x1, x3} e

B5 = {x1, x4}.

(76)

Riformulazione rispetto alla base B

Sia data la base:

B = {xi1, . . . , xim}.

con

N = {xim+1, . . . , xin}

l’insieme delle variabili fuori base. Abbiamo visto che, data la base B, la riformulazione del problema di PL rispetto alla base B è data da

max cBA−1B b + (cN − cBA−1B AN)xN xB = A−1B b − A−1B ANxN

xB, xN ≥ 0

Teoria della Programmazione Lineare – p. 76/89

(77)

Continua

Indichiamo con:

γ0 il valore cBA−1B b;

γj, j = 1, . . . , n − m, le componenti del vettore cN − cBAB1AN;

βr, r = 1, . . . , m, le componenti del vettore A−1B b;

αrj, r = 1, . . . , m, j = 1, . . . , n − m, le componenti della matrice −A−1B AN

(78)

Continua

In forma scalare possiamo riscrivere la riformulazione rispetto alla base B nel seguente modo:

max γ0 + Pn−m

j=1 γjxim+j xi1 = β1 + Pn−m

j=1 α1jxim+j

· · · xik = βk + Pn−m

j=1 αkjxim+j

· · ·

xim = βm + Pn−m

j=1 αmjxim+j x1, . . . , xn ≥ 0

Teoria della Programmazione Lineare – p. 78/89

(79)

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

(80)

Passaggio ad una base adiacente

Supponiamo ora di voler passare dalla base B alla base adiacente 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 deve avere che AB è invertibile.

Teoria della Programmazione Lineare – p. 80/89

(81)

Continua

Si ha che AB è invertibile e quindi B è una base se e solo

se nella riformulazione associata alla base B il coefficiente di xim+h nell’equazione relativa a xik è diverso da 0, ovvero se e solo se:

αkh 6= 0.

Nell’esempio:

{x1, x2} non è una base {x1, x5} è una base

(82)

L’operazione di cardine

Tale operazione consente di passare dalla riformulazione rispetto alla base B a quella rispetto alla base adiacente B. Per fare questo dovremo compiere le seguenti operazioni.

Ricavare xim+h dall’equazione relativa a xik, cioè:

xim+h = − βk

αkh + 1

αkh xik

n−mX

j=1, j6=h

αkj

αkh xim+j. sostituire ogni occorrenza della variabile xim+h nelle

restanti equazioni e nell’obiettivo con la parte destra di tale equazione

Teoria della Programmazione Lineare – p. 82/89

(83)

Esempio

Dalla riformulazione rispetto a B2 = {x1, x3} a quella rispetto a B6 = {x1, x5}

Ricavo x5 dall’equazione relativa a x3 x5 = 0 − x3 + 3x4

Sostituisco la parte destra dell’equazione nei restanti vincoli 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

(84)

Riformulazione rispetto a B 6 = {x 1 , x 5 }

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

(85)

Nota bene

Per poter recuperare dalle riformulazioni alcune

informazioni (nel seguito vedremo, ad esempio, come

sfruttare la riformulazione rispetto a una base B per poter ottenere la matrice A−1B ) è necessario mantenere un ordine tra le variabili in una base. Quindi se nella base B la

variabile xim+h sostituisce la variabile xik a cui corrisponde la k-esima equazione della riformulazione rispetto a B,

nella riformulazione rispetto a B l’equazione relativa alla variabile xim+h dovrà ancora essere la k-esima, mentre la posizione delle equazioni relative a tutte le altre variabili deve rimanere invariata rispetto alla precedente

riformulazione.

(86)

Nell’esempio ...

... la variabile x5 ha preso il posto della x3 e l’equazione relativa alla x5 è stata messa nella stessa posizione (la

seconda) in cui si trovava quella della x3, mentre la restante equazione ha mantenuto la posizione originaria.

Teoria della Programmazione Lineare – p. 86/89

(87)

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 restanti vincoli 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

(88)

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

(89)

Nota bene

Le operazioni di cardine che abbiamo eseguito sugli

esempi ci hanno consentito di passare da una base ad una adiacente e, nel secondo esempio, anche da una soluzione di base ad una adiacente. Tuttavia, nel secondo caso

siamo passati da una soluzione di base ammissibile (quella associata a B6) ad una non ammissibile (quella associata a B4). Nell’algoritmo di risoluzione che ci apprestiamo a

discutere la scelta della base adiacente verso cui muoversi non verrà fatta a caso come abbiamo fatto nei precedenti esempi, ma sarà guidata da regole precise che

fondamentalmente ci consentiranno di spostarsi tra vertici della regione ammissibile migliorando il valore della

funzione obiettivo.

Riferimenti

Documenti correlati

La particolare struttura “quasi diagonale” del miniblocco di Jordan J i,j si ottiene inserendo tra le colonne della matrice di trasformazione T queste catene di

[r]

In questo caso oc- corre procedere alla determinazione delle catene v (k) i,j di autovettori generalizzati per i = 1, 2,... In questo caso si preferisce utilizzare la forma reale

E’ possibile dire quante sono le intersezioni di I con eI senza calcolarle esplicita- mente.. Se si,

Corso di Laurea in Matematica Geometria Proiettiva, Curve e

Indi- care un metodo generale per ottenere un problema di programmazione lineare con soluzioni primali e duali

Se lo spettro di f `e contenuto in K, allora esiste una base di V rispetto a cui la matrice associata ad f ` e in forma di

Per prima cosa osserviamo che C `e algebricamente chiuso, per ogni endomorfismo esiste quindi una base di C 5 in cui la matrice associata ` e in forma di Jordan.. Determinare la