Paradigme ale CE Calculul evolutiv contine paradigmele optimizarii si clasificarii cu masini instruibile (machine learning), care se bazeaza pe mecanisme evolutive: genetica biologica, selectia naturala comportament adaptiv Paradigmele calculului evolutiv furnizeaza instrumente pentru a construi sisteme inteligente care modeleaza comportamentul inteligent.
Specificul CE Mecanisme de cautare in spatiul solutiilor bazate pe principiile evolutiei naturale principiul supravietuirii celui mai bun (teoria evolutionista - Darwin). Pentru gasirea solutiei se utilizeaza o populaţie de soluţii potentiale care evolueaza (căutători). Evolutia indivizilor din populatie: indivizii din noua generatie devin mai adaptati mediului dacat indivizii din care au fost creati - similar cu adaptarea naturala. Furnizeaza aproximari din ce in ce mai bune ale solutiei. Pentru a ghida cautarea solutiei, asupra populatiei se utilizeaza transformari specifice evolutiei naturale: selectie, recombinare (crossover, incrucisare), mutatie, reinsertie, etc
EVOLUTIONARY ALGORITHMS Selecție Transformari specifice CE Indivizii populatiei mai apropiati de solutia problemei (o masura de tip eroare) sunt considerati mai adecvati (potriviti) si sunt favorizati, adica au mai multe sanse de a fi selectati pentru crearea generatiei urmatoare.
EVOLUTIONARY ALGORITHMS Transformari specifice CE Recombinare (Crossover, Incrucisare) Pornind de la doi indivizi ai populatiei curente (parinti) se genereaza noi indivizi (urmasi, copii). In functie de calitatea acestora (adecvare, potrivire) urmasii isi (pot) inlocui parintii. Mutatie Pentru a asigura variabilitatea (diversitatea) populatiei, se aplica, la fel ca in natura, transformari cu caracter aleator (stocastic) asupra indivizilor populatiei, permitand astfel aparitia unor noi trasaturi (gene) indivizi, care doar prin selectie si incrucisare nu ar fi aparut in cadrul populatiei.
Paradigmele EC sunt unice Paradigmele CE difera de paradigmele metodelor traditionale de cautare si optimizare deoarece in CE: in cautare se utilizeaza o populatie de solutii candidate (indivizi) utilizeaza în mod direct informatii privind potrivirea (adecvarea) in loc de informatii de gradient, derivate, etc. utilizeaza reguli de tranzitie (determinarea variabilelor in iteratia urmatoare) aleatoare (stocastice, ne-deterministe) nu deterministe.
Subdomenii ale CE In functie de modul in care este construita populatia si de modul in care este implementata evolutia, sistemele de calcul evolutiv pot fi incadrate in mai multe categorii [Eberhart, Shi07]: Algoritmi genetici (genetic algorithms) Programare evolutiva (evolutionary programming) Strategii evolutive (evolution strategies) Programare genetica (genetic programming) Optimizare cu roiuri de particule (particle swarm optimization)
EVOLUTIONARY ALGORITHMS Subdomenii ale CE - AG Algoritmi genetici (genetic algorithms) Reprezinta tehnici de cautare si optimizare avand ca punct de pornire o metafora biologica, bazata pe mostenirea genetica si evolutia naturala Se folosesc in special pentru rezolvarea unor probleme complexe de optimizare - prin minimizarea (maximizarea) unei functii obiectiv). Populatia este reprezentata de stari din spatiul problemei codificate binar (un element al populatiei este un sir de biti) sau cu variabile reale. Principalii operatori sunt cei de selectie si incrucisare, cel de mutatie avand o probabilitate mai mica de aplicare. Algoritmii genetici au fost propusi de catre Holland in perioada anilor 1960, initial ca modele ale evolutiei si adaptarii la mediu a sistemelor naturale. Ulterior s-a observat ca algoritmii genetici pot fi utilizati si ca instrumente eficace in rezolvarea problemelor de optimizare.
Subdomenii ale CE - PE Programare evolutiva (evolutionary programming) Initial programarea evolutiva a avut ca obiectiv dezvoltarea unor structuri de calcul (automate) printr-un proces de evolutie in care se utilizeaza doar selectia si mutatia; nu se utilizeaza incrucisarea. Fiecare punct in populatie reprezinta o intraga specie, speciile fiind in competitie Concentrata pe procese top-down a comportamentului adaptiv; dezvoltarea de modele comportamentale Bazele domeniului au fost puse de catre Fogel. Ulterior, programarea evolutiva a fost orientata catre rezolvarea problemelor de optimizare avand aceeasi sfera de aplicabilitate ca si strategiile evolutive. Se folosesc in special pentru rezolvarea unor probleme de optimizare.
Subdomenii ale CE - SE Strategii evolutive (evolution strategies) Se bazeaza pe evolutia evolutiei Au fost concepute initial pentru a rezolva probleme de optimizare, in tehnica fiind destinate rezolvarii problemelor de optimizare continua. Supravietuirea celui mai potrivit individ Operatorul principal este cel de mutatie dar este folosita si recombinarea Pentru strategiile evolutive au fost dezvoltate scheme de adaptare a parametrilor de control (auto-adaptare). Scopul este de a muta populatia inspre regiunea cea mai buna din spatiul solutiilor La dezvoltarea strategiilor evolutive contributii importante au adus Rechenberg si Schwefel.
Subdomenii ale CE - PG Programare genetica (genetic programming) Este o directie mai recenta a calculului evolutiv, dezvoltata la sfarsitul anilor 1980 de catre Koza. Scopul programarii genetice este dezvoltarea unor "modele" de calcul (programe simple). Populatia este reprezentata de programe care candideaza la rezolvarea problemei. Exista diferite reprezentari ale elementelor populatiei, una dintre cele mai utilizate fiind aceea in care se utilizeaza o structura arborescenta pentru reprezentarea programelor (a populatiei). Incrucisarea este realizata selectand aleator sub-arbori din arborele asociat programelor parinte si interschimbandu-le. Ca si in cazul algoritmilor genetici mutatia are pondere mica. Programe de calculator care sunt codificate de catre alte programe proiectate pentru a le optimiza performantele
EVOLUTIONARY ALGORITHMS Subdomenii ale CE - PSO Particle swarm optimization - PSO PSO is a population based (stochastic) optimization algorithm that simulates the social behavior of animals Optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. PSO optimizes a problem by having a population of candidate solutions, (particles), and moving these particles around in the search-space according to simple mathematical formulae over the particle's position and velocity. Each particle's movement is influenced by its local best known position and is also guided toward the best known positions in the search-space, which are updated as better positions are found by other particles. This is expected to move the swarm toward the best solutions.
Structura unui algoritm evolutiv
Bazele biologice ale CE Legatura cu genetica, ramură a biologiei care studiază fenomenele şi legile eredităţii şi variabilităţii organismelor Cromozom: o structura ordonata (liniara) de elemente numite gene ale caror valori determina caracteristicile unui individ si care transmite informatie genetica. In genetica pozitiile pe care se afla genele in cadrul cromozomului se numesc loci (locus sg.), iar valorile pe care le pot lua genele se numesc alele (alel sg.).
Bazele biologice ale CE cont. Vectorii (sirurile, pattern) individuali utilizati in CE corespund cromozomilor din sistemele biologice. In genetica, colectia cromozomilor necesara pentru a caracteriza complet un organism (individ) se numeste genotip (structura). In CE, colectia de vectori necesara pentru a specifica complet un individ este denumita structura. In general, in CE un individ este caracterizat printr-un singur vector (vector de stare, pattern) cromozom structura. Un fenotip (phénotype) este setul de valori corespunzand unui genotip, adica este o structura decodata (o solutie)
EVOLUTIONARY ALGORITHMS Cromozomi umani Contin informatia ereditara a organismului 46 de cromozomi (organizati in perechi) in nucleul fiecarei celule: 22 perechi de autozomi (numerotati dupa marime) arata la fel pentru ambele sexe 1 pereche de heterozomi (determina sexul) feminin X,X masculin X,Y in fiecare pereche avem cate un cromozom de la fiecare parinte) cromozomii pot fi vazuti ca siruri lungi de gene Perechea 23 XX - x de la mama, X de la tata XY x de la mama, Y de la tata X : ~ 2000 gene; Y: >200 gene