Sunteți pe pagina 1din 9

Gene expression programming

Antonache Emanuel Adrian


DMDW
Master ABD, anul I
Algoritm genetic care foloseste o populatie de indivizi, o selecteaza pe baza fitness-ului si
introduce variatii genetice folosind operatori genetici
Indivizii sunt codificati ca string-uri liniare de dimensiune fixa numite cromozomi, care sunt apoi
reprezentati ca entitati neliniare de diferite lungimi si forme, de exemplu prin arbori de expresie
Organizare structurala si functionala a cromozomilor; translatarea limbajului cromozomilor in
limbajul de arbori de expresie; crearea, maturarea, reproducerea unui individ, conducand la
descendenti cu noi proprietati si capabili de adaptare

Organigrama unui algoritm


GEP
Generare aleatoare a cromozomilor populatiei initiale
Urmeaza etapa de traducere in expresie a cromozomilor si de evaluare a fitness-ului
fiecarui individ
Indivizii sunt selectati in functie de fitness pentru a se reproduce, ducand la
descendenti cu anumite trasaturi; descendentii sunt supusi aceluiasi proces de
dezvoltare, pana cand s-a gasit o solutie sau s-a ajuns la un anumit numar de
generatii
Reproducerea presupune atat replicare cat si actiunea unor operatori genetici care
au rolul de a genera diversitate genetica; un cromozom poate fi modificat de oricati
operatori sau nemodificat
Cromozomul este format dintr-un string linear si de lungime fixa format din mai
multe gene. De exemplu, daca avem expresia algebrica , , ea se poate
traducere in arborele de expresie , , care in expresie de string-uri se
traduce in , unde Q = sqrt.
Genele sunt compuse dintr-un cap si o coada. Capul contine simboluri care reprezinta
atat functii cat si terminale, iar coada contine doar terminale. De exemplu, o gena
formata din {Q, *, /, -, +, a, b} care are un cap de lungime 10 si o coada de lungime 11,
poate fi reprezentata sub forma , unde cu bold a fost reprezentata
coada.
Daca de exemplu o mutatie a aparut la pozitia 9, schimband b in +, atunci urmatoarea
gena este obtinuta:

Din punct de vedere al arborilor de expresie, transformarea de mai sus se traduce


pornind de la arborele si ajungand la arborele

Observam in ambele situatii ca, desi gena are lungime 21, primul arbore are lungime
11, iar al doilea are lungime 13, ceea ce arata ca, desi are lungime fixa, o gena are
potentialul de a se reprezenta in arbori de expresii de diferite lungimi si forme
Arborii de expresie pot interactiona, combinandu-se prin utilizarea unui operator. In
exemplu urmator, subarborii se combina prin utilizarea operatorului +
Succesul unei probleme depinde de alegerea functiei de fitness, intrucat obiectivul
trebuie sa fie clar si corect definit pentru ca sistemul sa evolueze in directia dorita

Unul din obiectivele GEP este de regresie simbolica, adica gasirea unei expresii care
sa fie evaluata bine pentru toate cazurile de fitness cu o anumita eroare. In general,
daca eroarea se doreste a fi foarte mica, atunci e posibil ca sistemul sa evolueze
foarte incet si sa nu ajunga la o solutie satisfacatoare. Pe de alta parte, daca eroarea
este mare, atunci se vor gasi multe solutii care sunt departe de o solutie dorita.

Solutie: sistemul gaseste singur cea mai buna solutie cu eroare minima. Pentru acest
lucru, i se da o limita de selectie larga, de exemplu cu o eroare de 20%. Desi indivizii
initiali se pot dovedi nesatisfacatori, in urma procesului de selectie aplicat repetat pe
cei mai buni indivizi, sistemul va ajunge treptat la o solutie buna.

Indivizii sunt alesi in functie de fitness prin mai multe metode, cum ar fi ruleta sau
turneul combinate cu clonarea celui mai bun individ (elitism). Acestia sufera o serie
de transformari, in urma carora pot fi replicati, pot suferi mutatii in cromozomi,
elemente din cromozomi pot fi transpuse, cromozomii se pot recombina.
Algoritmul presupune pentru inceput alegerea setului de functii si a celui de
terminale, urmat de incarcarea setului de date pentru evaluarea fitness-ului si
crearea cromozomilor populatiei initiale in mod aleatory. Pentru fiecare individ se
traduce cromozomul in arbore de expresii, se executa programul si se evalueaza
fitness-ul. Se verifica conditia de oprire, si daca nu se indeplineste se selecteaza
indivizii cei mai apti, se aplica operatori genetici pe acestia si algoritmul se repeta de
la pasul de traducere a cromozomului fiecarui individ in arbore de expresii.

Aplicatii:
JAVAGEP disponibil la https://github.com/mjsottile/javagep
PyGEP disponibil la https://code.google.com/archive/p/pygep/source
GEP4J disponibil la https://code.google.com/archive/p/gep4j/
Bibliografie

http://www.gene-expression-programming.com/webpapers/GEP.pdf
http://www.gene-expression-programming.com/Tutorial001.asp#TheArch
itectureOfGEPPrograms
https://www.dtreg.com/methodology/view/gene-expression-programming
http://www.gepsoft.com/gepsoft/APS3KB/Chapter05/Section1/SS2.htm
http://www.cleveralgorithms.com/nature-inspired/evolution/gene_expre
ssion_programming.html
Intrebari?

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