3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI ESISTENZA DI UN PUNTO DI OTTIMO VINCOLATO Il problema di ottimizzazione vincolata introdotto nel paragrafo precedente può essere formulato nel modo seguente: Min (Max) z = f(x) s.a i x = j = 1, n a ij x j b i, b i (i I) = b i (i E) x j 0 j dove: f(x) una funzione non lineare con derivate parziali continue i =[a i1,...,a in ] il vettore riga dei coefficienti del vincolo i b i R il termine noto del vincolo i-esimo I l insieme degli indici dei vincoli di disuguaglianza E l insieme degli indici dei vincoli di uguaglianza. I vincoli di disuguaglianza si definiscono saturi se sono soddisfatti con il segno di uguale. I vincoli di uguaglianza sono ovviamente sempre saturi. Si noti che la formulazione non richiede la non negatività delle variabili. Ogni eventuale vincolo di non negatività (x j 0) deve essere quindi incluso nei vincoli di disuguaglianza nella forma x j 0. Sia m il numero totale di vincoli, di disuguaglianza ed uguaglianza. Le condizioni di esistenza del punto di ottimo formulate per il caso non vincolato non sono ovviamente applicabili al caso vincolato. Le condizioni di ottimo per il caso vincolato (Condizioni di Kuhn Tucker) sono descritte in Appendice B. Esse vengono utilizzate nel test di convergenza dei metodi di soluzione. Nei paragrafi successivi si definiscono le direzioni di spostamento (ammissibili e di miglioramento) e si fornisce la loro rappresentazione geometrica nel caso bidimensionale. Si descrive poi la struttura generale dei metodi a direzione ammissibile.
64 Ottimizzazione Multidimensionale vincolata 3.4 METODI A DIREZIONE AMMISSIBILE Un problema di programmazione non lineare vincolata può essere risolto con un metodo a direzione ammissibile. Con questo termine, introdotto da Zoutendijk nel 1960, si indicano quegli algoritmi che a partire da un punto x 0 ammissibile generano una successione di punti convergente alla soluzione ottima x*. Ad ogni iterazione essi scelgono una direzione ammissibile di spostamento lungo la quale la funzione obiettivo migliora e procedono in quella direzione finché il valore della funzione obiettivo smette di migliorare oppure fino a quando si incontra la frontiera della regione ammissibile. L algoritmo termina quando si giunge in un punto del dominio di ammissibilità nel quale sono soddisfatte le condizioni di ottimo vincolato [Appendice B]. 3.4.1 DIREZIONI DI SPOSTAMENTO (AMMISSIBILI E DI MIGLIORAMENTO) Si ricordi che, dato un punto x k in una regione di ammissibilità S di R n, una direzione ammissibile di spostamento da x k è una direzione lungo la quale è possibile procedere almeno di una piccola distanza in R n senza lasciare S. Dunque d k è una direzione ammissibile di spostamento da x k se esiste un numero positivo a tale che tutti i punti x k + d k, con 0 a, appartengono ad S. Una direzione di miglioramento da x k è invece una direzione lungo la quale è possibile procedere almeno di una piccola distanza in R n per migliorare il valore di funzione obiettivo (cioè decrescere se il problema è a minimizzare, crescere se il problema è a massimizzare). Dunque d k è una direzione di miglioramento di discesa (di salita) da x k se esiste un numero positivo m tale che per i punti del tipo x k + 1 = x k + d k, con 0 m, vale la relazione f(x k+1 ) < f(x k ) [f(x k+1 ) > f(x k )]. Quindi ovviamente la direzione del gradiente positivo [ f(x k )] è di salita, la direzione del gradiente negativo [- f(x k )] è di discesa. Le direzioni di miglioramento di discesa (di salita) in un punto x k sono caratterizzate da valori negativi (positivi) della derivata direzionale, e quindi in x k si avrà: f(x k ) d k < 0 d k direzione di discesa f(x k ) d k > 0 d k direzione di salita.
Ottimizzazione Multidimensionale vincolata 65 3.4.2 DETERMINAZIONE DELLE DIREZIONI DI SPOSTAMENTO E LORO RAPPRESENTAZIONE GEOMETRICA Si noti che per determinare una direzione ammissibile a partire da x k non è necessario prendere in considerazione i vincoli non saturi. Infatti se, per qualche vincolo di disuguaglianza i I nel punto x k si verifica i x k < b i (quindi il vincolo non è saturo), è sempre possibile, a partire da x k, procedere in qualunque direzione, per almeno una piccola distanza, senza violare lo stesso vincolo i-esimo. Mentre invece, se l i-esimo vincolo è saturo in corrispondenza di x k (cioè è un vincolo di uguaglianza o un vincolo di disuguaglianza soddisfatto con il segno di uguale), bisogna verificare in quali direzioni si può effettuare lo spostamento senza violare il vincolo stesso. Si prenda dunque in considerazione l insieme B k degli indici i dei vincoli di disuguaglianza i x k b i saturi in x k (B k I). Affinché d k sia una direzione ammissibile da x k, ci devono essere punti del tipo x k + 1 =x k + d k, con >0, che soddisfano, non necessariamente in modo saturo, tutti i vincoli che sono saturi in x k, e dunque: i (x k + d k ) = i x k + i d k b i i B k = b i i E Per ognuno di questi vincoli, saturi in x k, si ha i x k = b i. Poiché > 0, le condizioni precedenti diventano: i d k 0 i B k i d k = 0 i E Queste condizioni devono essere rispettate dalle direzioni ammissibili d k di spostamento da x k. Si consideri, per esempio, il seguente problema, rappresentato in figura 3.9, relativo alla minimizzazione di una funzione di due variabili, con vincoli di disuguaglianza: Min z = (x 1 6) 2 + (x 2 2) 2 = x 1 2 + x 2 2 12x 1 4x 2 40 s.a x 1 + 2x 2 4 (3.1) 3x 1 + 2x 2 12 (3.2) x 1 0 (3.3) x 2 0 (3.4)
66 Ottimizzazione Multidimensionale vincolata FIG. 3.9 Rappresentazione geometrica delle direzioni ammissibili e di miglioramento x2 Semispazio delle direzioni di miglioramento Contorni della funzione obiettivo f(x) B (2, 3) - f(x) (0, 2) A Punto di ottimo non vincolato O (0, 0) (4, 0) C x1 Cono delle direzioni ammissibili Cono delle direzioni ammissibili di miglioramento Nel punto B (2,3) sono saturi i vincoli (3.1) e (3.2) e dunque in esso le direzioni ammissibili devono rispettare le condizioni: d 1 + 2d 2 0 3d 1 + 2d 2 0 Le direzioni che rispettano queste condizioni, traslando l origine degli assi nel vertice B, formano il cono di direzioni ammissibili riportato in figura 3.9. Le direzioni di discesa (di salita) in un punto x k sono caratterizzate, come già detto, da valori negativi (positivi) della derivata direzionale. Pertanto in B una direzione d k è di discesa se f(2,3) d k < 0 (o, che è lo stesso, - f(2,3) d k > 0). Visto che f(x) = (2x 1-12, 2x 2-4) sarà f(2,3) = (-8, 2) e dunque una direzione d k di miglioramento in B deve rispettare la condizione: f(2,3) d k = 8d 1 +2d 2 < 0.
Ottimizzazione Multidimensionale vincolata 67 Pertanto l insieme delle direzioni di miglioramento in B è dato dal semispazio 8d 1 + 2d 2 < 0, la cui frontiera è tangente al contorno di f(x) in B. Ovviamente nel punto B(2,3) la direzione di f(2,3), di salita, non è di miglioramento, lo è invece quella di - f(2,3), di discesa. L intersezione del cono delle direzioni ammissibili con il semispazio delle direzioni di miglioramento costituisce l insieme delle direzioni ammissibili e di miglioramento. Se questa intersezione non è vuota è possibile effettuare uno spostamento ammissibile e di miglioramento. Se invece essa è vuota ciò non è possibile e dunque sono verificate le condizioni di ottimalità e si è raggiunto il punto di ottimo. 3.4.3 SCELTA DELLA DIREZIONE AMMISSIBILE DI MIGLIORAMENTO Tra tutte le direzioni ammissibili e di miglioramento bisogna scegliere una direzione di spostamento. La direzione ammissibile di miglioramento (di discesa) da x k deve rispettare le condizioni, determinate nel paragrafo precedente, per le direzioni ammissibili di spostamento da x k : i d k 0 i d k = 0 i B k i E Se la direzione del gradiente non soddisfa queste condizioni, la direzione ammissibile di discesa da intraprendere può essere determinata, dunque, risolvendo un modello di programmazione non lineare, in cui le variabili sono le componenti d j della direzione d. La funzione obiettivo di questo modello è espressa dalla minimizzazione (per un problema originario di min), o massimizzazione (per un problema originario di Max), della componente del gradiente di f(x k ) su d. Per il problema a minimizzare riportato in figura 3.19, il modello è dunque il seguente: Min ( f(x k )) T d/ d s.a i d 0 i d = 0 i B k i E dove d = ( d T d ) 1/2 ( j = 1, n d j 2 ) 1/2
68 Ottimizzazione Multidimensionale vincolata La soluzione ottima d * di questo modello può essere utilizzata come direzione di spostamento ammissibile e di miglioramento. Questo modello presenta però due difficoltà: la sua funzione obiettivo è una funzione estremamente complicata nelle variabili d j e la sua soluzione ottima non è unica (se d * è soluzione ottima lo è ogni suo multiplo positivo). Entrambi questi inconvenienti possono essere eliminati aggiungendo un vincolo di normalizzazione d T d = 1. Questo nuovo vincolo implica che d =1, cioè che 1 d j 1, j = 1, n. Infatti un vettore di lunghezza 1 non può avere alcuna componente di grandezza maggiore di 1. Dunque ogni direzione che soddisfi il vincolo d T d = 1, soddisferà anche i vincoli 1 d j 1, j = 1, n. Pertanto la funzione obiettivo può essere semplificata ed il modello diventa: Min ( f(x k )) T d s.a i d 0 i d = 0 1 d j 1 i B k i E j Si può accettare dunque qualunque buona direzione ammissibile purché lungo essa il gradiente f(x k ) abbia una componente (proiezione) negativa (positiva se il problema fosse a massimizzare). E possibile apportare modifiche più complicate, che tendono a migliorare le direzioni d k e quindi a pervenire alla soluzione ottima del modello originario in un numero minore di iterazioni. Questi differenti approcci per ottenere i vettori direzione d k caratterizzano i differenti algoritmi della classe dei metodi a direzione ammissibile. 3.5 STRUTTURA GENERALE DELL ALGORITMO L approccio dei metodi a direzione ammissibile si basa dunque sulla generazione, a partire da un punto iniziale, di una successione di punti, ammissibili e di miglioramento, convergente alla soluzione ottima. Come già detto, nel punto ammissibile corrente si sceglie una direzione di spostamento ammissibile e di miglioramento e si procede nella direzione scelta finché il valore della funzione obiettivo smette di migliorare o ci si imbatte nella frontiera della regione di ammissibilità. L algoritmo termina quando si giunge in un punto del dominio di ammissibilità nel quale sono soddisfatte le condizioni di ottimo vincolato.
Ottimizzazione Multidimensionale vincolata 69 Si supponga di disporre di una soluzione ammissibile iniziale x 0 (il problema generale della determinazione di una prima soluzione ammissibile sarà esaminato nel capitolo 5). La iterazione generica di un algoritmo a direzione ammissibile è costituita dai seguenti cinque passi: 1) Definizione del punto iniziale della successione Il punto iniziale della successione x o è un punto noto della regione ammissibile. 2) Determinazione dei vincoli saturi Determinare quali vincoli sono saturi nel punto ammissibile corrente x k, ricordando che i vincoli di uguaglianza sono automaticamente saturi. Questo passo richiede semplicemente la valutazione del prodotto scalare i x k per determinare se l i-esimo vincolo è saturo in x k. 3) Determinazione di una direzione di spostamento d k da x k. Considerare solo i vincoli saturi determinati nel passo 1 e determinare con il modello descritto in 3.4.3 una buona direzione d k di spostamento ammissibile e di miglioramento (discesa per Min o salita per Max) dal punto x k, sulla quale il f(x k ) abbia una componente negativa per un problema di Min o positiva per un problema di Max. Se non esiste una direzione di tal tipo si è raggiunta la soluzione ottima e l algoritmo termina, altrimenti si va al passo 3. 4) Calcolo della lunghezza massima percorribile su d k Determinare la lunghezza massima percorribile nella direzione d k dello spostamento determinata al punto 2, senza uscire dal dominio di ammissibilità, cioè il massimo valore di per il quale il punto x k + 1 =x k + d k è ancora una soluzione ammissibile del problema. Nella determinazione di, dato che d k è una direzione ammissibile da x k, bisogna considerare solo quei vincoli di disuguaglianza che non sono saturi in x k. Per ognuno di essi bisogna imporre la condizione che nel punto x k + 1 siano soddisfatte le relazioni: i x k + 1 = i (x k + d k ) = i x k + i d k b i i non saturo Da ciascuna di queste relazioni si ottiene [(b i i x k )/( i d k ), i d k >0] i non saturo
70 Ottimizzazione Multidimensionale vincolata La condizione è verificata se è non maggiore di un limite superiore espresso da: = Min i [(b i i x k )/( i d k ), i d k >0] dove i è l indice di tutti i vincoli di disuguaglianza non saturi in x k. Se tutti i vincoli sono saturi in x k o se i d k 0 per tutti quelli che non lo sono, allora =. 5) Determinazione della funzione g( ) = f(x k + 1 ) Determinare la funzione g( ) = f(x k + 1 )= f(x k + d k ) che si percorre sulla funzione f(x k ) spostando il punto x k +1 nella direzione d k. 6) Calcolo della lunghezza dello spostamento ottimo * Determinare la lunghezza dello spostamento ottimo * in corrispondenza del quale la funzione g( ) smette di migliorare o ci si imbatte nella frontiera della regione ammissibile. Risolvere il problema di ottimizzazione monodimensionale già affrontato nell algoritmo di discesa ripida, la cui soluzione * può essere ottenuta con uno dei metodi di ottimizzazione monodimensionale descritti nel capitolo 1: Min g( ) = f(x k + d k ), con 0 In generale, è conveniente affinare l approssimazione del valore ottimo * nelle iterazioni finali dell algoritmo, quando le distanze tra punti successivi nella sequenza {x k } sono ridotte ed è necessaria una maggiore precisione. Si noti che se = e nessun valore di risulta ottimo per il problema monodimensionale, allora il problema originario ha una soluzione illimitata. 7) Calcolo di x k + 1 Si aggiorna il punto corrente calcolando x k + 1 = x k + * d k e si ritorna al passo 2. 3.5.1 Esempio Si consideri il problema riportato in figura 3.9. Un possibile percorso dell algoritmo è riportato in figura 3.10. Nel vertice O si adotta la direzione del gradiente come direzione di spostamento ammissibile e di
Ottimizzazione Multidimensionale vincolata 71 miglioramento. Lungo questa direzione si opera un passo di ottimizzazione monodimensionale e si raggiunge il punto D sulla frontiera del dominio. In figura 3.10 sono indicati, per il punto D, il cono delle direzioni ammissibili e il semipiano delle direzioni di miglioramento. La loro intersezione genera il cono delle direzioni ammissibili e di miglioramento. Tra queste ultime si sceglie la direzione corrispondente allo spigolo BC della frontiera perché ad essa corrisponde il massimo valore di derivata direzionale. Nello spostamento da D lungo la frontiera la lunghezza massima dello spostamento ci porterebbe in C. Lo step di ottimizzazione monodimensionale si ferma invece in E perché in quel punto la funzione g( 1 ) smette di migliorare. In figura 3.11 sono riportati il cono delle direzioni ammissibili ed il semipiano delle direzioni di miglioramento in E. Si può notare che non c è intersezione e quindi non è possibile individuare una direzione ammissibile e di miglioramento. Dunque in questo punto sono soddisfatte le condizioni di ottimo vincolato e l algoritmo termina. FIG. 3.10 Percorso dell algoritmo a direzione ammissibile x2 B A D O C x1 Fig. 3.11 Verifica geometrica delle condizioni di ottimalità in E x2 B A D O E C x1
72 Ottimizzazione Multidimensionale vincolata 3.5.2 Esempio numerico Si consideri il seguente problema di ottimizzazione con funzione obiettivo quadratica da massimizzare, con i vincoli costituenti la regione ammissibile riportata in fig. 3.12. Max z = f (x 1, x 2 ) = - 0.1 x 1 2-0.05x 2 2 + 6 x 1 + 2x 2 s.a x 1 + x 2 25 (1) x 1 + x 2 0 (2) x 1 24 (3) x 1 0 (4) x 2 0 (5) x2 A x 1 = (18.75, 6.25) R D x 2 = (21.65, 3.35) E B O x 0 = (0,0) x o = (0, 0) C x1
Ottimizzazione Multidimensionale vincolata 73 Si riporta nel seguito lo svolgimento dell algoritmo a direzione ammissibile per il problema posto, articolato nei passi prima descritti. I iterazione Definizione del punto iniziale della successione di punti L origine degli assi appartiene al dominio. Il punto iniziale della successione può essere x o = (0,0). f(x) = (6 0.2x 1, 2 0.1 x 2 ) e quindi f(x o ) = (6,2). Nel punto x o la direzione di f(x o ), di salita, è di miglioramento, non lo è invece quella di - f(x o ), di discesa. Determinazione dei vincoli saturi in x o Si pone x o = (0,0) in ciascun vincolo del modello. I vincoli 1 e 3 non sono soddisfatti con il segno di uguale. I vincoli 2, 4 e 5 sono soddisfatti con il segno di uguale e dunque sono saturi B o = (2, 4, 5). Determinazione delle direzioni di spostamento ammissibili in x o Le direzioni di spostamento ammissibili in x o = (0,0) devono soddisfare il sistema di vincoli seguente, relativo ai vincoli 2, 4 e 5, saturi in x 0 : d 1 + d 2 0 (2) d 1 0 (4) d 2 0 (5) Direzioni di miglioramento in x o Il problema è a massimizzare e quindi ci interessano le direzioni di miglioramento che siano di salita in x o = (0,0), caratterizzate da valori positivi della derivata direzionale. Dunque in x o = (0,0) una direzione d k è di salita se f(x o ) d k > 0. Sappiamo che f(x) = (6 0.2x 1, 2 0.1 x 2 ) e quindi f(x o ) = (6,2). Una direzione d k di salita in x o deve rispettare allora la condizione: f(x o ) d k = 6d 1 +2d 2 > 0. Pertanto l insieme delle direzioni di salita d o in x o è dato dal semispazio 6d 1 + 2d 2 > 0, la cui frontiera (6d 1 + 2d 2 = 0) è tangente al contorno di f(x) in x o.
74 Ottimizzazione Multidimensionale vincolata Scelta della direzione di spostamento da x o Bisogna costruire il modello descritto in 3.4.3 per determinare la migliore direzione d o di spostamento ammissibile e di miglioramento dal punto x o sulla quale il gradiente f(x o ) abbia una componente positiva. Il modello è il seguente: Max ( f(x o ) T d= 6d 1 +2d 2 s.a d 1 + d 2 0 d 1 0 d 2 0 1 d 1 1; 1 d 2 1 La soluzione ottima di questo modello è la direzione d o *, con componenti d 1 =1, d 2 =1, coincidente con la direzione dello spigolo OA del dominio, relativo al vincolo x 1 + x 2 0. Esiste quindi una direzione ammissibile e di miglioramento in x o e dunque il punto x o non è punto di ottimo. In questo caso il sistema dei vincoli delle direzioni ammissibili è soddisfatto dalle componenti (6, 2) del gradiente in B e dunque si può scegliere la direzione del gradiente come direzione ammissibile e di miglioramento in B. Calcolo della lunghezza massima percorribile su d o Bisogna determinare la lunghezza massima percorribile nella direzione determinata d o = f(x o ) senza uscire dal dominio di ammissibilità, cioè il massimo valore di per il quale il punto x 1 =x o + d o è ancora una soluzione ammissibile del problema. Per determinare, dato che d o è una direzione ammissibile da x o, bisogna considerare solo quei vincoli di disuguaglianza che non sono saturi in x o. Per ognuno di essi bisogna imporre la condizione che nel punto x 1 siano soddisfatte le relazioni: i x 1 = i (x o + o d o ) = i x 1 + o i d o b i i non saturo Da ciascuna relazione si ottiene [(b i i x o )/( i d o ), i d o >0]. Affinchè tutte le relazioni siano verificate deve essere non maggiore di un limite superiore espresso da:
Ottimizzazione Multidimensionale vincolata 75 = Min i [(b i i x o )/( i d o ), i d o >0] i non saturo dove i è l indice di tutti i vincoli di disuguaglianza non saturi in x o. I vincoli non saturi in x o sono i vincoli 1 e 3. Si avrà dunque = Min [(25 1 x o )/( 3 (6,2)), (24 3 x o )/( 3 (6,2))] =.. = 25/8 Determinazione della funzione g( o ) Bisogna costruire la funzione g ( ) che si percorre sulla funzione f(x k ), spostando il punto x k +1 nella direzione d k individuata nel passo precedente, in questo caso la direzione del gradiente. Bisogna costruire cioè la funzione g ( ) = f(x k + 1 )= f(x k + d k ), che in questo caso diventa: g ( o ) = f(x 1 )= f(x o + o f(x o ) = f [(0,0) + o (6,2)] = f (6 o, 2 o ). Si è ottenuta quindi una espressione di g( o ) in termini di funzione f(x), con le variabili x 1 e x 2 espresse in funzione di : x 1 =6 0, x 2 =2 0. Sostituendo queste coordinate in f(x)si ottiene g( 0 ) = 40 0-3.8 0 2 * Calcolo della lunghezza dello spostamento ottimo o Per la determinazione del punto x 2 bisogna calcolare la lunghezza dello * spostamento ottimo o in corrispondenza del quale la funzione g( o ) smette di migliorare o si giunge alla frontiera della regione ammissibile. A tal fine bisogna determinare il punto di ottimo della funzione g( o ) = 40 o - 3.8 2 o. Utilizzando un algoritmo di ottimizzazione monodimensionale si determina il valore: * o = 25/8 Calcolo di x 1 Si aggiorna il punto corrente calcolando x 1 = x o + o * d o. Dunque in questo caso: x 1 = x o + * f(x o ) = (0,0) + 25/8 (6,2) = (18.75, 6.25) x 1 = (18.75, 6.25) Si ritorna al passo 1.
76 Ottimizzazione Multidimensionale vincolata II iterazione Calcolo del gradiente in x 1 f(x) = (6 0.2x 1, 2 0.1 x 2 ). f(x 1 ) = (2.25, 1.375). Determinazione dei vincoli saturi in x 1 Si pone x 1 = (18.75, 6.25) in ciascun vincolo del modello. I vincoli 2, 3, 4 e 5 non sono soddisfatti con il segno di uguale. Il vincolo 1 è soddisfatto con il segno di uguale e dunque è saturo B 1 = (1). Determinazione delle direzioni di spostamento ammissibili in x 1 Le direzioni di spostamento ammissibili in x 1 devono soddisfare il vincolo seguente, relativo al vincolo 1 del modello, saturo in x 1 : d 1 + d 2 0 (1) Direzioni di miglioramento in x 1 Il problema è a massimizzare e quindi ci interessano le direzioni di miglioramento che siano di salita in x 1 = (18.75, 6.25), caratterizzate da valori positivi della derivata direzionale. Dunque in x 1 una direzione d k è di salita se f(x 1 ) d k > 0. Sappiamo che f(x) = f(x) = (6 0.2x 1, 2 0.1 x 2 ) e che f(x 1 ) = (2.25, 1.375). Una direzione d 1 di salita in x 1 deve rispettare allora la condizione: f(x 1 ) d 1 = 2.25d 1 + 1.375d 2 > 0. Pertanto l insieme delle direzioni di salita d 1 in x 1 è dato dal semispazio 2.25d 1 + 1.375d 2 > 0, la cui frontiera 2.25d 1 + 1.375d 2 = 0 è tangente al contorno di f(x) in x 1. Nel punto x 1 la direzione di f(x 1 ) è di salita, ma non è ammissibile, quindi bisogna individuare una direzione ammissibile e di miglioramento. Scelta della direzione di spostamento da x 1 Bisogna costruire il modello descritto in 3.4.3 per determinare la migliore direzione d 1 di spostamento ammissibile e di miglioramento dal punto x 1 sulla quale il gradiente f(x 1 ) abbia una componente positiva.
Ottimizzazione Multidimensionale vincolata 77 Il modello è il seguente: Max ( f(x 1 ) T d= 2.25d 1 + 1.375d 2 s.a d 1 + d 2 0 1 d 1 1; 1 d 2 1 La soluzione ottima di questo modello è la direzione d 1 *, con componenti d 1 =1, d 2 = -1, coincidente con la direzione dello spigolo AB del dominio, relativo al vincolo x 1 + x 2 25. Esiste quindi una direzione ammissibile e di miglioramento in x 1 e dunque il punto x 1 non è punto di ottimo. Calcolo della lunghezza massima percorribile su d 1 Bisogna determinare la lunghezza massima percorribile nella direzione determinata d 1 senza uscire dal dominio di ammissibilità, cioè il massimo valore di 1 per il quale il punto x 2 =x 1 + 1 d 1 è ancora una soluzione ammissibile del problema. Per determinare, dato che d 1 è una direzione ammissibile da x 1, bisogna considerare solo quei vincoli di disuguaglianza che non sono saturi in x 1. Per ognuno di essi bisogna imporre la condizione che nel punto x 1 siano soddisfatte le relazioni: i x 2 = i (x 1 + 1 d 1 ) = i x 1 + o i d 1 b i i non saturo Da ciascuna relazione si ottiene [(b i i x 1 )/( i d 1 ), i d 1 >0]. Affinchè tutte le relazioni siano verificate deve essere non maggiore di un limite superiore espresso da: = Min i [(b i i x 1 )/( i d 1 ), i d 1 >0] dove i è l indice di tutti i vincoli di disuguaglianza non saturi in x 1. I vincoli non saturi in x 1 sono i vincoli 2, 3, 4 e 5. Si avrà dunque: = Min [(0 2 x 1 )/( 2 (1,-1)), (24 3 x 1 )/( 3 (1,-1)), (0 4 x 1 )/( 4 (1,-1)), (0 5 x 1 )/( 5 (1,-1))] = 5.25
78 Ottimizzazione Multidimensionale vincolata Determinazione della funzione g( 1 ) Bisogna costruire ora la funzione g( k ) = f(x k + 1 )= f(x k + d k ), che in questo caso diventa: g ( 1 ) = f(x 2 )= f(x 1 + 1 f(x 1 )) = f [(18.75, 6.25) + 1 (1,-1)] = f (18.75+ 1, 6.25-1 ). Si è ottenuta in questo modo una espressione di g( 1 ) in termini di f(x), con x 1 e x 2 espresse in funzione di 1 : x 1 =18.75+ 1 x 2 = 6.25-1. Sostituendo queste coordinate nell espressione di f(x)si ottiene g( 1 ) = - 0.15 1 2 + 0.9 1 +87.9 Calcolo della lunghezza dello spostamento ottimo 1 * Per la determinazione del punto x 2 bisogna calcolare la lunghezza dello spostamento ottimo 1 * sulla funzione g( 1 ). A tal fine bisogna determinare il punto di ottimo della funzione g( 1 ) = - 0.15 1 2 + 0.9 1 +87.9. Utilizzando un algoritmo di ottimizzazione monodimensionale con intervallo di incertezza iniziale (0, 5.25) si determina 1 * = 2.9 Calcolo di x 2 Si aggiorna il punto corrente calcolando x k + 1 = x k + * d k e si ritorna al passo 1. Dunque in questo caso: x 2 = x 1 + * f(x 1 ) = (18.75, 6.25) + 2.9 (1,-1) = (21.65, 3.35) x 2 = (21.65, 3.35) III iterazione Calcolo del gradiente in x 2 f(x) = (6 0.2x 1, 2 0.1 x 2 ). f(x) = (1.67, 1.67). Determinazione dei vincoli saturi in x 2 Si pone x 2 = (21.65, 3.35) in ciascun vincolo del modello. I vincoli 2, 3, 4 e 5 non sono soddisfatti con il segno di uguale. Il vincolo 1 è soddisfatto con il segno di uguale e dunque è saturo B 2 = (1).
Ottimizzazione Multidimensionale vincolata 79 Determinazione delle direzioni di spostamento ammissibili in x 2 Le direzioni di spostamento ammissibili in x 2 devono soddisfare il vincolo seguente, relativo al vincolo 1 del modello, saturo in x 1 : d 1 + d 2 0 (1) Direzioni di miglioramento in x 2 Il problema è a massimizzare e quindi ci interessano le direzioni di miglioramento che siano di salita in x 2 = (21.65, 3.35), caratterizzate da valori positivi della derivata direzionale. Dunque in x 2 una direzione d k è di salita se f(x 2 ) d k > 0. Sappiamo che f(x) = (6 0.2x 1, 2 0.1x 2 ) e quindi f(x 2 ) = (1.67, 1.67 ). Una direzione d k di salita in x 2 deve rispettare allora la condizione: f(x 2 ) d k = 1.67 d 1 + 1.67 d 2 > 0. Pertanto l insieme delle direzioni di salita d 2 in x 2 è dato dal semispazio d 1 + d 2 > 0, la cui frontiera d 1 + d 2 = 0 è tangente al contorno di f(x) in x 1. Nel punto x 2 la direzione di f(x 2 ) è di salita, ma non è ammissibile, quindi bisogna individuare una direzione ammissibile e di miglioramento. Scelta della direzione di spostamento da x 2 Bisogna costruire il modello descritto in 3.4.3 per determinare la migliore direzione d 2 di spostamento ammissibile e di miglioramento dal punto x 2 sulla quale il gradiente f(x 2 ) abbia una componente positiva. Il modello è il seguente: Max ( f(x 2 ) T d= 1.67d 1 + 1.67d 2 s.a d 1 + d 2 0 1 d 1 1; 1 d 2 1 La funzione obiettivo di questo modello è parallela al vincolo e dunque ha infinite soluzioni, che generano tutte lo stesso valore. Tra queste la soluzione d 1 =0, d 2 = 0, per la quale ( f(x 2 ) T d = 1.67d 1 + 1.67d 2 =0. Non esiste quindi una direzione ammissibile e di miglioramento in x 2 e dunque il punto x 2 è il punto di ottimo.