minimize f(x 1,x 2 ) = 1 2 x2 1 + a 2 x2 2



Documenti analoghi
Laboratorio Complementi di Ricerca Operativa DEI, Politecnico di Milano. Stima di parametri

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

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(α).

Appunti delle esercitazioni di Ricerca Operativa

Forze come grandezze vettoriali

LEZIONE 23. Esempio Si consideri la matrice (si veda l Esempio ) A =

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007

Ottimizzazione Multi Obiettivo

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Selezione di un portafoglio di titoli in presenza di rischio. Testo

e-dva - eni-depth Velocity Analysis

TSP con eliminazione di sottocicli

Esempi di funzione. Scheda Tre

Metodi Stocastici per la Finanza

Energia e Lavoro. In pratica, si determina la dipendenza dallo spazio invece che dal tempo

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

mese richiesta

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 11

TSP con eliminazione di sottocicli

. Si determina quindi quale distanza viene percorsa lungo l asse y in questo intervallo di tempo: h = v 0y ( d

Programmazione dinamica

CONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t)

Dimensione di uno Spazio vettoriale

LE FUNZIONI A DUE VARIABILI

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Prof.ssa Paola Vicard

2. Leggi finanziarie di capitalizzazione

Corso di Calcolo Numerico

Prodotto Disponibilità Costo e rispettando le seguenti regole di composizione delle benzine:

GEOMETRIA DELLE MASSE

PROBLEMI TRADIZIONALI SIMULAZIONE DELLA PROVA DI MATEMATICA

Esercizi Capitolo 6 - Alberi binari di ricerca

Introduzione al MATLAB c Parte 2

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004

LEZIONE 7. Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x x2. 2, x3 +2x +3.

CONTINUITÀ E DERIVABILITÀ Esercizi risolti

2 Argomenti introduttivi e generali

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di Localizzazione

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

SOLUZIONE DEL PROBLEMA 1 TEMA DI MATEMATICA ESAME DI STATO 2015

risulta (x) = 1 se x < 0.

Documentazione esterna al software matematico sviluppato con MatLab

4 3 4 = 4 x x x 10 0 aaa

Modulo di Meccanica e Termodinamica

3 GRAFICI DI FUNZIONI

INTRODUZIONE AL CONTROLLO OTTIMO

Luigi Piroddi

La Programmazione Lineare

VC-dimension: Esempio

Intelligenza Artificiale

Algoritmi e Strutture Dati

Comparatori. Comparatori di uguaglianza

bensì una tendenza a ruotare quando vengono applicate in punti diversi di un corpo

La pista del mio studio Riflettiamo sulla pista. Guida per l insegnante

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Il concetto di valore medio in generale

Grandezze scalari e vettoriali

Problema del trasporto

Massimi e minimi vincolati

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni

