Documente Academic
Documente Profesional
Documente Cultură
Cursul 4
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:
Elitismul presupune faptul că individul cel mai adaptat este copiat direct în noua populație.
Î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.
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ă.