3. ALGORITMI GENETICI

Σχετικά έγγραφα
Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Metode iterative pentru probleme neliniare - contractii

Algoritmi genetici. 1.1 Generalităţi

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Asupra unei inegalităţi date la barajul OBMJ 2006

Sisteme diferenţiale liniare de ordinul 1

Curs 4 Serii de numere reale

Curs 1 Şiruri de numere reale

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

Metode de interpolare bazate pe diferenţe divizate

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

MARCAREA REZISTOARELOR

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

Subiecte Clasa a VIII-a

UNIVERSITATEA TEHNICĂ GH. ASACHI IAŞI FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE. Algoritmi genetici. Inteligenţă artificială - referat -

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

Integrala nedefinită (primitive)

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Esalonul Redus pe Linii (ERL). Subspatii.

Curs 2 Şiruri de numere reale

Criptosisteme cu cheie publică III

prin egalizarea histogramei

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Subiecte Clasa a VII-a

Laborator 11. Mulţimi Julia. Temă

III. Reprezentarea informaţiei în sistemele de calcul

5.4. MULTIPLEXOARE A 0 A 1 A 2

riptografie şi Securitate

8 Intervale de încredere

Laborator 6. Integrarea ecuaţiilor diferenţiale

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

Functii Breviar teoretic 8 ianuarie ianuarie 2011


Seminar 5 Analiza stabilității sistemelor liniare

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1)

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Sisteme liniare - metode directe

Subiecte Clasa a V-a

z a + c 0 + c 1 (z a)

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ


Problema a II - a (10 puncte) Diferite circuite electrice

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36].

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1

Examen AG. Student:... Grupa:... ianuarie 2011

a. 11 % b. 12 % c. 13 % d. 14 %

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

Examen AG. Student:... Grupa: ianuarie 2016

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

9 Testarea ipotezelor statistice

Valori limită privind SO2, NOx şi emisiile de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

SEMINARUL 3. Cap. II Serii de numere reale. asociat seriei. (3n 5)(3n 2) + 1. (3n 2)(3n+1) (3n 2) (3n + 1) = a

Ecuatii trigonometrice

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER

Algoritmica grafurilor XI. Cuplaje in grafuri. Masuri de calitate. Numere Ramsey

Progresii aritmetice si geometrice. Progresia aritmetica.

Seminar Algebra. det(a λi 3 ) = 0

Să se arate că n este număr par. Dan Nedeianu

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.

2 Transformări liniare între spaţii finit dimensionale

1.3 Baza a unui spaţiu vectorial. Dimensiune

Curs 2 DIODE. CIRCUITE DR

Statisticǎ - curs 3. 1 Seria de distribuţie a statisticilor de eşantioane 2. 2 Teorema limitǎ centralǎ 5. 3 O aplicaţie a teoremei limitǎ centralǎ 7

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri

riptografie şi Securitate

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ

Zgomotul se poate suprapune informaţiei utile în două moduri: g(x, y) = f(x, y) n(x, y) (6.2)

7 Distribuţia normală

Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent

Cap. 9. REZOLVAREA NUMERICĂ A PROBLEMELOR DE OPTIMIZARE

Scoruri standard Curba normală (Gauss) M. Popa

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

Principiul Inductiei Matematice.

f(x) = l 0. Atunci f are local semnul lui l, adică, U 0 V(x 0 ) astfel încât sgnf(x) = sgnl, x U 0 D\{x 0 }. < f(x) < l +

2. Circuite logice 2.5. Sumatoare şi multiplicatoare. Copyright Paul GASNER

I. Noţiuni introductive

Transcript:

