1. Inteligență artificială
4. Metode de optimizare (I)
Florin Leon
Universitatea Tehnică „Gheorghe Asachi” din Iași
Facultatea de Automatică și Calculatoare
http://florinleon.byethost24.com/curs_ia.htm
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
2. 2
Metode de optimizare (I)
1. Întâmplare și scop
2. Algoritmi evolutivi
3. Codarea problemei
4. Operatori: selecția, încrucișarea, mutația
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
3. 3
Metode de optimizare (I)
1. Întâmplare și scop
2. Algoritmi evolutivi
3. Codarea problemei
4. Operatori: selecția, încrucișarea, mutația
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
4. 4
Metode de optimizare (I)
1. Algoritmi evolutivi
1.1. Întâmplare și scop
1.2. Codarea problemei
1.3. Operatori: selecția, încrucișarea, mutația
1.4. Optimizări multiobiectiv: NSGA-II
2. Gradientul descendent și călirea simulată
3. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
7. 7
Metode de optimizare (I)
1. Întâmplare și scop
2. Algoritmi evolutivi
3. Codarea problemei
4. Operatori: selecția, încrucișarea, mutația
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
8. 8
Prezentare generală
Un algoritm evolutiv este o metodă
de căutare prin analogie cu selecția
naturală biologică
Un algoritm evolutiv are o populație
de soluții potențiale care evoluează
prin aplicarea iterativă a unor
operatori stohastici
Evoluția soluțiilor mai bune se
realizează pe baza presiunii
evolutive (favorizarea soluțiilor mai
adaptate)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
9. 9
Metafora evolutivă
NaturăAlgoritm evolutiv
MediuProblema de optimizare
Indivizii care trăiesc în
mediu
Soluții potențiale fezabile
Gradul de adaptare al
individului la mediu
Calitatea soluției (funcția
de adaptare sau fitness)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
10. 10
Evoluția naturală
Speciile nu au ca „scop” evoluția
Evoluția este doar un efect, o consecință
Organismele neadaptate mor sau mor fără să
se reproducă
Cele care supraviețuiesc suficient ca să se
reproducă reușesc acest lucru tocmai fiindcă
sunt mai adaptate la mediu
Selecția naturală și selecția sexuală
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
11. 11
Operatori genetici
Selecția (engl. “selection”)
Alege un individ cu o probabilitate definită de
calitatea relativă a acestuia
Încrucișarea (engl. “crossover”)
Combină aleatoriu fragmente din doi indivizi
pentru a forma unii noi
Mutația (engl. “mutation”)
Modifică aleatoriu un individ nou creat
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
12. 12
Componentele și fazele unui
algoritm evolutiv
Problema de rezolvat:
funcția de adaptare
Principii de codare:
gene, cromozomi
Procedura de inițializare
Selecția părinților
Încrucișare
Mutație
Condiția de terminare
Inițializare populație
Selecție părinți pentru reproducere
Încrucișare
Introducere copil în populație
Rezultat
Mutație
da
nu
Stop?
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
13. 13
Algoritmii evolutivi și
algoritmii specializați
Algoritm evolutiv Algoritm specializat
Viteză
Efort
Aplicabilitate
Performanță
În general lent În general rapid
Foarte mic De obicei mare
Generală Redusă la o clasă de probleme
Bună,
crește în timp
De obicei foarte bună
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
14. 14
Teorema “No Free Lunch”
Oricare două euristici sunt echivalente când
performanțele lor medii sunt considerate pe
mulțimea tuturor problemelor posibile
Nicio euristică nu este mai bună în medie decât
căutarea oarbă
Consecințe
Performanțe excelente, robustețe mică
Performanțe slabe, robustețe mare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
15. 15
Teorema “No Free Lunch”
Robustețe x Eficiență = Constantă
Generalitate x Adâncime = Constantă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
16. 16
Tipuri de algoritmi evolutivi
Algoritmi genetici
Codarea soluției cu șiruri de numere, de obicei
binare
Strategii evolutive
Codarea soluției cu vectori de numere reale
Programare genetică
Soluțiile sunt programe (de obicei Lisp)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
17. 17
Metode de optimizare (I)
1. Întâmplare și scop
2. Algoritmi evolutivi
3. Codarea problemei
4. Operatori: selecția, încrucișarea, mutația
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
18. 18
Codarea
Depinde de problemă
Cele mai utilizate tipuri de codare:
Binară
Reală
Cu permutări
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
19. 19
Exemplu de codare binară
Problema rucsacului: umplerea unui rucsac cu o
mulțime de obiecte astfel încât valoarea totală a
articolelor incluse să fie maximizată
Constrângere: capacitatea rucsacului este
limitată
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
20. 20
Problema rucsacului
wi – greutatea articolului i
pi – profitul când articolul i este inclus
C – capacitatea rucsacului
xi – 1 dacă articolul i este inclus, 0 altfel
Obiectiv: maximizarea
Constrângere:
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
21. 21
Codarea binară
De exemplu 6 articole incluse sau nu
O genă = un bit (xi)
Aléle = valori posibile ale genei (0 și 1)
Un cromozom – un șir de gene (biți)
Cromozomul este o soluție potențială
011001 articolele 2, 3 și 6 incluse
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
22. 22
Decodarea:
funcția de adaptare (fitness)
Funcția de adaptare definește problema
Spune cât este de bună o soluție, cât este de adaptat
un cromozom
Cromozom: 011001
Constrângere: w = 50 + 45 + 5 = 100 C = 100 (ok)
Funcția de adaptare: p = 35 + 18 + 2 = 55
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
23. 23
Satisfacerea constrângerilor
Cromozom: 111001
Constrângere: w = 100 + 50 + 45 + 5 = 200 > C = 100
Constrângerea nu este satisfăcută
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
24. 24
Satisfacerea constrângerilor
Modalități posibile de rezolvare:
Respingerea soluției: funcția de adaptare F = -1000000
Reduce diversitatea genetică
Repararea soluției: câte o genă 1 devine 0 până este satisfăcută
constrângerea
Optimizarea hibridă: întâi după greutate (-w) apoi după profit
Funcția de adaptare F = -200
Tipuri de constrângeri:
Constrângeri tari: obligatorii
Constrângeri slabe: recomandate
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
25. 25
Reprezentarea
întreagă / reală
Multe probleme de optimizare implică numere
întregi sau reale
De exemplu minimizarea funcției f(x, y) = x2 + y2
Valorile întregi sau reale pot fi codate binar
n = 6 → 110
r = 3.14 în domeniul [1, 10], pe 8 biți, reprezentare în virgulă
fixă
1 → 0000 0000 (0)
10 → 1111 1111 (255)
r = 3.14 → (3.14 – 1) · 255 / (10 – 1) = 60 → 0011 1100
0011 1100 → 3.12 (precizia crește cu numărul de biți)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
26. 26
Faleza Hamming
O problemă a codării binare este așa-numita
„faleză Hamming” (engl. “Hamming cliff”)
01111111 → 127
10000000 → 128
Există o breșă în reprezentare care nu există
în problema originară
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
30. 30
Reprezentarea numerică
Este mai bine să codăm variabilele numerice
direct ca:
Întregi
Variabile în virgulă mobilă
De exemplu: f(x, y) = x2 + y2
Un cromozom poate fi o pereche
(x, y) = (0.12, 0.51)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
31. Exemple: funcții reale de test
Funcția sferă
31Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
32. Exemple: funcții reale de test
Funcția Rastrigin generalizată
32Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
33. Exemple: funcții reale de test
Funcția Ackley generalizată
Alte funcții sunt prezentate în suportul de curs și la adresa:
http://en.wikipedia.org/wiki/Test_functions_for_optimization
33Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
34. Exemple: funcții reale de test
Funcția Ackley generalizată
34Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
35. 35
Reprezentarea prin permutări
Unele probleme necesită ca obiectele să fie aranjate
într-o anumită ordine
Exemplu:
Problema comis-voiajorului (engl. “Travelling Salesman
Problem”, TSP): ce elemente apar unul lângă altul
Aceste probleme sunt reprezentate mai bine cu
ajutorul permutărilor
Dacă avem n variabile, reprezentarea este o listă de n
întregi, fiecare apărând o singură dată
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
36. 36
Exemplu: TSP
Problema
Se dau n orașe
Să se găsească un tur
complet de lungime
minimă
Codarea
Orașele sunt numerotate
1, 2, … , n
Un tur complet este o
permutare
De ex. dacă n = 5, atunci
[1,2,3,4,5] și [3,4,5,2,1]
sunt valide
Spațiul de căutare este
foarte mare
Pentru 30 de orașe există
30! 1032 tururi posibile
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
38. 38
Metode de optimizare (I)
1. Întâmplare și scop
2. Algoritmi evolutivi
3. Codarea problemei
4. Operatori: selecția, încrucișarea, mutația
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
39. 39
Selecția
Operatorul de selecție alege un părinte (cromozom)
pentru noua generație, pe baza funcției de adaptare
Selecția acționează la nivel de individ
Este independentă de reprezentare
Tipuri de selecție:
Ruletă (engl. “roulette-wheel”)
Bazată pe ranguri (engl. “rank-based”)
Eșantionare universală stohastică (engl. “stochastic universal
sampling”)
Competiție (engl. “tournament”)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
40. 40
Ruleta
Ideea de bază: indivizii mai adaptați au șanse mai
mari
Șansele sunt proporționale cu adaptarea
Implementare
Se atribuie fiecărui individ o parte a ruletei
Se învârte ruleta de n ori pentru a se alege n părinți
fitness(A) = 3
fitness(B) = 1
fitness(C) = 2
A C
1/6 = 17%
3/6 = 50%
B
2/6 = 33%
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
41. 41
Implementare
Fie S suma tuturor funcțiilor de adaptare (ale tuturor indivizilor
din populație)
Se generează un număr aleatoriu N între 1 și S
Se returnează cromozomul a cărui funcție de adaptare adăugată
la suma parțială este ≥ N
Cromozom: 1 2 3 4 5 6
Fitness: 8 2 17 7 4 11
Suma parțială: 8 10 27 34 38 49
N (1 N 49): 23
Selectat: 3
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
42. 42
Domeniul funcției de adaptare
Convergență prematură
Fitness prea mare
Genele unui individ foarte adaptat cuceresc
populația dacă restul indivizilor sunt mai puțin
adaptați
Algoritmul converge într-un optim local
Prea puțină explorare, prea multă exploatare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
43. 43
Domeniul funcției de adaptare
Convergență lentă
Fitness prea mic
După multe generații, fitness-ul mediu a convers,
dar nu s-a găsit un optim global
Nu există suficientă diferență între
fitness-ul maxim și fitness-ul mediu
Presiune selectivă redusă (necompetitivitate)
Presiunea selectivă variază invers cu șansa de a fi ales
Prea multă explorare, prea puțină exploatare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
44. 44
Transpunerea
funcției de adaptare (I)
Scalarea fitness-ului
f’(i) = f(i) –
> 0
Crește presiunea selectivă, favorizează indivizii
foarte adaptați
Soluție pentru convergența lentă
poate fi fitness-ul minim din generația curentă
(sau din ultimele n generații)
< 0
Scade presiunea selectivă, favorizează indivizii cu
adaptare medie
Soluție pentru convergența prematură
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
46. 46
Transpunerea
funcției de adaptare (II)
Scalarea sigma:
f’(i) = max( f(i) – (μf – cf), 0)
μf este media valorilor funcțiilor de
adaptare
f este deviația standard a valorilor
c este o constantă, de obicei 2
Regula 3 sigma: 68 – 95 – 99.7
μf – 2f reprezintă fitness-ul minim
acceptat pentru ca individul să se
poată reproduce
Crește presiunea selectivă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
47. 47
Rangul funcției de adaptare
Indivizii sunt numerotați în ordinea crescătoare a
fitness-ului
Valoarea efectivă a fitness-ului este mai puțin
importantă, contează rangul în populație
Probabilitățile de selecție se bazează pe fitness-ul
relativ, nu absolut
Numărul de start și incrementul influențează
rezultatele
1, 2, 3, 4, ... (presiune selectivă mai mare)
10, 12, 14, 16, ... (presiune selectivă mai mică)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
48. 48
Selecția bazată pe ranguri
Populație cu N indivizi
Abordarea tipică: cel mai adaptat individ primește
rangul N–1, cel mai puțin adaptat primește rangul 0
Sortarea populației presupune calcule suplimentare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
49. Eșantionarea universală
stohastică
Selecția prin ruletă alege indivizi prin eșantionări repetate
EUS utilizează o singură valoare aleatorie r pentru
alegerea tuturor indivizilor, la intervale echidistante
Dacă trebuie aleși N indivizi, se folosesc N intervale
În figură: N = 4, i = 0 .. N – 1
49Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
50. 50
Selecția prin competiție (I)
Ruleta și rangul se bazează pe statisticile globale
ale populației
Paralelizarea este mai dificilă
Ideea de bază a selecției prin competiție:
Se aleg aleatoriu k indivizi din populație și se determină
cel mai adaptat dintre aceștia
Se repetă procedura pentru a selecta mai mulți părinți
Mai rapidă decât metodele de selecție prin ruletă
sau ranguri
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
51. 51
Selecția prin competiție (II)
Probabilitatea selectării individului i depinde de:
Rangul lui i
Dimensiunea eșantionului k: un k mai mare crește presiunea
selectivă
Participanții selectați rămân în bazinul de
împerechere (engl. “mating pool”)?
Dacă nu rămân, crește presiunea selectivă
Cel mai adaptat individ din competiție câștigă
întotdeauna?
Competiție deterministă sau probabilistică
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
52. 52
Competiția probabilistică
Se alege cel mai adaptat individ cu probabilitatea p
Se alege al doilea cel mai adaptat individ cu
probabilitatea p (1 – p)
Se alege al treilea cel mai adaptat individ cu
probabilitatea p (1 – p)2
… și așa mai departe
De exemplu: k = 4, p = 0.7
p1 = 70%
p2 = 21%
p3 = 6%
p4 = 3%
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
53. 53
Elitismul
Cel mai adaptat individ este copiat direct în
noua populație
Sau primii cei mai adaptați (mai rar)
Asigură faptul că niciodată nu se va pierde
soluția cea mai bună
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
54. 54
Încrucișarea
Încrucișarea combină 2 cromozomi părinți pentru a
produce un nou cromozom fiu
Noul cromozom poate fi mai bun decât ambii părinți dacă ia
cele mai bune caracteristici de la fiecare părinte
Se pot produce 1 sau 2 indivizi noi
Încrucișarea are loc cu o probabilitate definită de
programator: rata de încrucișare
Trebuie să fie mare, de obicei în intervalul (0.75, 0.95)
Dacă se folosește elitismul, poate fi 1
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
55. 55
Încrucișarea cu un punct
Se alege un punct aleatoriu în cei doi părinți
Se divid părinții la punctul de încrucișare
Se creează 1 sau 2 copii prin unirea extremelor
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
56. 56
Subiectivitatea pozițională
engl. “positional bias”
Performanțele încrucișării cu un punct depind
de ordinea în care sunt reprezentate variabilele
Este mai probabil să se mențină împreună
genele alăturate
Nu se pot menține împreună genele de la
capetele diferite ale șirului
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
57. 57
Încrucișarea cu n puncte
Generalizarea încrucișării cu 1 punct
Se aleg aleatoriu n puncte de încrucișare
Se divid părinții conform acestor puncte
Se reunesc fragmentele, alternativ
Tot mai există o subiectivitate pozițională
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
58. 58
Încrucișarea uniformă
Se generează o mască uniformă
Masca determină ce biți sunt copiați de la fiecare
părinte
Densitatea biților din mască determină cantitatea de
material genetic luat de la fiecare părinte
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
59. 59
Încrucișarea reală
Aritmetică: se creează copíi „între” părinți:
zi = xi + (1 – ) yi , cu 0 1
este o variabilă aleatorie
poate fi identic pentru toți indicii i sau diferit
Dacă -d 1 + d, de exemplu d = 0,25, domeniul genelor
poate fi extins în timpul execuției
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
60. 60
Încrucișarea cu permutări
Încrucișarea „normală” creează soluții invalide
Operatorul de încrucișare trebuie să combine
informațiile de ordine sau adiacență de la părinți
1 2 3 4 5
5 4 3 2 1
1 2 3 2 1
5 4 3 4 5
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
61. 61
Încrucișarea cu permutări
Ideea este păstrarea ordinii relative în care apar
elementele
Se alege un fragment arbitrar din primul părinte
Se copiază fragmentul în (primul) copil
Se copiază numerele care nu există în primul
fragment în (primul) copil
Se începe de la punctul de diviziune
Folosind ordinea din al doilea părinte
Analog pentru al doilea copil, dacă este cazul, cu
rolurile părinților inversate
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
62. 62
Exemplu
Se copiază fragmentul selectat din primul părinte:
1, 2, 3, 4
Se copiază restul din al doilea părinte în ordine:
9, 7, 8, 6, 5
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
63. 63
Mutația
Se modifică fiecare genă în mod independent cu o probabilitate
pm numită rată de mutație
Trebuie să fie mică, de obicei 1-2%
Poate avea valori între 1 / d și 1 / lc unde d este dimensiunea
populației iar lc este lungimea cromozomului
Compromis:
Prea puține mutații convergență prematură (optim local)
Prea multe mutații căutare aleatorie
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
64. 64
Mutația reală
Resetarea valorii unei gene la un număr aleatoriu din
domeniul ei de definiție
Reglarea valorii unei gene
Gaussiană
Media: valoarea veche
Deviația standard: definită de utilizator
Liniară
Valoarea veche q%
Rata de mutație reală poate fi mai mare decât la
mutația binară, deoarece numărul valorilor reale este
mai mic decât numărul de biți: de exemplu 10%
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
65. 65
Mutația cu permutări
Operatorii normali de mutație conduc la soluții
invalide
Mutația pentru permutări trebuie să modifice cel
puțin 2 gene
Rata de mutație reflectă aici probabilitatea modificării
întregului șir, nu a genelor individuale
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
66. 66
Mutația prin interschimbare
Se aleg aleatoriu 2 gene și li se interschimbă
pozițiile
Păstrează majoritatea informațiilor de
adiacență (4 legături rupte), afectează mai
mult ordinea
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
67. 67
Mutația prin inversiune
Se aleg aleatoriu 2 gene și se inversează
subșirurile dintre ele
Păstrează majoritatea informațiilor de
adiacență (numai 2 legături rupte), afectează
foarte mult ordinea
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
68. 68
Mutația prin distorsionare
Se alege o submulțime de gene și se
rearanjează aleatoriu alelele din pozițiile
respective
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
69. 69
Încrucișarea și mutația
Au funcții diferite
Doar încrucișarea poate combina informațiile de la
părinți
Doar mutația poate introduce noi informații (alele) în
populație
Încrucișarea nu schimbă frecvența alelelor din
populație
Pentru a atinge optimul global, de multe ori este
nevoie de o mutație „norocoasă”
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
71. 71
Criterii de terminare
Problema finală este de a decide când să se
termine execuția algoritmului
Mai multe soluții posibile:
După un număr prestabilit de generații
Cel mai utilizat criteriu
Când algoritmul a convers
Raportul dintre fitness-ul maxim și fitness-ul mediu
(sau minim) scade sub un prag
Îmbunătățirea fitness-ului mediu timp de două (sau mai
multe) generații scade sub un prag
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
72. 72
Alegerea parametrilor
Dimensiunea populației poate fi în jur de 50
Pentru probleme simple poate fi mai mic (30), iar pentru
probleme dificile poate fi mai mare (100)
Euristică: dimensiunea populației poate fi aproximativ
numărul de gene x 10
Prea puțini cromozomi algoritmul nu are diversitatea
necesară găsirii soluției
Prea mulți cromozomi algoritmul va fi mai lent, fără a se
îmbunătăți calitatea soluției
Numărul maxim de generații variază de obicei între
100-1000
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
73. 73
Metode de optimizare (I)
1. Întâmplare și scop
2. Algoritmi evolutivi
3. Codarea problemei
4. Operatori: selecția, încrucișarea, mutația
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
74. 74
Optimizarea multiobiectiv
Multe probleme reale implică optimizarea mai multor
obiective, de multe ori contradictorii
De exemplu, minimizarea costului unui produs și
maximizarea calității sale, simultan
Cost mai bine
Compromisuri acceptabile
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
75. 75
Abordarea convențională
Sumă ponderată
f(x) = w1 f1(x1) + w2 f2(x2) +…+ wn fn(xn)
Σwi = 1
Avantajul principal: simplitatea
Se poate aplica un algoritm scalar
Probleme
Determinarea ponderilor
Obiectivele diferite măsoară diferite aspecte ale calității soluției
și deseori este greu de stabilit importanța lor relativă
Returnează o singură soluție la un moment dat
Unele soluții sunt imposibil de găsit
Detalii mai târziu
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
76. 76
Algoritmi genetici multiobiectiv
engl. “Multi-Objective Genetic Algorithms”, MOGA
Se bazează pe conceptul de dominanță Pareto
O soluție S1 domină o soluție S2 dacă și numai dacă:
S1 nu este inferioară lui S2 în raport cu toate
obiectivele
S1 este strict superioară lui S2 în raport cu cel puțin un
obiectiv
Mulțimea tuturor soluțiilor nedominate se numește
front Pareto
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
77. 77
Exemplu: dominanța Pareto
Minimizarea costului de testare și a numărului de
defecte ale unui produs software
Soluțiile A, B, C sunt nedominate
Soluția X este dominată de A
Soluția Y este dominată de B
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
78. 78
Estimarea frontului Pareto
În fiecare generație, mulțimea indivizilor nedominați
este o estimare a frontului Pareto real, necunoscut
MOGA returnează cea mai bună estimare a frontului
Pareto
Întrucât mulțimea de soluții reprezintă diferite
compromisuri între obiective, utilizatorul poate alege
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
79. 79
Ponderarea (continuare)
Prin ponderare, unele soluții sunt imposibil de găsit
Poderarea este sensibilă la forma frontului Pareto
De exemplu: F = w1f1 + w2f2
Front convex: fiecare punct
de pe frontul Pareto este un
minim stabil și poate fi
determinat prin schimbarea
ponderilor
Front concav: doar cele
două capete ale frontului
Pareto sunt minime stabile
și pot fi determinate
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
80. 80
Front Pareto convex
Minimizare:
f1(x, y) = x
f2(x, y) = (1 + y) / x
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
82. 82
NSGA-II
Un algoritm „rapid, elitist, cu sortare nedominată”
(Deb et al., 2000)
O meta-euristică: utilizează un algoritm evolutiv
simplu la care se adaugă calcularea frontului Pareto
Generează noua populație folosind selecția prin
competiție, încrucișări și mutații normale
Reunește populația veche cu populația nouă și
selectează cei mai adaptați indivizi
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
83. 83
NSGA II: Fronturi Pareto
Sortare nedominată a populației pe ranguri, astfel încât
membrii de rang n domină toți membrii de rang > n
Membrii de rang 1 constituie mulțimea nedominată, adică
aproximarea curentă a frontului Pareto
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
84. 84
NSGA-II: Sortarea
Scopul (incluzând elitismul): selectarea celor mai buni
n cromozomi din populația de dimensiune 2n
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
85. 85
NSGA-II:
Distanța de aglomerare
Indivizii care aparțin aceluiași front sunt sortați pe baza distanței
de aglomerare (engl. “crowding distance”)
Un individ mai bun are o distanță de aglomerare mai mare
Efectul este selecția indivizilor aflați în regiuni mai puțin aglomerate
Previne omogenizarea soluțiilor (convergența prematură)
suma acestor distanțe este
distanța de aglomerare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
86. 86
NSGA-II:
Distanța de aglomerare
Indivizii care aparțin aceluiași front sunt sortați pe baza distanței
de aglomerare (engl. “crowding distance”)
Un individ mai bun are o distanță de aglomerare mai mare
Efectul este selecția indivizilor aflați în regiuni mai puțin aglomerate
Previne omogenizarea soluțiilor (convergența prematură)
pentru extreme,
distanța se consideră ∞
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
90. 90
Concluzii
Concept ușor de înțeles
Rezolvă probleme complexe
Acceptă funcții nediferențiabile
Găsesc optimul global
Optimizează funcții multiobiectiv
Prezintă robustețe: căutare
paralelă, populație de soluții
Ușor de paralelizat și distribuit
Soluția se îmbunătățește în timp
Uneori sunt foarte lenți, mai
lenți decât algoritmii specializați
Găsirea unei soluții bune într-un
interval mare de timp înseamnă
lipsa unei soluții bune într-un
interval de timp acceptabil
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm