Data - Informatica

Programmazione Lineare
Andrea Scozzari
a.a. 2013-2014
March 11, 2014
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
1 / 16
Concetti di base
Problema di Massimo nella sua
forma generale:
max
n
P
cj xj
Problema di Minimo nella sua forma
generale:
min
j=1
n
P
cj xj
j=1
aij xj ≤ bi
i = 1, 2, . . . , m
j=1
xj ≥ 0
n
P
n
P
aij xj ≥ bi
i = 1, 2, . . . , m
j=1
j = 1, 2, . . . , n
Andrea Scozzari (a.a. 2013-2014)
xj ≥ 0
Programmazione Lineare
j = 1, 2, . . . , n
March 11, 2014
2 / 16
Concetti di base
1. soluzione ammissibile una n-pla di numeri reali (x1 , x2 , . . . , xn ) che
soddisfa tutti i vincoli del problema
2. regione ammissibile l’insieme di tutte le soluzioni ammissibili
Dato un problema di PL il passo successivo consiste nell’individuare la
soluzione ottima del problema
Definizione
Una soluzione ammissibile (x1∗ , x2∗ , . . . , xn∗ ) `e una soluzione ottima del
problema di PL se per ogni altra n-pla (x1 , x2 , . . . , xn ) nella regione
ammissibile si ha
c1 x1∗ +c2 x2∗ +. . .+cn xn∗ ≥ c1 x1 +c2 x2 +. . .+cn xn
problema di massimo
c1 x1∗ + c2 x2∗ + . . . + cn xn∗ ≤ c1 x1 + c2 x2 + . . . + cn xn
problema di minimo
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
3 / 16
Metodo del Simplesso
Il metodo prevede che il problema di PL sia strutturato in modo particolare
ossia lavorando con un sistema di equazioni e introducendo delle variabili
artificiali non negative s1 , s2 , . . . , sm per ciascuna disequazione del sistema
di vincoli del problema
si = bi −
n
X
aij xj
i = 1, 2, . . . , m
problema di massimo
aij xj − bi
i = 1, 2, . . . , m
problema di minimo
j=1
si =
n
X
j=1
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
4 / 16
Metodo del Simplesso
Problema di Massimo:
max
n
P
Problema di Minimo:
cj xj
min
j=1
n
P
cj xj
j=1
aij xj + si = bi
i = 1, 2, . . . , m
j=1
xj ≥ 0
si ≥ 0
n
P
n
P
aij xj − si = bi
i = 1, 2, . . . , m
j=1
j = 1, 2, . . . , n
i = 1, 2, . . . , m
Andrea Scozzari (a.a. 2013-2014)
xj ≥ 0
si ≥ 0
Programmazione Lineare
j = 1, 2, . . . , n
i = 1, 2, . . . , m
March 11, 2014
5 / 16
Metodo del Simplesso
Un problema di PL `e in forma standard se valgono le seguenti condizioni:
` un problema di massimo
1. E
2. Tutte le variabili sono soggette a vincoli di non negativit`a
3. Tutti i vincoli sono equazioni
4. Tutti i termini noti sono maggiori o uguali a zero
Nota: ogni problema arbitrario di PL pu essere ricondotto nella forma
standard!
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
6 / 16
Metodo del Simplesso
Un problema di PL in forma standard pu`
o essere riscritto in una maniera
pi`
u compatta nel modo seguente:
Problema di Massimo:
max
n
P
cj xj
j=1
n
P
aij xj + si = bi
i = 1, 2, . . . , m
j=1
xj ≥ 0
si ≥ 0
j = 1, 2, . . . , n
i = 1, 2, . . . , m
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
7 / 16
Metodo del Simplesso
Un problema di PL in forma standard pu`
o essere riscritto in una maniera
pi`
u compatta nel modo seguente:
Problema di Massimo:
Forma matriciale:
max
n
P
cj xj
max c 0 x
j=1
n
P
aij xj + si = bi
i = 1, 2, . . . , m
j=1
xj ≥ 0
si ≥ 0
Ax = b
x ≥0
j = 1, 2, . . . , n
i = 1, 2, . . . , m
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
7 / 16
Metodo del Simplesso
in un problema in forma standard si ha
1. A `e una matrice le cui colonne fanno riferimento alle variabili del
problema e le righe ai vincoli del sistema di equazioni
2. x vettore delle variabili (non negative) del problema
3. b vettore dei termini noti del sistema
4. c vettore dei coefficienti delle variabili nella funzione obiettivo
max c 0 x
(1)
Ax = b
x ≥0
A ∈ Rm×n , rango(A) = m ≤ n
Andrea Scozzari (a.a. 2013-2014)
x ∈ Rn
Programmazione Lineare
b ∈ Rm
c ∈ Rn
March 11, 2014
8 / 16
Metodo del Simplesso
Problema di Massimo:
max
n
P
cj xj
j=1
n
P
aij xj + si = bi
i = 1, 2, . . . , m
j=1
xj ≥ 0
si ≥ 0
j = 1, 2, . . . , n
i = 1, 2, . . . , m
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
9 / 16
Metodo del Simplesso
Problema di Massimo:
max
n
P
Chiamiamo
xs = (xn+1 , xn+2 , . . . , xn+2 ) le
variabili ausiliarie; il sistema di
equazioni pu`
o riscriversi:
cj xj
j=1
n
P
¯ = [A, I ](x, xs )0 = b
A
aij xj + si = bi
i = 1, 2, . . . , m
j=1
xj ≥ 0
si ≥ 0
j = 1, 2, . . . , n
i = 1, 2, . . . , m
Andrea Scozzari (a.a. 2013-2014)
(2)
(x, xs ) ≥ 0
Programmazione Lineare
March 11, 2014
9 / 16
Metodo del Simplesso
Ci sono molti modi per risolvere il sistema (2). Ad esempio si pu`o porre
1. x = 0
2. xs = b
Pi`
u generalmente si potrebbe effettuare una partizione della matrice
¯ = [A, I ] tale che
A
¯ = [A, I ] = [B, N]
A
Di conseguenza otteniamo una partizione del vettore delle variabili
(x, xs ) = (xB , xN )
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
10 / 16
Metodo del Simplesso
Il metodo del simplesso genera iterativamente una sequenza si sistemi
equivalenti in cui ad ogni iterazione si cerca di modificare e ”migliorare” la
soluzione corrente modificandola il meno possibile, perseguendo cio`e una
strategia conservatrice.
Definizione
Sia A ∈ Rm×n la matrice dei coefficienti di un problema di PL in forma
standard (1) e supponiamo che m ≤ n e rango(A) = m. Sia
{a1 , a2 , . . . , an } l’insieme delle sue colonne. Una sottomatrice
B = (aj1 , . . . , ajm ) ∈ Rm×m di A non singolare `e detta matrice di base di A.
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
11 / 16
Metodo del Simplesso
Definizione
Data una matrice di base B = (aj1 , . . . , ajm ) ∈ Rm×m di A ∈ Rm×n :
1. la matrice N = (ajm+1 , . . . , ajn ) ∈ Rm×(n−m) `e detta matrice non di
base
2. l’insieme {j1 , j2 , . . . , jm } ⊂ {1, . . . , n} viene detto insieme degli indici
di base;
3. l’insieme {jm+1 , jm+2 , . . . , jn } ⊂ {1, . . . , n} viene detto insieme degli
indici fuori base;
4. xB `e il vettore delle variabili basiche
5. xN `e il vettore delle variabili non basiche
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
12 / 16
Metodo del Simplesso
A seguito di una partizione degli indici delle colonne della matrice dei
coefficienti del sistema (2), possiamo riscrivere (2)
BxB + NxN = b
Dato che B `e una matrice di base ed `e non singolare, il sistema diventa
xB + B −1 NxN = B −1 b
Il sistema Ax = b pu`o quindi essere risolto esprimendo il vettore delle
variabili di base xB in funzione del vettore delle variabili fuori base xN
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
13 / 16
Metodo del Simplesso
Definizione
Dato un problema in forma standard, una matrice di base B si dice
ammissibile per il sistema Ax = b se:
B −1 b ≥ 0
Definizione
Se B `e una base per la matrice A, allora il vettore x = (xB , xN )
xB = B −1 b
xN = 0
`e una Soluzione di Base per il sistema Ax = b
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
14 / 16
Metodo del Simplesso
Definizione
Dato un problema in forma standard e una matrice di base B ammissibile
per il sistema Ax = b, il vettore x = (xB , xN ) tale che
xB = B −1 b ≥ 0
xN = 0
`e una Soluzione di Base Ammissibile per il sistema Ax = b
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
15 / 16
Metodo del Simplesso
Dato un problema di PL in forma standard ed una base B vale
l’equivalenza
max c 0 x
max cB0 xB + cN0 xN
Ax = b
xB + B −1 NxN = B −1 b
x ≥0
(xB , xN ) ≥ 0
(3)
NOTA: sono equivalenti i sistemi che rappresentano l’insieme delle
soluzioni ammissibili dei due problemi. Un problema di PL in forma
standard pu`o essere scritto nella forma equivalente (3) in tanti modi
diversi quante sono le matrici di base di A.
Andrea Scozzari (a.a. 2013-2014)
Programmazione Lineare
March 11, 2014
16 / 16
Ricerca Operativa
Andrea Scozzari
Esercizio
1) Un risparmiatore vuole investire 50000 euro nell’acquisto di un certo numero di quote relative
a 4 fondi obbligazionari. Nella seguente tabella, per ciascun tipo di fondo (A,B,C,D), sono
riportati il costo di acquisto di una singola quota del fondo ed il rendimento annuo atteso di una
singola quota:
(in euro)
Rendimento annuo
atteso (in euro) per
ogni singola quota
A
4,5
0,31
B
5
0,4
C
3
0,55
D
5,2
0,45
Fondo
Costo unitario
Se l’obiettivo del risparmiatore è quello di massimizzare il rendimento complessivo annuo atteso,
formulare opportunamente il modello di scelta di investimento. Si considerino inoltre i seguenti
vincoli
1. Scrivere il vincolo per cui risulti che non più di 14000 euro devono essere investiti nei
fondi B e C.
2. Scrivere il vincolo per cui almeno 5000 euro devono essere investiti nel fondo A.
3. Scrivere il vincolo per cui esattamente 9500 euro devono essere investiti nei fondi D e C
Soluzione:
Sono definite le seguenti variabili xi, i=1,2,3,4 che rappresentano il numero di quote
investite in ciascuno dei 4 fondi disponibili. Il modello risulta:
max 0.31𝑥1 + 0.4𝑥2 + 0.55𝑥3 + 0.45𝑥4
4.5𝑥1 + 5𝑥2 + 3𝑥3 + 5.2𝑥4 ≤ 50000
5𝑥2 + 3𝑥3 ≤ 14000
4.5𝑥1 ≥ 5000
3𝑥3 + 5.2𝑥4 = 9500
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ≥ 0 𝑒 𝐼𝑛𝑡𝑒𝑟𝑒