Sunteți pe pagina 1din 21

?? ?

Programare evolutivă
și algoritmi genetici
Programare evolutivă și algoritmi genetici

 Titlu curs: Programare evolutivă și algoritmi genetici


 Curs:
 Marți 13:30-14:50 (seria C) – 2204 – Cristian Uscatu
 Vineri 09:00-10:20 (seria D) – 1101 – Cristian Uscatu
 Seminarii:
 Luni 10:30-11:50 (1046) – sala 2319 – Cristian Uscatu
 Luni 13:30-14:50 (1052) – sala 2317 – Cristian Uscatu
 Luni 15:00-16:20 (1053) – sala 2317 – Cristian Uscatu
 Marți 12:00-13:50 (1047) – sala 2317 – Cristian Uscatu

 Consultații
▪ sala 2301, marți 15:00-16:20
▪ solicitare consultații: online.ase.ro sau cristian.uscatu@ie.ase.ro
▪ (folosiți adresa instituțională oferită de ASE: xxxxx@stud.ase.ro)
Programare evolutivă și algoritmi genetici

 Cunoștințe anterioare necesare


 Cunoștințe de bază în utilizarea calculatoarelor
 Bazele programării, Algoritmi și tehnici de programare
 Probabilități și statistică matematică

 Noțiuni și abilități necesare


 Variabile globale / locale
 Masive (1,2,3 etc. dimensiuni)
 Structuri de control
 Subprograme, parametri (de intrare, rezultate), construire și apel
 Depanare
 Distribuții de probabilitate, parametri
Programare evolutivă și algoritmi genetici
Tematică
 Algoritmi evolutivi (EA) ▪ Selecția generației următoare
 Schema generală; exemple  Exemple de aplicare a GA în
 Clasificare probleme economice
 Componente ▪ Problema planificării activităților
▪ Probleme de optimizare a
 Evoluția căutare directă – căutare portofoliilor
stochastică
 Strategii evolutive (ES)
 Algoritmi genetici (GA)  Schema generală
 Reprezentări specifice, modele de  Operatori de mutație
populații  Operatori de selecție
 Funcția de evaluare ▪ Selecția părinților
 Operatori de variație ▪ Selecția generației următoare
▪ Mutație  Mecanismul de autoadaptare
▪ Recombinare
 Operatori de selecție  Algoritmi hibrizi, memetici
▪ Selecția părinților
Programare evolutivă și algoritmi genetici
Bibliografie

 Instrumente de lucru
 Python 3.7.4, PyCharm 2019.2.3, NumPy, MathPlotLib, OpenCV

 Manual
 C. Cocianu, C. Uscatu, Programare evolutivă și algoritmi genetici,
Editura ASE București, 2015

 Alte cărți
 Eiben, A. E., Smith, J. E., Introduction to Evolutionary Computing,
Springer-Verlag, 2003
 Fulcher, J., Jain, L. C. (Eds.), Computational Intelligence: A
Compendium, Springer-Verlag, 2008
 Engelbrecht, A.P., Computational Intelligence. An Introduction, John
Wiley & Sons, 2007
Programare evolutivă și algoritmi genetici

 Evaluare pe parcurs
▪ Seminar 50%
▪ Probă practică 50%- săptămîna 10
▪ Lucrare scrisă 50% - săptămîna 14

 Diverse
▪ Prezență, recuperare absențe, studiu individual, reguli, colaborare

 online.ase.ro
 Fișa disciplinei, prezentări, teme, alte materiale, comunicație
PEAG 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
 Strategii evolutive (Rechenberg, Schwefel, ‘60)
Programare genetică
 Programare genetică (Koza, ‘90) • Strategii evolutive

Mediu cu resurse limitate

Număr maxim de indivizi (fenotipuri)

Reproducere, ocazional mutații

Calitate, Competiție, Selecție


PEAG Calcul evolutiv

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

10

-5

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

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

 Probleme de optimizare
 Se cunosc: model, date de ieșire dorite
 Trebuie determinate: datele de intrare
 Exemple: problema comis-voiajorului, planificarea activităților, problema celor N regine

 Probleme de modelare / identificare a sistemului


 Se cunosc: 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ă
PEAG Tipuri de probleme

  − 1 , 𝑥 𝑒𝑠𝑡𝑒 𝑑𝑖𝑛 𝐶 1
{
h ( 𝑥 ) = 1 , 𝑥 𝑒𝑠𝑡𝑒 𝑑𝑖𝑛 𝐶 2
0 ,   indecis
PEAG 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ă pînă la obținerea unui individ suficient de bun sau atingerea


unei limite de calcul
PEAG Schema generală a unui EA

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


 Operatori de variație: recombinare, mutație ↔ diversitate populație
 Selecție ↔ creștere calitate populație

 Căutare dirijată de operatori


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

 Factor stochastic
 Alegere populație inițială
 Selecție părinți: șanse proporționale cu calitatea
 Recombinare
▪ Alegere perechi (tupluri) de părinți pentru recombinare
▪ Alegere secvențe de material genetic interschimbat
 Mutație
▪ Alegere gene
▪ Alegere noi valori (alele)
PEAG 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
PEAG Clasificarea EA

Șiruri din
alfabet
finit
Algoritmi
genetici
Programar
e genetică

evolutive
Strategii
Vectori
de
numere
reale
Arbori
Programar
e evolutivă
Mașini cu
stări
finite
PEAG Exemplu

   Optimizarea unei funcții de o variabilă


 Fie

 Determină pentru care este maxim


PEAG Exemplu

   Spațiul genotipurilor
 Mulțimea numerelor reale din
 Populația este constituită din dim indivizi
 Populația inițială este generată aleator

 Selecție părinți
 Alege jumătate din populația curentă prin metoda turnir (turneu)

 Operatorul de recombinare

 probabilitate de recombinare pc

 Operatorul de mutație

 probabilitate de mutație pm
PEAG Exemplu

 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
PEAG Exemplu

 Fie
 dim=1000, eps=0.00001, pc =0.5, pm=0.1, 75 generații
PEAG Exemplu
PEAG Exemplu

Referințe:
Manual, capitolul 1
Spor la învăţat!

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