SlideShare a Scribd company logo
1 of 90
Download to read offline
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
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
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
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
5
Întâmplarea poate genera
lucruri interesante
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
6
Întâmplarea poate genera
lucruri interesante
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
27
Codul Gray reflectat
0 0 0 0 0
1 0 0 0 1
2 0 0 1 1
3 0 0 1 0
4 0 1 1 0
5 0 1 1 1
6 0 1 0 1
7 0 1 0 0
8 1 1 0 0
9 1 1 0 1
10 1 1 1 1
11 1 1 1 0
12 1 0 1 0
13 1 0 1 1
14 1 0 0 1
15 1 0 0 0
0 0 0
1 0 1
2 1 1
3 1 0
0 0 0 0
1 0 0 1
2 0 1 1
3 0 1 0
4 1 1 0
5 1 1 1
6 1 0 1
7 1 0 0
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
28
Conversia Gray – binară
unsigned short binaryToGray(unsigned short num)
{
return (num>>1) ^ num;
}
unsigned short grayToBinary(unsigned short num)
{
unsigned short temp = num ^ (num>>8);
temp ^= (temp>>4);
temp ^= (temp>>2);
temp ^= (temp>>1);
return temp;
}
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
29
Faleza Hamming
 engl. “Hamming cliff”
 Codare binară standard
 127 → 01111111
 128 → 10000000
 Codarea Gray
 127 → 01000000
 128 → 11000000
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
Exemple: funcții reale de test
 Funcția sferă
31Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Exemple: funcții reale de test
 Funcția Rastrigin generalizată
32Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
Exemple: funcții reale de test
 Funcția Ackley generalizată
34Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
Codarea cu chei aleatorii
 engl. “random key encoding”
 Indexul fiecărei gene în șirul sortat crescător
 Exemplu:
 Cromozom: 0.12, 0.65, 0.87, 0.02, 0.35
 Decodare: 2, 4, 5, 1, 3
37Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
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
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
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
45
Efectele scalării fitness-ului
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
46
Transpunerea
funcției de adaptare (II)
 Scalarea sigma:
 f’(i) = max( f(i) – (μf – cf), 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 – 2f 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
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
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
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
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
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
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
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
Î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
Î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
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
Î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
Î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
Î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
Î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
Î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
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
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
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
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
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
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
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
Î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
70
Exemplu de convergență
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
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
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
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
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
Ponderarea (continuare)
 Prin ponderare, unele soluții sunt imposibil de găsit
 Poderarea este sensibilă la forma frontului Pareto
 De exemplu: F = w1f1 + w2f2
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
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
81
Front Pareto concav
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
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
Pseudocod (I)
87Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Pseudocod (II)
88Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
89
Aplicații ale AE
 Proiectare
 Design molecular
 Invenții biomimetice
 Hardware evolutiv
 Rutare în
telecomunicații
 Transportul mărfurilor
 Analiză cinetică
chimică
 Criptare
 Jocuri
 Generator de glume
 Strategii financiare
 Marketing
 http://brainz.org/15-real-world-applications-genetic-algorithms/
 https://en.wikipedia.org/wiki/List_of_genetic_algorithm_applications
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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

More Related Content

What's hot

Data Mining Techniques
Data Mining TechniquesData Mining Techniques
Data Mining TechniquesHouw Liong The
 
Deep Dive into Hyperparameter Tuning
Deep Dive into Hyperparameter TuningDeep Dive into Hyperparameter Tuning
Deep Dive into Hyperparameter TuningShubhmay Potdar
 
패턴인식-베이즈결정이론기반 분류기 part1
패턴인식-베이즈결정이론기반 분류기 part1패턴인식-베이즈결정이론기반 분류기 part1
패턴인식-베이즈결정이론기반 분류기 part1jdo
 
Algorithmic Game Theory
Algorithmic Game TheoryAlgorithmic Game Theory
Algorithmic Game TheoryKarel Ha
 
Le funzioni matematiche in inglese
Le funzioni matematiche in ingleseLe funzioni matematiche in inglese
Le funzioni matematiche in ingleseStefaniaPaoluzi
 
Fuzzy Logic and Neural Network
Fuzzy Logic and Neural NetworkFuzzy Logic and Neural Network
Fuzzy Logic and Neural NetworkSHIMI S L
 
Knapsack Problem (DP & GREEDY)
Knapsack Problem (DP & GREEDY)Knapsack Problem (DP & GREEDY)
Knapsack Problem (DP & GREEDY)Ridhima Chowdhury
 
Dynamic programming, Branch and bound algorithm & Greedy algorithms
Dynamic programming, Branch and bound algorithm & Greedy algorithms Dynamic programming, Branch and bound algorithm & Greedy algorithms
Dynamic programming, Branch and bound algorithm & Greedy algorithms SURBHI SAROHA
 
Algorithm Design Presentation
Algorithm Design PresentationAlgorithm Design Presentation
Algorithm Design PresentationKawsar Ahmed
 
CART: Not only Classification and Regression Trees
CART: Not only Classification and Regression TreesCART: Not only Classification and Regression Trees
CART: Not only Classification and Regression TreesMarc Garcia
 
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...Simplilearn
 
04 reasoning systems
04 reasoning systems04 reasoning systems
04 reasoning systemsJohn Issac
 
Introduction to Approximation Algorithms
Introduction to Approximation AlgorithmsIntroduction to Approximation Algorithms
Introduction to Approximation AlgorithmsJhoirene Clemente
 
Iris - Most loved dataset
Iris - Most loved datasetIris - Most loved dataset
Iris - Most loved datasetDrAsmitaTitre
 

What's hot (20)

Data Mining Techniques
Data Mining TechniquesData Mining Techniques
Data Mining Techniques
 
Deep Dive into Hyperparameter Tuning
Deep Dive into Hyperparameter TuningDeep Dive into Hyperparameter Tuning
Deep Dive into Hyperparameter Tuning
 
패턴인식-베이즈결정이론기반 분류기 part1
패턴인식-베이즈결정이론기반 분류기 part1패턴인식-베이즈결정이론기반 분류기 part1
패턴인식-베이즈결정이론기반 분류기 part1
 
Algorithmic Game Theory
Algorithmic Game TheoryAlgorithmic Game Theory
Algorithmic Game Theory
 
Fuzzy logic
Fuzzy logicFuzzy logic
Fuzzy logic
 
Le funzioni matematiche in inglese
Le funzioni matematiche in ingleseLe funzioni matematiche in inglese
Le funzioni matematiche in inglese
 
Fuzzy Logic and Neural Network
Fuzzy Logic and Neural NetworkFuzzy Logic and Neural Network
Fuzzy Logic and Neural Network
 
Knapsack Problem (DP & GREEDY)
Knapsack Problem (DP & GREEDY)Knapsack Problem (DP & GREEDY)
Knapsack Problem (DP & GREEDY)
 
adaboost
adaboostadaboost
adaboost
 
Dynamic programming, Branch and bound algorithm & Greedy algorithms
Dynamic programming, Branch and bound algorithm & Greedy algorithms Dynamic programming, Branch and bound algorithm & Greedy algorithms
Dynamic programming, Branch and bound algorithm & Greedy algorithms
 
Algorithm Design Presentation
Algorithm Design PresentationAlgorithm Design Presentation
Algorithm Design Presentation
 
CART: Not only Classification and Regression Trees
CART: Not only Classification and Regression TreesCART: Not only Classification and Regression Trees
CART: Not only Classification and Regression Trees
 
Greedy algorithm
Greedy algorithmGreedy algorithm
Greedy algorithm
 
Lasso regression
Lasso regressionLasso regression
Lasso regression
 
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
What Is Dynamic Programming? | Dynamic Programming Explained | Programming Fo...
 
Approximation Algorithms TSP
Approximation Algorithms   TSPApproximation Algorithms   TSP
Approximation Algorithms TSP
 
04 reasoning systems
04 reasoning systems04 reasoning systems
04 reasoning systems
 
Xgboost
XgboostXgboost
Xgboost
 
Introduction to Approximation Algorithms
Introduction to Approximation AlgorithmsIntroduction to Approximation Algorithms
Introduction to Approximation Algorithms
 
Iris - Most loved dataset
Iris - Most loved datasetIris - Most loved dataset
Iris - Most loved dataset
 

Similar to Metode de optimizare (I)

Metode de optimizare (II)
Metode de optimizare (II)Metode de optimizare (II)
Metode de optimizare (II)Florin Leon
 
Metode de cautare
Metode de cautareMetode de cautare
Metode de cautareFlorin Leon
 
Regresia liniara, logistica, softmax
Regresia liniara, logistica, softmaxRegresia liniara, logistica, softmax
Regresia liniara, logistica, softmaxFlorin Leon
 
Algoritmi de clasificare
Algoritmi de clasificareAlgoritmi de clasificare
Algoritmi de clasificareFlorin Leon
 
Algoritmi de grupare (clustering)
Algoritmi de grupare (clustering)Algoritmi de grupare (clustering)
Algoritmi de grupare (clustering)Florin Leon
 
Invatarea cu intarire
Invatarea cu intarireInvatarea cu intarire
Invatarea cu intarireFlorin Leon
 
Teoria jocurilor (II)
Teoria jocurilor (II)Teoria jocurilor (II)
Teoria jocurilor (II)Florin Leon
 
Clasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilorClasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilorFlorin Leon
 
Jocuri. Satisfacerea constrangerilor
Jocuri. Satisfacerea constrangerilorJocuri. Satisfacerea constrangerilor
Jocuri. Satisfacerea constrangerilorFlorin Leon
 
Metode de planificare
Metode de planificareMetode de planificare
Metode de planificareFlorin Leon
 
Retele neuronale (I)
Retele neuronale (I)Retele neuronale (I)
Retele neuronale (I)Florin Leon
 
Logica vaga (fuzzy)
Logica vaga (fuzzy)Logica vaga (fuzzy)
Logica vaga (fuzzy)Florin Leon
 
Modele bazate pe energie
Modele bazate pe energieModele bazate pe energie
Modele bazate pe energieFlorin Leon
 
Metode de inferenta in logica propozitionala si predicativa
Metode de inferenta in logica propozitionala si predicativaMetode de inferenta in logica propozitionala si predicativa
Metode de inferenta in logica propozitionala si predicativaFlorin Leon
 

Similar to Metode de optimizare (I) (14)

Metode de optimizare (II)
Metode de optimizare (II)Metode de optimizare (II)
Metode de optimizare (II)
 
Metode de cautare
Metode de cautareMetode de cautare
Metode de cautare
 
Regresia liniara, logistica, softmax
Regresia liniara, logistica, softmaxRegresia liniara, logistica, softmax
Regresia liniara, logistica, softmax
 
Algoritmi de clasificare
Algoritmi de clasificareAlgoritmi de clasificare
Algoritmi de clasificare
 
Algoritmi de grupare (clustering)
Algoritmi de grupare (clustering)Algoritmi de grupare (clustering)
Algoritmi de grupare (clustering)
 
Invatarea cu intarire
Invatarea cu intarireInvatarea cu intarire
Invatarea cu intarire
 
Teoria jocurilor (II)
Teoria jocurilor (II)Teoria jocurilor (II)
Teoria jocurilor (II)
 
Clasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilorClasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilor
 
Jocuri. Satisfacerea constrangerilor
Jocuri. Satisfacerea constrangerilorJocuri. Satisfacerea constrangerilor
Jocuri. Satisfacerea constrangerilor
 
Metode de planificare
Metode de planificareMetode de planificare
Metode de planificare
 
Retele neuronale (I)
Retele neuronale (I)Retele neuronale (I)
Retele neuronale (I)
 
Logica vaga (fuzzy)
Logica vaga (fuzzy)Logica vaga (fuzzy)
Logica vaga (fuzzy)
 
Modele bazate pe energie
Modele bazate pe energieModele bazate pe energie
Modele bazate pe energie
 
Metode de inferenta in logica propozitionala si predicativa
Metode de inferenta in logica propozitionala si predicativaMetode de inferenta in logica propozitionala si predicativa
Metode de inferenta in logica propozitionala si predicativa
 

More from Florin Leon

Faza de testare (II)
Faza de testare (II)Faza de testare (II)
Faza de testare (II)Florin Leon
 
Aspecte conexe procesului de dezvoltare
Aspecte conexe procesului de dezvoltareAspecte conexe procesului de dezvoltare
Aspecte conexe procesului de dezvoltareFlorin Leon
 
Retele neuronale profunde
Retele neuronale profundeRetele neuronale profunde
Retele neuronale profundeFlorin Leon
 
Teoria jocurilor (I)
Teoria jocurilor (I)Teoria jocurilor (I)
Teoria jocurilor (I)Florin Leon
 
Arhitecturi de agenti (II)
Arhitecturi de agenti (II)Arhitecturi de agenti (II)
Arhitecturi de agenti (II)Florin Leon
 
Arhitecturi de agenti (I)
Arhitecturi de agenti (I)Arhitecturi de agenti (I)
Arhitecturi de agenti (I)Florin Leon
 
Introducere in domeniul agentilor
Introducere in domeniul agentilorIntroducere in domeniul agentilor
Introducere in domeniul agentilorFlorin Leon
 
Faza de testare (I)
Faza de testare (I)Faza de testare (I)
Faza de testare (I)Florin Leon
 
Faza de implementare
Faza de implementareFaza de implementare
Faza de implementareFlorin Leon
 
Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)Florin Leon
 
Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)Florin Leon
 
Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)Florin Leon
 
Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)Florin Leon
 
Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)Florin Leon
 
Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)Florin Leon
 
