Laboratoro Complement d Rcerca Operatva Prof. E. Amald Geometra molecolare con dstanze Eucldee Un mportante problema legato alla conformazone molecolare è quello del Molecular Dstance Geometry Problem (MDGP). Consderando una molecola d N atom, è dato un nseme S d coppe {, } d atom e un nseme D delle relatve dstanze: D = {d {, } S}. S vuole trovare la poszone n R degl N atom n modo che le dstanze n D sano rspettate. S scrva un programma Matlab che rsolva l problema, e s trov la soluzone dell stanza seguente (con N = 4): (, ) (1,) (1,) (1,4) (,) (,4) (,4) d 1.56.4918956.87576 1.56.4918955 1.56 Fgura 1: Confgurazone ottmale per l stanza del problema. Un rfermento bblografco per questo eserczo è: J.M. Yoon, Y. Gad, Z. Wu, Mathematcal modelng of proten structure usng dstance geometry, Techncal report TR-4, DCAM, Rce Unversty, Houston,. che può essere scarcato da: http://www.caam.rce.edu/caam/trs/tr.html#tr-4. Documento preparato da Leo Lbert 1
Laboratoro Complement d Rcerca Operatva Prof. E. Amald Soluzone Indchamo con = ( 1,, ) la poszone dell -esmo atomo per N. Sappamo che devono valere seguent vncol: {, } D ( = d ), (1) dunque possamo ottenere la soluzone cercata mnmzzando la somma de quadrat degl scart d. S consder, tuttava, che l espressone contene una norma Eucldea, che convolge una radce quadrata per evtare questo termne nonlneare convene mnmzzare la somma de quadrat degl scart quadratc d. Il problema può essere modellato con mn f(), dove f() = ( d ). {,} S S not che l MDGP è n realtà un problema d soddsfazone d vncol senza alcuna funzone obettvo; abbamo però rformulato l problema n modo esatto a un problema nonlneare senza vncol. Espando uno qualsas de termn della sommatora ( d ) s ottene l termne t = 4 4 4 4 + 4 1 d 4 1 4 1 4 4 4 1 + 4 d 4 + 4 d 4 4 1 + d + 8 + 8 + 8 + 4 1 + 4 1 + 4 + 4 + 4 + 4 4 1 + 6 1 + + + + 1 d 4 1 + + + + 1 d 4 + 6 + + d 4 + + d 4 + 6 d 4 d, che per semplce spezone non può essere dmostrato convesso. Dobbamo percò assumere che l ntera funzone obettvo sa non convessa, e qund è necessaro utlzzare un approcco d ottmzzazone globale. Tra gl algortm d ottmzzazone globale, uno molto conoscuto e molto semplce da mplementare è l Multstart; s tratta d un algortmo eurstco stocastco, nel senso che non garantsce l ottmaltà globale della soluzone ma esbsce propretà d convergenza stocastca (nel senso che converge all ottmo globale con probabltà 1 n tempo nfnto). Questo caso, tuttava, è partcolare. Nella soluzone ottma del problema tutt vncol (1) sono soddsfatt, e qund l valore della funzone obettvo è zero; possamo qund valutare a ogn terazone dell algortmo d Multstart quanto samo lontan dall ottmo, e Documento preparato da Leo Lbert
Laboratoro Complement d Rcerca Operatva Prof. E. Amald decdere d farlo termnare quando c avvcnamo a meno d una costante ε > prefssata. S ottene qund una dmostrazone d ε-ottmaltà per questo algortmo applcato a questo partcolare problema (s not tuttava che questo non mplca che l algortmo converga n tempo fnto, dato che le normal propretà d convergenza stocastca degl algortm Multstart sono ndpent dal valore della funzone obettvo). L algortmo d Multstart è come segue. 1. Sa ε > e un qualsas punto n R N. Sa =.. Se f( ) < ε, l algortmo termna.. S trova un mnmo locale = ( 1,..., N ) a partre dal punto nzale. 4. Se f( ) < f( ) s aggorna. 5. S scegle un nuovo punto nzale R N a caso. 6. S torna al passo. Rmane adesso da mplementare l passo. Utlzzamo a tale scopo l metodo del gradente 1, che s tratta senza dubbo del pù ntutvo metodo d programmazone nonlneare per problem senza vncol (s veda l Rquadro 1 per dettagl su metod classc d programmazone lneare senza vncol). Dato un punto nzale, l algortmo del gradente produce un mnmo locale. L equazone () d aggornamento per la soluzone all terazone successva è γ f(), e qund l algortmo è come segue: (a) Sa ε > e un qualsas punto n R N. (b) Se f() < ε, l algortmo termna con mnmo locale =. (c) Con d = f() s calcola γ come n Eq. (). (d) S aggorna + γd. (e) S torna al passo. Il metodo del gradente non vene quas ma utlzzato n pratca, perché sebbene la dmostrazone d convergenza ndch un ordne d convergenza lneare (s veda l Rquadro ), l comportamento numerco spesso esbsce l fenomeno dello zg-zaggng (s veda l Rquadro 4). Scrvamo n Matlab l mplementazone dell algortmo Multstart. Abbamo bsogno d dvers fle. mdgp.m: calcola l valore della funzone obettvo relatva all stanza data al punto. 1 Conoscuto n Inglese come steepest descent. Documento preparato da Leo Lbert
Laboratoro Complement d Rcerca Operatva Prof. E. Amald Rquadro 1. In generale, metod d programmazone nonlneare per problem senza vncol nella forma mn f() sono de metod teratv n cu vene mantenuta una soluzone all terazone corrente, e la soluzone all terazone successva vene defnta come = γd f(), () dove D è una matrce defnta postva. In questo modo, s ha che la retta tra e ha drezone d = D f(). Dato che D è defnta postva, per ogn vettore v s ha v Dv >, e qund ( f()) D f() >, da cu ( f()) d <, e qund d è una drezone d dmnuzone per l valore della funzone obettvo. Il metodo così defnto converge a un ottmo locale. L ordne d convergenza dpe dalla scelta della matrce D. Per esempo, nel metodo d Newton s utlzza D = ( f()) 1. Nel metodo del gradente s scegle semplcemente D = I, la matrce denttà. La scelta del passo (l parametro γ) vene fatta n modo da mnmzzare l valore della funzone obettvo, ovvero γ = mn f( + sd). () s Dato che (soluzone all terazone corrente) e d sono vettor not, l problema () è una mnmzzazone n una dmensone, che d solto può essere effettuata abbastanza velocemente rspetto al resto dell algortmo (o alla peggo, approssmata). Fgura : Metod d ottmzzazone locale nonlneare per problem senza vncol. Rquadro. S consder una successone d numer real f k che convergono a f, e s assuma che f k f per ogn ntero k. L ordne d convergenza della successone è l supremo d tutt gl nter nonnegatv p tal che f k+1 f lm k f k f p = β <. Se p = 1 e β < 1, la successone ha un ordne d convergenza lneare. Se p > 1 o se p = 1 e β =, l ordne d convergenza è superlneare. Se p =, la successone ha convergenza quadratca. Fgura : Defnzone d ordne d convergenza d una successone. % mdgp.m functon ofval = mdgp() ofval = (-.868 + ((1)-(4))^ + (()-(5))^ + (()-(6))^)^ +... (-6.7 + ((1)-(7))^ + (()-(8))^ + (()-(9))^)^ +... (-14.77 + ((1)-(1))^ + (()-(11))^ + (()-(1))^)^ +... (-.868 + ((4)-(7))^ + ((5)-(8))^ + ((6)-(9))^)^ +... (-6.7 + ((4)-(1))^ + ((5)-(11))^ + ((6)-(1))^)^ +... (-.868 + ((7)-(1))^ + ((8)-(11))^ + ((9)-(1))^)^; lnesearch.m: parametrzza la funzone f per mezzo del parametro λ; da utlzzare nella scelta del passo (). In pratca, sapo e una drezone d dscesa d, calcola Documento preparato da Leo Lbert 4
Laboratoro Complement d Rcerca Operatva Prof. E. Amald Rquadro. La funzone d Rosenbrock è defnta come f() = 1( 1 ) + (1 1 ), con = ( 1, ) R, e ha un ottmo globale a = (1, 1). L algortmo del gradente applcato alla funzone d Rosenbrock dal punto nzale = (, ) con tolleranza ε =.1 converge a (.99,.99) n appena 6 pass. Con altr punt nzal, tuttava, la convergenza è molto pù lenta. Ad esempo, da = (, ) e lmte sulle terazon confgurato a 5, l algortmo termna alla 5-esma terazone con una tolleranza d errore a.155 (molto pù alta d quella confgurata) e soluzone subottmale (.91,.91). Il problema è dato dal comportamento a zg-zag delle drezon a terazon successve. Nelle fgure sotto vedamo l comportamento del metodo del gradente dal punto nzale (, ) (non converge dopo 1 terazon) e dal punto nzale ( 1, ) (converge dopo 6 terazon)..5 Optmum 1.5 1.5 1 1.5 1.5.5 1 1.5.5 1.5 Optmum 1.5 1 4.5 1.5 1.5.5 1 1.5.5 1 Fgura 4: Zg-zaggng: algortmo del gradente e funzone d Rosenbrock. f( + λd) n funzone d λ. % lnesearch.m functon y = lnesearch(lambda, f,, d) Documento preparato da Leo Lbert 5
Laboratoro Complement d Rcerca Operatva Prof. E. Amald y = feval(f, + lambda*d); grad.m: calcola l gradente f() della funzone f al punto. % grad.m functon gradf = grad(f, ) h =.1; n = length(); fval = feval(f, ); gradf = zeros(n,1); s = ; for = 1:n s() = s() + h; gradf() = (feval(f, s) - fval) / h; s() = s() - h; % functon steepestdescent.m: trova un mnmo locale (con valore f ) della funzone f a partre da un punto nzale, dat una tolleranza d subottmaltà ε > e un lmte sulle terazon. Rtorna anche l numero delle terazon effettvamente svolte e la tolleranza effettva ( f( ) ). % steepestdescent.m functon [star, fstar, k, tolerance] =... steepestdescent(f,, epslon, materatons) OPTIONS = [ ]; termnaton = ; counter = 1; whle termnaton == d = -grad(f, ); tolerance = norm(d, ); f (tolerance < epslon) (counter > materatons) termnaton = 1; star = ; fstar = feval(f, star); k = counter; else lambda = fmnbnd( lnesearch,, 1, OPTIONS, f,, d); = + lambda*d; counter = counter + 1; % functon rnd.m: genera un vettore unformemente casuale d n component compres tra -bound e bound. Per utlzzare l codce su Octave (anzché Matlab), commentare la rga e decommentare la rga 5. functon rnd = rnd(n, bound) % nstructon when usng Matlab rnd = bound * random( Unform, -ones(n,1), ones(n, 1), n, 1); Documento preparato da Leo Lbert 6
Laboratoro Complement d Rcerca Operatva Prof. E. Amald % nstructon when usng Octave % rnd = bound * unform_rnd(-ones(n,1), ones(n,1)); % functon multstart.m: trova un mnmo globale (con valore f ) della funzone f (con valore ottmale ), dat una tolleranza d subottmaltà ε > e un lmte sulle terazon. Rtorna anche l numero delle terazon effettvamente svolte. S not che s lmtano le terazon e la tolleranza della mnmzzazone locale rspettvamente a 4 e.1. % multstart.m functon [star, fstar, k] = multstart(f, n, epslon, materatons) malocaltn = 4; localepslon =.1; bound = 5; = rnd(n, bound); star = ; counter = 1; termnaton = ; whle termnaton == fstar = feval(f, star); f fstar < epslon counter > materatons termnaton = 1; k = counter; else [local, flocal] = steepestdescent(f,, localepslon, malocaltn); f flocal < fstar star = local; fstar = flocal; = rnd(n, bound); counter = counter + 1; % functon Per lancare l programma sull stanza data d 4 atom, con una tolleranza d.1 e un lmte massmo d terazon d 1, s utlzza l comando: [star, fstar, k] = multstart( mdgp, 1,.1, 1) (l secondo parametro ndca l numero d varabl nel problema, che n questo caso è 4 = 1). Qualche espermento numerco mostra lmt della semplctà d questo approcco rsolutvo. Sa l algortmo d soluzone locale sa quello d soluzone globale spesso non convergono per va della tolleranza, bensì per va del numero massmo d terazon. In pratca, non è garantta né l ottmaltà locale né quella globale. Documento preparato da Leo Lbert 7
Laboratoro Complement d Rcerca Operatva Prof. E. Amald Esso l algortmo multstart un algortmo stocastco, non s possono replcare rsultat gà ottenut. Tarare parametr della rcerca locale può essere meno utle rspetto a quell della rcerca globale: n un approcco d questo tpo, con una fase d rcerca globale e una fase d rcerca locale, d solto s ottengono mglor rsultat nvesto tempo e rsorse nella fase globale. Se la fase globale è ben strutturata, rcerche anche approssmatve nella fase locale possono portare comunque a una buona approssmazone dell ottmo. L approssmazone mglore, ottenuta su crca 1 tentatv esegut su Octave, è la seguente: = (.4476,.7456,.4, 1.5557,.4178,.858, 1.45, 1.158,.8798,.1848, 1.8518,.185) con valore della funzone obettvo f =.1, mostrata n Fgura 5. Fgura 5: Soluzone sub-ottmale. Con Matlab sono stat ottenut rsultat numerc mglor; questo comportamento è mputable a una mglore mplementazone della funzone d lbrera fmnbnd usata nella rcerca del passo. Documento preparato da Leo Lbert 8