Sunteți pe pagina 1din 107

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
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 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


Întâmplarea poate genera
lucruri interesante

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 4


Întâmplarea poate genera
lucruri interesante

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 5


Probleme de optimizare
 Găsirea argumentului (vectorul x) pentru care o
funcție f(x) să fie maximă/minimă
 De exemplu: f(x) = (x-1)2 ⇒ min f(x) = 0 pentru x = 1
 Design automat de produse
 Găsirea caracteristicilor produselor care optimizează anumite
cerințe, de exemplu: aripi de avion (portanță vs. frecare),
antene aerospațiale (eficiență vs. miniaturizare), circuite
electronice (consum de curent)
 Marketing
 Calibrarea strategiilor de vânzare în funcție de condițiile
pieței, combinația de caracteristici ale unor produse care
maximizează impactul produsului pe piață
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 6
Probleme de optimizare
 Transportul mărfurilor
 Atribuirea de comenzi de transport de mărfuri către
vehiculele disponibile, care să minimizeze costurile și
timpul de transport
 Optimizarea transportului feroviar pe o singură linie
 Optimizarea depozitării containerelor în porturi
 Optimizarea planurilor de producție
 Job shop scheduling, assembly line scheduling
 Inteligență artificială
 Antrenarea și optimizarea structurii rețelelor neuronale

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, adică favorizarea
soluțiilor mai adaptate

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 9


Metafora evolutivă

Algoritm evolutiv Natură

Problema de optimizare Mediu

Soluții potențiale fezabile Indivizii care trăiesc în mediu

Calitatea soluției (funcția de Gradul de adaptare al


adaptare sau fitness) individului la mediu

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 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 (selection)
 Alege un individ cu o probabilitate definită de
calitatea relativă a acestuia
 Încrucișarea (crossover)
 Combină aleatoriu fragmente din doi indivizi
pentru a forma unii noi
 Mutația (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
Inițializare populație
 Problema de rezolvat:
Selecție părinți pentru reproducere funcția de adaptare
Încrucișare  Principii de codare:
cromozomi, gene
Mutație
 Procedura de inițializare
Introducere copil în populație  Selecția părinților
 Încrucișare
nu  Mutație
Stop?
 Condiția de terminare
da

Rezultat
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 13
Algoritmii evolutivi și
algoritmii specializați
Algoritm evolutiv Algoritm specializat

Viteză În general lent În general rapid

Efort Foarte mic De obicei mare

Aplicabilitate Generală Redusă la o clasă de probleme

Performanță 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 exemplu, 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
 Constrângerea este satisfăcută
 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


Modalități de rezolvare pentru
satisfacerea constrângerilor
 Respingerea soluției
 Funcția de adaptare F = -1 000 000
 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
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 25
Reprezentarea
întreagă sau 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” (Hamming cliff)
 01111111 → 127
 10000000 → 128
 Există o breșă în reprezentare care nu există
în problema originară
 Se poate folosi codarea Gray (cod reflectat)
 127 → 01000000
 128 → 11000000

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 27


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 28


Exemple: funcții reale de test
 Funcția sferă

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 29


Exemple: funcții reale de test
 Funcția Rastrigin generalizată

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 30


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

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 31


Exemple: funcții reale de test
 Funcția Ackley generalizată

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 32


Reprezentarea prin permutări
 Unele probleme necesită ca obiectele să fie aranjate
într-o anumită ordine
 De exemplu, problema comis-voiajorului (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 33


Exemplu: TSP
 Problema  Spațiul de căutare este
 Se dau n orașe foarte mare
 Să se găsească un tur  Pentru 30 de orașe există
complet de lungime 30!  1032 tururi posibile
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

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 34


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

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 35


Structuri de date

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 36


Structuri de date

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 37


Structuri de date

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 38


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 39


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 40


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 41


Metode de optimizare (I)
1. Întâmplare și scop
2. Algoritmi evolutivi
3. Codarea problemei
4. Operatori
4.1. Selecția
4.2. Încrucișarea
4.3. Mutația
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 42


Inițializarea
 Fiecare genă are un domeniu predefinit
 Genele tuturor cromozomilor din populație
sunt inițializate cu valori aleatorii din
domeniile corespunzătoare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm


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ă (roulette-wheel)
 Bazată pe ranguri (rank-based)
 Eșantionare universală stohastică (stochastic universal
sampling)
 Competiție (tournament)

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 44


Ruleta
 Ideea de bază: indivizii mai adaptați au șanse mai mari de
a fi selectați
 Șansele sunt proporționale cu adaptarea
 Se atribuie fiecărui individ o parte a ruletei
 Se învârte ruleta de n ori pentru a se alege n părinți
 Același individ poate fi selectat de mai multe ori

fitness(A) = 3 1/6 = 17%

fitness(B) = 1 A BC
3/6 = 50% 2/6 = 33%
fitness(C) = 2

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 45


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 46


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 47


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 48


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 49


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 50


Transpunerea
funcției de adaptare
 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 51


Efectele scalării fitness-ului

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 52


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 53


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 54


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 55


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 56


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
 De exemplu: F = 49, N = 4, r ∊ [0, 12), pp. 10 ⇒ 10, 22, 34, 46

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 57


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 58


Selecția prin competiție
 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 59


Selecția prin competiție
 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 (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 60


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 61


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 62
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 63


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 64


Metode de optimizare (I)
1. Întâmplare și scop
2. Algoritmi evolutivi
3. Codarea problemei
4. Operatori
4.1. Selecția
4.2. Încrucișarea
4.3. Mutația
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 65


Încrucișarea
 Încrucișarea combină doi 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 66


Î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 copíi prin unirea extremelor

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 67


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 68


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 69


Î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 70


Î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 71


Î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 72


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 73


Încrucișarea cu permutări
 Încrucișarea „normală” creează deseori soluții
invalide

12345 12321

54321 54345

 Operatorul de încrucișare trebuie să combine


informațiile de ordine sau adiacență de la părinți

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 74


Î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 75


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 76


Metode de optimizare (I)
1. Întâmplare și scop
2. Algoritmi evolutivi
3. Codarea problemei
4. Operatori
4.1. Selecția
4.2. Încrucișarea
4.3. Mutația
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 77


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 78


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 79


Mutația reală
 Resetarea valorii unei gene la un număr aleatoriu din
domeniul ei de definiție
 Reglarea valorii unei gene
 Gaussiană: media este valoarea veche, iar deviația standard
este 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 80


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 81


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 două 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 82


Mutația prin interschimbare
 Se aleg aleatoriu două gene și li se
interschimbă pozițiile
 Păstrează majoritatea informațiilor de
adiacență (patru legături rupte), afectează
mai mult ordinea

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 83


Mutația prin inversiune
 Se aleg aleatoriu două gene și se inversează
subșirurile dintre ele
 Păstrează majoritatea informațiilor de
adiacență (numai două legături rupte),
afectează foarte mult ordinea

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 84


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 85


Î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 86


Exemplu de convergență

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 87


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 88


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)
 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 89


Alegerea parametrilor
 Alegerea tipurilor de operatori și a parametrilor
depinde de problemă
 Ca o recomandare de alegere inițială pentru o
problemă cu codare reală de complexitate medie,
pot fi folosite următoarele:
 Dimensiunea populației de 50 de indivizi
 Selecție de tip competiție deterministă cu 2 indivizi
 Încrucișare aritmetică cu probabilitatea de 0.9
 Mutație prin resetare cu probabilitatea de 0.1
 Un număr de 100 de generații

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 90


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 91


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

Compromisuri acceptabile Cost mai bine


Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 92
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 93
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: i, S1(i) ≥ S2(i)
 S1 este strict superioară lui S2 în raport cu cel puțin un
obiectiv: i, S1(i) > S2(i)
 Mulțimea tuturor soluțiilor nedominate se numește
front Pareto

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 94


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 95


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 96


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 97
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 98


Front Pareto concav

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 99


NSGA-II
 Un algoritm „rapid, elitist, cu sortare nedominată”
(Deb et al., 2000)
 Este o meta-euristică: utilizează un algoritm evolutiv
simplu la care se adaugă calcularea frontului Pareto
 Generează noua populație: pentru fiecare individ care
trebuie generat, se selectează în mod aleatoriu doi părinți
diferiți și se aplică operatorii normali de încrucișare și
mutație
 Se reunește populația veche cu populația nouă și se
selectează cei mai adaptați indivizi prin sortare
nedominată (slide-urile următoare)

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 100


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 101


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 102


NSGA-II:
Distanța de aglomerare
 Indivizii care aparțin aceluiași front sunt sortați pe baza distanței
de aglomerare (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 103
NSGA-II:
Distanța de aglomerare
 Indivizii care aparțin aceluiași front sunt sortați pe baza distanței
de aglomerare (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 104


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 105


Pseudocod

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 106


Concluzii
 Concept ușor de înțeles  Uneori sunt foarte lenți, mai
 Rezolvă probleme complexe lenți decât algoritmii specializați
 Acceptă funcții nediferențiabile  Găsirea unei soluții bune într-un
 Găsesc optimul global interval mare de timp înseamnă
lipsa unei soluții bune într-un
 Optimizează funcții multiobiectiv interval de timp acceptabil
 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

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 107