Differentiell evolution

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 27 mars 2016; kontroller kräver 15 redigeringar .

Differential evolution ( eng.  differential evolution ) - en metod för multidimensionell matematisk optimering , som tillhör klassen av stokastiska optimeringsalgoritmer (det vill säga den fungerar med slumptal) och använder vissa idéer om genetiska algoritmer , men kräver, till skillnad från dem, inte arbeta med variabler i binär kod.

Detta är en direkt optimeringsmetod, det vill säga den kräver bara förmågan att beräkna målfunktionens värden, men inte dess derivator. Metoden för differentiell evolution är utformad för att hitta det globala minimum (eller maximum) av icke-differentiera, icke-linjära, multimodala (möjligen med ett stort antal lokala extrema) funktioner för många variabler. Metoden är enkel att implementera och använda (innehåller få kontrollparametrar som kräver urval), och är lätt att parallellisera .

Metoden för differentiell evolution utvecklades av Rainer Storn och Kenneth Price, publicerades först av dem 1995 [1] och vidareutvecklades i deras senare arbete. [2] [3]

Algoritm

I sin grundform kan algoritmen beskrivas enligt följande. Initialt genereras någon uppsättning vektorer, kallad generation. Vektorer är punkter i det dimensionella utrymme där den objektiva funktionen är definierad , som ska minimeras. Vid varje iteration genererar algoritmen en ny generation av vektorer genom att slumpmässigt kombinera vektorer från den föregående generationen. Antalet vektorer i varje generation är detsamma och är en av parametrarna för metoden.

Den nya generationen av vektorer genereras enligt följande. För varje vektor från den gamla generationen väljs tre olika slumpmässiga vektorer , , ut bland vektorerna från den gamla generationen, med undantag för själva vektorn , och den så kallade mutantvektorn genereras med formeln:

där  är en av metodparametrarna, någon positiv reell konstant i intervallet [0, 2].

En crossover-operation utförs på mutantvektorn , som består i att ersätta några av dess koordinater med motsvarande koordinater från den ursprungliga vektorn (varje koordinat ersätts med en viss sannolikhet, vilket också är en av parametrarna för denna metod). Vektorn som erhålls efter korsning kallas en försöksvektor. Om det visar sig vara bättre än vektorn (det vill säga värdet på objektivfunktionen har blivit mindre), så ersätts vektorn i den nya generationen av en försöksvektor, annars förblir den .

Exempel på praktiska tillämpningar

Yandex sökmotor använder differential evolution-metoden för att förbättra sina rankningsalgoritmer. [4] [5]

Anteckningar

  1. Storn, Rainer och Price, Kenneth . Differential Evolution - A Simple and Efficient Adaptive Scheme for Global Optimization over Continuous Spaces, Arkiverad 24 april 2005 på Wayback Machine Technical Report TR- 95-012 , ICSI, mars 1995.
  2. Storn, Rainer och Price, Kenneth . Differential Evolution - En enkel och effektiv heuristik för global optimering över kontinuerliga utrymmen. Arkiverad 6 januari 2010 på Wayback Machine (1997)
  3. K. Price, R. Storn, J. Lampinen . Differential Evolution: A Practical Approach to Global Optimization. Springer, 2005.
  4. Intervju av A. Sadovsky till tidskriften IT SPEC, juli 2007. . Hämtad 3 oktober 2009. Arkiverad från originalet 13 maj 2013.
  5. A. Gulin et al. Yandex på ROMIP'2009. Optimering av rankningsalgoritmer genom maskininlärningsmetoder. . Hämtad 3 oktober 2009. Arkiverad från originalet 22 november 2009.

Externa länkar :