Sunteți pe pagina 1din 87

Inteligență artificială

5. Metode de optimizare (II)

Florin Leon

Universitatea Tehnică „Gheorghe Asachi” din Iași


Facultatea de Automatică și Calculatoare

http://florinleon.byethost24.com/curs_ia.html

v2022.1
Metode de optimizare (II)
1. Evoluția diferențială
2. Optimizarea de tip roi de particule
3. Optimizarea de tip colonie de furnici
4. Hill climbing și călirea simulată
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii

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


Metode de optimizare (II)
1. Evoluția diferențială
2. Optimizarea de tip roi de particule
3. Optimizarea de tip colonie de furnici
4. Hill climbing și călirea simulată
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii

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


Introducere
 Evoluția diferențială este o euristică de optimizare
asemănătoare cu un algoritm evolutiv clasic
 Are operatori de selecție, încrucișare, mutație
 Caracteristică este operația de generare a noilor
cromozomi, care implică adăugarea diferenței dintre doi
cromozomi la al treilea și compararea cu al patrulea
 A câștigat locul 3 la un concurs de optimizare din 1996
 Dar algoritmii de pe primele două locuri nu erau algoritmi
generali

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


Introducere
 Evoluția diferențială este potrivită pentru
optimizarea funcțiilor reale multidimensionale
 Deci are ca scop minimizarea unei funcții
f(x) : (A ⊆ ℝD )  ℝ, prin determinarea unui
vector de parametri adecvat: x = (x1, x2, …, xD )

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


Schema generală
 Semnificațiile operatorilor sunt diferite de cele
dintr-un algoritm evolutiv clasic
 Ordinea de aplicare este, de asemenea, diferită

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


Inițializarea
 Pentru fiecare parametru xi se definesc limite
inferioare xil și superioare xiu
 Populația inițială este generată aleatoriu și trebuie
să acopere cât mai uniform spațiul parametrilor:
xi ~ U [xil, xiu]
 Populația are NP indivizi, unde numărul NP este
ales de utilizator

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


Mutația

i, r1, r2, r3  { 1, ..., NP } sunt indecși, toți diferiți


F  (0, 2] este factorul de amplificare

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


Motivație
 Acest tip de mutație se numește auto-referențială
(self-referential)
 Pe măsură ce algoritmul progresează, diferențele se adaptează
domeniului problemei
 De exemplu, dacă populația devine compactă pe o dimensiune,
dar rămâne dispersată pe alta, vectorii diferență vor fi mici pe
prima dimensiune și mari pe cealaltă
 Procesul este echivalent cu folosirea unui pas adaptiv de
căutare, care crește viteza de convergență și posibil calitatea
soluției
 Factorul de amplificare F nu trebuie confundat cu funcția
obiectiv, notată aici cu f
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 9
Încrucișarea
 Din vectorii xi și vi , se generează un vector ui , numit
vector de încercare (trial vector)
 CR  [0, 1] este rata de încrucișare (crossover rate)
 Cu probabilitatea CR se copiază în ui un element din vi ,
iar altfel se copiază elementul corespunzător din xi
 Cu toate acestea, există șansa ca din vi să nu se copieze
niciun element
 Pentru a preveni acest lucru, se mai generează un index
aleatoriu între 1 și D și se copiază obligatoriu elementul
corespunzător din vi
 Se asigură astfel faptul că ui,G+1 ≠ xi,G deoarece se va prelua
măcar un element din vi,G

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


Încrucișarea binomială

Asemănătoare cu încrucișarea
uniformă de la algoritmii genetici,
dar aici se lucrează cu gene cu
valori reale, nu cu biți

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


Vizualizare

j=k

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


Încrucișarea exponențială

Asemănătoare cu încrucișarea cu două puncte, unde primul punct este


selectat aleatoriu din { 1, ..., n }, iar al doilea este determinat astfel încât
maxim L elemente consecutive (numărate circular) să fie preluate din
vectorul mutant

