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]
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 .
Yandex -søgemaskinen bruger differential evolution-metoden til at forbedre sine rangeringsalgoritmer. [4] [5]
Eksterne links :
Optimeringsmetoder _ | |
---|---|
Endimensionel |
|
Nul orden | |
Første ordre | |
anden orden | |
Stokastisk | |
Lineære programmeringsmetoder _ | |
Ikke-lineære programmeringsmetoder |
Machine learning og data mining | |
---|---|
Opgaver | |
At lære med en lærer | |
klyngeanalyse | |
Dimensionalitetsreduktion | |
Strukturel prognose | |
Anomali detektion | |
Grafer sandsynlighedsmodeller | |
Neurale netværk | |
Forstærkende læring |
|
Teori | |
Tidsskrifter og konferencer |
|