Sunteți pe pagina 1din 8

ALGORITMI GENETICI DE OPTIMIZARE George Daniel Mateescu Rezumat.

Algoritmii generici reprezint un instrument util pentru rezolvarea unei clase largi de probleme, pornind de la principii extrase din biologie. Scopul acestui articol este de a pune n eviden principiul achiziiilor genetice, exprimate matematic prin mutaii pe direcia gradientului unei funcii obiectiv. Notaii Ne propunem minimizarea funciei f : D R m R , n care, formal, putem considera c D reprezint o mulime de restricii ale problemei. Soluii admisibile. Evident, orice element din D reprezint o soluie admisibil a problemei de optimizare. Deoarece un element din D este caracterizat de componetele sale, ( x1 , x2 ,..., xm ) , xi R vom considera c fecare xi este un cromozom. Desigur, inspectarera tuturor elementelor din D nu este posibil, din cauz c mulimea este infinit, iar prin comparaie cu un model biologic, putem considera c mulimea tuturor combinaiilor cromozomiale este infinit. Populaie. Asemntor cu lumea biologic, vom considera c populaia este o submulime a mulimii soluiilor admisibile, la fel cum populaia vie este o submulime a tuturor combinaiilor cromozomiale. Evident, populaia variaz n timp, astfel nct vom nota prin P ( t ) populaia existent la un anumit moment dat. n cazul nostru, aceasta reprezint o submulime finit a mulimii D. Un individ din P ( t ) va fi cu att mai bine adaptat cu ct zestrea sa cromozomoal conduce la o valoare mai mic a funciei obiectiv, f ( x1 , x2 ,..., xm ) . Selecie. Exist mai multe metode de simulare a seleciei biologice (naturale) care n mod esenial sunt cuprinse ntre dou extreme: selecia elitis, n care numai cei mai buni supravieuiesc i selecia pur ntmpltoare. Vom folosi o selecie elitist care corespunde strii unei populaii avnd resurse limitate. Concret, vom considera c numrul total al indivizilor este constant, reinnd la fiecare etap numai pe cei mai bine adaptai. Din punct de vedere matematic, vom sorta indivizii n funcie de valorile cresctoare ale funciei obiectiv i vom elimina surplusul de populaie. Mutaii genetice. Mutaiile reprezint mici variaii cromozomiale, care pot fi ntmpltoare, afectnd o parte a populaiei. n cazul nostru, mutaiile vor fi reprezentate de mici modificri ale coordonatelor punctelor din populaia curent. Dac acceptm posibilitatea unor mutaii de tip achiziii genetice, adic mutaii care apar ca urmare a eforturilor indivizilor de adaptare la mediu, atunci putem gsi un corespondent n problema noastr de optimizare, n mici variaii n sensul creterii

21

performanei. Matematic, ar nsemna ca micile modificri ale coordonatelor s fie fcute pe direcia gradientului, adic pe acea direcie care modific funcia obiectiv, n sensul dorit. Formal, vom considera c u + h este o mutaie genetic a lui u , pentru h suficient de mic. ntr+adevr, pornind de la formula lui Lagrange: f (u + h) = f (u ) + f ' ( u + h ) h, ( 0,1) , observm c ultimul termen este f f ( u + h ) h1 + ... + ( u + h ) hm x1 xm % n continuare, notm u = u + h iar dac presupunem c h este suficient de mic, atunci f f % rezult c fiecare derivat parial ( u ) are acelai semn ca ( u ) . Pe de alt parte, deoarece xi xi hi sunt peturbaii pe direcia gradientului, adic f hi = i ( u ) , i > 0 , xi rezult f f f f f f % % % % ( u ) h1 + ... + ( u ) hm = 1 ( u ) ( u ) ... m ( u ) ( u ) 0 x1 xm x1 x1 xm xm astfel nct, obinem: f ( u + h ) f ( u ) , h = f ' ( u ) , = (1 ,...,m )

n concuzie, achiziiile genetice de forma, u + h , care sunt realizate pe direcia gradientului, corespund unei performane crescute n raport cu minimizarea funciei obiectiv. Evident, nu putem spune ce nseamn h suficient de mic, astfel nct raionamentul este mai mult calitativ dect cantitativ. n aceasta const i marea diferen dintre un algoritm genetic i un algoritm clasic de tip Newton. n locul unei alegeri destul de dificile, chiar imposibile, a unei deplasri exacte pe direcia gradientului, un algoritm genetic va elimina deplasrile care nu mresc performana, n baza unui criteriu inspirat din biologie.
Urmaii Introducerea unor noi indivizi ntr-o populaie se face innd cont de codificarea folosit. n orice caz, mprumutnd mecanismul cross-over de combinare a lanurilor genetice, formal, fiecare individ nou introdus va avea o zestre genetic obinut de la doi prini prin ruperea i refacerea lanurilor de cromozomi. n cazul problemei noastre, considerm doi indivizi u = ( x ', y ' ) i
v = ( x ", y ") , n care x ', x " R p , y ', y " R q , p + q = m iar prin urmai vom considera indivizii