2 + (σ2 - ρσ 1 ) 2 > 0 [da -1 ρ 1] b = (σ ρσ1 σ 2 ) = (σ 1

Grafico qualitativo di una funzione reale di variabile reale

Lezione del Teoria dei vettori ordinari

1. PRIME PROPRIETÀ 2

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

1 Applicazioni Lineari tra Spazi Vettoriali

Anno 4 Grafico di funzione

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

13. Campi vettoriali

LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ

1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette.

Rette e piani con le matrici e i determinanti

Capitolo 13: L offerta dell impresa e il surplus del produttore

9. Urti e conservazione della quantità di moto.

Modello matematico PROGRAMMAZIONE LINEARE PROGRAMMAZIONE LINEARE

Esempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0.

GIROSCOPIO. Scopo dell esperienza: Teoria fisica. Verificare la relazione: ω p = bmg/iω

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti?

SVM. Veronica Piccialli. Roma 11 gennaio Università degli Studi di Roma Tor Vergata 1 / 14

Computational Game Theory

Consideriamo due polinomi

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

RETTE, PIANI, SFERE, CIRCONFERENZE

b. Che cosa succede alla frazione di reddito nazionale che viene risparmiata?

Corso di Matematica per la Chimica

L analisi dei dati. Capitolo Il foglio elettronico

Rendering air show e verifica della sincronizzazione

LE FIBRE DI UNA APPLICAZIONE LINEARE

Massimi e minimi vincolati di funzioni in due variabili

b i 1,1,1 1,1,1 0,1,2 0,3,4

Sistemi Operativi. 5 Gestione della memoria

Algoritmi e strutture dati. Codici di Huffman

1 Giochi a due, con informazione perfetta e somma zero

Ricerca Operativa e Logistica

Matematica e Statistica

Transcript:

3.1 Ottimizzazione lungo direzioni coniugate. Risolvere il seguente problema: minimize f(x 1,x 2 ) = 12x 2 + 4x 2 1 + 4x 2 2 4x 1 x 2 manualmente, utilizzando il metodo delle direzioni coniugate: determinare la matrice Hessiana, scegliere arbitrariamente una direzione di partenza d 0 e calcolare una direzione coniugata d 1. Si supponga di partire dal punto iniziale x 0 = ( 1/2, 1). Cosa si ottiene ottimizzando prima rispetto a d 1 e poi rispetto a d 0? E sceglio un diverso punto iniziale? 3.2 Confronto tra i metodi del gradiente coniugato e del gradiente. Si consideri il seguente problema: minimize f(x 1,x 2 ) = 1 2 x2 1 + a 2 x2 2 con a 1. Implementare in MatLab il metodo del gradiente coniugato e risolvere il problema parto dal punto iniziale x 0 = (a, 1). Confrontare il comportamento del metodo del gradiente coniugato con quello del metodo del gradiente, nel caso in cui a = 4 e a = 16, visualizzando nel piano euclideo le sequenze di punti generate dai due metodi. 3.3 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 qualunque e {x k } generata dal metodo delle direzioni coniugate con ricerca unidimensionale esatta rispetto alle direzioni Q-coniugate d 0,...,d n 1, mostrare che per ogni k (1 k n) il punto k 1 x k = x 0 + α j d j è 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. Poiché q(x) è strettamente convessa, per stabilire questo risultato basta (in base alle condizioni necessarie e sufficienti di ottimalità) verificare che x q(x k ) è ortogonale a V k. 3.4 Confronto tra algoritmi di Newton, Polak-Ribière e DFP. Si consideri la funzione f(x 1,x 2 ) = (x 1 2) 4 + (x 1 2x 2 ) 2 e il problema min x R n f(x), dove x = (x 1,x 2 ). Si risolva il problema parto dal punto iniziale (0, 3) con gli algoritmi di j=0 Documento preparato da A. Ceselli e L. Liberti 1

Newton, Polak-Ribière e Davidon-Fletcher-Powell (DFP), implementati in Matlab con ricerca unidimensionale esatta e inesatta. Si compili una tavola delle prime iterazioni degli algoritmi, e si indichino su un piano Euclideo i punti x k generati dalle due versioni di entrambi i metodi. 3.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 ) utilizzando 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. δ 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 dove V k ρ k = = I ρ k γ k δ k 1 γ k δ k. (b) Si mostri come calcolare la direzione d k = H k x f(x k ) utilizzando H 0 e i vettori δ i,γ i precedenti, con i {0,...,k 1}. E 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. 3.6 Il poligono più grande. Formalizzare il seguente problema in termini di PNL: fissato un intero n, trovare il poligono più grande avente n lati e diametro (massima distanza tra due vertici) d 1. Risolvere il problema con Ampl o Matlab: che caratteristiche contraddistinguono i poligoni ottimi con numero di lati pari da quelli con numero di lati dispari? Suggerimento: utilizzate coordinate polari. 3.7 Pianificazione di reti wireless. Un gestore di telefonia deve progettare una parte senza fili della sua rete per fornire il collegamento ad un insieme di nuovi utenti in Documento preparato da A. Ceselli e L. Liberti 2

una zona in cui non conviene estere la rete fissa. Gli utenti sono collegati alla rete fissa tramite antenne. Per semplicità consideriamo solo le trasmissioni dalle antenne agli utenti. Si suppongono noti l insieme J dei siti candidati in cui possono essere posizionate le antenne, l insieme I dei nuovi utenti e le misure di propagazione del segnale tra ogni coppia utente-sito candidato. La potenza di emissione di ogni antenna può essere regolata da 0 ad un valore massimo pmax. Ogni antenna ha un costo di installazione f j che dipe dal sito j J in cui viene montata, e i costi di manutenzione nel sito j crescono in modo proporzionale alla radice quadrata della potenza di trasmissione, con una costante moltiplicativa c j. Causa vincoli tecnologici, il ricevitore di ogni utente deve essere sintonizzato per la ricezione da una singola antenna e i segnali provenienti dalle altre antenne risultano come rumore. Un utente è coperto se il rapporto tra la potenza del segnale utile che riceve ed il rumore è superiore ad una soglia s, nota a priori. Sulla base di campagne di misura (o di previsione) di propagazione del segnale è emerso che per ogni utente i, con i I, il segnale proveniente dal sito j arriva attenutato di un fattore moltiplicativo a ij, con 0 a ij 1, che dipe dalla distanza da i al sito j e da altri fattori ambientali che incidono sulla propagazione. Proporre un modello di ottimizzazione non lineare che permetta di decidere come localizzare le antenne ed eseguire le trasmissioni in modo da garantire la copertura di tutti gli utenti minimizzando i costi di installazione e manutenzione. Facoltativo: Come cambia il modello se ogni antenna può trasmettere al più verso k utenti? 3.8 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 T secondi, come rappresentato in figura 1. Si determino due programmi per il robot che ottimizzino rispettivamente il comfort del viaggio e il lavoro totale compiuto. Procedimento: Supponete di scegliere arbitrariamente un intero n e suddividere l intervallo [0...T) in n sotto-intervalli k = 1...n [ (k 1)T I k =, kt ) n n Documento preparato da A. Ceselli e L. Liberti 3

della stessa durata. Programmare il robot consiste nello scegliere, all inizio di ogni sotto-intervallo, che forza applicare all oggetto per ciascuna dimensione (ovvero scegliere il controllo del robot sull oggetto). Questa forza rimane costante in tutto il sotto-intervallo. E conveniente, inoltre, rappresentare lo stato del sistema con un vettore posizione x ed un vettore velocità v per ogni istante che separa due sottointervalli consecutivi. Il vincolo sulla collisione dell oggetto con l ostacolo può essere rilassato, restringo il controllo a questo insieme di istanti temporali. Ottimizzare il comfort del viaggio significa minimizzare le variazioni di forza tra ogni sotto-intervallo temporale ed il successivo. Figura 1: Controllo ottimo di un robot. Documento preparato da A. Ceselli e L. Liberti 4

Soluzioni 3.1 Ottimizzazione lungo direzioni coniugate. La matrice Hessiana è ( ) 2 8 4 f(x 1,x 2 ) = 4 8 Supponete di scegliere come direzione di partenza d 0 = (1, 0). Allora d 1 = (a,b) deve essere tale per cui d 0 2 f(x 1,x 2 )d 1 = 8a 4b = 0. Le direzioni coniugate non sono uniche: una scelta può essere a = 1 e b = 2: d 1 = (1, 2). E possibile scegliere un punto iniziale qualsiasi. Ad esempio, sceglio come punto iniziale x 0 = ( 1/2, 1) e minimizzando la funzione obiettivo f(x 1,x 2 ) lungo la direzione d 1 si raggiunge il punto x 1 = (1/2, 1). Parto da x 1 e minimizzando lungo d 1 si raggiunge il punto x 2 = (1, 2), che è il punto di ottimo globale. E facile verificare anche 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, parto dallo stesso punto iniziale, la lunghezza dei passi di ottimizzazione lungo le rispettive direzioni rimane la stessa. 3.2 Confronto tra i metodi del gradiente coniugato e del gradiente. Utilizzando le procedure ausiliarie già viste nei precedenti laboratori e nella precedente esercitazione: linesearch.m, grad.m, il metodo del gradiente coniugato può essere implementato in MatLab come segue (solo le parti più significative): % cg.m function [xstar, fstar, tolerance, k] = cg(f, x, epsilon, maxiterations) % [...] gradf = grad(f,x); d = -gradf; % [...] thej = 1; thek = 1; while termination == 0 tolerance = norm(-gradf,n); if (counter > maxiterations) (tolerance < epsilon) % [...] else lambda = fminbnd( linesearch, 0, 1, OPTIONS, f, x, d); p = lambda * d; x = x + p; counter = counter + 1; if (thej < n) Documento preparato da A. Ceselli e L. Liberti 5

