ALGORITMI GENETICI DE OPTIMIZARE George Dael Mateescu Rezuat. Algort geerc repreztă u struet utl petru rezolvarea ue clase larg de problee, pord de la prcp extrase d bologe. Scopul acestu artcol este de a pue î evdeţă prcpul aczţlor geetce, exprate ateatc pr utaţ pe drecţa gradetulu ue fucţ obectv. Notaţ Ne propue zarea fucţe f : D R R, î care, foral, pute cosdera că D repreztă o ulţe de restrcţ ale problee. Soluţ adsble. Evdet, orce eleet d D repreztă o soluţe adsblă a problee de optzare. Deoarece u eleet d D este caracterzat de copoetele sale, ( x, x,..., x), x R vo cosdera că fecare x este u croozo. Desgur, spectarera tuturor eleetelor d D u este posblă, d cauză că ulţea este ftă, ar pr coparaţe cu u odel bologc, pute cosdera că ulţea tuturor cobaţlor croozoale este ftă. Populaţe. Aseăător cu luea bologcă, vo cosdera că populaţa este o subulţe a ulţ soluţlor adsble, la fel cu populaţa ve este o subulţe a tuturor cobaţlor croozoale. Evdet, populaţa varază î tp, astfel îcât vo ota pr P () t populaţa exstetă la u aut oet dat. Î cazul ostru, aceasta repreztă o subulţe ftă a ulţ D. U dvd d P () t va f cu atât a be adaptat cu cât zestrea sa croozooală coduce la o valoare a că a fucţe obectv, ( ) f x, x,..., x. Selecţe. Exstă a ulte etode de sulare a selecţe bologce (aturale) care î od eseţal sut cuprse ître două extree: selecţa eltsă, î care ua ce a bu supraveţuesc ş selecţa pur îtâplătoare. Vo folos o selecţe eltstă care corespude stăr ue populaţ avâd resurse ltate. Cocret, vo cosdera că uărul total al dvzlor este costat, reţâd la fecare etapă ua pe ce a be adaptaţ. D puct de vedere ateatc, vo sorta dvz î fucţe de valorle crescătoare ale fucţe obectv ş vo ela surplusul de populaţe. Mutaţ geetce. Mutaţle repreztă c varaţ croozoale, care pot f îtâplătoare, afectâd o parte a populaţe. Î cazul ostru, utaţle vor f reprezetate de c odfcăr ale coordoatelor puctelor d populaţa curetă. Dacă acceptă posbltatea uor utaţ de tp aczţ geetce, adcă utaţ care apar ca urare a eforturlor dvzlor de adaptare la edu, atuc pute găs u corespodet î problea oastră de optzare, î c varaţ î sesul creşter
perforaţe. Mateatc, ar îsea ca cle odfcăr ale coordoatelor să fe făcute pe drecţa gradetulu, adcă pe acea drecţe care odfcă fucţa obectv, î sesul dort. Foral, vo cosdera că u+ este o utaţe geetcă a lu u, petru sufcet de c. Îtr+adevăr, pord de la forula lu Lagrage: f( u+ ) = f( u) + f '( u+ τ), τ ( 0,), observă că ultul tere este ( u+ τ) +... + ( u+ τ) x x Î cotuare, otă u% = u +τ ar dacă presupue că este sufcet de c, atuc rezultă că fecare dervată parţală ( u% ) are acelaş se ca ( u). Pe de altă parte, deoarece x x sut peturbaţ pe drecţa gradetulu, adcă = η ( u), η > 0, x rezultă f f f f f f ( u% ) +... + ( u% ) = η ( u) ( u% )... η ( u) ( u% ) 0 x x x x x x astfel îcât, obţe: f ( u+ ) f ( u), = f '( u) η, η = ( η,..., η ) Î cocuze, aczţle geetce de fora, u+, care sut realzate pe drecţa gradetulu, corespud ue perforaţe crescute î raport cu zarea fucţe obectv. Evdet, u pute spue ce îseaă sufcet de c, astfel îcât raţoaetul este a ult caltatv decât cattatv. Î aceasta costă ş area dfereţă dtre u algort geetc ş u algort clasc de tp Newto. Î locul ue aleger destul de dfcle, car posble, a ue deplasăr exacte pe drecţa gradetulu, u algort geetc va ela deplasărle care u ăresc perforaţa, î baza uu crteru sprat d bologe. Uraş Itroducerea uor o dvz îtr-o populaţe se face ţâd cot de codfcarea folostă. Î orce caz, îpruutâd ecasul cross-over de cobare a laţurlor geetce, foral, fecare dvd ou trodus va avea o zestre geetcă obţută de la do părţ pr ruperea ş refacerea u = x', y' ş laţurlor de croozo. Î cazul problee oastre, cosderă do dvz ( ) p q v= ( x", y" ), î care x', x" R, y', y" R, p q ( x ', y ") ş ( ", ') + = ar pr uraş vo cosdera dvz x y. Auţ croozo bu vor f coservaţ, ş aue acea care corespud drecţe gradetulu preluată de la părţ, după cu sut coservaţ ş corozo ră. Î fal, pr selecţe aturală vor răâe î populaţe ua ce a bu dvz. Algortul U algort evolutv utlzează oţule de populaţe, geeraţe, selecţe, la fel ca î edul bologc. U astfel de algor poate f descrs pr blocur, astfel: Pasul. Geerează populaţa ţală Π ( t ), corespuzătoare uu oet ţal t. Pasul. Adaugă oua geeraţe; odfcă t t+ ;
Pasul 3. Aplcă utaţ geetce, uor dvz aleş aleatoar, pe drecţa gradetulu. Pasul 4. Evaluează dvz pr teredul fucţe obectv, f. Pasul 5. Elă suprapopulaţa. Pasul 6. Cotuă cu pasul, pâă câd este îdepltă codţa de terare. Codţa de îceere poate să fe reprezetată de u uăr ax de geeraţ sau de o codţe de tp aposteror de fora: f ( u) f ( u+ ) < ε, ude ε este sufcet de c, avâd sefcaţa ue precz date. Ca o paralelă cu edul bologc, pute să observă că o codţe de tp aposteror reflectă, îtr-u fel, perfecţuea adcă oetul î care dvz u a pot progresa, î raport cu fucţa obectv. Covergeţa Vo presupue că f este ărgtă feror, ar dervata sa satsface o codţe de tp Lpsctz: f '( a) f '( b) L a b, a, b D, L> 0 Notă cu u dvdul cel a be plasat î geeraţa ş rezultă, evdet, că f ( u+ ) f ( u dec şrul f ( u ) este coverget. Utlzâd codţa aposteror, rezultă: f u f u + < ε ( ( ) ar cu este sufcet de c, pute cosdera că l f ( u ) l f ( u ) + =. f Pe de altă parte, petru u D ş utaţle geetce =η ( u), ave: x ( ) ( ) '( τ ) '( ) ( '( τ ) '( )) '( ) '( τ ) '( ) ' ' τ ' f u+ f u = f u+ = f u + f u+ f u ( ) ( ) ( ) ( ) f u + f u+ f u f u + f u+ f u η ( u) + Lτ η ( u) ( ) ( ) = η + Lτη u = x = x = x Petru η sufcet de c, exstă δ > 0 astfel îcât: ( + ) ( ) δ '( ), sau f ( u) f ( u+ ) δ f '( u) f u f u f u ceea ce, îpreuă cu codţa aposteror, plcă: δ f '( u) ε () Î sfârşt, petru u u f ' u 0,. Î cotuare, presupue că f posedă dfereţală de ord, ş că aceasta este poztv deftă, adcă exstă > 0 astfel îcât: u, ( ) =, rezultă ( ) f " x y, y y Rezultă că exstă u uc puct de al lu f, u ş utlzâd forula lu Taylor exstă u%astfel îcât: f ( u ) f ( u f '( u( u u = f "( u)( u u,( u u 3
f ( u f ( u ) f '( u )( u u ) = f "( u% )( u u ),( u u ) î care, pr, a otat produsul scalar î Ρ. Folosd poteza de poztv defre a dfereţale de ord, pr suarea celor două forule ateroare, rezultă: f '( u( u u f '( u )( u u ) u u () Deorece f '( u ) 0 ş f '( u ) = 0, obţe u, u Observă că d relaţa () rezultă: u u f' ( u ( u u, adcă u u f '( u Î sfârşt, utlză relaţa () astfel îcât obţe: ε u u δ ceea ce arată că utlzarea codţe aposteror este u crteru sufcet de covergeţă a u. şrulu ( ) Cocluze Algortul de evoluţe coverge la valoarea optă. Exstă o strâsă legătură ître u astfel de algort ş o etodă clască de tp Newto, abele utlzâd drecţa gradetulu. Pe de altă parte, exstă ş o are deosebre ître cele două etode cocretzată pr ărea deplasăr. Î etodele de tp Newto aceasta este calculată utlzâd dfereţala de ord, ar codţle de aplcare sut a ult teoretce decât practce, î vree ce prtr-u algort geetc, deplasărle eroate sut pur ş splu elate, prtr-u ecas de selecţe. Utlzarea uu algort geetc petru deterarea soluţe problee Caucy, petru ecuaţ dfereţale Exstă problee de are teres petru cercetarea ecooetrcă, pr care sute coduş la exprăr care folosesc ecuaţ dfereţale. De exeplu, eclbrul dtre cerere ş ofertă perte o exprare de acest fel. Să presupue, ca î fgura de a jos, ca î raport cu cererea ş oferta la u oet dat, cererea depaşeşte oferta. Î acest cay e pute aştepta la o creştere a preţulu, de exeplu, proporţoală cu dfereţa dtre cerere ş ofertă: 4
P = a ( D () t S () t ) t î care a este o costată poztvă. Presupuâd varaţ c ale paraetrulu t, de exeplu prtru proces de trecere la ltă, rezultă: P'( t) = a( D( t) S( t) ) Atuc câd cererea depaşeşte oferta, ebrul drept al egaltăţ de a sus este poztv, de ude rezultă că fucţa P este crescătoare. Î cocluye, u odel splu al varaţe preţulu î fucţe de cerere ş ofertă, este reprezetat de o probleă Caucy: y' = f( x, y), y( x0) = y0, î care x este varabla depedetă, ar y = y( x) este varabla depedetă (edogeă). Desgur, petru ca problea să abă soluţe, sut ecesare poteye supletare asupra prolee. Astfel, dacă fucţa: [ ] [ ] f : x X, x + X y Y, y + Y R 0 0 0 0 este cotuă ş dacă satsface o codţe de tp Lpsctz î raport cu cel de-al dolea arguet f ( xy, ) f( xy, ) L y y atuc soluţa problee Caucy exstă ş este ucă. Exstă a ulte etode de detrare a soluţe, uele aaltce, dar, î practcă se utlzează etode de calcul uerc (aproxatv) cea a cuoscută fd etoda Ruge-Kutta. Î această secţue, vo arăta că deterarea aproxatvă a soluţe se poate face pr utlzarea uu algort de tp geetc. Adaptarea algortulu geetc Soluţ adsble. La fel ca ş î cazul etode Ruge-Kutta, pr utlzarea uu algort geetc, vo detera valorle souţe y î raport cu o dvzue ecdstată a doeulu de b a defţe al fucţe y = y( x), y: [ a, b] R, x0 = a< x <... < x = b, x = a+, =. Vo ota valorle fucţe, î puctele duvzu, pr y = y( x), =... astfel îcât vectorul ( y, y,..., y deve o soluţe adsblă. Populaţa. Avâd ca odel populaţa bologcă, ve, vo cosdera că aceasta este o subulţe a tuturor cobaţlor croozoale, adcă o subulţe a soluţlor adsble. Petru u oet fxat, otat t, P () t va reprezeta populaţa, ar u dvd y = ( y, y,..., y ) va f caracterzat de zestrea sa croozoala coţută î valorle y. Selecţa. La fel ca ş î cazul populaţlor bologce, dvz problee oastre, pot avea velur dferte de adaptare. Această adaptare va f ăsurată pr teredul ue fucţ de peroraţă. La fecare oet, suprplusul populaţe va f elat astel îcât populaţa toală să fe costattă. Vo cosdera o foră dscretzată a problee, utlzâd aproxarea drvate dată de forula: 5
y y y'( x ) y y y '( x ) cost. Problea Caucy deve: y y = f ( x, y), =... Evdet, relaţle ateroare repreztă u sste de ecuaţ elare, a căru soluţe ( y, y,..., y urează să o deteră. Petru fecare soluţe adsblă vo cosdera forula de eroare: y y f( x, y) ar fucţa de perforaţî asocată vetorulu y = ( y, y,..., y ) va f deftă de relaţa: y y F( y) = f( x, y) = Vo cosdera că u dvd d populaţa P ( t) este cu atât a be adaptat cu cât fucţa de perforaţă are o valoare a că. Uraş. Do dvz pot da aştere la alţ do dvz, pr cobarea zestre lor croozoale. Astfel, prtr-o operaţe cross-over, dvz ( y, y,..., y ş ( z, z,..., z vor da aştere uraţlor: ( y, y,..., yk, zk+,..., z ş ( z, z,..., zk, yk+,..., y Mutaţ geetce. Orce croozo poate să sufere utaţ, îtâlătoare sau, dacă adte că educaţa are u rol, pute accepta ş aute aczţ geetce. Idferet de stuaţa, vo odela o utaţe geetcă a croozoulu y sub fora y ± ε. Covergeţa algortulu Notă cu u t dvdul d populaţa P ( t) avâd cea a că valoare a fucţe de eroare F. Aşa cu a deostrat î secţuea ateroară, şrul ( ut ) t 0 este coverget, ar lta sa este soluţa problee de optzare f F. Utlzâd covergeţa ut u, rezultă că petru orce ε > 0, exstă y = ( y, y,..., y ) astfel îcât: y y F( y) = f( x, y) < ε = Î cosecţă, petru > 0, prtr-o evetuală reotare a valorlor, rezultă că exstă y = ( y, y,..., y ) astfel îcât: y y f ( x, y) < Avâd â vedere forula de aproxare a dervate, rezultă: 6
y y y y y'( x) f( x, y) y'( x) + f( x, y) < C ceea ce arată că valoarea fală a algortulu, ş aue ut = y = ( y, y,..., y repreztă o aproxare a soluţe problee Caucy proble, cu precza. Algortul Prezetă î cotuare adaptarea algortulu geeral d pra secţue, petru deterarea aproxatvă a soluţe problee Caucy. Pasul. Geerează populaţa ţală, sub fora ue ulţ de M vector, avâd ca valor, preturbaţ ufore ale valor ţale a problee ( y 0 ± ε, y 0 ± ε,..., y 0 ± ε ), =.. M, j ε > 0. Pasul. Geerează uraş ş cereetează cotorul de tp, t t+. Presupue că ua dvz ce a be adaptaţ partcpă, ar petru ( y, y,..., y ş ( z, z,..., z selectă croozo avâd cele a apropate valor, respectv dcele k petru care y z = y z. k k =.. k k+. Prtr-o operaţe cross-over, ave ( y, y,..., yk, zk+,..., z ş ( z, z,..., z, y,..., y ) Pasul 3. Aplcă utaţ geetce petru o oua geeraţe, pr perturbaţ pe drecţa y y gradetulu fucţe de eroare F( y, y,..., y = f( x, y). După cu a = deostart î pra parte, astfel de utaţ sut eseţale petru covergeţa algortulu. Pasul 4. Clasfcă dvz, î fucţe de perforaţa ăsurată pr teredul fucţe de eroare F. Pasul 5. Elă surplusu de populaţ, astdel îcât aceasta să păstreze u uăr costat de dvz. Pasul 6. Cotuă cu pasul, pîă la îdeplrea codţe de oprre, de tp aposteror: ( ) ( ) F ut F ut <, î care u t repreztă dvdul cu cea a are perforaţă d populaţa P () t. Cocluze. Deterarea soluţe ue problee Caucy se poate face prtr-u algort geetc, valorle deterate fd relatve la o dvzue, la fel ca ş î cazul etode Ruge Kutta. 3 y'( t) = t t, y() = 0, A aplcat algortul descrs petru problea Caucy ( ) y :, [ ] R. Populaţa cosderată are 30 de dvz, clasfcaţ î fucţe de perforaţă, ar la fecare pas a ales pr 0 de dvz, care geereaza 0 de uraş. Petru soluţa y, cu doua zecale exacte: (0,0.0,0.05,0.3,0.6,0.45,0.7,.07,.53,.,.83) =, a oţut 0 7
Bblografe. Albu L.L, Macroecooe o-leara s progoza, Acadea Roaa, 00. Bazaf W., Nordo P., Keller R.E., Fracoe F.D., Geetc Prograg A troducto, Morga Kaufa Publsers, Sa Fracsco 998 3. Mateescu G.D., Optzato by usg evolutoary algorts wt geetc acqustos, Roaa Joural of Ecooc Forecastg, /005 4. Stoer J., Bulrsc R., Itroducto to Nuercal Aalyss, Sprger-Verlag, 99 8