Documente Academic
Documente Profesional
Documente Cultură
Laboratorul 9
Algoritmi evolutivi
Iniializarea populaiei
Reinserare
Condiie
de stop
Rezultat
1
Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm
1. Obiective
Selecia. Determin prinii care se vor reproduce pentru a forma urmtoarea generaie.
Indivizii mai adaptai din populaie (care se apropie mai mult de soluia problemei) sunt
favorizai, n sensul ca au mai multe anse de reproducere;
ncruciarea. Pornind de la doi prini, se genereaz copii;
Mutaia. Pentru a asigura diversitatea populaiei, se aplic transformri cu caracter aleatoriu
asupra copiilor nou generai, permind apariia unor trsturi care nu ar fi aprut n cadrul
populaiei doar prin selecie i ncruciare.
3. Tipuri de codificare
Modul n care o posibil soluie este codificat ntr-un cromozom depinde de problema
concret care trebuie rezolvat.
Codificarea binar
Este varianta clasic a algoritmilor genetici. n acest caz, cromozomii sunt iruri de n bii, n
fiind numrul de gene. Este adecvat pentru problemele de optimizare combinatorial n care
configuraiile pot fi specificate ca vectori binari.
Exemplul 3.1. Problema rucsacului
Se consider o mulime de n obiecte caracterizate prin greutile (w1, ... , wn) i prin valorile
(v1, ... , vn). Se pune problema determinrii unei submulimi 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 (engl. fitness) arat ct de bun este o soluie, ct este de adaptat un
cromozom.
2
Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm
Pentru a ghida cutarea ctre soluia problemei, asupra populaiei se aplic transformri
specifice evoluiei naturale:
1
70
40
2
55
15
3
40
5
4
15
30
5
5
10
3
Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm
5. Selecia
Selecia are ca scop determinarea prinilor care vor genera elementele populaiei din
urmtoarea generaie. Criteriul de selecie se bazeaz pe valoarea funciei de adaptare. Procesul de
selecie nu depinde de modul de codificare a elementelor populaiei (binar, real etc.).
6. ncruciarea
ncruciarea (engl. crossover) permite combinarea informaiilor provenite de la doi prini
pentru generarea unuia sau a doi 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 i recombinare) depinde
de modul de codificare al datelor, aplicndu-se direct asupra cromozomilor.
ncruciarea binar
Cea mai des folosit este ncruciarea cu un punct. Reamintim c aici cromozomul este un
ir de n bii. Se alege n mod aleatoriu un k { l, ..., n 1 }, numit punct de tietur, i se
construiesc urmaii n modul urmtor:
4
Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm
ncruciarea real
ncruciarea aritmetic intermediar combin materialul genetic al prinilor x i y (vectori
de numere reale) aplicnd urmtoarele reguli pentru a obine copiii x' i y':
xi' = ai xi + (1 ai) yi
yi' = (1 ai) xi + ai yi
Vectorul a are aceeai lungime ca i cromozomii, iar elementele sale sunt cuprinse n
intervalul (0, 1) sau (0.25, 1.25). n ultimul caz, urmaii se vor gsi n interiorul unui hipercub
puin mai mare dect hipercubul delimitat de valorile genelor prinilor.
ncruciarea aritmetic liniar combin materialul genetic al prinilor x i y, aplicnd
regulile:
xi' = a xi + (1 a) yi
yi' = (1 a) xi + a yi
n acest caz, a este un scalar ales aleatoriu din intervalul (0, 1) sau (0.25, 1.25). Astfel,
copiii vor fi plasai pe un segment de dreapt determinat de genele prinilor.
5
Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm
7. Mutaia
Mutaia binar
Cel mai simplu i des utilizat tip de mutaie binar este cel n care se selecteaz o gen iar
valoarea acesteia este negat (0 devine 1 iar 1 devine 0) cu o anumit probabilitate, numit
probabilitate de mutaie i notat cu pm. Aceasta trebuie s fie n general mic, de exemplu 0.02.
Mutaia real
Pentru codificarea real, se folosete de obicei resetarea valorii unei gene la un numr
aleatoriu din domeniul ei de definiie. Rata de mutaie real poate fi mai mare dect la mutaia
binar, deoarece numrul valorilor reale este mai mic dect numrul de bii, de exemplu 0.1.
8. Domenii de aplicabilitate
Algoritmii evolutivi sunt utilizai 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:
Mutaia asigur modificarea valorilor unor gene pentru a evita situaiile n care o anumit
alel (valoare posibil a unei gene) nu apare n populaie deoarece nu a fost generat de la nceput.
n felul acesta poate fi crescut diversitatea populaiei i se poate evita convergena ntr-un optim
local.
Mutaia se efectueaz asupra copiilor generai dup aplicarea operatorului de ncruciare.
9. Aplicaii
9.2. Un fermier are 100 m de gard cu care vrea s mprejmuiasc un teren dreptunghiular
care se nvecineaz cu un ru. Latura vecin cu rul nu are nevoie de gard. Care sunt dimensiunile
terenului cu arie maxim care poate fi mprejmuit n acest fel?
Equation.ComputeFitness(Chromosome c)
Funcia de adaptare pentru prima problem.
Fence.ComputeFitness(Chromosome c)
Funcia de adaptare pentru a doua problem.
n plus, aici trebuie satisfcut constrngerea. O modalitate elegant de a asigura
fezabilitatea soluiilor este de a repara cromozomii, scalndu-le valorile genelor astfel nct suma
lor s fie ntotdeauna 100. Abia apoi se calculeaz aria.
Program.Main()
Pentru ambele probleme, trebuie s gsii, prin ncercri repetate, valorile parametrilor
algoritmului (dimensiunea populaiei, numrul maxim de generaii, ratele de ncruciare i mutaie)
care dau cele mai bune rezultate.
8
Inteligenta artificiala - Laborator, http://florinleon.byethost24.com/lab_ia.htm
EvolutionaryAlgorithm.Solve(...) : Chromosome
Trebuie completat bucla principal, cu apelul operatorilor genetici.