q = gradf; gradf = grad(f, x); q = gradf - q; alpha = (q *q) / (gradf * gradf); d = -gradf + alpha*d; thej = thej + 1; else thej = 1; thek = thek + 1; % [...] % function In figura 2 e 3 è rappresentato il comportamento del metodo del gradiente coniugato (linea 1, in rosso) e del metodo del gradiente (linea 2, in verde), rispettivamente per il caso a = 4 ed a = 16. Di seguito sono riportati anche i risultati ottenuti con il metodo del gradiente coniugato (cg) e con il metodo del gradiente (steepestdescent) nel caso a = 4 octave:126> [xstar, fstar, tol, k] = cg(f,[4; 1],0.01,100) xstar = -5.0003e-05-5.0010e-05 fstar = 6.2521e-09 tol = 3.9314e-08 k = 4 octave:128> [xstar, fstar, tol, k] = steepestdescent(f,[4; 1],0.01,100) xstar = 0.0052680-0.0012488 fstar = 1.6995e-05 tol = 0.0071605 k = 14 e nel caso a = 16 octave:134> [xstar, fstar, tol, k] = cg(f,[16; 1],0.01,100) xstar = -5.0026e-05-5.0031e-05 fstar = 2.1276e-08 tol = 4.9665e-07 k = 4 octave:136> [xstar, fstar, tol, k] = steepestdescent(f,[16; 1],0.01,100) xstar = 8.1314e-03-2.6368e-04 Documento preparato da A. Ceselli e L. Liberti 6

h Figura 2: Esercizio 3.2: confronto tra metodo del gradiente coniugato e metodo del gradiente, a = 4. fstar = 3.3616e-05 tol = 0.0088670 k = 60. Ancora una volta, le scarse proprietà di convergenza del metodo del gradiente sono evidenti. Si nota anche come le prestazioni del metodo del gradiente peggiorino al crescere di a. Infatti, il parametro a 1 determina l autovalore maggiore della matrice Hessiana. Documento preparato da A. Ceselli e L. Liberti 7

h Figura 3: Esercizio 3.2: confronto tra metodo del gradiente coniugato e metodo del gradiente, a = 16. Documento preparato da A. Ceselli e L. Liberti 8

3.3 Metodo delle direzioni coniugate per funzioni quadratiche. (a) Si noti innanzitutto che per ogni j k 1, q(α) = q(x j 1 + αd j 1 ) ha un minimo a α = α j 1 solo se q(x j 1 +αd j 1 ) α = q(x j 1 + α j 1 d j 1 )d j 1 = 0 αj 1 (nel punto di minimo il gradiente della funzione è ortogonale alla direzione di discesa), ovvero se q(x j )d j 1 = 0. Questo dimostra l ortogonalità di q(x k ) con d k 1. (b) Per j < k 1 si ha: q(x k ) = Qx k = Qx j + Q ( k 1 ) α i d i = q(x j ) + Q i=j ( k 1 ) α i d i. Moltiplichiamo per d j 1 entrambi i membri dell espressione sopra, otteno k 1 q(x k )d j 1 = q(x j )d j 1 + α i (d j 1 Qd i ). Siccome q(x j )d j 1 = 0 (vedi punto precedente) ed i d i sono Q-coniugati, i termini nel secondo addo della parte destra dell equazione sono nulli. Per quanto detto sopra, anche il primo addo è nullo. Quindi q(x k )d j 1 = 0 per j k, che conclude la verifica. 3.4 Confronto tra algoritmi di Newton, Polak-Ribière e DFP. La procedura di valutazione della funzione data è la seguente: i=j i=j % es3function.m function dval = es3function(x) dval = (x(1) - 2)^4 + (x(1) - 2*x(2))^2; % function L algoritmo di Newton può essere implementato in MatLab come segue: % newton.m function [xstar, fstar, tolerance, k] = newton(f, x, epsilon, maxiterations) doplot = 1; holdon = 0; OPTIONS = [ ]; n = length(x); termination = 0; counter = 1; if (doplot == 1) if (holdon == 1) hold on; else hold off; xrec = zeros(maxiterations); Documento preparato da A. Ceselli e L. Liberti 9