〈 j + 1 〉n = j + 1 dacă j < n și 1 dacă j = n 〈· 〉n este similar cu modulo n


Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 13
Selecția
 Se realizează la nivel de cromozom
 Decide dacă un cromozom va face parte din noua
generație
 Aici se consideră că avem o problemă de minimizare
și deci se preferă cromozomii cu funcții obiectiv mai
mici

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


Structură specifică de date

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


Pseudocod

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


Pseudocod

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


Variante
 rand/1: xbest este cel mai
bun cromozon din
 vi = xr1 + F · (xr2 – xr3) generația G

 best/1: o recomandare
este λ = F
 vi = xbest + F · (xr1 – xr2)

 best/2:
 vi = xbest + F · (xr1 + xr2 – xr3 – xr4)

 current-to-best/1:
 vi = xi + λ · (xbest – xi) + F · (xr1 – xr2)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 18
Discuție
 Evoluția diferențială funcționează bine pentru foarte
multe probleme clasice de optimizare
 Autorii și alți cercetători au arătat că este mai
eficientă decât diferite variante de algoritmi genetici
și decât călirea simulată (pe care o vom prezenta mai
târziu în curs)

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


Metode de optimizare (II)
1. Evoluția diferențială
2. Optimizarea de tip roi de particule
3. Optimizarea de tip colonie de furnici
4. Hill climbing și călirea simulată
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii

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


Optimizare de tip roi de
particule
 engl. “Particle Swarm Optimization”
 Este o metodă de optimizare bazată pe
indivizi care imită comportamentul stolurilor
de păsări sau roiurilor de insecte

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


Algoritmul PSO
 Fiecare particulă are:
 xi: poziția curentă
 vi: viteza curentă
 yi: cea mai bună poziție personală
 ŷi: cea mai bună poziție a vecinătății

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


Inițializarea
 Se alege un număr de particule
 Pentru fiecare particulă, se inițializează aleatoriu
pozițiile xi
 Vitezele vi sunt inițializate tot cu valori aleatorii
sau, mai rar, cu 0

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


Ajustările
 Se evaluează funcția obiectiv a particulei f(xi)
 Se actualizează optimul personal
 Pentru o problemă de minimizare:

 Se calculează optimul social (al vecinătății)

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


Ajustările
 Pentru fiecare dimensiune, se actualizează viteza

ponderea inerției componenta cognitivă componenta socială


c1,2 - constante de accelerație r1,2 - numere aleatorii în (0, 1)

 Se actualizează poziția curentă

 Se repetă pașii până este satisfăcut un criteriu de


convergență, de obicei atingerea unui număr
prestabilit de iterații
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 25
Variante
 Varianta prezentată este globală (gbest)
 În varianta locală (lbest) se consideră mai multe
vecinătăți, posibil suprapuse
 Vecinătatea poate fi definită de indicii particulelor
(vecinătate socială) sau de pozițiile lor (vecinătate
geografică)
 ŷi se calculează pentru fiecare vecinătate
 Abordarea lbest conduce la o diversitate mai mare,
dar este mai lentă decât abordarea gbest

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


Vecinătate globală

27
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
Vecinătăți locale

geografice

sociale

28
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
Parametrii
 Ponderea inerției w definește compromisul între explorare și
exploatare
 O valoare mai mică scade viteza particulelor ⇒ mai multă
exploatare
 O valoare mai mare crește viteza particulelor ⇒ mai multă
explorare
 Constantele c1 și c2 se mai numesc „parametri de încredere”
 c1 arată câtă încredere ar trebui să aibă o particulă în ea însăși, iar
c2 câtă să aibă în vecinii săi
 c1 > 0 și c2 = 0 ⇒ fiecare particulă urmează o optimizare
individuală (~ hill climbing, prezentat mai târziu în curs)
 c1 = 0 și c2 > 0 ⇒ tot roiul este atras de un singur punct, ŷ
 Vitezele sunt limitate la o valoare Vmax

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