3. ALGORITMI GENETICI Un algoritm genetic efectuează operaţii specifice în cadrul unui proces de reproducere guvernat de operatori genetici. Noile soluţii sunt create prin selecţia şi recombinarea cromozomilor existenţi, în vederea optimizării unei funcţii de evaluare specifice fiecărei probleme în parte. Semnificaţia acestei funcţii nu este relevantă pentru algoritm, ceea ce contează fiind numai valoarea sa. În general se pleacă de la o populaţie de cromozomi generată aleator şi fiecare nouă populaţie generată prin reproducere înlocuieşte parţial sau total generaţia anterioară. Funcţia de evaluare globală se îndreaptă spre optim şi oferă soluţii din ce în ce mai bune problemei. Procesul este analog teoriei neo-darwiniste a evoluţiei biologice, care afirmă că organismele adaptate continuu la schimbările de mediu au şansele cele mai mari de supravieţuire. 3.1. Structura algoritmilor genetici Mecanismele fundamentale care realizează legătura dintre algoritmul genetic şi problema care trebuie rezolvată sunt următoarele: - codificarea problemei în termeni de cromozomi, - funcţia de evaluare, care furnizează o măsură a calităţii fiecărui cromozom în contextul problemei respective. Codificarea se realizează de obicei prin şiruri de cifre binare. S-a demonstrat că acest mod de codificare este robust, în sensul adaptării lui la o mare varietate de probleme practice. Ceea ce i se reproşează uneori este precizia soluţiei, limitată la numărul de biţi, pe care se face reprezentarea. Alegerea unui număr suficient de mare de biţi pentru reprezentarea valorilor reale din problemă, înlătură însă acest dezavantaj. Mai jos se prezinta programe scrise in MATLAB, care fac conversia zecimal-binar si invers. function a = zecbin(numar,nrb) %ZECBIN Face conversia zecimal-binar. % NUMAR - numarul zecimal intreg ce trebuie convertit. % NRB - numarul de biti. % Returneaza : un vector binar ca rezultat al conversiei. i=0; while numar>=2 if rem(numar,2)==0 a(1,nrb-i)=0; else a(1,nrb-i)=1; i=i+1; numar=fix(numar/2); if numar==1 a(1,nrb-i)=1; for k=1:nrb-i-1 a(1,k)=0; function y = binzec(a) %BINZEC Face conversia binar-zecimal. % A - vector ce contine numarul binar de intrare. % Returneaza: un numar zecimal, rezultat al conversiei. numar=0;

nrb=length(a); for i=1:nrb numar=a(1,i)*2^(nrb-i)+numar; y=numar; Funcţia de evaluare primeşte la intrare şirul de cromozomi şi returnează numere sau liste de numere ce reprezintă performanţa cromozomilor. Ea are rolul mediului înconjurător pentru evoluţia naturală. Structura unui algoritm genetic fundamental este dată mai jos: 1. Se iniţializează populaţia de cromozomi: function a = initial(nrc,nrb) %INITIAL Initializeaza aleator populatia de cromozomi. % NRC - numarul de cromozomi. % NRB - numarul de biti pe cromozom. % Returneaza : o matrice aleatoare A formata din cifre binare, cu numar de linii egal cu numarul de cromozomi si numar de coloane egal cu numarul de biti pe cromozom (= nrb). a=rand(nrc,nrb); a=a>0.5; 2. Se evaluează fiecare cromozom din populaţie. Se selectează părinţii noii populaţii. 3. Se creează o nouă generaţie de cromozomi prin împerecherea cromozomilor selectaţi, folosind operatori genetici. 4. Se şterg membrii populaţiei iniţiale, pentru a fi înlocuiţi cu noua generaţie. 5. Se evaluează noii cromozomi şi se inserează în noua populaţie. 6. Dacă timpul de căutare nu s-a terminat, se merge la pasul 3. În caz contrar, se opreşte execuţia algoritmului. Modul de reprezentare a populaţiei de cromozomi, modul de evaluare a cromozomilor şi modul de reproducere sunt componente esenţiale ale algoritmului genetic şi sunt prezentate în cele ce urmează. Selecţia este un operator genetic care stabileşte şirurile populaţiei curente care vor fi alese pentru a transmite materialul lor genetic generaţiei următoare. Există trei tehnici de selecţie: cea mai utilizată este selecţia proporţională, care modelează mecanismul selecţiei naturale, în care cromozomii cu o evaluare mai mare au o şansă mai mare de a fi aleşi. Cunoscută şi sub numele de principiul ruletei, această tehnică presupune parcurgerea următoarelor etape: 1. Se stabileşte funcţia de evaluare Eval( x i ) pentru fiecare cromozom x i din populaţia dată 2. Se sumează toate funcţiile de evaluare Eval = Eval( x i ) i 3. ilor li se atribuie aleator numerele naturale i. Repetă până la crearea unui număr suficient de perechi de cromozomi: 4. Se generează numerele aleatoare n şi m, astfel ca 1 nm, Eval 5.Se alege cromozomul x i, unde i este cel mai mic număr care satisface relaţia: Eval( x ) n 6. Se alege cromozomul x j, ca la pasul 5, cu m în loc de n 7. Se stabileşte perechea de cromozomi x i şi x j. Această modalitate de selecţie poate genera serioase probleme tehnice. Dacă un cromozom din populaţie are o funcţie de evaluare de valoare mult mai mare decât a celorlalţi cromozomi, aceasta fiind departe de optim, atunci selecţia proporţională va extinde foarte repede caracteristicile acestui cromozom în populaţie. În câteva generaţii populaţia ar putea fi alcătuită j i j