Faza de proiectare
Faza de proiectareFaza de proiectare
Faza de proiectareFlorin Leon
 
Limbaje de modelare. UML
Limbaje de modelare. UMLLimbaje de modelare. UML
Limbaje de modelare. UMLFlorin Leon
 
Introducere in ingineria programarii
Introducere in ingineria programariiIntroducere in ingineria programarii
Introducere in ingineria programariiFlorin Leon
 
Complexitate si emergenta
Complexitate si emergentaComplexitate si emergenta
Complexitate si emergentaFlorin Leon
 

More from Florin Leon (20)

Faza de testare (II)
Faza de testare (II)Faza de testare (II)
Faza de testare (II)
 
Aspecte conexe procesului de dezvoltare
Aspecte conexe procesului de dezvoltareAspecte conexe procesului de dezvoltare
Aspecte conexe procesului de dezvoltare
 
Retele neuronale profunde
Retele neuronale profundeRetele neuronale profunde
Retele neuronale profunde
 
Teoria jocurilor (I)
Teoria jocurilor (I)Teoria jocurilor (I)
Teoria jocurilor (I)
 
Arhitecturi de agenti (II)
Arhitecturi de agenti (II)Arhitecturi de agenti (II)
Arhitecturi de agenti (II)
 
Arhitecturi de agenti (I)
Arhitecturi de agenti (I)Arhitecturi de agenti (I)
Arhitecturi de agenti (I)
 
