Differentiel evolution

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 27. marts 2016; checks kræver 15 redigeringer .

Differential evolution ( eng.  differential evolution ) - en metode til multidimensionel matematisk optimering , der tilhører klassen af ​​stokastiske optimeringsalgoritmer (det vil sige, den virker ved hjælp af tilfældige tal) og bruger nogle ideer om genetiske algoritmer , men kræver i modsætning til dem ikke arbejde med variable i binær kode.

Dette er en direkte optimeringsmetode, det vil sige, den kræver kun evnen til at beregne værdierne af den objektive funktion, men ikke dens derivater. Metoden med differentiel evolution er designet til at finde det globale minimum (eller maksimum) af ikke-differentierbare, ikke-lineære, multimodale (muligvis have et stort antal lokale ekstrema) funktioner af mange variable. Metoden er nem at implementere og bruge (indeholder få kontrolparametre, der kræver udvælgelse), og er let paralleliseret .

Den differentielle evolution metode blev udviklet af Rainer Storn og Kenneth Price, først udgivet af dem i 1995 [1] og videreudviklet i deres senere arbejde. [2] [3]

Algoritme

Algoritmen kan i sin grundform beskrives som følger. Til at begynde med genereres et sæt vektorer, kaldet en generation. Vektorer er punkter i det dimensionelle rum, hvori den objektive funktion er defineret , som skal minimeres. Ved hver iteration genererer algoritmen en ny generation af vektorer ved tilfældigt at kombinere vektorer fra den forrige generation. Antallet af vektorer i hver generation er det samme og er en af ​​metodens parametre.

Den nye generation af vektorer genereres som følger. For hver vektor fra den gamle generation vælges tre forskellige tilfældige vektorer , , blandt vektorerne fra den gamle generation, med undtagelse af selve vektoren , og den såkaldte mutantvektor genereres af formlen:

hvor  er en af ​​metodeparametrene, en eller anden positiv reel konstant i intervallet [0, 2].

En crossover-operation udføres på mutantvektoren , som består i at erstatte nogle af dens koordinater med de tilsvarende koordinater fra den oprindelige vektor (hver koordinat er erstattet med en vis sandsynlighed, hvilket også er en af ​​parametrene for denne metode). Vektoren opnået efter krydsning kaldes en forsøgsvektor. Hvis det viser sig at være bedre end vektoren (det vil sige, at værdien af ​​den objektive funktion er blevet mindre), så er vektoren i den nye generation erstattet af en prøvevektor, ellers forbliver den .

Eksempler på praktiske anvendelser

Yandex -søgemaskinen bruger differential evolution-metoden til at forbedre sine rangeringsalgoritmer. [4] [5]

Noter

  1. Storn, Rainer og Price, Kenneth . Differential Evolution - A Simple and Efficient Adaptive Scheme for Global Optimization over Continuous Spaces, Arkiveret 24. april 2005 på Wayback Machine Technical Report TR -95-012 , ICSI, marts 1995.
  2. Storn, Rainer og Price, Kenneth . Differentiel evolution - en enkel og effektiv heuristik til global optimering over kontinuerlige rum. Arkiveret 6. januar 2010 på Wayback Machine (1997)
  3. K. Price, R. Storn, J. Lampinen . Differentiel udvikling: En praktisk tilgang til global optimering. Springer, 2005.
  4. Interview af A. Sadovsky til IT SPEC magazine, juli 2007. . Hentet 3. oktober 2009. Arkiveret fra originalen 13. maj 2013.
  5. A. Gulin et al. Yandex på ROMIP'2009. Optimering af rangeringsalgoritmer ved maskinlæringsmetoder. . Hentet 3. oktober 2009. Arkiveret fra originalen 22. november 2009.

Eksterne links :