( x ', y ")

ii ( x ", y ' ) . Anumii cromozomi buni vor fi conservai, i anume aceia care corespund

direciei gradientului preluat de la prini, dup cum sunt conservai i cormozomii ri. n final, prin selecie natural vor rmne n populaie numai cei mai buni indivizi.
Algoritmul Un algoritm evolutiv utilizeaz noiunile de populaie, generaie, selecie, la fel ca n mediul biologic. Un astfel de algorim poate fi descris prin blocuri, astfel: Pasul 1. Genereaz populaia iniial (t ) , corespunztoare unui moment iniial t. Pasul 2. Adaug noua generaie; modific t t + 1 ; 22

Pasul 3. Aplic mutaii genetice, unor indivizi alei aleatoar, pe direcia gradientului. Pasul 4. Evalueaz indivizii prin intermediul funciei obiectiv, f. Pasul 5. Elimin suprapopulaia. Pasul 6. Continu cu pasul 2, pn cnd este ndeplinit condiia de terminare. Condiia de ncheiere poate s fie reprezentat de un numr maxim de generaii sau de o condiie de tip aposteriori de forma: f (u ) f (u + h) < ,

unde este suficient de mic, avnd semnificaia unei precizii date. Ca o paralel cu mediul biologic, putem s observm c o condiie de tip aposteriori reflect, ntr-un fel, perfeciunea adic momentul n care indivizii nu mai pot progresa, n raport cu funcia obiectiv.
Convergea Vom presupune c f este mrginit inferior, iar derivata sa satisface o condiie de tip Lipschitz: f ' ( a ) f ' ( b ) L a b , a , b D, L > 0

Notm cu u n individul cel mai bine plasat n generaia n i rezult, evident, c f ( un +1 ) f ( un ) deci irul f ( un ) este convergent. Utiliznd condiia aposteriori, rezult: f ( un ) f ( un + h ) < iar cum este suficient de mic, putem considera c lim f ( un + hn ) = lim f ( un ) .
n n

f Pe de alt parte, pentru u D i mutaiile genetice hi = i ( u ) , avem: xi

f (u + h) f (u ) = f ' (u + h) h = f ' (u ) h + ( f ' (u + h) f ' (u )) h


m 2 2

f ' (u ) h + ( f ' (u + h ) f ' (u )) h f ' (u ) h + f ' (u + h) f ' (u ) h


m m f f f u ) + L i 2 u ) = i ( 1 + Li ) i ( ( (u ) i =1 i =1 i =1 xi xi xi Pentru i suficient de mici, exist > 0 astfel nct: 2

f ( u + h ) f ( u ) f ' ( u ) , sau f ( u ) f ( u + h ) f ' ( u )


2

ceea ce, mpreun cu condiia aposteriori, implic:

f ' (u )
2

(1)

n sfrit, pentru u = un , rezult f ' ( un ) 0, n . n continuare, presupunem c f posed diferenial de ordin 2, i c aceasta este pozitiv definit, adic exist m > 0 astfel nct:
f " ( x ) y, y m y
2

Rezult c exist un unic punct de minim al lui f, umin i utiliznd formula lui Taylor exist % u , u astfel nct: 1 f ( umin ) f ( un ) f ' ( un )( umin un ) = f " ( u )( umin un ) , ( umin un ) 2

23

f ( un ) f ( umin ) f ' ( umin )( un umin ) = n care, prin ,

1 % f " ( u )( un umin ) , ( un umin ) 2 am notat produsul scalar n m .

Folosind ipoteza de pozitiv definire a diferenialei de ordin 2, prin sumarea celor dou formule anterioare, rezult: 2 f ' ( un )( umin un ) f ' ( umin )( un umin ) m umin un (2) Deorece f ' ( un ) 0 i f ' ( umin ) = 0 , obinem un umin , n Observm c din relaia (2) rezult:
m umin un
2

f ' ( un )

( umin un )

, adic umin un

1 f ' ( un ) m

n sfrit, utilizm relaia (1) astfel nct obinem: 1 umin un m ceea ce arat c utilizarea condiiei aposteriori este un criteriu suficient de convergen a irului ( un ) .
Concluzie Algoritmul de evoluie converge la valoarea optim. Exist o strns legtur ntre un astfel de algoritm i o metod clasic de tip Newton, ambele utiliznd direcia gradientului. Pe de alt parte, exist i o mare deosebire ntre cele dou metode concretizat prin mrimea deplasrii. n metodele de tip Newton aceasta este calculat utiliznd difereniala de ordin 2, iar condiiile de aplicare sunt mai mult teoretice dect practice, n vreme ce printr-un algoritm genetic, deplasrile eronate sunt pur i simplu eliminate, printr-un mecanism de selecie. Utilizarea unui algoritm genetic pentru determinarea soluiei problemei Cauchy, pentru ecuaii difereniale

Exist probleme de mare interes pentru cercetarea econometric, prin care suntem condui la exprimri care folosesc ecuaii difereniale. De exemplu, echilibrul dintre cerere i ofert permite o exprimare de acest fel. S presupunem, ca n figura de mai jos, ca n raport cu cererea i oferta la un moment dat, cererea depaete oferta. n acest cay ne putem atepta la o cretere a preului, de exemplu, proporional cu diferena dintre cerere i ofert:

24

P = a ( D(t ) S (t ) ) t n care a este o constant pozitiv. Presupunnd variaii mici ale parametrului t, de exemplu printrun proces de trecere la limit, rezult: P '(t ) = a ( D(t ) S (t ) ) Atunci cnd cererea depaete oferta, membrul drept al egalitii de mai sus este pozitiv, de unde rezult c funcia P este cresctoare. n concluyie, un model simplu al variaiei preului n funcie de cerere i ofert, este reprezentat de o problem Cauchy: y ' = f ( x, y ), y ( x0 ) = y0 , n care x este variabila dependent, iar y = y ( x) este variabila dependent (endogen). Desigur, pentru ca problema s aib soluie, sunt necesare ipoteye suplimentare asiupra pronlemei. Astfel, dac funcia:
f : x0 X , x0 + X y0 Y , y0 + Y R

] [

este continu i dac satisface o condiie de tip Lipschitz n raport cu cel de-al doilea argument f ( x, y1 ) f ( x, y2 ) L y1 y2 atunci soluia problemei Cauchy exist i este unic. Exist mai multe metode de detrminare a soluiei, unele analitice, dar, n practic se utilizeaz metode de calcul numeric (aproximativ) cea mai cunoscut fiind metoda Runge-Kutta. n aceast seciune, vom arta c determinarea aproximativ a soluiei se poate face prin utilizarea unui algoritm de tip genetic.
Adaptarea algoritmului genetic Soluii admisibile. La fel ca i n cazul metodei Runge-Kutta, prin utilizarea unui algoritm genetic, vom determina valorile souiei y n raport cu o diviziune echidistant a domeniului de ba definiie al funciei y = y ( x), y :[ a, b ] R , x0 = a < x1 < ... < xn = b , xi = a + ih , h = . n Vom nota valorile funciei, n punctele duiviziunii, prin yi = y ( xi ), i = 1...n astfel nct vectorul ( y1 , y2 ,..., yn ) devine o soluie admisibil. Populaia. Avnd ca model populaia biologic, vie, vom considera c aceasta este o submulime a tuturor combinaiilor cromozomiale, adic o submulime a soluiilor admisibile. Pentru un moment fixat, notat t, P ( t ) va reprezenta populaia, iar un individ y = ( y1 , y2 ,..., yn ) va

fi caracterizat de zestrea sa cromozomiala coninut n valorile yi .


Selecia. La fel ca i n cazul populaiilor biologice, indivizii problemei noastre, pot avea niveluri diferite de adaptare. Aceast adaptare va fi msurat prin intermediul unei funcii de perorman. La fecare moment, suprplusul populaiei va fi eliminat astel nct populaia toal s fie constatnt. Vom considera o form discretizat a problemei, utiliznd aproximarea drivatei dat de formula:

25

yi yi 1 h yi yi 1 y '( xi ) const. h h Problema Cauchy devine: yi yi 1 = f ( xi , yi ), i = 1...n h Evident, relaiile anterioare reprezint un sistem de ecuaii neliniare, a crui soluie ( y1 , y2 ,..., yn ) urmeaz s o determinm. Pentru fiecare soluie admisibil vom considera formula de eroare: y '( xi )
yi yi 1 f ( xi , yi ) h iar funcia de performan asociat vetorului y = ( y1 , y2 ,..., yn ) va fi definit de relaia: y yi 1 F ( y) = i f ( xi , yi ) h i =1 Vom considera c un individ din populaia P ( t ) este cu att mai bien adaptat cu ct funcia
n 2 2

de performan are o valoare mai mic.


Urmaii. Doi indivizi pot da natere la ali doi indivizi, prin combinarea zestrei lor cromozomiale. Astfel, printr-o operaie cross-over, indivizii ( y1 , y2 ,..., yn ) i ( z1 , z2 ,..., zn ) vor da natere urmailor: ( y1 , y2 ,..., yk , zk +1 ,..., zn ) i ( z1 , z2 ,..., zk , yk +1 ,..., yn ) Mutaii genetice. Orice cromozom poate s sufere mutaii, ntmltoare sau, dac admitem c educaia are un rol, putem accepta i anumite achiziii genetice. Indiferent de situaia, vom modela o mutaie genetic a cromozomului yi sub forma yi . Convergena algoritmului Notm cu ut individul din populaia P (t ) avnd cea mai mic valoare a funciei de eroare

F. Aa cum am demonstrat n seciunea anterioar, irul ( ut )t 0 este convergent, iar limita sa este soluia problemei de optimizare inf F . Utiliznd convergena ut u , rezult c pentru orice > 0 , exist y = ( y1 , y2 ,..., yn ) astfel nct: y yi 1 F ( y) = i f ( xi , yi ) < h i =1 n consecin, pentru h > 0 , printr-o eventual renotare a valorilor, rezult c exist y = ( y1 , y2 ,..., yn ) astfel nct:
n 2

yi yi 1 f ( xi , yi ) < h h Avnd n vedere formula de aproximare a derivatei, rezult:


26

yi yi 1 y yi 1 + i f ( xi , yi ) < Ch h h ceea ce arat c valoarea final a algoritmului, i anume ut = y = ( y1 , y2 ,..., yn ) reprezint o aproximare a soluiei problemei Cauchy problem, cu precizia h. y '( xi ) f ( xi , yi ) y '( xi )
Algoritmul Prezentm n continuare adaptarea algoritmului general din prima seciune, pentru determinarea aproximativ a soluiei problemei Cauchy. Pasul 1. Genereaz populaia iniial, sub forma unei mulimi de M vectori, avnd ca valori, m m preturbaii uniforme ale valorii iniiale a problemei ( y0 1m , y0 2 ,..., y0 n ) , m = 1..M ,

ij > 0 .
Pasul 2. Genereaz urmaii i incerementeaz contorul de timp, t t + 1 . Presupunem c numai indivizii cei mai bine adaptai particip, iar pentru ( y1 , y2 ,..., yn ) i ( z1 , z2 ,..., zn ) selectm

cromozomii avnd cele mai apropiate valori, respectiv indicele k pentru care yk zk = min yi zi .
i =1..n

Printr-o operaie cross-over, avem ( y1 , y2 ,..., yk , zk +1 ,..., zn ) i ( z1 , z2 ,..., zk , yk +1 ,..., yn ) . Pasul 3. Aplic mutaii genetice pentru o noua generaie, prin perturbaii pe direcia y yi 1 f ( xi , yi ) . Dup cum am gradientului funciei de eroare F ( y1 , y2 ,..., yn ) = i h i =1 demonstart n prima parte, astfel de mutaii sunt eseniale pentru convergena algoritmului. Pasul 4. Clasific indivizii, n funcie de performana msurat prin intermediul funciei de eroare F. Pasul 5. Elimin surplusu de populai, astdel nct aceasta s pstreze un numr constant de indivizi. Pasul 6. Continu cu pasul 2, pn la ndeplinirea condiiei de oprire, de tip aposteriori: F ( ut ) F ( ut 1 ) < h ,
n 2

n care ut reprezint individul cu cea mai mare performan din populaia P ( t ) .


Concluzie. Determinarea soluiei unei probleme Cauchy se poate face printr-un algoritm genetic, valorile determinate fiind relative la o diviziune, la fel ca i n cazul metodei Runge Kutta. Am aplicat algoritmul descris pentru problema Cauchy y '(t ) = 2 ( t 3 t 2 ) , y (1) = 0 ,

y : [1, 2] R . Populaia considerat are 30 de indivizi, clasificai n funcie de performan, iar la

fiecare pas am ales primii 20 de indivizi, care genereaza 20 de urmai. Pentru h = soluia y, cu doua zecimale exacte: (0, 0.01, 0.05, 0.13, 0.26, 0.45, 0.71,1.07,1.53, 2.11, 2.83)

1 , am oinut 10

27

Bibliografie 1. Albu L.L, Macroeconomie non-lineara si prognoza, Academia Romana, 2002 2. Banzhaf W., Nordon P., Keller R.E., Francone F.D., Genetic Programming An introduction, Morgan Kaufmann Publishiers, San Francisco 1998 3. Mateescu G.D., Optimization by using evolutionary algorithms with genetic acquisitions, Romanian Journal of Economic Forecasting, 2/2005 4. Stoer J., Bulirsch R., Introduction to Numerical Analysis, Springer-Verlag, 1992

28