Recomandări
 c1 = c2 = 2
 w ∊ [0.4, 0.9]
 w poate fi inițial 0.9 și descrește liniar în timp până la 0.4
 w poate fi fix, de exemplu, 0.73
 Dimensiunea populației poate fi 20 sau mai mare pentru
probleme mai dificile
 Vmax,i = α · ( Xmax,i – Xmin,i ), i ∊ { 1, ..., D }
 Vmax,i reprezintă viteza maximă pentru dimensiunea i, iar Xmax,i și
Xmin,i reprezintă limitele domeniului de căutare pe acea dimensiune
 α poate fi 0.1 sau uneori 0.2, 0.4
 Dimensiunea unei vecinătăți lbest: 3 sau 5

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


Structuri de date

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


Structuri de date

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


Structuri de date

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


Pseudocod

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


Pseudocod

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


Pseudocod

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


Pseudocod

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


PSO și AE
 Asemănări și deosebiri între Particle Swarm
Optimization și Algoritmii evolutivi:
 Indivizii din PSO au funcții obiectiv
 Ajustările sunt asemănătoare cu încrucișările
 PSO este inspirat de comportamentul social,
nu de selecția naturală
 Indivizii din PSO au „memorie”

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


Avantaje
 PSO este un algoritm continuu, AE pot fi discreți
 PSO este mai bun decât AE pentru unele probleme
continue de optimizare și în special pentru probleme de
dimensiuni mari
 Performanțele PSO nu depind foarte mult de
numărul de particule; acesta trebuie doar să nu
fie prea mic
 PSO cu un număr redus de particule are performanțe
comparabile cu AE cu populații mai mari

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


Dezavantaje
 Convergența prematură
 PSO găsește soluțiile mai rapid decât AE, dar de obicei
soluția nu se mai îmbunătățește în timp
 O particulă poate converge la un punct dintre optimul
personal și optimul social, care poate să nu fie nici
măcar optim local al problemei
 Performanțele depind de problemă
 Parametrii trebuie aleși pentru fiecare problemă în parte

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


Metode de optimizare (II)
1. Evoluția diferențială
2. Optimizarea de tip roi de particule
3. Optimizarea de tip colonie de furnici
4. Hill climbing și călirea simulată
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii

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


Optimizarea rutei
 Stigmergie: o formă de comunicare indirectă prin
modificarea mediului
 De exemplu, urme de feromoni. Probabilitatea de a
alege o rută depinde de concentrația de feromoni

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


Optimizarea de tip
colonie de furnici
 engl. “Ant Colony Optimization”
 Metodă probabilistică pentru rezolvarea unor
probleme care pot fi reduse la găsirea unor căi în
grafuri
 Caracteristici:
 O mulțime de indivizi cooperanți
 Comunicare prin stigmergie
 Indivizii descoperă calea de la starea inițială la starea finală
(soluția problemei)
 Deciziile sunt locale și stohastice

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


Parcurgerea grafului
 Inițial, m furnici sunt plasate aleatoriu în
m noduri
 În fiecare iterație t, fiecare furnică k se mută
din nodul i în nodul j, reprezentând o soluție
intermediară mai completă
 Alegerea este stohastică, pe baza nivelului de
feromoni τij al arcului (i, j ) și a atractivității ηij
a arcului

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


Selecția unui arc

 ηij este în general o funcție de lungimea arcului, de obicei


ηij = 1 / dij
 α ≥ 0, β ≥ 1
 Dacă α = 0, este o căutare greedy
 Dacă β = 0, doar feromonii contează și de obicei căutarea nu
converge
 Nik este o vecinătate fezabilă a furnicii k, adică mulțimea
nodurilor nevizitate încă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 45
Actualizarea feromonilor

dacă arcul (i, j ) este traversat de furnica k în iterația t

altfel

 ρ este persistența urmei de feromoni, iar (1 – ρ)


