Sunteți pe pagina 1din 10

Inteligen artificial Laboratorul 9

Algoritmi evolutivi
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm
1. Specificul calculului evolutiv 2. Structura unui algoritm evolutiv 3. Reguli de codificare. Exemple de probleme specifice. 4. Reguli de decodificare. 5. Construirea funciei de adaptare 6. Selecia 6.1 Elitismul 6.2 Selecia de tip rulet 6.3 Selecia pe baza rangurilor 6.4 Selecia de tip turnir 7 ncruciare 8. Mutaie 9. Domenii de aplicabilitate 10 Aplicaii

1. Specificul calculului evolutiv


Un algoritm evolutiv este o metod de cutare prin analogie cu evoluia biologic (de tip darwinist). Pentru gsirea soluiei se utilizeaz o populaie de soluii poteniale care evolueaz prin aplicarea iterativ a unor operatori stohastici. Elementele populaiei reprezint soluii poteniale ale problemei. Pentru a ghida cutarea ctre soluia problemei asupra populaiei se aplic transformri specifice evoluiei naturale: - Selecie. Elementele populaiei care se apropie de soluia problemei sunt considerate adecvate i sunt favorizate n sensul ca au mai multe anse de a supravieui n generaia urmtoare precum i de a participa la generarea de "urmai". - ncruciare. La fel ca la nmulirea din natur pornind de la dou sau mai multe elemente ale populaiei (numite prini) se genereaz noi elemente (numite urmai). n funcie de calitatea acestora (apropierea de soluia problemei) urmaii i pot nlocui prinii. - Mutaie. Pentru a asigura variabilitatea populaiei se aplic, la fel ca n natur, transformri cu caracter aleator asupra elementelor populaiei permind apariia unor trsturi (gene) care doar prin ncruciare i selecie nu ar fi aprut n cadrul populaiei. n funcie de modul n care este construit populaia i de modul n care este implementat evoluia, sistemele de calcul evolutiv se ncadreaz n una dintre urmtoarele categorii: - Algoritmi genetici. Se folosesc n special pentru rezolvarea unor probleme de optimizare discret (combinatorial). Populaia este reprezentat de stri din spaiul problemei codificate binar (un element al populaiei este un ir de bii) iar principalii operatori sunt cei de ncruciare i selecie, cel de mutaie avnd probabilitate mic de aplicare. - Strategii evolutive. Au fost concepute iniial pentru a rezolva probleme de optimizare continu. Populaia este constituit din elemente din domeniul de definiie al funciei obiectiv. Operatorul principal este cel de mutaie dar i recombinarea este folosit. Pentru strategiile evolutive au fost dezvoltate scheme de adaptare a parametrilor de control (auto-adaptare). - Programare genetic. Scopul programrii genetice este dezvoltarea unor "modele" de calcul (programe simple). Astfel, populaia este reprezentat de programe care candideaz la rezolvarea problemei. Exist diferite reprezentri ale elementelor populaiei, una dintre cele mai clasice fiind aceea n care se utilizeaza o structur arborescent pentru reprezentarea programelor. n anumite aplicaii, cum este regresia simbolic, programele sunt de fapt expresii. 1
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

2. Structura unui algoritm evolutiv


Majoritatea algoritmilor evolutivi au un caracter iterativ. Structura general a unui astfel de algoritm (algoritm genetic, strategie evolutiv etc.) este:

Pseudocodul ar putea fi scris i astfel:


t := 0; // iniializarea indicatorului de iteraie init P(t); // iniializarea (aleatoare) a populaiei (mulime de configuraii a caror structur depinde de problem) evaluate P(t); // calculul funciei de adaptare pentru fiecare individ al populaiei repeat// proces iterativ de evoluie t = t + 1// incrementarea indicatorului de iteraie P1(t) = select P(t) // selectarea unei sub-populaii n scopul reproduceri(prini) P2(t) = recombine P1(t) //ncruciarea "genelor" prinilor avnd ca rezultat obinerea unei noi populaii P3(t) = mutate P2(t) // perturbarea aleatoare a noii populaii (mutaie) evaluate P3(t) // evaluarea noii populaii(calculul funciei de adaptare pentru noua populaie) P(t+1) = survive (P(t),P3(t)) // selecia supravieuitorilor din cele doua populaii (pe baza valorii funciei de adaptare) until <conditie de stop>

2
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm

De exemplu, "programul-expresie" "a+b*c" poate fi descris prin (+ a (* b c)). O astfel de structur este poate fi uor codifiat n Clips sau Lisp. ntr-o astfel de reprezentare ncruciarea este realizat selectnd aleator subarbori din arborele asociat programelor printe i interschimbndu-le. Ca i n cazul algoritmilor genetici mutaia are pondere mic. - Programare evolutiv. Iniial programarea evolutiv a avut ca obiectiv dezvoltarea unor structuri de calcul (automate) printr-un proces de evoluie n care operatorul principal este cel de mutaie. Ulterior programarea evolutiv a fost orientat ctre rezolvarea problemelor de optimizare avnd aceeai sfer de aplicabilitate ca i strategiile evolutive. Toate aceste metode se bazeaz pe faptul c simuleaz evoluia unei mulimi (populaie) de structuri informaionale sub aciunea unor procese similare celor din evoluia natural i anume: selecie, mutaie i ncruciare. Aciunea acestor procese este controlat prin intermediul unei funcii de fitness care msoar gradul de adaptare a fiecrui individ la mediul din care face parte. De exemplu, n cazul rezolvrii unei probleme de optimizare (gsirea maximului sau minimului unei funcii) funcia de adaptare este chiar funcia obiectiv a problemei.

Codarea difer de la problem la problem; cele mai des folosite metode fiind codarea binar, real sau cu permutri. Condiia de oprire se poate referi la numrul de iteraii (generaii) sau la proprietile populaiei curente (de exemplu, ntreaga populaie converge ctre o singur valoare).

Modul n care o configuraie este codificat ntr-un cromozom depinde de problema concret. Exist trei variante principale de codificare: Codificare binar. Este varianta clasic. n acest caz cromozomii sunt vectori cu elemente din {0,1} iar spaiul de cutare este S = {0, l}n, cu n numrul de gene (n este corelat cu dimensiunea problemei). Este adecvat pentru problemele de optimizare combinatorial n care configuraiile pot fi specificate ca vectori binari. Exemplul 1. Problema maximizrii numrului de bii egali cu 1 (ONEMAX problem). Se pune problema determinrii irului de bii (xi,... ,xn), xi {0,1} care maximizeaz funcia n f : {0, l}n > N, f(x1,... ,xn) = j =1 xj Problema este echivalent cu a determina configuraia de bii care are cele mai multe elemente egale cu 1. Aceasta este evident (1, ..., 1) problema fiind una artificial folosit pentru a testa algoritmii genetici. Exemplul 2. Problema submulimii de sum maxim limitat de un prag. Se consider o mulime W = {w1,... ,wn} de valori ntregi i M o valoare ntreag. Se caut o submulime S W cu proprietatea c suma elementelor lui S este ct mai apropiat de M dar nu l depete. Orice submulime S poate fi reprezentat printr-un vector (s1,s2,..., sn) cu sj = 0 dac wi S i sj = 1 n dac wi S. Suma elementelor unei submulimi S este n acest caz j =1 wisj Exemplul 3. Problema rucsacului. Se consider un set de n obiecte caracterizate prin greutile (w1,... ,wn) i prin valorile (v1,... ,vn). Se pune problema determinrii unui subset de obiecte pentru a fi introduse ntr-un rucsac de capacitate C astfel nct valoarea obiectelor selectate s fie maxim. O soluie a acestei probleme poate fi codificat ca un ir de n valori binare n felul urmtor: si = 1 dac obiectul i este selectat, respectiv si = 0 dac obiectul nu este selectat. Pentru 5 obiecte posibile de introdus n sac, o gen reprezint un bit (xi), n timp ce cromozomul este o soluie potenial (de exemplu 01101 nseamn c articolele 2, 3 i 5 vor fi incluse n sac). Funcia de adaptare / fitness indic ct de bun este o soluie (ct este de adaptat un cromozom). De exemplu, presupunem c la un moment dat avem combinaia: I wi vi 1 70 40 2 55 15 3 40 5 4 15 30 5 5 10

Atunci, pentru cromozomul: 01101, constrngerea este: w = 55 + 40 + 5 = 100 C = 100 (ok), iar funcia de adaptare: v = 15 + 5 + 10 = 30

3
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm

3. Reguli de codificare. Exemple de probleme specifice

