Evoliucinės paieškos algoritmas yra optimizavimo metodas, pagrįstas natūralios evoliucijos mechanizmu. Šis algoritmas imituoja individų evoliucijos procesą populiacijoje iš kartos į kartą, kad rastų geriausią problemos sprendimą.
Kaip tai veikia
- Populiacijos inicijavimas: sukurkite pradinę atsitiktinai sugeneruotų asmenų populiaciją.
- Įvertinimas: Įvertinkite kiekvieno individo kokybę populiacijoje pagal objektyvią funkciją arba vertinimo kriterijus.
- Atranka: pagal tikimybes arba atrankos kriterijus pasirinkite geriausių individų poaibį iš dabartinės populiacijos.
- Evoliucija: sukurkite naują kartą pasirinktiems asmenims taikydami kryžminimo ir mutacijos operacijas.
- Iteracija: kartokite 2–4 veiksmus per kelias kartas, kol bus pasiektas patenkinamas sprendimas arba iš anksto nustatytas iteracijų skaičius.
Pavyzdys: Fibonacci funkcijos optimizavimas naudojant evoliucinę paiešką
Apsvarstykite funkcijos F(x) = F(x-1) + F(x-2) optimizavimo uždavinį Fibonacci, kai F(0) = 0, F(1) = 1. Norime rasti x reikšmę, kuriai F(x) yra maksimalus. Evoliucinės paieškos metodas gali generuoti atsitiktinių x reikšmių populiaciją, jas plėtoti iš kartos į kartą, kad būtų galima rasti optimalią x reikšmę.
Kodo pavyzdys C++
Šiame pavyzdyje funkcijai optimizuoti naudojame evoliucinės paieškos metodą Fibonacci. Sugeneruojame atsitiktinių x reikšmių populiaciją, evoliucionuojame iš kartos į kartą atrinkdami geriausius asmenis ir taikydami kryžminimo ir mutacijos operacijas.