Differentiaalinen evoluutio

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 27. maaliskuuta 2016 tarkistetusta versiosta . tarkastukset vaativat 15 muokkausta .

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]

Algoritmi

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ää .

Esimerkkejä käytännön sovelluksista

Yandex - hakukone käyttää differentiaalisen evoluution menetelmää parantaakseen sijoitusalgoritmejaan. [4] [5]

Muistiinpanot

  1. Storn, Rainer ja Price, Kenneth . Differentiaalikehitys – Yksinkertainen ja tehokas mukautuva järjestelmä globaaliin optimointiin jatkuvissa tiloissa, arkistoitu 24. huhtikuuta 2005 Wayback Machinen teknisessä raportissa TR -95-012 , ICSI, maaliskuu 1995.
  2. Storn, Rainer ja Price, Kenneth . Differentiaalinen evoluutio – Yksinkertainen ja tehokas heuristinen globaali optimointi jatkuvissa tiloissa. Arkistoitu 6. tammikuuta 2010 Wayback Machinessa (1997)
  3. K. Price, R. Storn, J. Lampinen . Differentiaalinen evoluutio: Käytännön lähestymistapa globaaliin optimointiin. Springer, 2005.
  4. A. Sadovskyn haastattelu IT SPEC -lehdelle, heinäkuu 2007. . Haettu 3. lokakuuta 2009. Arkistoitu alkuperäisestä 13. toukokuuta 2013.
  5. A. Gulin ym. Yandex at ROMIP'2009. Ranking-algoritmien optimointi koneoppimismenetelmillä. . Haettu 3. lokakuuta 2009. Arkistoitu alkuperäisestä 22. marraskuuta 2009.

Ulkoiset linkit :