Exemplul 4. Problema mpachetrii. Se consider un set de n obiecte caracterizate prin dimensiunile (d1, d2,..., dn) i un set de m cutii avnd capacitile (c1, c2,..., cm). Se pune problema plasrii obiectelor n cutii astfel nct capacitatea acestora s nu fie depit iar numrul de cutii utilizate s fie ct mai mic. O posibil reprezentarea binar pentru aceast problem este urmtoarea: se utilizeaz o matrice cu n linii i m coloane iar elementul Sij are valoarea 1 dac obiectul i este plasat n cutia j i 0 n caz contrar. Prin liniarizarea matricii se ajunge ca fiecare soluie s fie reprezentat printr-un cromozom coninnd mn gene. Exemplul 5. Optimizarea unei funcii definite pe un domeniu continuu. Se consider o funcie f : D = [a1, b1] x [a2, b2] x ... x [an, bn] Rn R i se caut x* = (x1*,..., x*n) care minimizeaz funcia f (f(x*) < f(x) pentru orice x D). n acest caz codificarea binar nu este evident. Fiecare dintre componentele xi ale lui x sunt transformate dup cum urmeaz: (i) se scaleaz pentru a fi aduse n intervalul [0,1): vi = (xi ai) / (bi ai); (ii) se stabilete numrul de bii untilizai pentru reprezentare (r) i se aduce valoarea vi n mulimea {0,1,..., 2r 1}: ui = [vi * (2r 1)]. Valoarea obinut se reprezint n baza 2. De exemplu, pentru x = (1.25,2.3) [1,2] x [2,3] i r = 5 se obine aproximativ x = (0.25,0.3) iar cromozomul asociat va avea 2r = 10 componente binare: (0,0,1,1,1,0,1,0,0,1). Este evident c aceast codificare are caracter aproximativ, motiv pentru care n cazul variabilelor reale se prefer utilizarea codificrii reale. Utilizarea reprezentrii binare n cazul n care configuraiile corespunztoare problemei sunt vectori de valori reale prezint dezavantajul c valori reale aflate la distan mic au asociate reprezentri binare aflate la distan mare (difer n multe poziii binare). De exemplu reprezentarea lui 7 pe 4 bii este 0111 iar reprezentarea lui 8 este 1000. Se remarc faptul c trecerea de la reprezentarea lui 7 la cea a lui 8 necesit nu mai puin de 5 complementari de bii. O alt variant de codificare care evit acest dezavantaj este codificarea de tip Gray caracterizat prin faptul c valori ntregi succesive au asociate iruri de bii care difer ntr-o singur poziie. Codificare real. Este adecvat pentru problemele de optimizare pe domenii continue (vezi exemplul 5 de mai sus). In acest caz cromozomii sunt vectori cu elemente reale, fiind chiar elementele domeniului de definiie al funciei (pentru exemplul de mai sus cromozomul este chiar x = (1.25,2.3). Avantajul acestei reprezentri este faptul c este natural i nu necesit proceduri speciale de codificare/decodificare. Codificare specific. Se alege o variant ct mai apropiat de specificul problemei. Exemplul 6. Problema mpachetrii. n varianta de codificare binar apare dezavantajul c pot fi generate configuraii care nu sunt fezabile. Acestea sunt de exemplu matricile care conin mai multe valori egale cu 1 pe o linie (aceasta ar nsemna c un obiect este simultan inclus n mai multe cutii). Pentru a evita astfel de situaii se poate utiliza un alt tip de reprezentare: un vector cu n componente (s1,..., sn) n care si {1,..., m} reprezint cutia n care este inclus obiectul i. Exemplul 7. Problema comis-voiajorului. Se consider un set de n orae i se pune problema gsirii unui traseu care s treac o singur dat prin fiecare ora i care s aib costul minim (dac costul este proporional cu lungimea traseului atunci se caut trasee de lungime minim). O codificare natural a unei configuraii (traseu) este: (s1,..., sn) unde si {1, ... , n} reprezint numrul de ordine al oraului vizitat la etapa i (la fiecare etapa comis-voiajorul se afl ntr-un ora). Pentru a fi respectat restricia ca fiecare ora s fie vizitat o singur dat este necesar ca elementele vectorului s s fie distincte (si sj pentru orice i j). Astfel fiecare configuraie poate fi interpretat ca o permutare de ordin n, motiv pentru care aceast codificare este numit i codificare de tip permutare.
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm

4
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

4. Reguli de decodificare
Decodificarea asigur pregtirea evalurii configuraiei. Atenie special ridic decodificarea doar n cazul codificrii binare a unor vectori cu valori reale (vezi exemplul 5 de la codificarea binar). n cazul codificrii binare clasice a unei valori din intervalul [a, b] pentru a obine valoarea decodificat pornind de la irul de r bii obinut prin codificare se folosete relaia:
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm

5. Construirea funciei de adaptare


Pentru a folosi analogia dintre procesele de cutare i cele de evoluie din natur este util s se reformuleze problemele de optimizare ca probleme de maximizare (orice problem de minimizare poate fi transformat ntr-una de maximizare prin schimbarea semnului funciei obiectiv). Pentru o problem de minimizare de forma: s se determine x* D cu proprietatea c f(x*) < f(x) pentru orice x D, funcia de adaptare are fi F(x) = f(x). n cazul unei probleme de maximizare atunci funcia de adaptare poate fi chiar funcia obiectiv. Exemplul 8. Problema ONEMAX. n acest caz funcia de adaptare coincide cu funcia obiectiv a problemei, calitatea unei soluii fiind reflectat de numrul de componente egale cu 1. Exemplul 9. Problema comis-voiajorului. n acest caz, dac se folosete reprezentarea de tip permutare restricia problemei (trecerea o singur dat prin fiecare ora) este implicit satisfcut. Dac matricea C conine costurile (c(i, j) reprezint costul trecerii de la oraul i la oraul j) atunci funcia de cost poate fi descris prin:

n condiiile n care costul trebuie minimizat, funcia de adaptare va fi opusa funciei cost.

6. Selecia
Selecia are ca scop determinarea populaiei intermediare ce conine prinii care vor fi supui operatorilor genetici de ncruciare i mutaie precum i determinarea elementelor ce vor face parte din generaia urmtoare. Criteriul de selecie se bazeaz pe gradul de adaptare al configuraiei la cerinele problemei, exprimat prin valoarea funciei de adaptare. Nu este obligatoriu ca att prinii ct i supravieuitorii se fie determinai prin selecie, fiind posibil ca aceasta s fie folosit doar ntr-o singur etap. De exemplu, toi indivizii populaiei curente sunt poteniali prini dar dup ncruciare i mutaie doar cei determinai prin procesul de selecie vor supravieui. Pe de alt parte este posibil ca prini s fie doar indivizii selectai iar toi cei generai prin ncruciare i mutaie s fie transferai n noua generaie. Procesul de selecie nu depinde de modul de codificare a elementelor populaiei fiind ns legat de funcia de adaptare. Exist mai multe metode de selecie.

5
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

6.1. Elitismul Aceast modalitate de selecie presupune c cel mai adaptat individ este copiat direct n noua populaie (mai rar primii civa cei mai adaptai). Aceasta asigur faptul c niciodat nu se va pierde soluia cea mai bun. 6.2. Selecia de tip rulet Ideea de baz a acestui tip de selecie este c indivizii mai adaptai au anse mai mari. Ruleta se nvrte de n ori pentru a se alege n indivizi.

Fie S suma tuturor funciilor de adaptare (ale tuturor indivizilor din populaie). -Se genereaz un numr aleatoriu N ntre 1 i S -Se returneaz cromozomul a crui funcie de adaptare adugat la suma parial este N -Cromozom: 1 2 3 4 5 6 -Fitness: 8 2 17 7 4 11 27 34 38 49 -Suma parial: 8 10 -N (1 N 49): 23 - Selectat: 3 6.3. Selecia pe baza rangurilor Se ordoneaz cresctor valorile funciei de adaptare pentru toate elementele populaiei. Se rein valorile distincte i li se asociaz cte un rang (cea mai mic valoare are rangul 1, iar cea mai mare are rangul maxim). Se partiioneaz populaia n grupuri de elemente care au aceeai valoare a funciei de adaptare i li se asociaz rangul corespunztor valorii. Presupunnd c sunt k grupuri se construiete distribuia de probabilitate:

Se genereaz cte un rang aleator n conformitatea cu distribuia de mai sus (folosind metoda ruletei de exemplu) dup care se selecteaz uniform aleator un element din grupul corespunztor rangului. O alt modalitate de stabilire a probabilitilor de selecie pornind de la rangul elementelor este urmtoarea. Se ordoneaz cresctor cele m elemente ale populaiei i i se asociaz cte un rang (0 pentru elementul cu cel mai mic grad de adaptare i m - 1 pentru elementul cu cel mai mare grad de adaptare). Probabilitatea de selecie a elementului i se calculeaz astfel:

cu < valori alese astfel nct

p
i =1

= 1 , ceea ce implic a + = 2. poate fi interpretat ca

numrul mediu de copii ale celui mai slab element iar ca numrul mediu de copii ale celui mai bun element.

6
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm

6.4. Selecia de tip turnir n acest caz se aleg aleatoriu k membri din populaie i se determin cel mai adaptat dintre acetia. Procedura se repet pentru a selecta mai muli prini. Aceast metod este mai rapid dect seleciile prin rulet sau ranguri. Probabilitatea selectrii individului i depinde de mrimea funciei de adaptare a lui i, precum i de dimensiunea eantionului k. Turnirul poate fi determinist sau probabilistic.
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm

7. ncruciarea
ncruciarea permite combinarea informaiilor provenite de la doi sau mai muli prini pentru generarea unuia sau mai multor urmai. Vom considera doar cazul a doi prini (notai cu x i y) care genereaz doi urmai (notai cu x' i y'). ncruciarea (numit uneori recombinare) depinde de modul de codificare a datelor aplicndu-se direct asupra cromozomilor. Variante specifice codificrii binare (cromozomul este o succesiune de n cifre binare): ncruciare cu un punct de tietur. Se alege (aleator) un k {l,..., n 1} numit punct de tietur (ncruciare) i se construiesc urmaii n modul urmtor: x'= (xi,...,xk,yk+i,...yn) i y' = (yu ... ,yk,xk+i,.. .xn).

ncruciare cu dou sau mai multe puncte de tietur se realizeaz asemntor cu cea de mai sus, doar c pot exista mai multe puncte de taiere. ncruciare uniform. La construirea fiecrui urma se selecteaz cu probabilitatea p o gen din primul printe i cu probabilitatea 1-p o gen din al doilea printe. Cazul cel mai natural este cel n care p = 0.5. ncruciare specific codificrii de tip permutare. n cazul codificrilor specifice i operatorii de ncruciare i mutaie sunt specifici fiind de regul bazai pe transformri cu caracter euristic sau pe transformri ntlnite n alte tehnici de rezolvare a problemei. De exemplu n cazul codificrii de tip permutare trebuie ca ncruciarea s conserve specificul codificrii. Exemplul 10. S considerm problema comis voiajorului cu 7 orae (identificate prin A, B, C, D, E, F i G) i dou configuraii cu rol de prini: (A,B,C,D,E,F,G) i (D,C,F,E,A,B,G). n acest caz ncruciarea cu un punct (k = 3) conduce la (D,C,F,A,B,E,G) respectiv (A,B,C,D,F,E,G). Primul fiu este obinut prelund secvena format din primele k = 3 orae din al doilea printe, iar celelalte orae sunt tot din al doilea printe ns amplasate n ordinea n care ele apar n primul printe. n acest fel se asigur faptul c urmaii conin aceleai elemente ns amplasate n alt ordine dect cea din cadrul prinilor. Nu e necesar ca ncruciarea s se aplice ntotdeauna, modul de aplicare putnd fi controlat prin intermediul unei probabiliti (numit probabilitate de ncruciare i notat cu pc). Valori uzuale pentru pc sunt cuprinse ntre 0.2 i 0.9.

7
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

8. Mutaia
Asigur alterarea valorii unor gene pentru a evita situaiile n care o anumit alel nu apare n populaie ca urmare a faptului c nu a fost generat de la nceput. n felul acesta este asigurat diversitatea populaiei. n cazul codificrii binare cel mai simplu i frecvent operator de mutaie este cel n care se selecteaz aleator un cromozom, n cadrul acestuia se selecteaz o gen iar valoarea acesteia este modificat (0 devine 1 iar 1 devine 0). n funcie de modul n care se selecteaz cromozomii i genele exist diverse variante. De exemplu pentru fiecare cromozom se decide cu o anumit probabilitate (pm, numit probabilitate de mutaie) dac el va fi supus mutaiei sau nu. n caz afirmativ se selecteaz (uniform aleator) o gen i valoarea acesteia se modific. n felul acesta ntr-un cromozom poate fi modificat o singur gen. O alt variant este aceea n care toate genele se consider ca fcnd parte din aceeai structur i pentru fiecare dintre ele se decide dac va fi modificat sau nu. In felul acesta este posibil ca mai multe gene din cadrul unui cromozom s fie modificate. n cazul codificrii de tip permutare mutaia cea mai simpl const n schimbarea poziiei a dou elemente. De exemplu n cazul TSP de la configuraia (D, C, F,A,B, E, G) se ajunge la configuraia (D, C, E,A,B, F, G) prin interschimbarea elementelor de pe poziiile 3 i 6.

9. Domenii de aplicabilitate
Algoritmii evolutivi se utilizeaz n general pentru probleme de optimizare, atunci cnd nu exist alt strategie de rezolvare a problemei i este acceptat un rspuns aproximativ. Cteva dintre domeniile de aplicabilitate sunt: - Planificare. Majoritatea problemelor de planificare (alegerea traseelor optime ale unor vehicule, rutarea mesajelor ntr-o reea, planificarea unor activitti etc.) pot fi formulate ca probleme de optimizare. Multe dintre acestea sunt probleme din clasa "NP-hard" necunoscndu-se algoritmi de rezolvare care s aib complexitate polinomial. Pentru astfel de probleme algoritmii evolutivi ofer posibilitatea obinerii n timp rezonabil a unor soluii sub-optimale de calitate acceptabil. - Proiectare. Algoritmii evolutivi sunt aplicai cu succes n proiectarea circuitelor digitale, a filtrelor dar i a unor structuri de calcul cum sunt reelele neuronale. Ca metode de estimare a parametrilor unor sisteme care optimizeaz anumite criterii se aplic n diverse domenii din inginerie cum ar fi: proiectarea avioanelor, proiectarea reactoarelor chimice, proiectarea structurilor n construcii etc. - Simulare i identificare. Simularea presupune s se determine modul de comportare a unui sistem pornind de la un model al acestuia. Identificarea este sarcina invers a identificrii structurii sistemului pornind de la modul de comportare. Algoritmii evolutivi sunt utilizai att n simularea unor sisteme din inginerie dar i din economie (de exemplu pentru modelarea proceselor de competiie n marketing). Identificarea unui model este util n special n efectuarea de predicii n diverse domenii (economie, finane, medicin, tiinele mediului etc.) - Control. Algoritmii evolutivi pot fi utilizai pentru a implementa controlere on-line asociate sistemelor dinamice (de exemplu pentru a controla roboii mobili). - Clasificare. Un sistem de clasificare se bazeaz pe o populaie de reguli de asociere (reguli de producie) care evolueaz pentru a se adapta problemei de rezolvat (calitatea unei reguli se stabilete pe baza unor exemple). Algoritmii evolutivi au fost utilizai cu succes n clasificarea imaginilor, n biologie (pentru determinarea structurii proteinelor) sau n medicin (pentru clasificarea electrocardiogramelor).

8
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm

10. Aplicaii
1. S se minimizeze funcia urmtoare (funcia Rastrigin generalizat), pentru n = 5:

Populaia poate conine 100 de indivizi iniializai aleatoriu din domeniul de definiie al variabilelor. Cromozomii vor fi vectori de 5 numere reale. Se va utiliza selecia prin turnir cu 2 indivizi. Probabilitatea de ncruciare se va considera 90% iar probabilitatea de mutaie 2%. Pentru mutaie, se va reiniializa gena cu o valoare din domeniul de definiie. Se va utiliza elitismul. Avnd n vedere c un algoritm evolutiv este o metod euristic de optimizare, se va considera soluie o aproximare suficient de fin a soluiei exacte, de exemplu, cu o eroare maxim de 10 -4.

2. S se rezolve problema rucsacului folosind codificarea binar.

9
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm

Pentru A = 10 i = 2, funcia are minimul f(0)=0. Domeniul variabilelor este: -5.12 < xi < 5.12.

Referine bibliografice 1. DUMITRACHE, I., N. CONSTANTIN, M, DRAGOICEA: Reele neurale. Identificarea i conducerea proceselor, Ed. Matrix Rom, 1999. 2. DUMITRESCU, D. Algoritmi genetici i strategii evolutive aplicaii n inteligena artificial i n domenii conexe, Edit. Albastr, 2000 3. ERBAN, S.: Modelare i simulare, Ed. Printech Rom, 2007. 4. http://www.ici.ro/RRIA/ria2007_4/art02.html 5. http://web.info.uvt.ro/~dzaharie/cursnn1.pdf 6. http://web-ng.info.uvt.ro/~dzaharie/cdsa5.pdf 7. http://www.ipe.ro/RePEc/WorkingPapers/cs14-2.pdf

10
Tiberius Dumitriu, Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/lab_ia.htm

Tiberius Dumitriu, Florin Leon, Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm

S-ar putea să vă placă și