este rata de evaporare, 0 ≤ ρ < 1
 este cantitatea de feromoni depozitată de
furnica k pe arcele traversate
 Lk(t) este lungimea turului furnicii k
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 46
Structuri de date

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


Structuri de date

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


Structuri de date

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


Pseudocod

50
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html
Pseudocod

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


Pseudocod

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


Recomandări
 Autorii recomandă următoarele valori pentru
parametri:
 α = 1, β ∊ [2, 5]
 ρ = 0.5
 m=n
 τ0 = m / Cnn
 m este numărul de furnici, n este numărul de
noduri, iar Cnn este lungimea unui tur generat
cu euristica celor mai apropiați vecini (nearest
neighbors)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 53
Aplicații tipice
 Rutare în rețele mobile ad-hoc
 Executarea găurilor în circuitele electronice
 Cristalografie bazată pe raze X
 Prelucrarea comenzilor în depozite
 Livrarea pachetelor

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


Metode de optimizare (II)
1. Evoluția diferențială
2. Optimizarea de tip roi de particule
3. Optimizarea de tip colonie de furnici
4. Hill climbing și călirea simulată
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii

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


Hill climbing
 Idee asemănătoare cu metoda gradientului
descendent, dar aici funcția obiectiv este maximizată
 Se pleacă dintr-un punct ales aleatoriu din spațiul de
căutare p0
 Punctul curent pc p0
 Se generează unul sau mai multe puncte vecine pv
 Dacă funcția obiectiv într-un punct vecin este mai
bună decât cea curentă, atunci pc  pv
 Se alege primul vecin mai bun (Greedy, Simple HC)
 Se alege vecinul cel mai bun (Steepest Ascent HC)

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


Pseudocod: varianta discretă
currentNode = startNode
while (true) {
neighbors = Neighbors(currentNode)
nextEval = –∞; nextNode = null
for all x in neighbors {
if (Eval(x) > nextEval) {
nextNode = x; nextEval = Eval(x)
}
} // end for all
if (nextEval <= Eval(currentNode))
return currentNode // nu există alți vecini mai buni
currentNode = nextNode
} // end while

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


Pseudocod: varianta continuă
double[] currentPoint = startPoint;
double[] bestNeighbor = currentPoint; // soluția

// parametrii se setează în funcție de dificultatea problemei


int noNeighbors = 20;
int maxSteps = 1000;

Random r = new Random();

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


Pseudocod: varianta continuă
for (int s = 0; s < maxSteps; s++) {
double crtFn = Eval(currentPoint); double bestFn = crtFn;
for (int n = 0; n < noNeighbors; n++) {
double[] neighbor = new double[problemSize];
for (int i = 0; i < problemSize; i++)
neighbor[i] = currentPoint[i] * (0.9 + r.NextDouble() * 0.2); // +- max 10%
double neighborFn = Eval(neighbor);
if (neighborFn > bestFn) {
bestNeighbor = neighbor; bestFn = neighborFn;
}}}
return bestNeighbor;

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


Exemplu

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


Probleme
 Optime locale
 Creste
 Platouri

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


Hill climbing cu puncte
multiple de start
 Rezultatul metodei hill climbing depinde de punctul
de start p0
 Metodă de îmbunătățire: hill climbing cu puncte
multiple de start (multiple-point hill climbing)
 Se repetă procedura de hill climbing de m ori cu
puncte de start aleatorii diferite și se alege în final
soluția cea mai bună

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


Călirea simulată
 engl. “simulated annealing” (SA)
 Algoritm stohastic inspirat din călirea metalurgică:
încălzirea și apoi răcirea controlată a unui material crește
dimensiunea cristalelor și reduce defectele

înainte după

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


Călirea
 Căldura face ca atomii să își piardă pozițiile fixe
(minimul local al energiei interne) și să viziteze
aleatoriu stări cu energie mai ridicată
 Răcirea lentă le dă mai multe șanse să găsească o
