matematica computazionale(6cfu) ottimizzazione · 2016. 1. 22. · matematica computazionale,...
TRANSCRIPT
1
Corso di Laurea in Infomatica
Corso di Laurea in Matematica
Matematica Computazionale(6cfu)
Ottimizzazione(8cfu)
(a.a. 2013-14, lez.3)
Docente: Marco Gaviano
(e-mail:[email protected])
2
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Problema generale della programmazione lineare (PL)
Il problema più generale della programmazione lineare
consiste nella ricerca dell'ottimo (minimo o massimo) di una
funzione lineare di variabili soggette a vincoli lineari
(equazioni o disequazioni) chiamate vincoli.
La funzione da ottimizzare si chiama funzione obbiettivo.
3
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Un problema di LP ha dunque la seguente formulazione
Problema PL (forma canonica)
Nj0,x
MMidxa
Midxa
asoggetta
xcza)(massimizzminimizza
j
1
n
1j
ijij
1
n
1j
ijij
n
1j
jj
4
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
In cui si è usata la notazione
• M={1,2,...,m}: insieme degli indici dei vincoli;
• N={1,2,...,n}: insieme degli indici delle variabili;
• M1 sottoinsieme di M; N1 sottoinsieme di N;
• A= (aij), iM, j N: matrice m x n di numeri reali;
• aj: la j-ma colonna di A;
• ai : l'i-ma riga di A
• x[x1,…,xn]T, vettore colonna con n componenti;
• c[x1,…,xn], vettore riga con n componenti;
• d[x1,…,xm]T, vettore colonna con m componenti;
5
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
0,xMMi,dxa
Mi,dxaasoggetta
cxza)(massimizzminimizza
1i
i1i
i
In forma compatta il problema si scrive
Problema PL (forma canonica)
6
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Nel risolvere un problema di PL si considera in generale
la formulazione standard. Questa la si ottiene sfruttando
le seguenti proprietà
minimo di f(x) = - massimo di -f(x)
Ciò permette di considerare solo problemi di minimo.
Inoltre le disequazioni possono supporsi tutte dello
stesso tipo (). Infatti, se ciò non si verificasse è
sufficiente moltiplicare per -1 le disequazioni col segno
().
7
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Le diseguaglianze
aixdi e aixdi
possono essere sostituite dalle relazioni
Le variabili sono chiamate variabili di scarto (slack
variable). Ovviamente esse non devono influenzare la
funzione da ottimizzare. Pertanto ad esse si assegna nella z=cx
un coefficiente nullo .
0,
0,
s
ii
s
i
i
s
ii
s
i
i
xdxxa
xdxxa
s
ix
8
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Problema PL(forma standard)
(Si farà riferimento a questa formulazione)
,0
minimizza
xdAxcxz
9
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Definizioni
• programma (o soluzione ammissibile, feasible
solution): una n-pla di valori che soddisfa tutti i
vincoli compresi quelli di non-negatività.
• soluzione non ammissibile: una n-pla di valori
che soddisfa tutti i vincoli eccetto quelli di non
negatività.
• programma ottimale: un programma finito (tutte le
variabili sono finite) che minimizza la funzione
obiettivo z.
10
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
• base B: ogni insieme di m vettori colonna aj linearmente
indipendenti.
• variabili di base: m variabili associate con le colonne di
una base B, costituiscono un sottovettore xB di x.
• variabili secondarie: sottovettore xR complementare a xB
su x, (x[xB,xR], riordinando le variabili).
Il sistema di equazioni Ax = d è supposto composto di
equazioni linearmente indipendenti (m<n, rango di A
uguale ad m) ed avente più di una soluzione.
11
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
La matrice A può considerarsi formata da 2 matrici B ed R,
con R le colonne di A non contenute in B (A [ B,R],
riordinando le variabili). Il sistema dei vincoli Ax=d può
scriversi come
[ B, R] [xB, xR]T=d.
Se B è una base e le n-m variabili secondarie (relative a R)
sono poste uguali a zero si ottiene un sistema di m equazioni
in m incognite
BxB= d
12
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
che possiede una unica soluzione
xB= B-1d.
• Il vettore [xB, xR] con xB= B-1d e xR =0 è
chiamato soluzione di base associata a B.
• Una soluzione di x è chiamata soluzione
degenere se qualche sua componente è nulla.
13
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Esempio: considera il problema PL
equivalente a
0x,x,x
30020x25x10x
20010x10x15x
12x10x5xzmax
321
321
321
321
0,,,
300202510
200101015
12105'min
4321
321
4321
321
S
S
xxxx
xxx
xxxx
xxxz
14
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Le soluzioni di base sono riportate nella seguente tabella
x1 x2 x3 x4 z(x)
1 7.27 9.09 0 0 17 feasible
2 5 0 12.5 0 175 feasible
3 30 0 0 -250 infeasible
4 0 -20 40 0 infeasible
5 0 12 0 80 120 feasible
6 0 0 15 50 180 optimal
15
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Il teorema fondamentale della PL
Dato un problema PL in forma standard,
(i) se esiste almeno un programma finito, esso ha almeno
un programma di base;
(ii) se esso ha almeno un programma ottimale finito, esso
ha almeno un programma ottimale di base.
Dim.(vedi appendice)
16
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Grazie a questo teorema il problema PL è risolto da un punto
di vista teorico, il numero di basi e corrispondentemente il
numero di programmi di base è finito ed è dato da
Le valutazioni di z nei programmi di base sono
sufficienti ad individuare il programma di base
ottimale
)!(!
!
mnm
n
17
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Ciò comunque porta ad una notevole mole di calcoli
anche per problemi di dimensione modesta. Per un
problema di dieci equazioni in venti incognite, il
calcolo di tutte le soluzioni di base richiede la
soluzione di circa 200.000 sistemi di dieci
equazioni in dieci incognite. Tale numero cresce
molto rapidamente con la dimensione del problema
di PL. Per evitare tale mole di calcoli si sono create
nuove tecniche.
18
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Interpretazione geometrica
Esempio 1
La figura illustra l'insieme dei punti che soddisfano i vincoli.
0x,x
3x x
2 x
1x2x
2x3xzmax
21
21
1
21
21
19
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Esempio 1
20
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Il problema può scriversi in forma standard come segue
La soluzione ottimale di base, finita e nondegenere è
max z = 8 con x1=2, x2=1, x3= 4, x4= x5= 0
0x,x,x,x,x3xx x
2x x
1xx2x2x3xzmin
54321
521
41
321
21
0x,x
3x x
2 x
1x2x
2x3xzmax
21
21
1
21
21
21
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Interpretazione geometrica
Esempio 2
In questo caso si ha ridondanza La figura illustra l'insieme
dei punti che soddisfano i vincoli
0x,x
3xx
2x
1xx
2x3xzmax
21
21
1
21
21
22
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Esempio 2
23
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Il problema può scriversi in forma standard come segue
La soluzione ottimale di base, finita e degenere (rispetto al problema
standard) è
max z = 8 con x1=2, x2=1, x3= x4= x5= 0
0x,x,x,x,x3xxx
2xx
1xxx2x3xzmin
54321
521
41
321
21
0x,x3xx
2x
1xx2x3xzmax
21
21
1
21
21
24
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Interpretazione geometrica
Esempio 3
La figura illustra l'insieme dei punti che soddisfano i vincoli
0x,x3x x
2 x
1x2xxxzmax
21
21
1
21
21
25
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Esempio 3
26
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Il problema può scriversi in forma standard come segue
Qui si hanno due soluzioni ottimali di base
1) max z = 3, x1 =2, x2=1, x3= 4, x4= x5= 0.
2) max z = 3, x1 =2/3, x2=7/3, x4= 4/3, x3= x5= 0.
Entrambe le soluzioni sono nondegeneri.
0,,,,1
2
12min
54321
521
41
321
21
xxxxxxxx
xx
xxxxxz
0,3
2
12max
21
21
1
21
21
xxxx
x
xxxxz
27
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Interpretazione geometrica
Esempio 4
La figura illustra l'insieme dei punti che soddisfano i vincoli
0,
3
1
23max
21
21
21
21
xx
xx
xx
xxz
28
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Esempio 4
29
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Il problema può scriversi in forma standard come segue
Il problema non ammette soluzioni ottimali finite.
0x,x,x,x3xxx
1xxx2x3xzmin
4321
421
321
21
0x,x3xx
1xx2x3xzmax
21
21
21
21
30
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Interpretazione geometrica
Esempio 5
La figura illustra l'insieme dei punti che soddisfano i vincoli
0,
3
3
12
max
21
21
1
21
21
xx
xx
x
xx
xxz
31
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Esempio 5
Il problema non ha alcuna soluzione
ammissibile.
X1
X2
-2x1+x
2>=1
x1>=3x
1+x
2<=3
32
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.3
Il problema può scriversi in forma standard come segue
Il problema non ha alcuna soluzioni
0x,x,x,x,x
3xxx
3xx
1xx2x
xxzmin
54321
521
41
321
21
0,
3
3
12
max
21
21
1
21
21
xx
xx
x
xx
xxz
33
Corso di Laurea in Infomatica
Corso di Laurea in Matematica
Matematica Computazionale(6cfu)
Ottimizzazione(8cfu)
(a.a. 2013-14, lez.4)
Docente: Marco Gaviano
(e-mail:[email protected])
34
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Il metodo del simplesso
Il metodo del simplesso proposto da G.B. Dantzig nel 1951
per la risoluzione di un problema di PL è una procedura
iterativa che genera una successione di programmi di base
in cui la funzione obbiettivo decresce.
35
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
I principi del metodo del simplesso
Si consideri un problema PL in forma standard
in cui A = [a1 a2 ... an] è una matrice mn , m<n.
Si supponga che B sia una base del sistema e che
l'equazione Ax=d possa essere riscritta come segue
,0
minimizza
x
dAx
cxz
36
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
oppure
BxB+RxR=d
da cui si ottiene il sistema esplicito in termini di variabili
di base
x B= B-1d – B-1RxR.
ovvero
4.1 x B= B-1d – YxR
con Y
B-1R = Y = [y1 y2 ...yn-m] = (yij).
dx
xR] [B
R
B
37
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Nel seguito mediante
NB, e NR= N-NB
si indicheranno i sottoinsiemi di N corrispondenti agli
indici delle variabili di base e secondarie rispettivamente.
La corrispondente decomposizione della funzione
obiettivo è
4.2
Oppure
4.2’ z = cBB-1d -(cBY -cR)xR.
RRBB
R
B
RB xcxcx
x]c [ccxz
38
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Per una soluzione di base relativa a B, xR=0
4.3
e la 4.1 e 4.2 possono essere riscritte come
o in modo equivalente
4.4
RRBRBB xcYczzYxxx )(,
dBczdBx BB 11 ,
)(, j
Nj
j
Nj
jj
B
Nj
jj
BB xcyxczzyxxxRRR
39
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Indicando
4.5
Si ha
4.6
R
j
B
j Njycz ,
RNj
jjj xczzz )(
40
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Il problema iniziale viene scritto in funzione di una
soluzione di base nota
0x
yxxx
)xc(zzzmin
R
R
Nj
jj
BB
Nj
jjj
,0
min
x
dAx
cxz
41
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Teorema 1
Dato un programma ammissibile di base associato a una
base B, se
4.7 zk-ck>0 e yk0 per qualche kNR
non esiste alcun programma ottimale.
Dimostrazione.
Da 4.4 e 4.6 segue che se
xk allora x0, z -.
42
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Teorema 2
Dato un programma di base ammissibile associato ad una
base B, se
4.8 per kNR, zk-ck>0 e ysk>0 per almeno un sNB
allora un nuovo programma di base ammissibile può essere
ottenuto dando a z un nuovo valore .
zz
'
43
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Dimostrazione
Se si dà ad una variabile secondaria xk il valore
4.9
e si tengono uguali a zero le altre variabili secondarie,
allora i nuovi valori delle variabili di base dedotti da 4.4
diventano
4.10
B
sk
s
yhk
hk Ns
y
x
y
xx
sk
,min0
kx
RB
kskss NkNsxyxx ,,0,
44
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
in cui per la 4.9 si ha
Le variabili formano una nuova
soluzione di base ammissibile per la quale dalla
4.6 si ha
0, hx
khs
,
s xe}x{
zx)c(zzz kkk
,
45
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Dato un programma di base ammissibile ed una variabile
secondaria xk tale che zk-ck>0 e ysk>0 per almeno un sN,
il teorema 2 fornisce il seguente
Criterio di uscita
xh variabile principale che diventa secondaria tale che
B
sk
s
yhk
h Nsy
x
y
x
sk
,min0
46
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Teorema 3
Dato un programma di base ammissibile associato con un
base B, una condizione necessaria e sufficiente perché esso
sia ottimale è che
zj-cj0 per ogni jNR.
La dimostrazione segue da 4.6.
47
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Corollario
Una condizione necessaria e sufficiente affinché un
programma di base ottimale sia unico è che
zj-cj < 0 per ogni jNR.
Conseguenza
Dato un programma di base xB e calcolati gli elementi di Y
e i valori di zj-cj, i teoremi 1,2 e 3 permettono di stabilire:
48
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Il calcolo di una nuovo programma di base è soltanto il
passaggio da una vecchia base B ad una nuova base B'
imponendo che una variabile secondaria entri nella base e
nello stesso tempo una variabile di base venga eliminata
dalla base.
• se è necessario calcolare un nuovo programma di base;
• se è necessario fermare il calcolo o perché un programma
ottimale è stato trovato o perché non esiste alcun
programma ottimale finito.
49
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Cambio della base
xk sia la variabile che entra nella base e xh, determinata dal
criterio di uscita,
sia la variabile che lascia la base. Allora 4.9 e 4.10 danno le
formule di trasformazione
4.11
B
sk
s
yhk
h Nsy
x
y
x
sk
,min0
.,0, ',, hkNsxyxxy
xx B
kskSS
hk
h
k
50
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Il nuovo valore della funzione obiettivo z è dato da
4.12
La nuova base B' differisce da B per la sostituzione della
colonna ah con ak. Il passaggio da B-1 a (B')-1 può essere
ottenuto mediante una trasformazione lineare(vedi
Appendice). Se p è l'indice di colonna di ah in B,
4.13 (B')-1 = JpB-1,
dove
con
,, )( kkk xczzz
]e ...e v ...e e [eJ m1pp1-p21p
51
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
posizione i-ma
4.14
Invece di usare le formule di trasformazione 4.11, si può
calcolare il nuovo programma con l'aiuto di (B')-1
4,15
.]y
y...
y
y- ,
y
1,
y
y ...
y
y - ,
y
y[v
kp,
km,
kp,
k1,p
kp,kp,
k1,p
kp,
k2,
kp,
k1,
p
d)B(x 1B
colonnavettore0...0][0,...0,1,e T
i
52
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Esempio
Si abbia il problema PL
Ponendo x1 e x4 uguali a zero, una soluzione di base
ammissibile è data da
x1=0, x2=3, x3=8, x4=0, x5=4.
Si ha
4xx6x
32xx3x
87xxx
xxx2xzmin
541
421
431
4321
53
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Si ha
Calcoliamo
1B
100
001
010
B
16
71
23
16
23
71
100
001
010
][RBY 41
1 yy
54
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
e
x4 può entrare nella base allora per il criterio di uscita
esce x2.
2.her p ,2
3
1
4,
2
3min
y
x
0s,4ys4
s
2,3,5)(s
4,2
2 min
y
x
8,0 44441111 cycczcyccz BB
55
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Essendo l'indice di colonna di a2 in B uguale a 1, si calcola
successivamente
101/2
017/2
001/2
J ,2,
1
2
7
2
1v 11
12/10
02/71
02/10
100
001
010
101/2
017/2
001/2
)B( 1-
5
3
4
1
2/5
2/37
2/3
d)B(ˆ
x
x
x
xB
56
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Selezione della variabile che entra nella base
Quando la base viene cambiata, la relazione zj -cj >0 è
generalmente soddisfatta da un sottoinsieme di NR. Quindi
è utile scegliere k in modo tale da massimizzare il
decremento della z. Poichè questo è uguale a
si può scegliere k in modo che (criterio di entrata)
4.16
hk
h
kky
xczzzz )(ˆ
0.)c(zcz jj
Nj
kk maxR
57
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Questa scelta di k non produce la massima variazione della
funzione obiettivo z, però fornisce un criterio di entrata
semplice che funziona bene nelle applicazioni.
58
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Convergenza dell’algoritmo del Simplesso
Il metodo del simplesso garantisce il passaggio da una
soluzione di base ad una nuova soluzione di base
con (ved. teorema 2).
Vale il segno < nel caso di soluzioni di base non degeneri
(xB>0). Altrimenti potrebbe valere l’uguaglianza. Cioè la
funzione obbiettivo non è decrementata.
x
'x
zz
'
• Nel primo caso siamo sicuri della convergenza al minimo
poiché il numero delle soluzioni di base è finito.
• Nel secondo caso può avvenire che una variabile di base
esca dalla base e poi vi rientri in una iterazione
successiva lasciando invariato il valore di z.
59
Matematica Computazionale, Ottimizzazione, a.a. 2013-14, Lezione, n.4
Si parla allora di ciclo infinito. Si possono costruire
esempi per cui tale situazione si verifica, Sono state
proposte varie tecniche che evitano questo fenomeno; per
esempio il metodo lexicografico del simplesso.
In pratica su problemi reali anche in presenza di soluzioni
di base degenere, fatto abbastanza comune, il ciclo infinito
non si è mai verificato. Pertanto nelle implementazioni del
simplesso non si introducono le nuove procedure che
renderebbero l’algoritmo meno efficiente.