Metodi per la soluzione di problemi di programmazione non lineare
1. Metodi per la soluzione di problemi di
programmazione non lineare
Metodi vincolati
Luca Vitale
Dipartimento di Informatica
Universit´a degli studi di Salerno
2. Outline
Introduzione al problema
Metodi non vincolati
Funzioni di penalit´a sequenziali
Funzioni Lagrangiane aumentate sequenziali
Funzioni di penalit´a esatte
Funzioni Lagrangiane aumentate esatte
Metodi di programmazione quadratica ricorsiva
Vincoli di disuguaglianza
Vincoli di uguaglianza
Conclusioni
3. Tipologie di problemi
I problemi che affronteremo avranno la seguente forma:
min
x
f(x) Rn
→ R
h(x) = 0 Rn
→ Rp
p ≤ n
g(x) ≤ 0 Rn
→ Rm
(1)
O forme con solo vincoli di uguaglianza o vincoli di diseguaglianza.
4. Condizioni di ottimalit´a
Le condizioni di ottimalit´a che verrano sempre considerate
soddisfatte sono le seguenti:
Condizioni necessarie del primo ordine (KKT)
Condizioni sufficienti del secondo ordine
5. Condizioni necessarie del primo ordine
Theorem (Condizioni necessarie del primo ordine)
se x* e una soluzione locale del problema, e se in x* ´e soddisfatta
la condizione di regolarit´a dei vincoli, esistono e sono unici i
moltiplicatori µ*, λ* che insieme a x*, soddisfano le seguenti
condizioni:
xL(x∗
, µ∗
, λ∗
) = 0
h(x∗
) = 0
g(x∗
) ≤ 0
λ∗
≥ 0
λ∗
g(x∗
) = 0
(2)
Tali condizioni sono dette di Kuhn-Tucker.
6. Condizioni sufficienti del secondo ordine
Theorem (Condizioni sufficienti del secondo ordine)
se x∗, λ∗, µ∗ soddisfano le condizioni del primo ordine; se x∗, λ∗
soddisfano le condizioni di stretta complementarit´a; se infine risulta
che:
y’ 2
xxL(x∗
, µ∗
, λ∗
)y > 0∀y = 0 :
∂h(x∗)
∂x
∂ga(x∗)
∂x
y = 0 (3)
allora x* ´e una soluzione locale stretta del problema.
7. Problemi di programmazione non lineare
I metodi per la soluzione di problemi di programmazione nonlineare
su cui negli ultimi anni si ´e maggiormente concentrata l’attivit´a di
ricerca si riconducono fondamentalmente a due categorie:
metodi basati sulla trasformazione di un problema vincolato in
un problema non vincolato o in una successione di problemi
non vincolati.
metodi basati sulla trasformazione del problema vincolato in
una successione di problemi di programmazione quadratica.
8. Outline
Introduzione al problema
Metodi non vincolati
Funzioni di penalit´a sequenziali
Funzioni Lagrangiane aumentate sequenziali
Funzioni di penalit´a esatte
Funzioni Lagrangiane aumentate esatte
Metodi di programmazione quadratica ricorsiva
Vincoli di disuguaglianza
Vincoli di uguaglianza
Conclusioni
9. Funzioni di penalit´a sequenziali I
Data una funzione f(x) che vogliamo minimizzare effettuiamo la
minimizzazione tramite una nuova funziona F(x). Il primo passo ´e
quello di definire una funzione q(x) nel seguente modo:
q(x) =
0 se x ∈ X
+∞, se x ∈ X
(4)
dove X ´e l’insieme della regione ammisibile.
e si definisce la funziona F(x) nel seguente modo:
F(x) f (x) + q(x) (5)
10. Funzioni di penalit´a sequenziali II
´E immediato verificare che la soluzione di F(x) fornisce la soluzione
al problema di f(x) ma presenta principalmente due problemi:
l’applicazione di questo metodo solo a casi banali
la discontinuit´a della funzione sulla frontiera di X
Per risolvere questo problema ci presupponiamo di costruire una
successione di funzioni che risultano continuamente differenziabili
11. Funzioni di penalit´a sequenziali III
Quindi definiremo una nuova funzione che sostituir´a q(x), che
chiameremo p(x) e la definiremo nel seguente modo:
p(x) =
0 se x ∈ X
> 0, se x ∈ X
(6)
e definiremo la nuova F(x, )
F(x; ) f (x) +
1
p(x) > 0 (7)
´e evidente che quando → 0, F(x, ) → F(x)
Il termine 1
p(x) viene detto termine di penalit´a.
12. Funzioni di penalit´a sequenziali IV
Data una successione k di valore di , strettamente decrescente e
tale che k → 0 il metodo delle funzioni di penalit´a sequenziali
consiste nel risolvere la successione di problemi non vincolati:
min
x
F(x, k) (8)
Per valori di che tendono a zero:
si produce un malcondizionamento sulla matrice hessiana
F(x, )
e quindi un rallentamento di convergenza
13. Funzioni di penalit´a sequenziali V
Quindi dato un punto iniziale x e una sequenza di k si effettuano
una serie di minimizzazioni di F(xk, k+1) che restituisce il punto
xk+1 nella aspettativa che xk sia una buona stima per xk+1,
tuttavia questo ´e vero solo se k non differisce molto da k+1.
Inoltre ´e possibile dimostrare che la velocit´a di convergenza
dell’algoritmo dipende dalla velocit´a di convergenza della sequenza
k.
Questo metodo viene utilizzando quando non ´e richiesta molta
precisione della soluzione del problema o del soddisfacimento dei
vincoli. Anche per fornire una soluzione iniziale ad un altro
problema.
14. Outline
Introduzione al problema
Metodi non vincolati
Funzioni di penalit´a sequenziali
Funzioni Lagrangiane aumentate sequenziali
Funzioni di penalit´a esatte
Funzioni Lagrangiane aumentate esatte
Metodi di programmazione quadratica ricorsiva
Vincoli di disuguaglianza
Vincoli di uguaglianza
Conclusioni
15. Funzioni Lagrangiane aumentate I
Per semplicit´a consideriamo solo il problema con vincoli di
uguaglianza.
Definiamo la funzione Lagrangiana nel seguente modo:
L(x, µ) f (x) + µ h(x), µ ∈ Rm
; (9)
dove µ viene detto moltiplicatore lagrangiano.
´E possibile convessificare la funzione lagrangiana con l’aggiunta di
un termine di penalit´a:
La(x, µ, ) L(x, µ) +
1
||h(x)||2 (10)
che, per sufficientemente piccolo ma comunque tale che 1
sia
finito, abbia, sotto opportune ipotesi, un minimo non vincolato in
x∗. La(x, µ, ) viene chiamata funzione lagrangiana aumentata.
16. Funzioni Lagrangiane aumentate II
dato 1 > 0 e µ1 ∈ Rn;
while k = 1,2 . . . do
Partendo da xk-1 trova yk = La(xk, µk, k)
if yk soddisfa KKT then
poni xk = yk e STOP;
else
scegli k+1;
scegli µk+1;
poni xk = yk;
end
k=k+1
end
17. Funzioni Lagrangiane aumentate III
Nell’algoritmo prima descritto bisogna scegliere come aggiornare i
parametri di e µ
k di solito viene aggiornato tenendo conto dell’ammisibilit´a di
xk
µk viene aggiornato tramite la propriet´a della funzione duale
18. Funzioni Lagrangiane aumentate IV
Le funzioni Lagrangiani aumentate sequenziali presentano due
principali vantaggi rispetto alle funzioni di penalit´a sequenziali:
superano i problemi di malcondizionamento
maggiore velocit´a di convergenza
19. Outline
Introduzione al problema
Metodi non vincolati
Funzioni di penalit´a sequenziali
Funzioni Lagrangiane aumentate sequenziali
Funzioni di penalit´a esatte
Funzioni Lagrangiane aumentate esatte
Metodi di programmazione quadratica ricorsiva
Vincoli di disuguaglianza
Vincoli di uguaglianza
Conclusioni
20. Funzioni di penalit´a esatte I
Il termine esatto, denota il fatto che ´e richiesta una sola
minimizzazione per ottenere la soluzione del problema.
Per semplicit´a noi consideriamo solo le funzioni continuamente
differenziabili.
21. Funzioni di penalit´a esatte II
L’idea delle funzioni di penalit´a esatte ´e quella di sostituire il
moltiplicatore µ, nella funzione lagrangiana aumentata, con una
funzione µ(x), continuamente differenziabile, e con la propriet´a
µ(x∗) = µ∗ cos´ı da avere una funzione che dipende solo da x
La(x, µ(x), ) = f (x) + µ(x) h(x) +
1
||h(x)||2
. (11)
22. Funzioni di penalit´a esatte III
Per identificare una formula opportuna per la funzione µ(x),
facciamo attenzione a:
f (x∗
) +
∂h(x∗)
∂x
µ∗
= 0 (12)
da cui, nell’ipotesi di validit´a della condizione di regolarit´a in x∗, si
ha che:
µ∗
= −
∂h(x∗)
∂x
∂h(x∗)
∂x
−1
∂h(x∗)
∂x
f (x∗
) (13)
l’uguaglianza sopra riportata consiglia di scegliere la funzione µ(x)
nel seguente modo:
µ(x) −
∂h(x)
∂x
∂h(x)
∂x
−1
∂h(x)
∂x
f (x) (14)
23. Funzioni di penalit´a esatte IV
´E possibile dimostrare che questa scelta di µ(x) effettivamente
fornisce una funzione di penalit´a esatta.
Questo metodo presenta principalmente due svantaggi al momento
della valutazione della funzione:
calcolare le derivate prime della funzione
invertire una matrice la cui dimensione ´e pari a quella dei
vincoli
Questi svantaggi limitano il suo campo di utilizzabilit´a.
24. Outline
Introduzione al problema
Metodi non vincolati
Funzioni di penalit´a sequenziali
Funzioni Lagrangiane aumentate sequenziali
Funzioni di penalit´a esatte
Funzioni Lagrangiane aumentate esatte
Metodi di programmazione quadratica ricorsiva
Vincoli di disuguaglianza
Vincoli di uguaglianza
Conclusioni
25. Funzioni Lagrangiane aumentate esatte I
Partendo dalla funzione lagrangiana aumentata descritta
precedentemente. Per cercare di aumentare la convessit´a della
funzione viene aggiunto un ulteriore termine di penalit´a
S(x, µ, ) f (x) + µ h(x) +
1
||h(x)||2
+
η
∂g(x)
∂x
xL(x, µ)
2 (15)
in cui l’ultimo addendo η > 0, rappresenta l’altro termine di
penalit´a sopra descritto.
26. Funzioni Lagrangiane aumentate esatte II
La funzione S(x, µ, ) risulta :
continuamente differenziabile rispetto a x e µ
→ 0 i relativi moltiplicatori possono essere messi in
corrispondenza con le coppie di valori (x, µ) che danno luogo
a minimi locali di S(x, µ, )
La ricerca delle soluzione locali del problema pu´o essere effettuata
rispetto a (x, µ).
27. Metodi di programmazione quadratica ricorsiva
I metodi di programmazione basati sulla trasformazione del
problema vincolato in una successione di problemi di
programmazione quadratica si distinguono in due classi:
RIQP (recursive inequality quadratic programming)
REQP (recursive equality quadratic programming)
Anche se simili, vengono studiati separatamente per sfruttare al
massimo le loro propriet´a.
28. Outline
Introduzione al problema
Metodi non vincolati
Funzioni di penalit´a sequenziali
Funzioni Lagrangiane aumentate sequenziali
Funzioni di penalit´a esatte
Funzioni Lagrangiane aumentate esatte
Metodi di programmazione quadratica ricorsiva
Vincoli di disuguaglianza
Vincoli di uguaglianza
Conclusioni
29. RIQP I
I problemi che ci presupponiamo di risolvere sono della seguente
forma:
min
x
f(x)
h(x) ≤ 0
(16)
30. RIQP II
Effettuando uno sviluppo in serie di Taylor della funzione L(x, µ∗)
nell’intorno di x∗, si ottiene troncando ai termini del secondo
ordine:
L(x, µ∗
) = f (x∗
) +
1
2
(x − x∗
) 2
xxL(x∗
, µ∗
)(x − x∗
) + . . . (17)
´e possibile verificare che il problema
min
x
f(x∗
) +
1
2
(x − x∗
) 2
xxL(x∗
, µ∗
)(x − x∗
)
∂h(x∗)
∂x
(x − x∗
) = 0
(18)
ha una soluzione in x∗.
31. RIQP III
Tuttavia il moltiplicatore associato alla soluzione risulta diverso da
µ∗. Per evitare questo problema bisogna aggiungere alla funzione
obbiettivo il seguente termine, ∂f (x∗)
∂x (x − x∗) e quindi avremo un
problema del seguente tipo:
min
x
f(x∗
) +
1
2
(x − x∗
) 2
xxL(x∗
, µ∗
)(x − x∗
) +
∂h(x∗)
∂x
(x − x∗
)
∂h(x∗)
∂x
(x − x∗
) = 0
(19)
che ha come soluzione x∗ e come moltiplicatore µ∗
32. RIQP IV
Questa osservazione suggerisce di considerare una successione di
sottoproblemi di programmazione quadratica del tipo
min
δ
1
2
δ 2
xxL(xk
, µk
)δ + f (xk
) δ + f (xk
)
∂h(xk)
∂x
δ = −h(xk
)
(20)
con k indica il numero di iterazione. Invece per quanto riguarda δ
lo definiamo nel seguente modo: δ = x − xk dove (xk, µk) sono le
stime delle soluzione all’iterazione k-esima.
´E possibile dimostrare che la successione di problemi converge alla
soluzione ottima.
33. RIQP V
Gli algoritmi RIQP presentano due caratteristiche:
non dipendono da coefficienti di penalit´a.
il numero di vincoli dei sottoproblemi da risolvere nei
sottoproblemi ´e sempre equivalente al numero di vincoli come
nel problema originale.
34. RIQP VI
Gli algoritmi RIQP, assicurano la convergenza solo se (x0, µ0) sono
abbastanza prossimi alla soluzione ottima.
´E possibile allargare la regione di convergenza combinando tale
algoritmo con algoritmi che godono di propriet´a di convergenza
globale.
35. Outline
Introduzione al problema
Metodi non vincolati
Funzioni di penalit´a sequenziali
Funzioni Lagrangiane aumentate sequenziali
Funzioni di penalit´a esatte
Funzioni Lagrangiane aumentate esatte
Metodi di programmazione quadratica ricorsiva
Vincoli di disuguaglianza
Vincoli di uguaglianza
Conclusioni
36. REQP I
I metodi REQP derivano dai metodi di penalit´a sequenziale
F(x, ) = f (x) +
1
||c(x)||2
, (21)
dove con c(x) si indica il vettore formato dai vincoli di uguaglianza
e dai vincoli di disuguaglianza non soddisfatti.
Le funzioni di penalit´a sequenziali soffrono di problemi
malcondizionamento.
L’obbiettivo dei problemi REQP ´e quello di eliminare il problema
del malcondizionamento, quindi creare una successione di problemi
ben condizionati.
37. REQP II
Indicando con xk la stima attuale della soluzione del problema.
La stima successiva ´e ottenuta minimizzando rispetto a δ, e con un
valore opportuno di , la funzione F(xk + δ, ).
Questa minimizzazione a sua volta pu´o essere effettuata in modo
approssimato determinando il valore di δ per cui uno sviluppo del
gradiente F(xk + δ, ) troncato ai termini del primo ordine si
annulla
F(xk
, ) + 2
F(xk
, )δ = 0 (22)
Tale equazione per piccoli valori di ´e afflitta dal
malcondizionamento ( 2F).
38. REQP III
Per risolvere il problema del malcondizionamento, bisogna
effettuare delle trasformazione del problema.
W (xk
, ) 2
f (xk
)
i=1
[ ci(xk
)]ci(xk
) (23)
Effettuando vari trasformazione ´e possibile arrivare ad un problema
che fornisce la soluzione al problema originale aggirando il
problema del malcondizionamento:
min
δ
1
2
δ W (xk
, )δ + f (xk
) δ
∂c(xk)
∂x
δ = −
2
u − c(xk
) ≤ 0
(24)
la cui soluzione, se W ´e definita positiva, esiste ed ´e unica.
39. REQP IV
´E possibile dimostrare la convergenza degli algoritmi REQP, ma
questa risulta molto articolata e quindi non verr´a trattata.
Il principale vantaggio degli algoritmi REQP rispetto agli algoritmi
RIQP ´e quello che nel sottoproblema quadratico ci possono essere
solo un sottoinsieme dei vincolo originali e questo permette
l’abbattimento del carico computazionale.
40. Conclusioni
Abbiamo descritto vari tipologie di approcci per risolvere problemi
di programmazione non lineare. Ogni metodo risulta essere pi´u
adatto in base alla specificit´a del problema o all’obbiettivo che si
vuole raggiungere.