yrec = zeros(maxiterations); xrec(1) = x(1); yrec(1) = x(2); while termination == 0 gradf = grad(f,x); H = hessian(f,x); Hinv = H^(-1); d = -Hinv*gradF; tolerance = norm(d,n); if (counter > maxiterations) (tolerance < epsilon) termination = 1; xstar = x; fstar = feval(f,x); k = counter; else x = x + d; counter = counter + 1; if (doplot == 1) xrec(counter) = x(1); yrec(counter) = x(2); if (doplot == 1) plot(xrec(1:counter), yrec(1:counter)); % function L algoritmo DFP può essere implementato in MatLab come segue: % dfp.m function [xstar, fstar, tolerance, k] = dfp(f, x, epsilon, maxiterations) doplot = 1; holdon = 1; OPTIONS = [ ]; n = length(x); termination = 0; counter = 1; D = eye(n); gradf = grad(f,x); if (doplot == 1) if (holdon == 1) hold on; else hold off; xrec = zeros(maxiterations); yrec = zeros(maxiterations); xrec(1) = x(1); yrec(1) = x(2); while termination == 0 d = -D * gradf; tolerance = norm(d,n); if (counter > maxiterations) (tolerance < epsilon) termination = 1; Documento preparato da A. Ceselli e L. Liberti 10

xstar = x; fstar = feval(f,x); k = counter; else lambda = fminbnd( linesearch, 0, 1, OPTIONS, f, x, d); p = lambda * d; x = x + p; q = gradf; gradf = grad(f, x); q = gradf - q; D = D +(p *p)/(p *q) - ((D*q)*(q *D))/(q *(D*q)); counter = counter + 1; if (doplot == 1) xrec(counter) = x(1); yrec(counter) = x(2); if (doplot == 1) plot(xrec(1:counter), yrec(1:counter)); % function L algoritmo dei Gradienti Coniugati con la scelta di Polak e Ribière può essere implementato in MatLab come segue: % cg_pr.m function [xstar, fstar, tolerance, k] = cg_pr(f, x, epsilon, maxiterations) doplot = 1; holdon = 1; OPTIONS = [ ]; n = length(x); termination = 0; counter = 1; gradf = grad(f,x); d = -gradf; if (doplot == 1) if (holdon == 1) hold on; else hold off; xrec = zeros(maxiterations); yrec = zeros(maxiterations); xrec(1) = x(1); yrec(1) = x(2); thej = 1; thek = 1; while termination == 0 tolerance = norm(-gradf,n); if (counter > maxiterations) (tolerance < epsilon) termination = 1; xstar = x; fstar = feval(f,x); k = counter; else Documento preparato da A. Ceselli e L. Liberti 11

lambda = fminbnd( linesearch, 0, 1, OPTIONS, f, x, d); p = lambda * d; x = x + p; counter = counter + 1; if (doplot == 1) xrec(counter) = x(1); yrec(counter) = x(2); if (thej < n) q = gradf; gradf = grad(f, x); q = gradf - q; alpha = (gradf *q) / (norm(gradf,n)^2); d = -gradf + alpha*d; thej = thej + 1; else thej = 1; thek = thek + 1; if (doplot == 1) plot(xrec(1:counter), yrec(1:counter)); % function I file sopra sono stati provati su GNU Octave. Dovrebbero funzionare anche sotto Matlab senza cambiamenti. Si noti che tutte e tre le procedure possono venire configurate per attivare/ignorare i comandi di plotting (parametro doplot) oppure per cancellare/lasciare il plot già esistente in memoria (parametro holdon). Nel confronto includiamo anche il metodo dei Gradienti Coniugati classico (CG). L output è: octave:8> [xstar, fstar, tol, k] = newton( es3function, [0; 3], 0.01, 100) xstar = 1.95398 0.97694 fstar = 4.4942e-06 tol = 0.0038963 k = 11 octave:9> [xstar, fstar, tol, k] = dfp( es3function, [0; 3], 0.01, 100) xstar = 2.3653 1.1323 fstar = 0.027937 tol = 0.0065536 k = 16 octave:10> [xstar, fstar, tol, k] = cg( es3function,[0; 3],0.01,100) xstar = Documento preparato da A. Ceselli e L. Liberti 12

