Sunteți pe pagina 1din 45

Elemente de calcul

evolutiv
1
Catalin Stoean
catalin.stoean@inf.ucv.ro
http://inf.ucv.ro/~cstoean
1
Evolutie si inteligenta artificiala.
Paradigme moderne si aplicatii,
R. Stoean, C. Stoean
Catalin
Stoean
Inteligenta Artificiala
2/45
Ce este calculul evolutiv?
Calculul evolutiv reprezint un domeniu de cercetare al
informaticii.
Dup cum sugereaz i numele, sunt implicate calcule,
ns domeniul este inspirat din procesul evoluiei naturale.
Algoritmii care apar n acest domeniu se numesc
algoritmi evolutivi i ei includ subdomenii precum:
programarea evolutiv
strategii evolutive
algoritmi genetici
programare genetic
Catalin
Stoean
Inteligenta Artificiala
3/45
Ce urmrim astzi?
Concepte de baz ale calculului evolutiv:
Metafora evolutiv
Componentele unui algoritm evolutiv
Aplicaii pe probleme concrete
Problema damelor
Optimizarea unei funcii
Catalin
Stoean
Inteligenta Artificiala
4/45
Metafora evolutiv
Puterea evoluiei n natur este evident, deci este normal ca
evoluia natural s fie o surs de inspiraie pentru cercettori.
Metafora fundamental a calculului evolutiv leag evoluia natural
de un anumit tip de rezolvare de probleme, ncercare-i-eroare.
Evoluia natural poate fi descris astfel:
ntr-un mediu se gsete o populaie de indivizi care se lupt
pentru supravieuire i are capacitatea de a se reproduce.
Performana acestor indivizi este strns legat de felul n care
indivizii se adapteaz la mediul nconjurtor i de modul n care
indivizii reuesc s i ating scopurile.
Performana fiecrui individ influeneaz n mod direct ansa lui
de a se multiplica i de a supravieui.
Catalin
Stoean
Inteligenta Artificiala
5/45
Metafora evolutiv 2
ntr-o astfel de vedere macroscopic a evoluiei, un rol cheie este
jucat de selecie.
Avnd un mediu care poate conine doar un numr redus de
indivizi dotai cu instinctul primar al reproducerii, selecia este
un factor inerent n cazul n care se dorete ca marimea
populaiei s nu creasc exponenial.
Selecia natural i favorizeaz, ca i n natur, pe indivizii care
se lupt cel mai bine pentru resurse, altfel spus pe cei care se
adapteaz cel mai bine la mediu.
Este ceea ce se numete
supravieuirea celor mai puternici.
Catalin
Stoean
Inteligenta Artificiala
6/45
Analogia ntre contextul rezolvrii de probleme de tip ncercare-
i-eroare i evoluia natural se face n felul urmtor:
Mediul n care se afl indivizii se identific cu problema de
rezolvat
Indivizii sunt poteniale soluii ale problemei
Msura de performan va contoriza n acest caz ct de
bun calitativ este soluia curent n rezolvarea problemei.
Soluii poteniale sunt iniial generate iar cele care sunt mai
bune calitativ au cele mai mari anse s fie pstrate i s
participe la procesul de recombinare.
Metafora evolutiv 3
Catalin
Stoean
Inteligenta Artificiala
7/45
EVOLUTIE
Mediu
Individ
Performana
REZOLVAREA DE PROBLEME
Problem
Soluie candidat
Calitatea
Calitatea influeneaz ansele de a forma noi soluii
Performana influeneaz ansele de reproducere i supravieuire
Metafora evolutiv 4
Catalin
Stoean
Inteligenta Artificiala
8/45
Ideile principale
O populaie cu indivizi exist ntr-un mediu cu resurse limitate.
Competiia pentru aceste resurse face ca selecia s i avantajeze
pe indivizii mai buni care s-au adaptat mai bine la mediu.
Aceti indivizi acioneaz ca prini ai generaiei de noi indivizi
obinui prin recombinare i mutaie.
Noii indivizi sunt evaluai si lupt pentru supravieuire cu
generaia anterioar (posibil chiar cu prinii lor).
Selecia natural face ca performana populaiei s creasc odat
cu trecerea timpului.
Operatorii de variaie (mutaia i recombinarea) creeaz
diversitatea necesar n populaii i aduc noutate.
Selecia reduce diversitatea i acioneaz ca o for care duce la
creterea calitii.
Catalin
Stoean
Inteligenta Artificiala
9/45
Cautarea singulara vs. Cautarea din
cadrul algoritmilor evolutivi
Spaiul soluiilor Spaiul soluiilor
Cautarea singulara (hill climbing, simulated annealing)
folosete o singur soluie care sufer transformri.
Dezavantaj: se blocheaz des n maxime (optime) locale.
Algoritmii evolutivi folosesc multe soluii care evolueaz
(sufer transformri) simultan figur dreapta.
Catalin
Stoean
Inteligenta Artificiala
10/45
Concepte de baz ale calculului evolutiv:
Metafora evolutiv
Componentele unui algoritm evolutiv
Aplicaii pe probleme concrete
Problema damelor
Optimizarea unei funcii
Ce urmrim astzi?
Catalin
Stoean
Inteligenta Artificiala
11/45
Schema unui algoritm evolutiv
2
6
4
7
9
3
Populaia
Iniializare i
evaluare
Evaluri
6
4
7
9
Selecia
2 3
Reproducerea Mutaia
Evaluarea
Catalin
Stoean
Inteligenta Artificiala
12/45
Schema unui algoritm evolutiv
1. Se iniializeaz populaia cu indivizi generai aleator;
2. Se evalueaz fiecare individ;
3. Ct timp (condiia de terminare nu este satisfcut) execut
3.1 Se selecteaz prinii;
3.2 Se recombin perechi de prini;
3.3 Se aplic mutaia asupra descendenilor obinui
dup recombinare;
3.4 Se evalueaz fiecare descendent;
3.5 Se selecteaz indivizii care vor forma urmtoarea
generaie;
4. Sfrit ct timp
Catalin
Stoean
Inteligenta Artificiala
13/45
Componentele unui algoritm evolutiv
Reprezentarea
Evaluarea
Populaia
Selecia prinilor
Operatorii variaionali
Recombinarea
Mutaia
Iniializarea i terminarea
Catalin
Stoean
Inteligenta Artificiala
14/45
Reprezentarea
Soluiile candidat ale problemei de rezolvat trebuie
reprezentate (codificate) sub form de indivizi
(cromozomi).
Fiecare cromozom conine gene.
Orice element din spaiul soluiilor trebuie s aib
corespondent n spaiul cromozomilor i invers.
Pentru fiecare problem trebuie aleas o reprezentare
ct mai potrivit.
Catalin
Stoean
Inteligenta Artificiala
15/45
Reprezentarea pentru problema damelor
1 2 3 4 5 6 7 8
Cromozomul:
o permutare a primelor
8 cifre.
Potenial soluie:
o configuraie a celor
8 dame
Codificare
Catalin
Stoean
Inteligenta Artificiala
16/45
Problema comis voiajorului
Problema:
Se dau n orae
S se gseasc un tur
complet de lungime minimal
Reprezentare:
Etichetm oraele 1, 2, , n
Un tur complet este o
permutare (pt. n =4: [1,2,3,4],
[3,4,2,1])
Spaiul de cutare este imens:
pentru 30 de orae sunt 30! 10
32
tururi posibile!
Catalin
Stoean
Inteligenta Artificiala
17/45
Reprezentare pentru optimizarea unei funcii
(gsirea maximului pe un interval)
Imaginai-v c v dau z = f(x) puncte n plus la examen.
f(x) = x sin(10 x)
Gsii-l pe x n intervalul [-1, 2] astfel nct z s fie ct mai
mare (ca s ctigai ct mai multe puncte)!
Altfel spus, gsii x
0
din [-1, 2] cu proprietatea c
f(x
0
) f(x), pentru orice x din [-1, 2]
In acest caz, spaiul soluiilor se poate identifica cu spaiul
cromozomilor.
Catalin
Stoean
Inteligenta Artificiala
18/45
Reprezentarea funciei
f(x) = x sin(10 x),
pe intervalul [-1, 2].
Catalin
Stoean
Inteligenta Artificiala
19/45
Reprezentarea
Evaluarea
Populaia
Selecia prinilor
Operatorii variaionali
Recombinarea
Mutaia
Iniializarea i terminarea
Componentele unui algoritm evolutiv
Catalin
Stoean
Inteligenta Artificiala
20/45
Funcia obiectiv
nainte de a defini funcia de performan, trebuie stabilit
obiectivul problemei, care este sarcina care trebuie
ndeplinit. Este vorba de gsirea funciei obiectiv.
n cazul problemei comis-voiajorului, obiectivul se refer
la minimizarea drumului pe care l parcurge comis-
voiajorul prin vizitarea fiecrui ora o singur dat cu
ntoarcere n oraul de pornire.
Pentru problema damelor, obiectivul este de a aeza
cele 8 dame ntr-o configuraie astfel nct s nu se
atace reciproc.
Catalin
Stoean
Inteligenta Artificiala
21/45
Rolul funciei de performan (sau de evaluare, ori de calitate)
este de a msura ct de bine se adapteaz indivizii la mediu.
Pentru unele probleme poate fi aceeai cu funcia obiectiv (de
exemplu, n optimizarea de funcii).
Funcia de evaluare atribuie fiecrui individ o valoare (de obicei,
real) care reprezint ct de bun (de performant) este cromozomul
respectiv.
Se dorete maximizarea performanei indivizilor, ceea ce duce de
obicei la dorina de a maximiza valorile funciei de performan (nu
n tot timpul este cazul ns, vezi funcia de performan la
problema damelor).
Funcia de evaluare (performan)
Catalin
Stoean
Inteligenta Artificiala
22/45
Funcia de performan pentru
problema damelor
Penalizarea unei dame
este proporional cu
numrul de dame pe care
le atac.
Penalizarea unei
configuraii este dat de
suma penalizrilor pentru
fiecare dam.
Scopul => de a minimiza
numrul total de penalizri!
Catalin
Stoean
Inteligenta Artificiala
23/45
Componentele unui algoritm evolutiv
Reprezentarea
Evaluarea
Populaia
Selecia prinilor
Operatorii variaionali
Recombinarea
Mutaia
Iniializarea i terminarea
Catalin
Stoean
Inteligenta Artificiala
24/45
Populaia
Populaia const dintr-o mulime de indivizi care nu sunt
neaprat toi diferii ntre ei.
Mrimea populaiei reprezint numrul de indivizi pe
care i conine populaia.
De obicei acest numr este constant.
Operatorii de selecie iau n considerare ntreaga
populaie de la generaia curent.
Populaia este cea care evolueaz de-a lungul
generaiilor, nu indivizii n particular.
Catalin
Stoean
Inteligenta Artificiala
25/45
Componentele unui algoritm evolutiv
Reprezentarea
Evaluarea
Populaia
Selecia prinilor
Operatorii variaionali
Recombinarea
Mutaia
Iniializarea i terminarea
Catalin
Stoean
Inteligenta Artificiala
26/45
Selecia
Procesul de selecie apare de dou ori n cursul unei
parcurgeri a ciclului ct timp a algoritmului evolutiv
prezentat anterior.
Selecia pentru reproducere (selecia prinilor), cnd
sunt alei prinii generaiei urmtoare.
Selecia pentru nlocuire (selecia pentru supravieuire),
care apare cnd indivizii care vor forma populaia din
urmtoarea generaie sunt alei dintre descendenii
obinui i indivizii din populaia curent.
Modul n care crete calitatea general a soluiilor depinde
de ambele tipuri de selecie.
Catalin
Stoean
Inteligenta Artificiala
27/45
Selecia pentru reproducere
Selecia pentru reproducere are rolul de a alege, n funcie
de calitatea indivizilor din populaia curent, care sunt cei
considerai pentru a se aplica operatori de variaie asupra
lor n vederea obinerii de noi soluii candidat.
Selecia pentru reproducere este probabilist; indivizii
foarte performani au anse bune de a fi selectai pentru
reproducere, n timp ce indivizii cu valori mici pentru funcia
de performan au anse mici s devin prini.
Natura probabilist a seleciei este cea care face cutarea
s scape de optimele locale.
Catalin
Stoean
Inteligenta Artificiala
28/45
Selecia turnir
Se selecteaz n mod aleator k indivizi i sunt evaluai.
Cel mai bun dintre acetia este selectat ca i printe pentru
populaia din generaia urmtoare.
Algoritmul de mai jos selecteaz N prini din generaia curent.
i = 1
Ct timp i < N execut
Selecteaz k indivizi n mod aleator din ntreaga populaie
Selecteaz-l pe cel mai performant individ s din cei k
prini[i] = s
i = i + 1
Sfrit ct timp
Catalin
Stoean
Inteligenta Artificiala
29/45
Selecia pentru supravieuire
Selecia pentru supravieuire decide care indivizi din
populaia curent mpreun cu descendenii obinui
sunt oprii pentru a forma populaia generaiei
urmtoare.
Cum numrul de indivizi din populaie este de obicei
constant, selecia pentru supravieuire intervine cu
scopul de a pstra aceeai mrime a populaiei.
De obicei decizia depinde i n acest caz de
performana indivizilor, cei mai buni fiind favorizai.
Catalin
Stoean
Inteligenta Artificiala
30/45
Componentele unui algoritm evolutiv
Reprezentarea
Evaluarea
Populaia
Selecia prinilor
Operatorii variaionali
Recombinarea
Mutaia
Iniializarea i terminarea
Catalin
Stoean
Inteligenta Artificiala
31/45
Operatorii de variaie
Operatorul de selecie are rolul de a concentra cutarea
pe regiunile cele mai promitoare din spaiul de cutare.
Rolul operatorilor de variaie este de a crea noi soluii
candidat din cele vechi, de a mri diversitatea populaiei.
Operatorii de variaie sunt dependeni de reprezentarea
utilizat, astfel c pentru reprezentri diferite trebuie
definii operatori specifici.
n funcie de aritate, operatorii de variaie sunt mprii n:
Aritate = 1 => Mutaie
Aritatea > 1 => Recombinare
Catalin
Stoean
Inteligenta Artificiala
32/45
Mutaia
Acioneaz asupra unui individ i produce un altul.
Dup ce se aplic asupra unui individ, rezultatul
(descendent) conine mici modificri fa de individul
iniial.
Operatorul face ca toate valorile unei gene s fie
disponibile pentru procesul de cutare.
Genele ale cror valori sunt considerate pentru a fi
schimbate sunt alese printr-o manier probabilist.
Un parametru al algoritmului evolutiv este dat de
probabilitatea de mutaie.
Catalin
Stoean
Inteligenta Artificiala
33/45
Cum se aplica mutaia
Pentru i = 1 pn la N execut
Pentru j = 1 pn la numrul de gene ale cromozomului execut
g = numr aleator n intervalul [0, 1];
Dac g < p
m
atunci
Aplic mutaia pentru gena j a
individului i
Sfrit dac
Sfrit pentru
Sfrit pentru
Presupunem c avem probabilitatea de mutaie p
m
= 0.3.
Notm mrimea populaiei cu N.
Catalin
Stoean
Inteligenta Artificiala
34/45
Mutaia pentru problema damelor i
pentru comis-voiajor
O mic variaie ntr-o permutare:
Se aleg dou valori n mod aleator (5 i 7 n imaginea din
stnga).
Poziiile celor dou valori sunt interschimbate.
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
Catalin
Stoean
Inteligenta Artificiala
35/45
Mutaia pentru reprezentarea real
n cazul optimizrii unei funcii, de exemplu, avem un
individ X = (x
1
, x
2
, ..., x
p
), unde x
i
[a
i
, b
i
].
Se poate obine un individ X = (x
1
, x
2
, ..., x
p
), unde x
i
este ales n mod aleator n intervalul [a
i
, b
i
].
Exemplu:
X = (0.4, 0.7, 0.3, 0.9) cu toate genele din [0, 1].
Dac gena a doua sufer mutaie, individul ar putea deveni
X = (0.4, 0.1, 0.3, 0.9).
Catalin
Stoean
Inteligenta Artificiala
36/45
Recombinarea
Recombinarea sau ncruciarea implic doi sau mai muli indivizi
(prini) alei cu o anumit probabilitate de ncruciare n
scopul de a genera unul, doi sau mai muli indivizi prin
combinarea genelor prinilor.
Recombinarea reprezint un operator stochastic de vreme ce
alegeri precum ce pri s fie motenite de la un printe i ce
pri de la alt printe sau modul n care prile acestea sunt
combinate sunt fcute n mod aleator.
Prin mpreunarea a doi indivizi cu caracteristici diferite, este
obinut un descendent (sau doi) care combin aceste
caracteristici.
Catalin
Stoean
Inteligenta Artificiala
37/45
8 7 6 4 2 5 3 1
1 3 5 2 4 6 7 8
8 7 6 4 5 1 2 3
1 3 5 6 2 8 7 4
Recombinarea pentru problema
damelor i pentru comis-voiajor
Combinarea a dou permutri n dou noi permutri:
Se alege n mod aleator un punct de ncruciare (linia
vertical)
Se copiaz primele dou pri n cei doi descendeni
A doua parte se completeaz prin inserarea de valori de la
cellalt printe:
n ordinea n care apar acolo
ncepnd cu punctul de dup tietur
Srind valorile care se gsesc deja n descendent
Catalin
Stoean
Inteligenta Artificiala
38/45
Recombinarea pentru reprezentarea
real
Discret
Fiecare gen vine de la unul din prini cu probabilitate
egal
Intermediar
Exploateaz ideea de a crea descendeni ntre prini
z
i
= x
i
+ (1 - ) y
i
unde : 0 1.
Parametrul poate fi
Constant
Variabil (s depind de vrsta populaiei)
Ales aleator de fiecare dat.
Catalin
Stoean
Inteligenta Artificiala
39/45
Recombinarea pentru reprezentarea
real
Prinii: (x
1
,,x
n
) i (y
1
,,y
n
)
Se alege un numr k aleator
Descendentul este (x
1
,, x
k-1
, y
k
+ (1 - ) x
k
, ..., x
n
)
Invers pentru cellalt descendent.
La exemplul de mai jos, pentru = 0.5...
Catalin
Stoean
Inteligenta Artificiala
40/45
Recombinarea cea mai folosit pentru
reprezentarea real
Prinii: (x
1
,,x
n
) i (y
1
,,y
n
)
Fiecare gen x
k
se calculeaz dup formula
x
k
= y
k
+ (1 - ) x
k
Invers pentru cellalt descendent.
La exemplul de mai jos, pentru = 0.5...
Catalin
Stoean
Inteligenta Artificiala
41/45
Componentele unui algoritm evolutiv
Reprezentarea
Evaluarea
Populaia
Selecia prinilor
Operatorii variaionali
Recombinarea
Mutaia
Iniializarea i terminarea
Catalin
Stoean
Inteligenta Artificiala
42/45
Iniializarea i condiia de terminare
De obicei iniializarea se face n mod aleator.
n populaia iniial se pot include i soluii existente.
Condiia de terminare se verific la fiecare generaie
Atingerea unei anumite performane
Ajungerea la un anumit numr maxim de generaii
Ajungerea la un nivel foarte mic de diversitate n
populaie
Atingerea unui anumit numr de generaii fr s se
mai fi ctigat performan.
Catalin
Stoean
Inteligenta Artificiala
43/45
Faz de nceput:
Distribuia populaiei este qvasi-
aleatoare
Faz de mijloc:
Populaia aranjat n jurul / pe
dealuri
Faz de final:
Populaia este concentrat pe
dealurile nalte
Situaii n optimizarea unei funcii de o singur variabil
Comportamentul tipic al unui algoritm
evolutiv
Catalin
Stoean
Inteligenta Artificiala
44/45
Ct s dureze o rulare?
C
e
l

m
a
i

p
e
r
f
o
r
m
a
n
t

i
n
d
i
v
i
d
Timp (numrul de generaii)
Progres n prima
jumtate
Progres n a
doua jumtate
Catalin
Stoean
Inteligenta Artificiala
45/45
Recapitulare
Algoritmii evolutivi sunt inspirai din modul n care au
evoluat lucrurile n natur.
Folosesc mulimi de poteniale soluii pe care le evolueaz
de-a lungul mai multor generaii.
Operatorul de selecie este cel care face ca performana
medie a populaiei s creasc o dat cu trecerea
generaiilor.
Pentru introducerea de noi soluii sunt folosii operatori de
variaie precum mutaia i recombinarea.