numai din astfel de cromozomi şi algoritmul genetic nu ar mai putea evolua, deci optimul nu mai poate fi găsit. Acest fenomen este cunoscut sub numele de convergenţă prematură. O altă problemă o constituie gradientul scăzut al funcţiei de evaluare spre sfârşitul căutării. Treptat soluţia optimă este preluată de întreaga populaţie. Efectul este cunoscut sub numele de terminare lentă (slow finishing). O altă tehnică de selecţie este selecţia pe baza rangului, în care probabilitatea de a fi ales este o funcţie liniară de locul ocupat de individ (cromozom) în cadrul populaţiei. Avantajul constă în faptul că nu mai este necesară interpolarea permanentă a evaluării ca în cazul precedent. Un caz special de selecţie de acest tip este selecţia prin trunchiere, prin care se elimină o parte din cromozomii cu cea mai slabă evaluare, iar în locul lor se generează alţii, după diferite scheme posibile. Un exemplu este prezentat în continuare: 1. Din populaţia actuală se elimină n cromozomi care au evaluarea cea mai slabă. Repetă de n ori: 2. Se generează un nou cromozom x, folosind principiul ruletei 3. Dacă x diferă de toţi ceilalţi cromozomi ai populaţiei actuale, atunci el este inclus în populaţie; în caz contrar, este supus operatorului de mutaţie (explicat mai jos) până ce devine diferit de ceilalţi cromozomi şi este inclus în populaţie. O metodă euristică de selecţie este selecţia elitistă, care reţine întotdeauna cei mai buni cromozomi ai populaţiei (de regulă unul singur). Ea garantează convergenţa asimptotică spre un minim global, dar rata de convergenţă este variabilă, funcţie de problemă. Elita poate introduce un efect de dominanţă asupra populaţiei care să ducă la o stagnare timpurie a procesului de evoluţie. Soluţia constă în utilizarea operatorului de mutaţie pentru reducerea sau eliminarea acestui efect. Încrucişarea (crossover) este operatorul necesar pentru construcţia noilor indivizi ai populaţiei. Populaţia intermediară, formată din n cromozomi, este împărţită în n/2 perechi şi operatorul de încrucişare este aplicat fiecărei perechi cu o anumită probabilitate χ. Valoarea lui χ este de obicei mai mare de 0,6 şi de cele mai multe ori se alege χ = 1. Noii indivizi ai populaţiei sunt generaţi prin combinarea unor părţi alternative de material genetic provenind din două şiruri părinte a1 şi a2. Cea mai simplă schemă este încrucişarea cu un singur. Dacă numărul de biţi din cromozomul-şir este l= nrb, atunci punctul de încrucişare este ales aleator între 1 şi l. Această schemă de încrucişare este prezentată mai jos: 1. Se generează aleator un număr natural p în intervalul [ 1, l ( a i ) ] ; 2. Se generează noua pereche de cromozomi a 1nou şi a 2nou, după cum urmează: Pentru i pse execută următoarea secvenţă: a1 () i = a 2 () i şi a2 () i = a1() i ; nou Pentru i > p se execută următoarea secvenţă: a1 () i = a 1 () i şi a2 () i = a2() i. nou function [a1,a2] = cross1(a1,a2) %CROSS1 - Realizeaza incrucisarea intr-un singur punct. % A1 - cromozomul a1, A2 - cromozomul a2. % Returneaza : doi cromozomi obtinuti dupa incrucisare. nrb = length(a1); p = fix(nrb*rand+1); for i=1:p, temp(i)=a1(i); a1(i)=a2(i); a2(i)=temp(i); nou nou O variantă mai complexă de încrucişare este încrucişarea în două puncte. O generalizare a