Introducere in domeniul agentilor
Introducere in domeniul agentilorIntroducere in domeniul agentilor
Introducere in domeniul agentilor
 
Faza de testare (I)
Faza de testare (I)Faza de testare (I)
Faza de testare (I)
 
Faza de implementare
Faza de implementareFaza de implementare
Faza de implementare
 
Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)
 
Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)
 
Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)
 
Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)
 
Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)
 
Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)
 
Faza de proiectare
Faza de proiectareFaza de proiectare
Faza de proiectare
 
Faza de analiza
Faza de analizaFaza de analiza
Faza de analiza
 
Limbaje de modelare. UML
Limbaje de modelare. UMLLimbaje de modelare. UML
Limbaje de modelare. UML
 
Introducere in ingineria programarii
Introducere in ingineria programariiIntroducere in ingineria programarii
Introducere in ingineria programarii
 
Complexitate si emergenta
Complexitate si emergentaComplexitate si emergenta
Complexitate si emergenta
 

Metode de optimizare (I)

  • 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
  • 5. 5 Întâmplarea poate genera lucruri interesante Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 6. 6 Întâmplarea poate genera lucruri interesante 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
  • 27. 27 Codul Gray reflectat 0 0 0 0 0 1 0 0 0 1 2 0 0 1 1 3 0 0 1 0 4 0 1 1 0 5 0 1 1 1 6 0 1 0 1 7 0 1 0 0 8 1 1 0 0 9 1 1 0 1 10 1 1 1 1 11 1 1 1 0 12 1 0 1 0 13 1 0 1 1 14 1 0 0 1 15 1 0 0 0 0 0 0 1 0 1 2 1 1 3 1 0 0 0 0 0 1 0 0 1 2 0 1 1 3 0 1 0 4 1 1 0 5 1 1 1 6 1 0 1 7 1 0 0 Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 28. 28 Conversia Gray – binară unsigned short binaryToGray(unsigned short num) { return (num>>1) ^ num; } unsigned short grayToBinary(unsigned short num) { unsigned short temp = num ^ (num>>8); temp ^= (temp>>4); temp ^= (temp>>2); temp ^= (temp>>1); return temp; } Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 29. 29 Faleza Hamming  engl. “Hamming cliff”  Codare binară standard  127 → 01111111  128 → 10000000  Codarea Gray  127 → 01000000  128 → 11000000 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
  • 37. Codarea cu chei aleatorii  engl. “random key encoding”  Indexul fiecărei gene în șirul sortat crescător  Exemplu:  Cromozom: 0.12, 0.65, 0.87, 0.02, 0.35  Decodare: 2, 4, 5, 1, 3 37Florin 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
  • 45. 45 Efectele scalării fitness-ului 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 – cf), 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 – 2f 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
  • 70. 70 Exemplu de convergență 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 = w1f1 + w2f2 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
  • 81. 81 Front Pareto concav 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
  • 87. Pseudocod (I) 87Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 88. Pseudocod (II) 88Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 89. 89 Aplicații ale AE  Proiectare  Design molecular  Invenții biomimetice  Hardware evolutiv  Rutare în telecomunicații  Transportul mărfurilor  Analiză cinetică chimică  Criptare  Jocuri  Generator de glume  Strategii financiare  Marketing  http://brainz.org/15-real-world-applications-genetic-algorithms/  https://en.wikipedia.org/wiki/List_of_genetic_algorithm_applications 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