Sunteți pe pagina 1din 16

?? ?

Programare evolutivă
și algoritmi genetici
Calcul evolutiv (EC)
Suport de natură biologică
 Domeniu al informaticii inspirat din procesul evoluției naturale
 Evoluția naturală  rezolvare tip experiment-eroare / generare-testare
 Căutare genetică / evolutivă (Turing, 1948)
 Programare evolutivă (Fogel, Owens, Walsh, ‘60) Calcul evolutiv
• Programare evolutivă
 Algoritmi genetici (Holland, ‘60)
• Algoritmi genetici și Programare genetică
 Strategii evolutive (Rechenberg, Schwefel, ‘60) • Strategii evolutive
 Programare genetică (Koza, ‘90) • Inteligența roiului
 Inteligența roiului (swarm intelligence) (‘90 ->)

https://humanorigins.si.edu/evidence/human-family-tree
Mediu cu resurse limitate

Număr maxim de indivizi (fenotipuri)

Smithsonian institute
Reproducere, ocazional mutații

Calitate, Competiție, Selecție


Clasificarea EA

Șiruri din
alfabet
Vectori
de
Algoritmi finit

numere genetici
reale
Inteligența Strategii
roiului Algoritmi evolutive Vectori
de
Mașini cu evolutivi numere
reale
stări
finite
Programare Programare
evolutivă genetică
Arbori
Calcul evolutiv

 Evoluție naturală  rezolvare probleme

Evoluție Rezolvare probleme


(abordare genetică) (lumea reală)
Mediu Problemă
(spațiul de căutare, spațiul soluțiilor)
Individ Candidat soluție
(genotip, cromozom, candidat soluție) (fenotip)
Calitate Calitate
(adaptare la mediu) (optim)
Calcul evolutiv

 Evoluție (a populației)
 Fenotip (axele x, y) -> evaluare, calitate (axa z)
 Avans spre zone mai „înalte” (calitate mai bună)
 Probleme unimodale / multimodale
 Inactivitate genetică, concentrare în puncte de maxim local

10

-5

-10
30
25
20
20
15
10 10
5
0 0
Tipuri de probleme

 Model clasic: date de intrare  model  date de ieșire

 Clasificare,de
Probleme două clase
optimizare

{
−∧1
 Se cunosc: , 𝑥 ∈𝐶
model, 1 ieșire dorite
date de
h ( 𝑥 )= determinate:
Trebuie ¿ 1, 𝑥 ∈ 𝐶datele
2 de intrare
 Exemple:0problema
,𝑖𝑛𝑑𝑒𝑐𝑖𝑠 comis-voiajorului, planificarea activităților, problema celor N regine

 Probleme de modelare / identificare a sistemului


 Se cunosc: datele de intrare și de ieșire
 Trebuie determinat: modelul (cu capacitate de generalizare rezonabilă)
 Exemplu: clasificare supervizată în cazul modelului cu două clase, instruire automată (machine
learning), data mining

 Probleme de simulare
 Se cunosc: date de intrare, model
 Trebuie determinate: date de ieșire
 Exemplu: întrebări „ce se întîmplă dacă?” („what-if”), economia evolutivă
Schema generală a unui EA

 Mulțime candidați

 Funcție calitate maximizată (minimizată?)


 Individ , calitate individ (evaluare)

 Alege aleator un set inițial de candidați (populația inițială)

 Evaluează candidații

 Determină generația următoare


 Selectează „părinții”, cei mai „buni” indivizi din populația curentă
  noi indivizi („progenituri”) +  generația următoare
(competiție)

 , repetă de la pasul anterior pînă la obținerea unui individ suficient de bun sau atingerea unei
limite de calcul
Schema generală a unui EA

 Elemente fundamentale → creșterea calității populației


 Operatori de variație: recombinare, mutație ↔ diversitate populație
 Operatori de selecție ↔ creștere calitate populație
 Echilibru între explorare și exploatare

 Căutare dirijată de operatori


 Evoluție pas cu pas către optim / Adaptare la cerințele mediului

 Factor stocastic
 Alegere populație inițială
 Selecție părinți: șanse proporționale cu calitatea
 Recombinare
▪ Alegere indivizi și perechi (tupluri) de părinți pentru recombinare, probabilitate
▪ Alegere secvențe de material genetic interschimbat
 Mutație
▪ Alegere indivizi și gene, probabilitate
▪ Alegere noi valori (alele)
Forma generală a unui EA

 Pas 1. Inițializează populație. Construiește prin alegere aleatoare

 Pas 2. Evaluează* candidați. Pentru fiecare calculează

 Pas 3. Repetă
 3.1. Selectează părinți
 3.2. Recombină perechi (sau n-tupluri) de părinți => progenituri
 3.3. Aplică mutații asupra progeniturilor => noi candidați
 3.4. Evaluează* noii candidați
 3.5. Selectează indivizii pentru generația următoare
 3.6.
 Pînă cînd este satisfăcută condiția de terminare

 *Evaluarea poate fi necesară imediat după crearea fiecărui individ


Exemplu

 Optimizarea unei funcții de o variabilă


 Fie

 Determină pentru care este maxim


Exemplu

 Notă: rezolvarea conține operatori simpli aleși cu scop didactic

 Spațiul fenotipurilor: mulțimea numerelor reale din

 Spațiul genotipurilor: mulțimea numerelor reale din


 Populația este constituită din dim indivizi, aleși aleator

 Selecție părinți – dim/2 indivizi


 Alege jumătate din populația curentă prin metoda turnir (turneu) cu 2 membri

 Operatorul de recombinare (rezultat viabil?) – dim/4 indivizi

 probabilitate de recombinare pr
Exemplu

 Operatorul de mutație (rezultat viabil?) – dim/4 indivizi

 probabilitate de mutație pm

 Selecția generației următoare: superelitist


 cei mai buni indivizi din multisetul populație curentă + indivizi noi
 mecanismul este strict determinist

 Condiție de terminare
 Număr maxim de generații permise
▪ sau
 Calitatea populației nu se mai îmbunătățește semnificativ
Exemplu

 Fie
 dim=1000, pr =0,5, pm=0,1, 75 generații
Exemplu
Referințe

Referințe:
Manual, capitolul 1
?? ?
?

Spor la învăţat!

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