acestei scheme este încrucişarea în puncte multiple, folosită mai rar, numai în situaţiile în care cromozomul conţine un număr foarte mare de biţi. Mai jos prezentăm schema de încrucişare în două puncte: 1. Se generează aleator două numere naturale p 1 şi p 2 în intervalul [ 1, l ( a i ) ] ; 2. Se generează noua pereche de cromozomi a 1nou şi a 2nou, după cum urmează: Pentru p i 1 p2se execută următoarea secvenţă: a1 nou () i = a2 () i şi a2nou () i = a1() i ; Pentru p2 < i < p 1 se execută următoarea secvenţă: a1 nou () i = a1 () i şi a2nou () i = a2() i. Mutaţia permite algoritmului genetic să găsească noi soluţii în cadrul populaţiei şi îl protejează împotriva pierderii de informaţie în cazul unor încrucişări nepotrivite. Rata mutaţiei este foarte redusă, probabilitatea mutaţiei ( notată cu μ ) având valori cuprinse între 0,001 şi 0,01. Dacă operatorul de selecţie reduce diversitatea în populaţie, cel de mutaţie determină o nouă creştere a diversităţii. Cu cât probabilitatea mutaţiei este mai mare, cu atât mai redus este riscul convergenţei premature, dar apare un nou risc datorită faptului că o rată mare de mutaţie va transforma algoritmul genetic într-un algoritm de căutare aleatoare. O schemă tipică de mutaţie pentru un cromozom x =< x1,..., x n > este: 1. Se generează aleator un număr z astfel încât 1 z n ; 2. Se selectează gena x z ; 3. x = 1 x. z z function y = mutatie(a) %MUTATIE Modifica aleator un bit al vectorului a. % A - vectorul de intrare. % Returneaza : Vectorul modificat. nrb = length(a); z=fix(rand*(nrb-1)+1); a(z)=1-a(z); y = a; 3.2. Algoritmi genetici pentru optimizare numerică Pentru a ilustra cât mai simplu modul de funcţionare a unui algoritm genetic vom rezolva două probleme simple de căutare a valorii maxime a unei funcţii unidimensionale pentru un domeniu de definiţie dat, folosind structura unui algoritm genetic fundamental. Ne propunem să găsim valoarea maximă a funcţiei: f ( x) = x 2, unde x [ 0, 31 ] şi x N. (3.1) Numărul de soluţii posibile este 2 5 = 32, deci pentru o codificare binară minimală fixăm lungimea cromozomului la 5 biţi. Considerăm că populaţia este formată din 4 indivizi, iar operatorii genetici folosiţi sunt mutaţia uniformă şi încrucişarea într-un punct. Selecţia se face pe principiul ruletei. Funcţia de evaluare este f ( x ). După iniţializarea aleatoare a populaţiei sunt posibile valorile din tabelul 3.1. Selecţia cromozomilor care participă la crearea noii generaţii se face folosind principiul ruletei. ul 3 care are evaluarea cea mai slabă este eliminat. În locul lui se alege un alt cromozom dintre cei rămaşi, pentru a păstra neschimbat numărul de indivizi din populaţie. Este foarte posibilă alegerea cromozomului 2, care are evaluarea maximă şi deci probabilitatea maximă de a fi ales. Împerecherea cromozomilor se face aleator, iar numărul de biţi schimbat între doi cromozomi în cadrul încrucişării într-un singur punct se stabileşte tot aleator. Evoluţia spre noua generaţie se face conform tabelului 3.2.

