Sunteți pe pagina 1din 3

Inteligență artificială

Cursul 4

Metode de optimizare (I)


Sinteză

Florin Leon, Inteligenta artificiala - Suport de curs, http://florinleon.byethost24.com/curs_ia.htm


Optimizarea înseamnă determinarea valorii minime sau maxime a unei funcții. Considerăm
aici noțiunea de funcție în accepțiunea cea mai generală: de la o funcție simplă cu valori reale, la un
algoritm complex care exprimă o problemă combinatorică. Scopul este de a determina argumentele
funcției care determină valoarea sa minimă sau maximă.

Algoritmii evolutivi

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.

Funcția de adaptare (sau de fitness) definește problema. Ea spune cât de bună este o soluție,
cât de adaptat este un cromozom.

Selecția alege un părinte (cromozom) pentru noua generație, pe baza funcției de adaptare.
Selecția acționează la nivel de individ și este independentă de reprezentare, adică nu depinde de
codare, ci doar de funcția de adaptare.

Tipuri de selecție:

• Ruletă (engl. “roulette-wheel”): Se atribuie fiecărui individ o parte a ruletei, proporțională


cu valoarea funcției sale de adaptare. Se „învârte” ruleta de n ori pentru a se alege n părinți;
• Bazată pe ranguri (engl. “rank-based”): Indivizii sunt numerotați în ordinea crescătoare a
fitness-ului. Probabilitatea de selecție este proporțională cu rangul unui individ în populație;

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


• Eșantionare universală stohastică (engl. “stochastic universal sampling”): Asemănătoare cu
selecția prin ruletă, dar nu alege părinții prin eșantionări repetate, ci utilizează o singură
valoare aleatorie pentru alegerea tuturor părinților, la intervale echidistante;
• Competiție (engl. “tournament”): 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.

Elitismul presupune faptul că individul cel mai adaptat este copiat direct în noua populație.

Florin Leon, Inteligenta artificiala - Suport de curs, http://florinleon.byethost24.com/curs_ia.htm


Asigură faptul că niciodată nu se va pierde soluția cea mai bună.

Încrucișarea combină 2 cromozomi părinți pentru a produce un nou cromozom fiu. Are loc
cu o probabilitate mare, numită rată de încrucișare.
Pentru codarea binară, cea mai des folosită metodă este î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 și se creează 1 sau 2
copíi prin unirea extremelor.
Pentru codarea cu valori reale, se folosește de obicei încrucișarea aritmetică: se creează
copíi „între” părinți: zi = α xi + (1 – α) yi , cu 0 ≤ α ≤ 1, unde α este o variabilă aleatorie.
Pentru codarea bazată pe permutări, se alege un fragment arbitrar din primul părinte, se
copiază fragmentul în (primul) copil, apoi se copiază numerele care nu există în primul fragment în
(primul) copil începând de la punctul de diviziune și folosind ordinea din al doilea părinte. Se
procedează analog pentru al doilea copil, dacă este cazul, cu rolurile părinților inversate.

Mutația modifică genele unui copil cu o probabilitate mică, numită rată de mutație.
Mutația binară neagă valoarea unei gene.
Mutația reală resetează o genă la o valoare aleatorie în domeniul de definiție sau modifică
puțin valoarea existentă.
Mutația cea mai simplă pentru permutări interschimbă două gene.

Criteriile de terminare cele mai folosite sunt: atingerea unui număr specificat de generații
sau convergența populației.

Optimizarea multiobiectiv

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 este strict superioară lui S2 în raport cu cel puțin un obiectiv.
Mulțimea tuturor soluțiilor nedominate se numește front Pareto.

Algoritm scalar cu sumă ponderată a obiectivelor

Pentru optimizarea multiobiectiv, se poate folosi un algoritm scalar, pentru o problemă în


care funcția de adaptare este o sumă ponderată a obiectivelor, cu ponderi stabilite de utilizator:
f(x) = w1 f1(x1) + w2 f2(x2) +…+ wn fn(xn), Σ wi = 1. Utilizatorul trebuie să apeleze algoritmul scalar
cu diferite combinații de ponderi. Această abordare funcționează doar când frontul Pareto este
convex.

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


Algoritmul NSGA-II

Folosește o meta-euristică: 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 pentru
noua generație.

Florin Leon, Inteligenta artificiala - Suport de curs, http://florinleon.byethost24.com/curs_ia.htm


Selectarea se bazează pe sortarea nedominată a populației pe ranguri, astfel încât membrii de
rang n domină toți membrii de rang > n. Sortarea are ca scop selectarea celor mai buni n cromozomi
din populația de dimensiune 2n. Membrii de rang 1 constituie mulțimea nedominată, adică
aproximarea curentă a frontului Pareto.

Indivizii care aparțin aceluiași front sunt sortați pe baza distanței de aglomerare. Distanța de
aglomerare este distanța Manhattan între vecinii din front ai unui individ. Pentru extreme, distanța
se consideră ∞. Un individ mai bun are o distanță de aglomerare mai mare. Efectul este selecția
indivizilor aflați în regiuni mai puțin aglomerate și previne omogenizarea soluțiilor, deci
convergența prematură.

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

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