7.1 Il poligono più grande Formulare in termini di programmazione matematica il seguente problema: fissato un intero n, trovare il poligono di n lati (n-gono) con diametro (massima distanza tra due vertici) minore o uguale a 1, di area massima. Suggerimenti. Si usino coordinate polari. Si ricordi che, note le lunghezze a, b di due lati di 1 un triangolo e l angolo α tra essi, l area è calcolabile come: 2absin(α). Si ricordi inoltre che, dati due vettori di lunghezza, rispettivamente, a, b e l angolo α tra essi, la loro distanza euclidea al quadrato è pari a: a 2 +b 2 2abcos(α). 7.2 Controllo ottimo Un robot deve muovere un oggetto di massa M dalla posizione x i R 3 alla posizione x f R 3, evitando un ostacolo Y a forma di parallelepipedo; la posizione e le dimensioni dell ostacolo, la massa e le posizioni iniziali e finali dell oggetto sono note a priori. Lo spostamento deve essere effettuato in secondi, come rappresentato in Figura 1. Per semplicità, suddividiamo l intervallo [0...) in n sotto-intervalli I k = [ (k 1) n, k n ) (k = 1...n) della stessa durata. Assumiamo che, scelta all inizio di ogni sotto-intervallo la forza da applicare all oggetto lungo ogni direzione cartesiana, questa rimanga costante in tutto il sotto-intervallo. Si determinino due programmi per il robot che ottimizzino rispettivamente il comfort del viaggio e il lavoro totale compiuto. Ottimizzare il comfort del viaggio significa minimizzare le variazioni di forza tra ogni sotto-intervallo temporale e il successivo. Suggerimento: Si rappresenti lo stato del sistema con un vettore posizione x ed un vettore velocità v per ogni istante che separa due sotto-intervalli consecutivi. Il vincolo sulla collisione dell oggetto con l ostacolo può essere rilassato, restringendo il controllo a questo insieme di istanti temporali. Figura 1: Controllo ottimo di un robot. Documento preparato da L. Liberti e S. Coniglio 1
7.3 Ottimizzazione lungo direzioni coniugate Partendo dal punto iniziale x 0 = ( 1 2,1) e dalla direzione d 0 = (1,0), effettuare due iterazioni del metodo delle direzioni coniugate per il seguente problema: minf(x 1,x 2 ) = 12x 2 +4x 2 1 +4x 2 2 4x 1 x 2. Sia d 1 la direzione coniugata a d 0 rispetto alla matrice Hessiana. Cosa si ottiene ottimizzando prima rispetto a d 1 e poi rispetto a d 0? E scegliendo un diverso punto iniziale? 7.4 Metodo delle direzioni coniugate per funzioni quadratiche Consideriamo q(x) = 1 2 x Qx b x con Q simmetrica e definita positiva. Siano x 0 R n un punto iniziale e {x k } una sequenza generata dal metodo delle direzioni coniugate con ricerca unidimensionale esatta rispetto alle direzioni mutuamente Q-coniugate d 0,...,d n 1. Mostrare che per ogni k = 1,...,n il punto x k = x 0 + α i d i è l ottimo di q(x) sul sottospazio affine V k = {x R n : x = x 0 +v,v span{d 0,...,d k 1 }}. In particolare x n è l ottimo globale di q(x) su R n. Suggerimento: Poiché q(x) è strettamente convessa, in base alle condizioni necessarie e sufficienti di ottimalità è sufficiente verificare che q(x k ) è ortogonale a V k. i=0 7.5 Metodo BFGS a memoria limitata Un notevole ostacolo all utilizzo dei metodi quasi-newton per problemi a grandi dimensioni è dato dall elevata quantità di memoria richiesta. Questo fatto motiva i metodi che costruiscono la direzione quasi-newton d k = H k x f(x k ) usando soltanto un numero limitato di vettori δ k = x k+1 x k e γ k = x f(x k+1 ) x f(x k ) (ad esempio, gli ultimi m). (a) Si verifichi che la formula di aggiornamento ( H k+1 = H k + 1+ γ ) H k k γ k δ k δ k H kγ k δ k +δ k γ k H k. (1) δ k γ k δ k γ k δ k γ k del metodo BFGS può essere espressa come H k+1 = V k H k V k +ρ k δ k δ k Documento preparato da L. Liberti e S. Coniglio 2
dove V k = I ρ k γ k δ k ρ k = 1 γ k δ k. (b) Si mostri come calcolare la direzione d k = H k x f(x k ) usando H 0 e i vettori δ i,γ i precedenti, con i {0,...,k 1}. È interessante sottolineare che il metodo BFGS a memoria limitata fornisce risultati comparabili a quelli del metodo BFGS completo anche per piccoli valori di m, ad esempio per m = 5. Documento preparato da L. Liberti e S. Coniglio 3
Soluzione 7.1 Il poligono più grande Si vogliono scegliere le posizioni degli n vertici del poligono. In coordinate polari, questo significa scegliere un angolo φ i [0,2π) e una distanza r i 0 rispetto all origine per ogni vertice i = 1...n. L area del triangolo di vertici o,i,i+1, dove o rappresenta l origine e con i < n, formano un triangolo di area: A(i) = 1 2 r ir i+1 sin( φ i+1 φ i ). Possiamo togliere il valore assoluto per ogni coppia i,i+1 tranne che per n,1. Per quest ultima, riscriviamo φ 1 φ n = (φ 1 φ n ) = 1 2 r nr 1 sin(2π φ n +φ 1 ). L area totale è dunque: n 1 1 max 2 r ir i+1 sin(φ i+1 φ i )+ 1 2 r nr 1 sin(2π φ n +φ 1 ). Per imporre distanza inferiore a 1 per ogni coppia di vertici, introduciamo il vincolo r 2 i +r 2 j 2r i r j cos( φ i φ j ) 1 i,j = 1...n,j > i. Si noti che cos( φ i φ j ) = cos(φ i φ j ) = cos( φ i +φ j ), dato che il coseno è una funzione pari. Rimuoviamo dunque il valore assoluto per ogni coppia. Complessivamente, abbiamo la formulazione: max n 1 1 2 r ir i+1 sin(φ i+1 φ i )+ 1 2 r nr 1 sin(2π φ n +φ 1 ) s.t. r 2 i +r 2 j 2r i r j cos(φ i φ j ) 1 i,j = 1...n,j > i φ i φ i+1 i = 1...n 1, dove l ultimo vincolo impone l ordinamento tra i vertici (usato per togliere il valore assoluto). 7.2 Controllo ottimo Supponendo che l oggetto si muova di moto rettilineo uniformemente accelerato, al termine di ogni intervallo temporale i abbiamo le equazioni: x i = x i 1 + n v i 1 + 2 2n 2 1 M F i 1 v i = v i 1 + n 1 M F i 1 i = 1...n i = 1...n. ApprossimiamoilcorpoY conuninsiemedipunti{y 1,...,y k }, perk sufficientementegrande. Indicando con d(x,y) la minima distanza tra il punto x ed ogni punto y Y, ossia d(x,y) := min y Y x y, Documento preparato da L. Liberti e S. Coniglio 4
andiamo a imporre x y j > ǫ 2 j = 1,...,k, con ǫ costante sufficientemente piccola. Infine, è necessario imporre che le condizioni iniziali e finali siano rispettate: x 0 = x i x n = x f v 0 = 0 v n = 0 Se si intende minimizzare il lavoro totale la funzione obiettivo avrà la forma n minimize F i (x i x i 1 ). mentre se si intende ottimizzare il comfort la funzione obiettivo avrà la forma n minimize F 0 + F i F i 1. 7.3 Ottimizzazione lungo direzioni coniugate La matrice Hessiana è 2 f(x 1,x 2 ) = ( 8 4 4 8 Partendo con d 0 = (1,0), d 1 = (a,b) deve essere tale che valga ) d 0 2 f(x 1,x 2 )d 1 = 8a 4b = 0, da cui abbiamo b = 2a. Le direzioni coniugate non sono uniche: una scelta può essere a = 1 e b = 2: d 1 = (1,2). Partiamo dal punto iniziale x 0 = ( 1 2,1). Minimizzando la funzione obiettivo f(x 1,x 2 ) lungo la direzione d 0, risolvendo min α f(x 1 +α,x 2 ) = 12x 2 +4(x 1 +α) 2 +4x 2 2 4(x 1 +α)x 2. Annullandone la derivata valutata in x 0 = ( 1 2,1) otteniamo α = 1. Raggiungiamo dunqe il punto x 1 = (1/2,1). Minimizziamo ora lungo d 1, risolvendo min α f(x 1 +α,x 2 +2α) = 12(x 2 +2α)+4(x 1 +α) 2 +4(x 2 +2α) 2 4(x 1 +α)(x 2 +2α) Documento preparato da L. Liberti e S. Coniglio 5
Annullandone la derivata valutata in x 0 = ( 1 2,1) otteniamo α = 1 2. Raggiungiamo dunqe il punto x 2 = (1,2). È facile anche verificare che il comportamento del metodo sarebbe stato lo stesso ottimizzando prima lungo la direzione d 1 e poi lungo la direzione d 0 (da x 0 si raggiunge il punto x 1 = (0,2) e da x 1 il punto x 2 ). Inoltre, partendo dallo stesso punto iniziale, la lunghezza dei passi di ottimizzazione lungo le rispettive direzioni rimane la stessa. 7.4 Metodo delle direzioni coniugate per funzioni quadratiche Seguendo il suggerimento, mostriamo che q(x k ) è ortogonale a V k mostrandone l ortogonalità rispetto ai vettori d 0,...,d k 1 che generano il sottospazio. Partiamodall iterazionek econsideriamolafunzioneq(x k 1 +αd k 1 )comefunzionediα. Con ottimizzazioneunidimensionaleesatta,lasceltadelpassoα k 1 soddisfaα k 1 = argmin α q(x k 1 + αd k 1 ). Applicando le condizioni necessarie del primo ordine, sappiamo che α k 1 è un punto di minimo solo se q(x k 1 +αd k 1 ) α = q(x k 1 +α k 1 d k 1 ) d k 1 = 0. Ciò significa che, con ottimizzazione unidimensionale esatta, il gradiente della funzione nel punto x k = x k 1 +α k 1 d k 1 αk 1 è ortogonale alla direzione d k 1, ossia q(x k ) d k 1 = 0. Occorre ora dimostrare l ortogonalità rispetto alle direzioni precedenti d j, per j = 0,...,k 2. Abbiamo: ( q(x k ) = Qx k b = Q x 0 + α i d i ) b = i=0 j 1 Q x 0 + α i d i + α i d i b = i=0 Q x j + α i d i b = Qx j b+q α i d i = q(x j )+Q α i d i. Moltiplichiamo a sinistra per d j 1 entrambi i membri dell espressione sopra, ottenendo d j 1 q(x k ) = d j 1 q(x j )+ α i (d j 1Qd i ). Abbiamo già verificato che q(x j ) d j 1 = 0 (la verifica al paragrafo precedente vale per ogni k e, in particolare, per k = j). Dato che i vettori d i sono Q-coniugati, i termini nel secondo Documento preparato da L. Liberti e S. Coniglio 6
addendo della parte destra dell equazione sono nulli. Abbiamo dunque q(x k )d j 1 = 0 per ogni j = 0,...,k 2. 7.5 Metodo BFGS a memoria limitata (a) Sia V = I ργδ, dove ρ = 1/(γ δ). Abbiamo: H k+1 = V H k V +ρδδ = (I ργδ ) H k (I ργδ )+ρδδ = H k ρ(h k γδ +δγ H k )+ρ 2 δγ H k γδ +ρδδ = H k H kγδ +δγ H k γ δ ( ) = H k + 1+ γ H k γ δδ δ γ + (γ H k γ)(δδ ) (γ δ) 2 + δδ γ δ δ γ H kγδ +δγ H k. δ γ (b) Usando ripetutamente la formula di aggiornamento per H derivata al punto precedente, H k = V k 1 H k 1 V k 1 +ρ k 1 δ k 1 δ k 1 = V k 1 (V k 2 H k 2 V k 2 +ρ k 2 δ k 2 δ k 2 )V k 1 +ρ k 1 δ k 1 δ k 1 = V k 1 V k 2 H k 2 V k 2 V k 1 +ρ k 2 V k 1 δ k 2 δ k 2 V k 1 +ρ k 1 δ k 1 δ k 1 =... = V k 1 V k 2 V 0 H 0 V 0 V k 2 V k 1 +ρ 0 V k 1 V 1 δ 0 δ 0 V 1 V k 1 +ρ 1 V k 1 V 2 δ 1 δ 1 V 2 V k 1 +... +ρ k 2 V k 1 δ k 2δ k 2 V k 1 +ρ k 1 δ k 1 δ k 1. Documento preparato da L. Liberti e S. Coniglio 7