Tabelul 3.1. Numărul cromozomului Reprezentare binară Valoarea zecimala x f(x) 1 01101 13 169 14,4 2 11000 24 576 49,2 3 01000 8 64 5,5 4 10011 19 361 30,9 Suma 1170 100,0 Media 292,5 Maxima 576 relativă(%) Tabelul 3.2. părinte Număr de biţi încrucişare copil Valoarea x f(x) = x 2 01101 3 01000 8 64 11000 3 11101 29 841 11000 2 11011 27 729 10011 2 10000 16 256 Suma 1890 Media 472,5 Maxima 841 Observăm până acum o creştere a valorii maxime de la 576 la 841 şi a valorii medii de la 292,5 la 472,5. Următoarele două iteraţii generează rezultatele prezentate în tabelele 3.3 şi respectiv 3.4. Dacă în generaţia imediat următoare nu se obţine o creştere a valorii maxime a funcţiei Tabelul 3.3. Părinte Număr de biţi încrucişare copil Valoarea x 11101 3 11000 24 576 11101 1 11101 29 841 11011 1 11011 27 729 10000 3 10101 21 441 Suma 2587 Media 646,7 Maxima 841 Tabelul 3.4. părinte f(x) Număr de biţi încrucişare copil Valoarea x 11000 3 11101 29 841 11101 2 11111 31 961 11011 2 11001 25 625 11101 3 11000 24 576 Suma 3003 Media 750,7 Maxima 961 f(x) obiectiv f ( x), se poate observa o creştere a valorii medii de la 472,5 la 646,7. În ultima generaţie se obţine valoarea maximă 961, corespunzătoare lui x = 31, cromozom care reprezintă

soluţia problemei. Datorită instrucţiunilor aleatoare este posibil ca o nouă rulare a programului să furnizeze soluţia corectă ceva mai devreme sau ceva mai târziu, dar datorită alegerii celor mai bune soluţii ca bază pentru generarea unor noi soluţii, convergenţa algoritmului spre soluţia optimă este asigurată. Un alt exemplu, care ne apropie mai mult de o problemă reală de optimizare a unei funcţii de o singură variabilă este dat în cele ce urmează. Ne propunem să găsim valoarea reală a lui x din intervalul [-1,2] care maximizează valoarea funcţiei lui Michalewicz [1], definită prin următoarea expresie: f ( x) = x sin( 10π x) + 1 (3.2) Trebuie deci să găsim o valoare din intervalul dat, astfel încât: x 0 ( ) ( ) [ ] f x0 f x, x 12, (3.3) Reprezentarea grafică a funcţiei f ( x) este dată în figura 3.1. Rezolvarea analitică a problemei Fig. 3.1 presupune rezolvarea ecuaţiei f '( x) = 0, care devine: f '( x) = sin( 10π x) + 10π x cos( 10π x) = 0, (3.4) şi care este echivalentă cu ecuaţia: tan( 10π x) = 10π x. (3.5) Ecuaţia 3.5 este o ecuaţie transcentă, care are o infinitate de soluţii de forma: 2i 1 + εi, i = 12,,... 20 xi = 0 i = 0 2i + 1 εi, i = 1, 2,... 20 (3.6) unde termeniiε i formează un şir descrescător de numere reale, convergent la zero. Maximul 37 funcţiei pe domeniul indicat se obţine pentru x 19 = + ε 20 19 185, şi este ceva mai mare de π valoarea lui f ( 185, ), adică f ( 185, ) = 185, sin 18π + + 1= 285,. 2 Pentru rezolvarea problemei cu algoritm genetic, pentru început stabilim modul de reprezentare a datelor. Soluţia problemei sau cromozomul este un vector binar de lungime suficientă pentru a asigura precizia dorită. Dacă dorim ca soluţia să aibă 6 zecimale, atunci domeniul [ 1, 2] trebuie împărţit în 3 10 valori distincte. Lungimea cromozomilor va fi de 22 biţi, deoarece: 21 2 6 22 < 3 10 2 (3.7)

