Differentiaalinen evoluutio ( eng. differential evolution ) - moniulotteisen matemaattisen optimoinnin menetelmä , joka kuuluu stokastisten optimointialgoritmien luokkaan (eli toimii satunnaislukujen avulla) ja käyttää joitain geneettisten algoritmien ideoita , mutta toisin kuin ne, ei vaadi Työskentely muuttujien kanssa binäärikoodissa.
Tämä on suora optimointimenetelmä, eli se vaatii vain kykyä laskea tavoitefunktion arvot, mutta ei sen johdannaisia. Differentiaalinen evoluutiomenetelmä on suunniteltu löytämään globaali minimi (tai maksimi) monien muuttujien ei-differentoiville, epälineaarisille, multimodaalisille (joissa on mahdollisesti suuri määrä paikallisia äärimmäisiä) funktioita. Menetelmä on helppo toteuttaa ja käyttää (sisältää muutamia valintaa vaativia ohjausparametreja) ja se on helposti rinnastettavissa .
Rainer Storn ja Kenneth Price kehittivät differentiaalisen evoluution menetelmän, jonka he julkaisivat ensimmäisen kerran vuonna 1995 [1] ja kehittivät edelleen myöhemmässä työssään. [2] [3]
Perusmuodossaan algoritmi voidaan kuvata seuraavasti. Aluksi generoidaan jokin joukko vektoreita, joita kutsutaan sukupolveksi. Vektorit ovat -ulotteisen avaruuden pisteitä, joissa tavoitefunktio määritellään , mikä tulee minimoida. Jokaisessa iteraatiossa algoritmi luo uuden sukupolven vektoreita yhdistämällä satunnaisesti edellisen sukupolven vektoreita. Vektorien lukumäärä kussakin sukupolvessa on sama ja se on yksi menetelmän parametreista.
Uusi vektorien sukupolvi generoidaan seuraavasti. Jokaiselle vanhan sukupolven vektorille valitaan vanhan sukupolven vektoreista kolme erilaista satunnaisvektoria , paitsi itse vektori , ja ns. mutanttivektori generoidaan kaavalla:
jossa on yksi menetelmäparametreista, jokin positiivinen reaalivakio välillä [0, 2].
Mutanttivektorille suoritetaan risteysoperaatio, jossa jotkin sen koordinaatit korvataan vastaavilla alkuperäisen vektorin koordinaatteilla (jokainen koordinaatti korvataan tietyllä todennäköisyydellä, mikä on myös yksi tämän menetelmän parametreista). Risteyksen jälkeen saatua vektoria kutsutaan koevektoriksi . Jos se osoittautuu paremmaksi kuin vektori (eli tavoitefunktion arvo on pienentynyt), niin uudessa sukupolvessa vektori korvataan koevektorilla, muuten se jää .
Yandex - hakukone käyttää differentiaalisen evoluution menetelmää parantaakseen sijoitusalgoritmejaan. [4] [5]
Ulkoiset linkit :
Optimointimenetelmät _ | |
---|---|
Yksiulotteinen |
|
Nolla järjestys | |
Ensimmäinen tilaus | |
toinen tilaus | |
Stokastinen | |
Lineaariset ohjelmointimenetelmät _ | |
Epälineaariset ohjelmointimenetelmät |
Koneoppiminen ja tiedon louhinta | |
---|---|
Tehtävät | |
Opettajan kanssa oppimista | |
ryhmäanalyysi | |
Mittasuhteiden vähentäminen | |
Rakenteellinen ennustaminen | |
Anomalian havaitseminen | |
Piirrä todennäköisyysmallit | |
Neuroverkot | |
Vahvistusoppiminen |
|
Teoria | |
Lehdet ja konferenssit |
|