Está en la página 1de 20

?? ?

?
Programare evolutivă și algoritmi genetici

 Titlu curs: Programare evolutivă și algoritmi genetici


 Curs:
 Vineri 13:30-14:50 (seria E) – Cristian Uscatu
 Seminarii:
 Joi 16:30-17:50 (1045) – sala 2001D – Cristian Uscatu
 Joi 18:00-19:20 (1046) – sala 2317 – Cristian Uscatu
 Vineri 18:00-19:20 (1047)
 Vineri 18:00-19:20 (1048)
 Vineri 12:00-13:20 (1049) – sala 2001A – Cristian Uscatu
 Vineri 18:00-19:20 (1050)
 Consultații
▪ sala 2301, joi 13:00-16:00
▪ 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)


 Schema generală; exemple  Exemple de aplicare a GA în
 Clasificare probleme economice
 Componente ▪ Problema planificării activităților
 Evoluția căutare directă – căutare ▪ Probleme de optimizare a
stochastică portofoliilor
 Algoritmi genetici (GA)  Strategii evolutive (ES)
 Reprezentări specifice, modele de  Schema generală
populații  Operatori de mutație
 Funcția de evaluare  Operatori de selecție
 Operatori de variație ▪ Selecția părinților
▪ Mutație ▪ Selecția generației următoare
▪ Recombinare  Mecanismul de autoadaptare
 Operatori de selecție
▪ Selecția părinților  Instrument de lucru
▪ Selecția generației următoare  MatLab
Programare evolutivă și algoritmi genetici
Bibliografie

 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ă 20%
▪ Proiect 30%
▪ Lucrare scrisă 50%

 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

 Evoluția naturală <-> probleme experiment-eroare / generare-testare

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
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 𝑥 ∈ 𝒫0 , calitate individ (evaluare) 𝑓 𝑥

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

 Evaluează candidații 𝑓 𝑥 , 𝑥 ∈ 𝒫0

 Determină generația următoare


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

 𝒫0 ← 𝒫1 , 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
 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 alele
▪ Alegere noi valori
PEAG Forma generală a unui EA

 𝑖←0

 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 𝒫𝑖+1
 3.6. 𝑖 ← 𝑖 + 1
 Pînă cînd este satisfăcută condiția de terminare
PEAG Clasificarea EA

Șiruri din
Algoritmi alfabet
finit
Programare genetici

evolutive
Strategii
genetică
Vectori
de
numere
reale
Arbori

Programare Mașini
evolutivă cu stări
finite
PEAG Exemplu

 Optimizarea unei funcții de o variabilă


 Fie 𝑓: −1,1 → ℝ
1
𝑥
 f 𝑥 = 𝑥 − 3 ∗ sin 7𝑥 + 0.2 + 2 ∗ cos
3 − 0.4 + 1
5
 Determină 𝑥 pentru care f 𝑥 este maxim
PEAG Exemplu

 Spațiul genotipurilor
 Mulțimea numerelor reale din [−1,1]
 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
𝑟𝑒𝑐𝑜𝑚𝑏𝑖𝑛𝑎𝑟𝑒 𝑥+𝑦
 𝑥, 𝑦 𝑧= 2
 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

También podría gustarte