Corespondenţa dintre valoarea binară a cromozomului şi numărul real pe care acesta îl reprezintă se face printr-o interpolare liniară simplă. ul care conţine numai biţi de 0 corespunde valorii reale -1, iar cromozomul care conţine numai biţi de 1 corespunde valorii reale +2. Orice alt cromozom reprezintă o valoare reală cuprinsă între cele două limite. function s = interpolare(valmin,valmax,nrb,val) %INTERPOLARE - calculeaza valoarea argumentului pentru aplicatia ceruta. % VALMIN - valoarea minima a argumentului. % VALMAX - valoarea maxima a argumentului. % NRB - numarul de biti pe cromozom. % VAL - valoarea calculata a argumentului, cuprinsa intre 0 si 2^NRB. % Returneaza : valoarea corecta in domeniul de variatie a argumentului. p=(valmax-valmin)/2^nrb; s=valmin+p*val; Populaţia de cromozomi este iniţializată prin generarea unei matrici cu număr de linii egal cu numărul cromozomilor din populaţie şi cu număr de coloane egal cu numărul biţilor dintr-un cromozom, adică 22. Toate elementele matricei sunt cifre binare generate aleator. Funcţia de evaluare a cromozomilor este echivalentă funcţiei f ( x ). Operatorii genetici folosiţi sunt şi aici încrucişarea şi mutaţia. Încrucişarea se face într-un singur punct, iar numărul biţilor care se schimbă între doi cromozomi părinţi este aleator. Mutaţia este uniformă şi - de această dată - se produc mutaţii, deoarece elementele care stabilesc probabilitatea de mutaţie pe generaţie, numărul de cromozomi din populaţie şi lungimea cromozomilor, sunt acum mult mai mari decât în exemplul precedent. Algoritmul genetic folosit pentru rezolvarea problemei are o populaţie formată din 50 de cromozomi, probabilitate de încrucişare de 0,25 şi probabilitate de mutaţie de 0,01. De multe ori se alege o probabilitate de încrucişare unitară. Acest lucru măreşte de obicei convergenţa algoritmului, dar creşte timpul de execuţie. Rezultatele experimentale obţinute pentru o evoluţie pe parcursul a 150 de generaţii sunt prezentate în figura 3.2. şi în tabelul 3.5. Se poate observa că evaluarea maximă este apropiată Fig. 3.2 de soluţia corectă încă de la prima generaţie. Ea este dată de cel mai bun individ din populaţia iniţială de 50 de indivizi care a fost generată aleator, individ care este păstrat de la o generaţie la alta. Din acest motiv, evaluarea maximă este o funcţie monoton crescătoare. Nu acelaşi lucru se întâmplă cu evaluarea medie, care prezintă şi porţiuni scăzătoare începând cu generaţia 20,

Tabelul 3.5. Numărul generaţiei medie maximă 1 1,089383 2,639120 5 1,498987 2,639120 10 1,885667 2,649927 20 2,513873 2,650306 30 2,562338 2,801410 40 2,632469 2,849743 50 2,754230 2,850273 datorită încrucişărilor şi mutaţiilor produse. Deşi valoarea medie a populaţiei este în creştere, datorită eliminării celor mai slabi indivizi la fiecare generaţie, se mai întâmplă, ce-i drept cu o probabilitate destul de mică, ca părinţi reuşiţi să nu genereze întotdeauna copii la fel de reuşiţi sau mai reuşiţi, aşa cum ar fi de dorit. Algoritmul propus converge după mai puţin de 50 de generaţii la valoarea 2,850273, care corespunde unei erori relative de - 0,002 %. S-a folosit o selecţie prin trunchiere folosind principiul ruletei şi eliminând 8 dintre cei mai slabi cromozomi la fiecare generaţie. BIBLIOGRAFIE 1) Z. Michalewicz Genetic Algorithms + Data Structures = Evolution Programs, Springer- Verlag, 1996. 2) R. Popa Cercetari privind elaborarea unor noi metode de testare a structurilor numerice, Teza de doctorat, Universitatea "Dunarea de Jos" din Galati, 1998.