configurație cu o energie internă mai mică decât cea
inițială, corespunzătoare minimului global al
problemei de optimizare

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


Descriere
 Procedură asemănătoare cu hill climbing, dar se poate trece și
într-o stare inferioară cu o anumită probabilitate
 Presupunem o problemă de minimizare, cu funcția obiectiv E
 Dacă vecinul este mai bun (Ev < Ec), atunci pc ← pv
 Dacă starea curentă este mai bună decât starea următoare, a
vecinului (Ev > Ec), atunci:
 Se calculează diferența funcțiilor obiectiv: ΔE = Ev – Ec
 Se consideră temperatura curentă T, mare la început și care scade
în timp
 Probabilitatea de a accepta tranziția în starea inferioară este:
P = exp(–ΔE / T)

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


Programul de călire
 Temperatura inițială este mare (teoretic infinită)
și tinde în timp la 0
 Dacă programul de răcire este suficient de lung
(teoretic infinit), algoritmul garantează găsirea
optimului global
 De asemenea, trebuie să existe suficiente iterații la
fiecare nivel de temperatură
 Un număr exponențial de pași în raport cu dimensiunea
problemei

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


Metode practice de răcire
1. Scăderea liniară a temperaturii
2. Scăderea geometrică: T = T ∙ α
 Temperatura inițială poate fi 1000, 10000
 α < 1, de obicei între 0.8 și 0.99 (mai bine mai mare)
 Un număr constant de iterații la fiecare temperatură
 Dacă α este mare, este suficientă o singură iterație la un nivel de
temperatură
3. Se începe cu o temperatură foarte mare și se răcește rapid
până când 60% din soluțiile mai proaste sunt acceptate
 Aceasta este temperatura reală de start și răcirea se face apoi mai
lent

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


Comportament
 La început, la temperaturi mari, există o
probabilitate mai mare de acceptare a unor
stări inferioare
 Algoritmul poate ieși din vecinătatea unui optim local
 Spre final, algoritmul devine asemănător cu HC
 Încearcă găsirea punctului optim din vecinătate,
care ar putea fi optimul global

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


Criterii de terminare
1. Când T se apropie de 0 (cu o scădere
geometrică, T nu atinge 0 niciodată)
2. Când nu se mai fac tranziții, nici în stări mai
rele, nici în stări mai bune
 în stări mai rele, datorită temperaturii mici
 în stări mai bune, datorită găsirii optimului

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


Pseudocod călire simulată

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


Metode de optimizare (II)
1. Evoluția diferențială
2. Optimizarea de tip roi de particule
3. Optimizarea de tip colonie de furnici
4. Hill climbing și călirea simulată
5. Optimizare multiobiectiv. Algoritmul NSGA-II
6. Concluzii

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


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.html 72
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.html 73
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.html 74


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.html 75


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.html 76


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.html 77
Front Pareto convex

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


Front Pareto concav

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


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
 Se generează noua populație; pentru fiecare individ care trebuie
generat:
 Se aplică selecția prin competiție după sortare (slide-urile
următoare) sau se selectează în mod aleatoriu doi părinți diferiț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 după sortare

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


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.html 81


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.html 82


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.html 83
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.html 84


Pseudocod

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


Pseudocod

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


Concluzii
 Evoluția diferențială are aceiași operatori genetici ca algoritmii
evolutivi clasici, dar ordinea și modul lor de funcționare este
diferit
 Există mulți alți algoritmi de optimizare inspirați din natură
 Optimizarea de tip roi de particule este inspirată din
comportamentul păsărilor
 Optimizarea de tip colonie de furnici este inspirată din modul în
care acestea își caută hrana
 Călirea simulată se bazează pe principiul minimizării unei mărimi
fizice care corespunde energiei unui sistem
 Algoritmul NSGA-II poate optimiza obiective multiple, posibil
conflictuale
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.html 87

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