Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
___________________________________________
8
OTTIMIZZAZIONE NON LINEARE VINCOLATA
(NON LINEAR PROGRAMMING, NLP)
___________________________________________
8.1 Sostituzione diretta
8.2 Condizioni necessarie di estremalità locale
8.3 Ottimizzazione quadratica (Quadratic Programming, QP)
8.4 Metodi con funzione di penalità, metodi di barriera e metodo delle Lagrangiane
aumentate
8.5 Successive Linear Programming (SLP)
8.6 Successive Quadratic Programming (SQP)
8.7 Metodo del gradiente ridotto generalizzato
8.8 Vantaggi e svantaggi rispettivi per i metodi NLP presentati
8.9 Software disponibile per NLP
8.10 Uso del software NLP
IL CAPITOLO 1 PRESENTA alcuni esempi di vincoli che si trovano nei problemi di ottimizzazione.
I vincoli sono classificati come vincoli di disuguaglianza o vincoli di uguaglianza, lineari o non
lineari. Il Capitolo 7 descrive il metodo del simplesso per risolvere problemi con funzioni obiettivo
lineari e vincoli lineari. Questo capitolo tratta problemi più complessi, che coinvolgono la
minimizzazione (o massimizzazione) di una funzione obiettivo non lineare soggetta a vincoli lineari
o non lineari:
1 2Minimizzare:
soggetta a: 1, 2, ...,
1, 2, ...,
T
n
i i
j j
f x x x
h b i m
g c j r
x x
x
x
(8.1)
I vincoli di disuguaglianza nel problema (8.1) possono essere trasformati in vincoli di uguaglianza,
come spiegato nel paragrafo 8.4, quindi ci concentriamo prima sui problemi che coinvolgono solo
vincoli di uguaglianza.
8.1 SOSTITUZIONE DIRETTA
Un metodo utile a trattare solo uno o due vincoli di uguaglianza lineari o non lineari consiste, quando
possibile, nel ricavare un’espressione esplicita per una variabile ed eliminare tale variabile dalla
formulazione del problema. Questo si fa per sostituzione diretta nella funzione obiettivo e nelle
equazioni dei vincoli. In molti problemi, eliminare un vincolo di uguaglianza con manipolazioni
algebriche è spesso vantaggioso rispetto a un approccio in cui viene mantenuto il vincolo e si adopera
una procedura di ottimizzazione vincolata. Per esempio, supponiamo di dover minimizzare la
seguente funzione obiettivo soggetta ad un unico vincolo di uguaglianza
2 2
1 2
1 2
Minimizzare: 4 5
soggetta a: 2 3 6
f x x
x x
x (8.2)
Sia 1x che
2x si possono eliminare facilmente. Risolvendo per 1x ,
21
6 3
2
xx
(8.3)
possiamo sostituire 1x nella funzione obiettivo ottenendo una nuova funzione obiettivo nella sola
variabile 2x :
2
2 2 2 14 36 36f x x x (8.4)
Il vincolo del problema originale è stato ora eliminato, e 2f x è una funzione non vincolata con un
solo grado di libertà (una variabile indipendente). L’uso dei vincoli per eliminare le variabili è l’idea
principale del metodo del gradiente ridotto generalizzato, come discusso nella sezione 8.7.
Possiamo ora minimizzare la funzione obiettivo (8.4), impostando la derivata prima uguale a
zero, e risolvendo per il valore ottimale di 2x :
*2
2 2
2
28 36 0 1.286df x
x xdx
FIGURA 8.1
Rappresentazione grafica di una funzione di due variabili ridotta a funzione di
una sola variabile per sostituzione diretta. Il minimo non vincolato si trova nel
punto (0,0), al centro delle linee di livello.
Una volta ottenuto *
2x , si ricava direttamente *
1x dal vincolo nel problema (8.2):
*
* 21
6 31.071
2
xx
L'interpretazione geometrica del problema precedente richiede la visualizzazione della funzione
obiettivo come superficie di un paraboloide in uno spazio tridimensionale, come mostra la figura 8.1.
La proiezione della curva di intersezione del paraboloide con il piano 1 22 3 6x x , che rappresenta
il vincolo, sul piano 1 0x , che nello spazio tridimensionale rappresenta uno dei piani coordinati, è
una parabola. Cercheremo quindi il minimo della parabola risultante. La procedura di eliminazione
appena eseguita equivale quindi a proiettare la curva intersezione sul piano 1 0x . Detta curva si può
equivalentemente proiettare sul piano 2 0x , eliminando per sostituzione la variabile
2x anziché 1x .
Domanda: si ottiene lo stesso risultato per *
x ?
In problemi in cui ci sono n variabili ed m vincoli di uguaglianza, possiamo provare ad eliminare
m variabili per sostituzione diretta. Se tutti i vincoli di uguaglianza si possono rimuovere, e non vi
sono vincoli di disuguaglianza, la funzione obiettivo si può derivare rispetto a ciascuna delle
rimanenti (n − m) variabili e porre le derivate uguali a zero. In alternativa, si può adoperare un codice
numerico per l'ottimizzazione non vincolata ed ottenere *
x . Se la funzione obiettivo è convessa (come
nell'esempio precedente) ed i vincoli formano una regione convessa, ogni punto stazionario sarà un
minimo globale. Sfortunatamente, pochissimi sono i problemi nella pratica che assumono questa
forma così semplice e consentono di eliminare tutti i vincoli di uguaglianza.
Pertanto, in questo capitolo discuteremo cinque importanti metodi per risolvere problemi di
ottimizzazione nonlineare vincolata:
1. Soluzione analitica delle condizioni necessarie di ottimalità (par. 8.2)
2. Metodi di penalità e metodi di barriera (par. 8.4)
3. Successive Linear Programming, SLP (par. 8.5)
4. Successive Quadratic Programming, SQP (par. 8.6)
5. Metodo del gradiente generalizzato (par. 8.7)
Il primo di questi metodi è di solito praticabile solo per problemi piccoli con poche variabili, ma
quando è applicabile può generare molte informazioni utili. Gli altri sono approcci di tipo numerico,
che vanno programmati su di un elaboratore elettronico.
8.2 CONDIZIONI NECESSARIE DEL PRIMO ORDINE
PER L'ESISTENZA DI UN ESTREMO LOCALE
Per introdurre l'argomento, consideriamo il seguente esempio.
__________________________________________________________________________
ESEMPIO 8.1 INTERPRETAZIONE GRAFICA DI UN
PROBLEMA DI OTTIMIZZAZIONE VINCOLATA
1 2 1 2
2 2
1 2 1 2
Minimizzare: ,
soggetta a: , 1 0
f x x x x
h x x x x
Soluzione. Il problema è illustrato graficamente in figura E8.1a. La regione di ammissibilità
è la circonferenza di raggio unitario. Le linee di livello della funzione obiettivo lineare sono
rette parallele a quella riportata in figura. La linea di livello con il valore minimo che abbia
un punto in comune con la circonferenza tocca la stessa nel punto * 0.707, 0.707 x , che
rappresenta il minimo globale. Il problema si può risolvere analiticamente come problema non
vincolato, eliminando 1x o
2x facendo uso dell'equazione del vincolo.
Sussistono relazioni notevoli fra i gradienti di f e di h in *
x , se *
x è un minimo locale. I
gradienti sono:
*
*
*
1 2
1,1
2 ,2 1.414, 1.414
f
h x x
x
x
x
e sono mostrati in figura E8.1b. Il gradiente della funzione obiettivo, *f x , è ortogonale al
piano tangente al vincolo in *
x . In generale, *h x è sempre ortogonale a questo piano
tangente, quindi *f x e *h x sono collineari, cioè giacciono sulla stessa retta ma hanno
versi opposti. Ciò equivale a dire che i due vettori sono multipli l'uno dell'altro:
* * *f h x x (a)
dove * 1 1.414 prende il nome di moltiplicatore di Lagrange per il vincolo h = 0.
FIGURA E8.1a
Circonferenza di ammissibilità con linea di livello della
funzione obiettivo e vincolo
FIGURA E8.1b
Gradienti nel punto di ottimo e in un punto non di ottimo.
Le relazioni di cui all'equazione (a) debbono valere in qualsiasi punto di ottimo locale
di qualsiasi problema di ottimizzazione con vincoli di uguaglianza che coinvolge funzioni
sufficientemente regolari. Per vedere perché, consideriamo il punto non ottimale 1
x in figura
E8.1b. *f x non è ortogonale al piano tangente al vincolo in 1
x , e pertanto ha proiezione
non nulla sul piano tangente. Anche il negativo della proiezione del gradiente non è nullo, e
questo indica che spostamenti lungo la circonferenza producono una diminuzione del valore
della funzione obiettivo e quindi un miglioramento. Ma in un minimo locale nessuno
spostamento infinitesimo lungo il vincolo può migliorare il valore della funzione obiettivo,
perciò la proiezione del gradiente deve essere nulla. Ciò naturalmente si verifica solo se
*f x è ortogonale al piano tangente.
__________________________________________________________________________
La relazione (a) nell'esempio 8.1 si può riscrivere come
* * * 0f h x x (8.5)
dove * 0.707 . Introduciamo adesso una nuova funzione, ,L x , detta funzione Lagrangiana:
,L f h x x x (8.6)
L'equazione (8.5) diventa quindi
* *,
, 0xL
xx (8.7)
perciò il gradiente della funzione Lagrangiana rispetto ad x , valutato in * *,x , è nullo. L'equazione
(8.7), insieme con la condizione di ammissibilità
* 0h x (8.8)
costituiscono le condizioni necessarie del primo ordine per l'ottimalità. Lo scalare prende il nome
di moltiplicatore di Lagrange.
Uso delle condizioni necessarie per trovare l'ottimo
Le condizioni necessarie del primo ordine (8.7) ed (8.8) si possono usare per la ricerca di una
soluzione ottima. Si assuma che *
x e * siano incognite. La funzione Lagrangiana per il problema
nell'esempio 8.1 è
2 2
1 2 1 2, 1L x x x x x
Si pongono le derivate parziali prime di L rispetto ad x uguali a zero, per scrivere
1
1
1 2 0L
xx
(8.9)
2
2
1 2 0L
xx
(8.10)
La condizione di ammissibilità (8.8) è
2 2
1 2 1 0x x (8.11)
Le condizioni necessarie del primo ordine per questo problema, (8.9) (8.11), consistono in tre
equazioni nelle tre incognite 1 2, ,x x . La loro risoluzione fornisce
1 2
1
2x x
(8.12)
che mostra che in questo caso 1x e
2x sono uguali all'estremo. Sostituendo la (8.12) nella (8.11):
2 2
1 11
4 4
ovvero
22 1 (8.13)
pertanto
0.707
e
1 2 0.707x x (8.14)
il segno meno corrisponde al minimo di f, il segno più corrisponde al massimo.
__________________________________________________________________________
ESEMPIO 8.2 USO DEI MOLTIPLICATORI DI LAGRANGE
Consideriamo il problema introdotto nell'equazione (8.2):
2 2
1 2Minimizzare: 4 5f x x x (a)
1 2soggetta a: 0 2 3 6h x x x (b)
Soluzione. Sia
2 2
1 2 1 2, 4 5 2 3 6L x x x x x (c)
Applichiamo le condizioni necessarie (8.9) − (8.11)
1
1
,8 2 0
Lx
x
x (d)
2
2
,10 3 0
Lx
x
x (e)
1 2
,2 3 6 0
Lx x
x (f)
Per sostituzione, 1 4x e
2 3 10x perciò la (f) diventa
3
2 3 6 04 10
da cui infine
*
*
1
*
2
4.286
1.071
1.286
x
x
__________________________________________________________________________
8.2.1 Problemi contenenti solo vincoli di uguaglianza
Un problema generale di ottimizzazione non lineare (NLP) vincolata con soli vincoli di uguaglianza,
con m vincoli ed n variabili, si può scrivere
Minimizzare:
soggetta a: , 1,...,j j
f
h b j m
x
x (8.15)
dove 1,..., nx xx è il vettore delle variabili decisionali, e ciascun valore jb è una costante.
Assumiamo che l'obiettivo f e le funzioni di vincolo jh siano dotate di derivate parziali prime
continue. In corrispondenza di ciascun vincolo j jh b definiamo un moltiplicatore di Lagrange j e
sia 1,..., m λ il vettore di questi moltiplicatori. La funzione Lagrangiana per il problema è
1
,m
j j j
j
L f h b
x λ x x (8.16)
e le condizioni necessarie del primo ordine sono
1
0, 1,...,m
j
j
ji i i
hL fi n
x x x
(8.17)
, 1,...,j jh b j m x (8.18)
Si noti che ci sono n + m equazioni nelle n + m incognite x e λ . Nel par. 8.6 descriveremo una
importante classe di algoritmi NLP detti Successive Quadratic Programming, che risolvono le
(8.17)−(8.18) con una variante del metodo di Newton.
Il problema (8.15) deve soddisfare certe condizioni, dette di qualifica dei vincoli, affinché le
(8.17)−(8.18) siano applicabili. Un requisito (Luenberger, 1984) è che i gradienti dei vincoli di
uguaglianza, valutati in *
x , siano linearmente indipendenti. A questo punto possiamo enunciare
formalmente le condizioni necessarie del primo ordine.
Condizioni necessarie del primo ordine per un estremo
Sia *
x un minimo o un massimo locale per il problema (8.15), e si assuma che i gradienti dei
vincoli * , 1,...,jh j m x siano linearmente indipendenti. Esiste allora un vettore di
moltiplicatori di Lagrange * * *
1 ,..., m λ tale che * *,x λ soddisfa le condizioni necessarie del
primo ordine (8.17)−(8.18).
Esempi che illustrano che cosa può accadere quando i gradienti dei vincoli sono linearmente
dipendenti in *
x sono riportati da Luenberger (1984). È importante ricordare che tutti i massimi e
minimi locali di un problema NLP soddisfano le condizioni necessarie del primo ordine se i gradienti
dei vincoli sono linearmente indipendenti. Inoltre, poiché tali condizioni sono necessarie ma non
sufficienti, una soluzione delle equazioni (8.17)−(8.18) non necessariamente rappresenta un minimo
o un massimo. Può trattarsi infatti anche di un punto di flesso o di sella. Questo è esattamente ciò che
accade nel caso non vincolato, dove non vi sono funzioni di vincolo 0jh . Nel caso non vincolato
le equazioni (8.17)−(8.18) si riducono a
f x 0
cioè la classica condizione di gradiente nullo (si veda par. 4.5). Per stabilire se un punto che soddisfa
le condizioni necessarie del primo ordine sia o meno un minimo o un massimo, è necessario fare
ricorso alle condizioni sufficienti del secondo ordine. Queste ultime sono discusse più avanti nel
capitolo.
Moltiplicatori di Lagrange e sensitività
L'analisi di sensitività nella ottimizzazione non lineare (NLP) indica quanto una soluzione ottima
cambia al cambiare dei dati del problema. I dati comprendono qualsiasi parametro presente nella
funzione obiettivo o nelle equazioni dei vincoli. In particolare, i moltiplicatori di Lagrange *
λ
forniscono informazioni utili sull'influenza di variazioni nei secondi membri delle equazioni dei
vincoli, in analogia con quanto accade nei problemi di programmazione lineare, che possono
inquadrarsi come casi particolari di programmazione non lineare o NLP. Per illustrare l'applicazione
dei moltiplicatori di Lagrange in ottimizzazione non lineare, consideriamo di nuovo l'esempio 8.1, in
cui il secondo membro dell'equazione del vincolo, cioè il raggio della circonferenza del vincolo, viene
definito come parametro b e perturbato.
1 2 1 2
2 2
1 2 1 2
Minimizzare: ,
soggetta a: ,
f x x x x
h x x x x b
La soluzione ottimale di questo problema è ora funzione del parametro b, e possiamo quindi denotarla
come 1 2,x b x b , e analogamente per il valore ottimale del moltiplicatore, b . Le condizioni
necessarie del primo ordine (8.9)−(8.11) si riscrivono in questo caso come
11 2 0x
21 2 0x
2 2
1 2x x b
la cui soluzione è (controllare!)
1 2
* *
1 22
bx b x b
1 2* 2b b
Queste formule restituiscono il risultato precedentemente ricavato per b = 1. Il valore della funzione
obiettivo in corrispondenza del minimo, a volte chiamato valore ottimo della funzione, è
1 2
1 2* * *
1 2 2 22
bV b x b x b b
La derivata del valore ottimo della funzione è
1 2 *2
dVb b
db
cioè il negativo del valore del moltiplicatore di Lagrange nel punto di ottimo è dV db . Pertanto, se
risolviamo il problema per uno specifico valore di b (per esempio b = 1) il valore ottimo della funzione
per b prossimo a 1 può approssimarsi al primo ordine con la serie di Taylor
1 1 1
12 1
2
V b V b
b
Per vedere quanto siano utili i moltiplicatori di Lagrange, consideriamo il problema generale (8.15),
con i secondi membri ib
Minimizzare: f x
soggetta a: , 1,...,i ih b i m x (8.19)
Sia 1,..., mb bb il vettore dei termini noti, e V b il valore ottimale della funzione obiettivo. Se
b è uno specifico vettore dei termini noti, e ,x b λ b è l'ottimo locale per b b , allora
j
j
V
b
b
b (8.20)
I vincoli con i massimi valori assoluti di j sono quelli per i quali il valore del secondo membro ha
l'effetto maggiore sul valore ottimo della funzione, almeno nell'intorno di b . Per questa valutazione
è importante adottare una formulazione adimensionale o normalizzata del problema, poiché le unità
adottate per le variabili possono determinare valori numerici diversi per ordine di grandezza, il che
può rivelarsi fuorviante.
8.2.2 Problemi contenenti solo vincoli di disuguaglianza
Le condizioni necessarie del primo ordine per problemi con vincoli di disuguaglianza sono dette
condizioni di Kuhn−Tucker (o anche condizioni Karush−Kuhn−Tucker). Il concetto di cono aiuta a
comprendere le condizioni di Kuhn Tucker (KTC). Dicesi cono un insieme R di punti tali che, se x
appartiene ad R, anche x appartiene ad R per 0 . Un cono convesso è un cono che costituisce
un insieme convesso. Un esempio di cono convesso in due dimensioni è rappresentato in figura 8.2.
In due e tre dimensioni, la definizione di cono convesso coincide con il significato usuale del termine.
Dalle precedenti definizioni si può dimostrare che l'insieme di tutte le combinazioni lineari non
negative di un insieme finito di vettori è un cono convesso, cioè che l'insieme
1 1 2 2 , 0, 1, ... ,m m iR i m x x x x x
è un cono convesso. I vettori 1 2, , ... , mx x x si dicono generatori del cono. Per esempio, il cono di
figura 8.2 è generato dai vettori [2, 1] e [2, 4]. Perciò, qualsiasi vettore che può esprimersi come
combinazione lineare non negativa di questi vettori giace nel cono. In figura 8.2 il vettore [4, 5] nel
cono è dato da [4, 5] = 1×[2, 1] + 1×[2, 4].
Condizioni di Kuhn−Tucker: interpretazione geometrica
Le condizioni di Kuhn−Tucker sono basate su questo fatto: in corrispondenza di ogni ottimo
vincolato, nessun piccolo cambiamento nelle variabili del problema può migliorare il valore della
funzione obiettivo. Per illustrare questa affermazione, consideriamo il seguente problema NLP:
2 2
Minimizzare: 2 1f x y x
2
1
2
3
soggetta a: , 0
, 2
, 0
g x y y x
g x y x y
g x y y
FIGURA 8.2
La regione ombreggiata costituisce un cono convesso.
Il problema è illustrato geometricamente in figura 8.3. È evidente che l'ottimo si trova all'intersezione
dei primi due vincoli, al punto (1,1). Poiché questi vincoli di disuguaglianza funzionano come vincoli
di uguaglianza nel punto (1,1), essi si chiamano vincoli costrittivi (binding in inglese) o attivi nel
punto. Il terzo vincolo vale come disuguaglianza rigorosa nel punto (1,1), ed è perciò inattivo o non
costrittivo (nonbinding in inglese). Definiamo ora direzione ammissibile di ricerca un vettore tale che
uno spostamento infinitesimo lungo detto vettore non viola alcun vincolo. Nel punto (1,1) l'insieme
di tutte le direzioni ammissibili giace fra la retta x + y − 2 = 0 e la tangente a 2y x in (1,1), cioè la
retta y = 2 x − 1. In altri termini, l'insieme delle direzioni ammissibili è il cono generato da queste
rette. Detto cono è ombreggiato in figura. Il vettore −f punta nella direzione della massima velocità
di variazione di f, ed ogni piccolo spostamento che forma un angolo (definito quale positivo) di meno
di 90° con −f farà diminuire f. Perciò, all'ottimo, non può esistere alcuna direzione ammissibile che
formi un angolo minore di 90° rispetto a −f.
Consideriamo adesso la figura 8.4, in cui sono tracciati i vettori gradiente dei vincoli, g1 e g2 .
Notiamo che −f è contenuto nel cono generato da g1 e g2. Che succederebbe se così non fosse?
Se −f fosse appena sopra g2, esso formerebbe un angolo di meno di 90° con una direzione
ammissibile, appena al di sotto della retta x + y − 2 = 0. Se −f fosse appena sotto g1, esso
formerebbe un angolo di meno di 90° con una direzione ammissibile, appena al di sopra della retta y
= 2 x − 1.
FIGURA 8.3
Geometria di un problema di ottimizzazione vincolata. La regione ammissibile si
trova fra i vincoli costrittivi ed i contorni stessi.
Nessuno dei due casi può verificarsi in un punto di ottimo, ed entrambi i casi sono esclusi se e solo
se −f si trova nel cono generato da g1 e g2. Naturalmente, ciò equivale a richiedere che f sia
all'interno del cono generato da −g1 e −g2. Da ciò discende la formulazione usuale delle KTC:
Se f e tutte le g sono derivabili, condizione necessaria affinché un punto *
x sia un minimo
vincolato per il problema
Minimizzare: f x
soggetta a: , 1,...,j jg c j r x
è che, in ogni *
x , f giaccia nel cono generato dai negativi dei gradienti dei vincoli attivi.
Formulazione algebrica delle condizioni di Kuhn−Tucker
Il risultato precedente si può formulare in termini algebrici. Affinché f giaccia nel cono sopra
descritto, esso deve essere una combinazione lineare dei negativi dei gradienti dei vincoli attivi; cioè,
devono esistere dei moltiplicatori di Lagrange *
ju tali che
FIGURA 8.4
Gradiente della funzione obiettivo contenuto in
un cono convesso.
* * *
j j
j I
f u g
x x (8.21)
dove
* 0,ju j I (8.22)
ed I è l'insieme degli indici dei vincoli di disuguaglianza attivi.
Questi risultati si possono riformulare includendo tutti i vincoli, definendo il moltiplicatore *
ju
pari a zero se *
j jg cx . Nell'esempio precedente, *
3u , il moltiplicatore del vincolo inattivo 3g , è
zero. Allora si può dire che * 0ju se *
j jg cx , ed * 0ju se *
j jg cx , così il prodotto
* *
j j ju g c
x è zero per ogni j. Questa proprietà, cioè che i vincoli di disuguaglianza inattivi
hanno moltiplicatori uguali a zero, si chiama scarto complementare. Le condizioni (8.21) ed (8.22)
diventano quindi
* * *
1
0r
j j
j
f u g
x x (8.23)
* * *0, 0j j j ju u g c
x (8.24a)
* , 1, ...,j jg c j r x (8.24b)
Le relazioni (8.23) e (8.24) sono la forma usuale in cui sono enunciate le relazioni di Kuhn−Tucker.
Moltiplicatori di Lagrange
Le condizioni KTC sono connesse strettamente con i risultati classici dei moltiplicatori di
Lagrange per problemi con vincoli di uguaglianza. Si formi la Lagrangiana
1
,r
j j j
j
L f u g c
x u x x
dove gli ju sono interpretati come moltiplicatori di Lagrange per i vincoli di disuguaglianza
j jg cx . Allora, le equazioni (8.23) ed (8.24) affermano che ,L x u deve essere stazionaria
rispetto ad x in * *,x u con i moltiplicatori *
u che soddisfano l'equazione (8.24). La stazionarietà
di L è la medesima condizione che vale nel caso di problemi con vincoli di uguaglianza. Le condizioni
aggiuntive nella (8.24) compaiono perché in questo caso i vincoli sono disuguaglianze.
8.2.3 Problemi contenenti sia vincoli di uguaglianza che di disuguaglianza
Quando sono presenti sia vincoli di uguaglianza che di disuguaglianza, le condizioni KTC si
enunciano come segue: si abbia il problema
Minimizzare: f x (8.25)
soggetta a: h , 1,...,i ib i m x (8.26a)
e
, 1,...,j jg c j r x (8.26b)
Si definiscano i moltiplicatori di Lagrange i associati con i vincoli di uguaglianza, ed i moltiplicatori
di Lagrange ju associati con i vincoli di disuguaglianza, e si formi la Lagrangiana
1 1
, ,m r
i i i j j j
i j
L f h b u g c
x λ u x x x (8.27)
Allora, se *
x è un minimo locale del problema (8.25)−(8.26), esistono i vettori di moltiplicatori di
Lagrange *
λ e *
u tali che *
x è un punto di stazionarietà per la funzione * *, ,L x λ u , cioè
* * * * * * * *
1 1
, ,m r
x i i j j
i j
L f h u g
x λ u x x x 0 (8.28)
e sussiste lo scarto complementare per le disuguaglianze:
* * *0, 0, 1, ...,j j j ju u g c j r
x (8.29)
_________________________________________________________________________
ESEMPIO 8.3 APPLICAZIONE DEL METODO DEI MOLTIPLICATORI DI
LAGRANGE CON VINCOLI DI DISUGUAGLIANZA NON LINEARI
Si risolva il problema
1 2Minimizzare: f x xx
2 2
1 2soggetta a: 25g x x x (a)
con il metodo dei moltiplicatori di Lagrange.
Soluzione. La funzione Lagrangiana è
2 2
1 2 1 2, 25L u x x u x x x (b)
Le condizioni necessarie per un punto di stazionarietà sono
2 1
1
1 2
2
2 2
1 2
2 2
1 2
2 0
2 0
25
25 0
Lx ux
x
Lx ux
x
Lx x
u
u x x
(c)
Le cinque soluzioni simultanee del sistema (c) sono in Tabella E8.3. Come le calcolereste?
Le colonne due e tre della Tabella E8.3 riportano le componenti di *
x che rappresentano
le soluzioni stazionarie del problema. Si noti che le soluzioni con 0u sono minimi, quelle
con 0u sono massimi, e 0u è un punto di sella. Questo succede perché massimizzare f
equivale a minimizzare −f, e le condizioni KTC per il problema dell'equazione (a) con f
sostituito da −f sono le equazioni (c) con u che può assumere valori negativi. In figura E8.3
sono rappresentate tratteggiate le linee di livello della funzione obiettivo (iperboli), e la
regione di ammissibilità è delimitata dall'area ombreggiata racchiusa dalla circonferenza
25g x . I punti B e C corrispondono ai due minimi, D ed E ai due massimi, ed A al punto
di sella di f x .
TABELLA E8.3
Soluzioni dell'esempio 8.3 con il metodo dei moltiplicatori di Lagrange
U 1x 2x Punto C f x Note
0 0 0 A 25 0 sella
0.5 3.54
3.54
3.54
3.54
B
C
0
0
−12.5
−12.5
minimo
minimo
−0.5 3.54
3.54
3.54
3.54
D
E
0
0
+12.5
+12.5
massimo
massimo
FIGURA E8.3
__________________________________________________________________________
Moltiplicatori di Lagrange e analisi di sensitività
A ciascuna iterazione, gli algoritmi NLP formano nuove stime non solo delle variabili decisionali *
x ma anche dei moltiplicatori di Lagrange λ ed u . Se in una iterazione tutti i vincoli sono soddisfatti
e le condizioni KTC sono soddisfatte entro una specificata tolleranza, l'algoritmo si arresta. In un
ottimo locale, i valori dei moltiplicatori forniscono utili informazioni sulla sensitività. Nel problema
NLP (8.25)−(8.26), sia * ,V b c il valore ottimale della funzione obiettivo f in un minimo locale,
visto come funzione dei secondi membri b e c delle equazioni dei vincoli. Sotto opportune ipotesi
(Luenberger, 1984, Cap. 10) si ha
*
* , 1, ...,i
i
Vi m
b
(8.30a)
** , 1, ...,j
j
Vu j r
c
(8.30b)
I moltiplicatori di Lagrange forniscono quindi la sensitività del valore ottimo della funzione obiettivo
rispetto ai secondi membri delle equazioni dei vincoli. Tale informazione è spesso di gran valore. Per
esempio, se il secondo membro di una equazione di un vincolo di disuguaglianza rappresenta la
capacità produttiva di un processo e questo vincolo risulta attivo, il valore ottimale del moltiplicatore
corrispondente *
ju misura il decremento del costo minimo in funzione dell'aumento della capacità
produttiva. Questo si definisce valore marginale della capacità produttiva. In una situazione in cui vi
sono diversi vincoli attivi sulle capacità produttive, il confronto dei moltiplicatori corrispondenti può
dettare la priorità rispetto ad interventi di incremento della capacità produttiva. Esempi di uso dei
moltiplicatori di Lagrange per analisi di sensitività sono riportati nel capitolo 7.
I moltiplicatori di Lagrange sono molto utili per l'analisi di sensitività ai parametri per i problemi
con più vincoli. Per esempio, in una tipica raffineria si producono una serie di prodotti diversi che
devono soddisfare (o superare) determinate specifiche in termini di purezza come richiesto dai clienti.
Supponiamo di effettuare una ottimizzazione vincolata per una funzione obiettivo che include diverse
variabili che si ritrovano nel modello della raffineria, cioè quelle nell'impianto di cracking catalitico,
nella colonna di distillazione, e così via, e giungiamo a determinare un ottimo economico dipendente
dai vincoli esistenti sulla purezza dei prodotti. Dati i valori ottimali delle variabili ed i moltiplicatori
di Lagrange corrispondenti alla purezza dei prodotti, ci si può quindi porre la domanda: come
cambierebbero i profitti se il disciplinare di produzione fosse rilassato ovvero reso più rigoroso?
Rispondere a questa domanda richiede semplicemente l'esame del moltiplicatore di Lagrange
esistente per ogni vincolo. Come esempio, si consideri il caso in cui vi sono tre principali prodotti (A,
B, e C) e i valori dei moltiplicatori di Lagrange corrispondenti a ciascuno dei tre vincoli di
disuguaglianza sono calcolati come:
0.001
1.0
0.007
A
B
C
u
u
u
I valori degli *
ju mostrano che (a meno della scala) soddisfare una richiesta aggiuntiva di una unità
di prodotto B costa molto di più che per gli altri due prodotti.
Problemi di programmazione convessa
Le condizioni KTC costituiscono condizioni non solo necessarie, ma anche sufficienti di
ottimalità per problemi convessi regolari. Nel problema (8.25)−(8.26), se la funzione obiettivo f x
e le funzioni dei vincoli di disuguaglianza jg sono convesse, e le funzioni dei vincoli di uguaglianza
sono lineari, allora la regione di ammissibilità del problema è convessa, e ogni minimo locale è un
minimo globale. Inoltre, se *
x è una soluzione ammissibile, se tutte le funzioni che definiscono il
problema hanno derivate prime continue in *
x , e se i gradienti dei vincoli attivi in *
x sono
indipendenti, allora *
x è ottimale se e solo se le condizioni KTC sono soddisfatte in *
x .
Considerazioni pratiche
Molti problemi reali non soddisfano queste condizioni di convessità. In applicazioni tipiche
dell'ingegneria chimica, i vincoli di uguaglianza spesso consistono in relazioni ingresso-uscita di
unità di processo, relazioni che, spesso, sono non lineari. La convessità della regione di ammissibilità
può essere garantita solo se questi vincoli di uguaglianza sono tutti lineari. Ancora, spesso non è facile
stabilire se un vincolo di disuguaglianza o una funzione obiettivo siano o meno convessi. Perciò,
spesso non è facile stabilire se un punto che soddisfa le condizioni KTC sia un ottimo locale o un
ottimo globale o un punto di sella. Per problemi con poche variabili, a volte possiamo trovare tutte le
soluzioni KTC analiticamente e scegliere quella che ha il miglior valore per la funzione obiettivo.
Altrimenti, la maggior parte degli algoritmi numerici si limitano ad arrestarsi allorquando le
condizioni KTC sono verificate entro una specificata tolleranza. L'utente di solito specifica due
tolleranze separate: una tolleranza di ammissibilità f ed una tolleranza di ottimalità o . Un punto
x si dice ammissibile entro una tolleranza f se
, per 1, ...,i i fh b i m x
e
, per 1, ...,j j fg c j r x (8.31a)
Inoltre, x si dice ottimale entro una tolleranza ,o f se è ammissibile entro f e le KTC sono
soddisfatte entro o . Ciò vuol dire che, nelle equazioni (8.23)−(8.24),
, per 1, ...,o
i
Li n
x
x,λ,u
e
, 1, ...,j ou j r (8.31b)
L'equazione (8.31b) corrisponde a rilassare il vincolo.
Condizioni necessarie e sufficienti del secondo ordine per l'ottimalità
Le condizioni necessarie di Kuhn-Tucker sono soddisfatte in ogni minimo o massimo locale e
nei punti di sella. Se * * *x ,λ ,u è un punto di Kuhn-Tucker per il problema (8.25)−(8.26), e le
condizioni sufficienti del secondo ordine sono soddisfatte in quel punto, allora l'ottimalità è garantita.
Le condizioni di ottimalità del secondo ordine coinvolgono la matrice delle derivate parziali seconde
rispetto ad x (la matrice Hessiana della funzione Lagrangiana), e si possono scrivere come segue:
2 * * * 0T
xL y x ,λ ,u y (8.32a)
per tutti i vettori y non nulli tali che
* 0J x y (8.32b)
dove *J x è la matrice le cui righe sono i gradienti dei vincoli attivi in
*x . L'equazione (8.32b)
definisce un insieme di vettori y che sono ortogonali ai gradienti dei vincoli attivi. Questi vettori
costituiscono il piano tangente ai vincoli attivi, concetto illustrato nell'Esempio 8.1. Perciò,
l'equazione (8.32a) richiede che la matrice Hessiana della Lagrangiana sia definita positiva per ogni
vettore y sul piano tangente. Se si cambia il segno " > " nella (8.32a) con il segno " ≥ ", le
(8.32a)−(8.32b) più le condizioni KTC costituiscono le condizioni necessarie del secondo ordine per
un minimo locale.
Se non vi sono vincoli attivi (e perciò *
x è un punto stazionario non vincolato), allora la (8.32a)
deve valere per tutti i vettori y , ed i moltiplicatori *
λ e *
u sono pari a zero, perciò 2 2
x xL f .
Pertanto la (8.32a) e la (8.32b) si riducono alla condizione discussa nel par. 4.5: se la matrice Hessiana
della funzione obiettivo, valutata in *
x , è definita positiva e se *
x è un punto stazionario, allora *
x è
un minimo locale non vincolato per f.
_________________________________________________________________________
ESEMPIO 8.4 USO DELLE CONDIZIONI DEL SECONDO ORDINE
Come esempio, si consideri il problema
2 2
1 2Minimizzare: 1f x x x
2
1 2soggetta a: 0x x
Soluzione. Sebbene la funzione obiettivo di questo problema sia convessa, il vincolo di
disuguaglianza non individua una regione di ammissibilità convessa, come mostrato in figura
E8.4. L'interpretazione geometrica è trovare i punti nella regione di ammissibilità più vicini a
(1, 0). La funzione Lagrangiana per questo problema è
2 2 2
1 2 1 2, 1L u x x u x x x
e le condizioni KTC per un minimo locale sono
1 1
2 2 2
2
1 2
2 1 0
2 2 0
0, 0
L x x u
L x x ux
x x u
Ci sono tre soluzioni per queste condizioni: due minimi globali, in * 11 2
x , * 12 2
x , * 1u
con un valore di 0.75 della funzione obiettivo, ed un massimo locale in 0
1 0x , 0
2 0x ,
0 2u con un valore di 1.0 della funzione obiettivo. Queste soluzioni sono evidenti se si
osserva la figura E8.4.
Le condizioni sufficienti del secondo ordine mostrano che i primi due di questi tre
punti di Kuhn−Tucker sono minimi locali mentre il terzo non lo è. La matrice Hessiana della
funzione Lagrangiana è
22 0
,0 2 1
xL uu
x
L'Hessiana valutata in 0 0 0
1 20, 0, 2x x u è
22 0
0,0,20 2
xL
Le condizioni necessarie del secondo ordine richiedono che la matrice sia positiva
semidefinita sul piano tangente ai vincoli attivi in (0,0), come definito nelle espressioni
(8.32b). Qui, il piano tangente è l'insieme
0,0 0T
T g y y
Il gradiente del vincolo è
1 2 2, 1 2 e perciò 0,0 1 0T g x x x g
quindi il piano tangente in 0,0 è
1 20 0,T y y y y y
FIGURA E8.4
e la forma quadratica della 8.32a, valutata sul piano tangente, è
2 * * 2
2 2
2
02 00 2
0 2
T
xL y yy
y x ,u y
Dato che 2
22y è negativa per tutti i vettori non nulli nell'insieme T, la condizione necessaria
del secondo ordine non è soddisfatta, perciò (0, 0) non è un minimo locale.
Se verifichiamo l'esistenza del minimo in * 11 2
x , * 12 2
x , * 1u , l'Hessiano della
Lagrangiana valutato in questo punto è
2 1 12 2
2 0, ,1
0 0xL
Il gradiente del vincolo in questo punto è 1 2
, perciò il piano tangente è
1 2 22 0 2,1T y y y y y y
Su questo piano tangente, la forma quadratica è
2 * * 2 2
2 2
2 0 22 1 4
0 0 1
T
xL y y
y x ,u y
ed è positivo per tutti i vettori non nulli nell'insieme T, così la condizione sufficiente del
secondo ordine è verificata, ed il punto è un minimo locale.
__________________________________________________________________________
8.3 PROGRAMMAZIONE QUADRATICA (QUADRATIC PROGRAMMING, QP)
Un problema di programmazione quadratica (Quadratic Programming, QP) è un problema di
ottimizzazione in cui si minimizza una funzione obiettivo quadratica di n variabili, soggetta ad m
vincoli lineari di disuguaglianza e/o uguaglianza. Un problema QP convesso è la forma più semplice
di problema di programmazione non lineare con vincoli di disuguaglianza. Un numero di problemi
pratici di ottimizzazione, come ad esempio i minimi quadrati vincolati, o il controllo ottimo di sistemi
lineari con funzioni di costo quadratica e vincoli lineari, sono naturalmente posti come problemi QP.
In questo testo si tratta dei problemi QP come sottoproblemi per risolvere problemi generici di
ottimizzazione non lineare. Gli algoritmi usati per risolvere problemi QP contengono molte
somiglianze con quelli che si impiegano nei problemi di programmazione lineare discussi nel Cap. 7.
In notazione matriciale, un problema di programmazione quadratica si scrive
12
Minimizzare:
Soggetto a:
T Tf
x c x x Qx
Ax b
x 0
(8.33)
dove c è un vettore di coefficienti costanti, A è una matrice (m × n) e Q è una matrice simmetrica.
Il vettore x può contenere variabili "slack", così i vincoli di uguaglianza possono contenere
vincoli originariamente di disuguaglianza, convertiti in vincoli di uguaglianza mediante introduzione
di variabili "slack". I programmi sviluppati per problemi QP di solito ammettono la specificazione di
limiti sia positivi che negativi per x; abbiamo assunto x 0 solo per semplicità.
Se i vincoli di uguaglianza sono indipendenti, le condizioni KTC sono condizioni necessarie
per la soluzione ottimale del problema QP, come discusso nel par. 8.2. In aggiunta, se Q è positiva
semidefinita, la funzione obiettivo è convessa. Dato che la regione di ammissibilità di un problema
QP è definita da vincoli lineari, anche essa è sempre convessa, e quindi un problema QP è un problema
convesso e come tale un ottimo locale è anche ottimo globale. Anche, le condizioni KTC sono
condizioni sufficienti per un minimo, e una soluzione che verifica le KTC rappresenta l'ottimo
globale. Se invece Q non è positiva semidefinita, il problema può avere soluzioni non limitate o
minimi locali.
Per scrivere le KTC, cominciamo con la Lagrangiana
12
T T T TL x c x Qx λ Ax b u x
e uguagliamo a zero il gradiente di L (rispetto ad T
x ) (si noti che TT λ Ax b Ax b λ
T T T A x b λ e che T Tu x x u)
0T
xL c Qx A λ u (8.34)
Ax b 0 (8.35)
x 0 u 0 (8.36)
T u x 0 (8.37)
dove iu e j sono i moltiplicatori di Lagrange. Se Q è positiva semidefinita, ogni set di variabili
* * *, ,x u λ che soddisfa le (8.34)−(8.37) è una soluzione ottimale delle (8.33).
Alcuni solutori QP usano queste KTC direttamente per trovare una soluzione che soddisfa le
equazioni. Esse sono lineari eccezion fatta per la (8.37), che viene chiamata condizione di scarto
complementare. Queste condizioni sono state discusse nel par. 8.2 per vincoli generici di
disuguaglianza. Applicata alle condizioni di non negatività di cui alla (8.33), la condizione di scarto
complementare implica che almeno una coppia di variabili ,i iu x sia nulla. Perciò, una soluzione
ammissibile alle condizioni KTC si può trovare cominciando da una soluzione inammissibile
complementare dei vincoli lineari (8.34)−(8.36) ed usando una sequenza di operazioni di pivoting
come nei metodi di LP (Programmazione Lineare, Linear Programming) per minimizzare la somma
delle inammissibilità conservando la complementarità. Poiché le (8.34) e (8.35) hanno n ed m vincoli
rispettivamente, l’effetto è quello di risolvere un problema LP con (n + m) righe. Dato che si adopera
materiale algoritmico per problemi LP, la maggior parte dei codici commerciali di Programmazione
Lineare contengono solutori QP. In alternativa, naturalmente, un problema QP può essere risolto da
qualsiasi algoritmo efficiente di NLP.
8.4 METODI DI PENALITÀ, DI BARRIERA E DELLA LAGRANGIANA
AUMENTATA
L’idea alla base di un metodo di penalità per ottimizzazione non lineare (NLP) è quella di
trasformare un problema vincolato in una successione di problemi non vincolati.
Minimizzare:
Minimizzare: , , ,0Soggetto a:
0
f
P f r
x
g hg x
h x
(8.38)
dove , , ,P f rg h è una funzione di penalità, ed r è un parametro (positivo) di penalità. Formulata
la funzione di penalità, essa viene minimizzata per una serie di valori crescenti del parametro r, che
costringono la successione dei minimi ad avvicinarsi all’ottimo del problema vincolato.
Ad esempio, consideriamo il problema
2 2
1 2
1 2
Minimizzare: 1 2
Soggetto a: 4 0
f x x
h x x
x
x
Formuliamo una nuova funzione obiettivo non vincolata:
2 2 2
1 2 1 2, 1 2 4P r x x r x x x
FIGURA 8.5
Trasformazione di un problema vincolato in un problema non vincolato equivalente. Le
linee di livello della funzione di penalità non vincolata sono mostrate per vari valori di r.
dove r è uno scalare positivo chiamato parametro di penalità, ed 2
1 2 4r x x è detto termine di
penalità. Consideriamo ora una successione di problemi di minimizzazione in cui minimizziamo
,P rx per una successione crescente di valori di r tendenti all’infinito. All’aumentare di r, il termine
di penalità diviene sempre più grande per valori di x che violano i vincoli di uguaglianza (8.38). Al
crescere del termine di penalità, i valori di ix si modificano per osservare il vincolo di uguaglianza.
Al limite, il prodotto di r per 2h tende a zero e dunque il valore di f tende al valore di P, come mostra
la figura 8.5. L'ottimo vincolato è * 1.5,2.5x ed il minimo non vincolato dell'obiettivo si trova in
1,2 . Il punto 1,2 è anche il minimo di ,0P x . I punti di minimo per 1, 10, 100, 1000r sono
i centri delle linee di livello ellittiche nella figura. La tabella 8.1 mostra 1,r x r ed 2x r . È evidente
che *r x x per r , il che si dimostra vero in generale (si veda Luenberger, 1984).
TABELLA 8.1
Effetto del valore del parametro
di penalità r sul minimo di f
r x1 x2 f
0 1.0000 2.0000 0.0000
0.1 1.0833 2.0833 0.0833
1 1.3333 2.3333 0.3333
10 1.4762 2.4762 0.4762
100 1.4975 2.4975 0.4975
1000 1.4998 2.4998 0.4998
x* 1.5000 2.5000 0.5000
Si noti come le curve di livello di ,P rx si addensano intorno alla retta del vincolo 1 2 4x x al
crescere di r. Questo si verifica poiché, per valori grandi di r, ,P rx aumenta rapidamente
all’aumentare delle “violazioni” del vincolo 1 2 4x x , ossia quando ci si allontana da questa retta.
Questo addensamento e “stiramento” delle curve di livello di ,P rx ha un riflesso nel numero di
condizionamento di 2 ,P r x , la matrice Hessiana di P. Come mostrato in Appendice A, il numero
di condizionamento di una matrice positiva definita è il rapporto fra l’autovalore massimo e
l’autovalore minimo. Poiché a causa dei valori grandi di r questo rapporto è grande, la matrice 2P
si dice mal condizionata. In realtà, in numero di condizionamento di 2P tende all’infinito quando
r (si veda Luenberger, 1984), così P diventa sempre più difficile da minimizzare accuratamente.
Il numero di condizionamento della matrice Hessiana è una misura importante della difficoltà di una
ottimizzazione non vincolata.