2.0802 1.0410 fstar = 4.4556e-05 tol = 0.0076334 k = 30 octave:11> [xstar, fstar, tol, k] = cg_pr( es3function,[0; 3],0.01,100) xstar = 2.0547 1.0281 fstar = 1.1252e-05 tol = 0.0068608 k = 22 Le progressioni degli algoritmi di Newton, DFP, CG e CG-PR sono: 3 line 1 2.5 2 1.5 1 0.5 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Documento preparato da A. Ceselli e L. Liberti 13

3 line 1 2.8 2.6 2.4 2.2 2 1.8 1.6 1.4 1.2 1 0 0.5 1 1.5 2 2.5 3 Documento preparato da A. Ceselli e L. Liberti 14

L andamento comparativo è: Documento preparato da A. Ceselli e L. Liberti 15

3.5 Metodo BFGS a memoria limitata. (a) Sia V = I ργδ, dove ρ = 1/(γ δ). Abbiamo: V DV + ρδδ = (I ργδ ) D(I ργδ ) + ρδδ = D ρ(dγδ + δγ D) + ρ 2 δγ Dγδ + ρδδ = D Dγδ + δγ D + (γ Dγ)(δδ ) + δδ γ δ (γ δ) 2 γ δ ( ) = D + 1 + γ Dγ δδ δ γ δ γ Dγδ + δγ D. δ γ (b) Usando ripetutamente la formula di aggiornamento per D derivata al punto precedente, D k = V k 1 D k 1 V k 1 + ρ k 1 δ k 1 δ k 1 = V k 1 (V k 2 D 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 D 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 D 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. 3.6 Il poligono più grande. Il numero di lati n ed il diametro massimo d del poligono costituiscono i dati del problema. Si vogliono scegliere le posizioni degli n vertici del poligono; in coordinate polari, questo significa scegliere un angolo φ i [0, 2π) ed una distanza r i 0 rispetto all origine per ogni vertice i = 1...n. L origine e ciascuna coppia (i,i + 1) di vertici adiacenti del poligono forma un triangolo di area A(i) = 1 2 r i r i+1 sin(φ i+1 φ i ). L area del poligono è pari a n i=1 A(i), e l obiettivo è individuare il poligono di area massima: n 1 maximize 2 r i r i+1 sin(φ i+1 φ i ) i=1 Documento preparato da A. Ceselli e L. Liberti 16

(considerando r n+1 = r 1 e φ n+1 = φ 1 ), con il vincolo che la distanza tra ciascuna coppia (i,j) di vertici non sia superiore a d: r 2 i + r 2 j 2r i r j cos(φ i φ j ) d 2 i, j > i e dei vincoli sull ordinamento dei vertici: φ i φ i+1 i < n. Osservando i risultati si nota una curiosa proprietà: per n dispari il poligono più grande è regolare, mentre per n pari e maggiore di 4 non lo è. 3.7 Pianificazione di reti wireless. Indichiamo con I l insieme degli utenti e con J l insieme dei siti candidati al posizionamento di antenne. Sono dati la potenza di emissione massima di ogni antenna (p max ), il costo di installazione per ogni sito (f j ), la costante di proporzionalità dei costi di manutenzione per ogni sito (c j ), l attenuazione del segnale proveniente dal sito j per ogni utente i (a ij ), il rapporto segnale / rumore minimo da garantire (s). Si vuole decidere dove installare le antenne: variabili binarie y j (per ogni j J), ciascuna delle quali assume valore 1 se nel sito j è installata un antenna, 0 altrimenti la potenza di emissione di ogni antenna: variabili p j (per ogni j J), che possono assumere valori tra 0 e p max sul segnale di quale antenna sintonizzare ciascun utente: variabili binarie x ij (per ogni i I, j J), ciascuna delle quali assume valore 1 se l utente i è sintonizzato sul segnale proveniente da un antenna nel sito j, 0 altrimenti. Il problema può essere formulato come segue: minimize j J f j y j + c j pj (1) s.t. j J x ij = 1 i I (2) x ij y j i I, j J (3) j J a ijp j x ij j J a ijp j j J a ijp j x ij s i I (4) (p j p max y j ) j J (5) 0 p j p max j J (6) y j {0, 1} j J (7) x ij {0, 1} i I, j J (8) Documento preparato da A. Ceselli e L. Liberti 17

L obiettivo (1) è minimizzare la somma tra i costi di installazione ed i costi di manutenzione. Dato che le variabili y j e x ij possono assumere solo valori binari (7, 8), i vincoli (2) impongono che ogni utente sia assegnato ad un sito, ed i vincoli (3) impongono che non possano essere assegnati utenti ad un sito in cui non è installata un antenna. Il numeratore del termine a sinistra nei vincoli (4) rappresenta il segnale ricevuto dall utente: infatti, per ogni i una sola delle variabili x ij assume valore 1 (le altre valore 0), quindi uno solo dei termini della sommatoria viene effettivamente considerato; il denominatore rappresenta il rumore (espresso in termini di segnale totale ricevuto meno segnale utile). I vincoli (5) impongono che la potenza trasmessa da siti in cui non è installata un antenna sia nulla, e che quella trasmessa da siti in cui è posizionata un antenna sia al più p max. Se fossimo interessati ad ottenere soluzioni numeriche al problema utilizzando un solutore generico, il modello potrebbe essere semplificato. Ad esempio, i vincoli (6) possono essere rimossi; infatti nessuna soluzione (inammissibile) in cui p j > 0 e y j = 0 per qualche j J è ottima. I vincoli 4 possono essere semplificati come segue: (s + 1) a ij p j x ij s a ij p j i I j J j J in modo che non ci siano variabili al denominatore. Infine, è possibile imporre che al più k utenti siano sintonizzati sul segnale proveniente dalla stessa antenna includo i vincoli x ij k j J. i I 3.8 Controllo ottimo. E nota la massa M dell oggetto, la sua posizione iniziale x i R 3 + e la posizione finale x f R 3 +. Consideriamo Y come un dato sottoinsieme di R 3. Il tempo disponibile T è dato, e supponiamo che il numero di sotto-intervalli temporali n sia un parametro fissato a priori. Trascuriamo la forza di gravità che agisce sull oggetto, il peso del braccio meccanico ecc. Vogliamo scegliere la forza che il robot deve applicare sull oggetto durante ogni sotto-intervallo temporale i = 1...n (variabili F i R 3 ). Inoltre, utilizziamo per ogni sotto-intervallo temporale i due insiemi di variabili ausiliarie, x i R 3 +, e v i R 3 che rappresentano rispettivamente la posizione e la velocità dell oggetto al termine dell intervallo temporale i. Documento preparato da A. Ceselli e L. Liberti 18

In particolare, la velocità dell oggetto all inizio del sotto-intervallo temporale i dipe dalla velocità iniziale e dalla forza applicata durante il sotto-intervallo i 1 v i = v i 1 + T n 1 M F i 1 i 1 e la posizione dell oggetto all inizio del sotto-intervallo i dipe dalla posizione dalla posizione iniziale e dalla velocità durante il sotto-intervallo i 1 x i = x i 1 + T n v i 1 + T 2 2n 1 2 M F i 1 i 1 Il vettore a sei dimensioni (x i,v i ) rappresenta lo stato del sistema all inizio del sottointervallo i. Inoltre, indichiamo con d(x,y ) la minima distanza tra il punto x ed ogni punto y Y : d(x,y ) := min x y y Y ed imponiamo che d(x i,y ) > 0 per ogni i = 1...n. 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 inte minimizzare il lavoro totale la funzione obiettivo avrà la forma: minimize n F T i (x i x i 1 ) i=1 mentre se si inte ottimizzare il comfort la funzione obiettivo avrà la forma: minimize F 0 + n F i F i 1 i=1 Documento preparato da A. Ceselli e L. Liberti 19