Evoluție diferențială ( ing. evoluție diferențială ) - o metodă de optimizare matematică multidimensională , aparținând clasei de algoritmi de optimizare stocastică (adică funcționează folosind numere aleatoare) și folosește unele idei de algoritmi genetici , dar, spre deosebire de acestea, nu necesită lucrul cu variabile în cod binar.
Aceasta este o metodă de optimizare directă, adică necesită doar capacitatea de a calcula valorile funcției obiectiv, dar nu și derivatele acesteia. Metoda evoluției diferențiale este concepută pentru a găsi minimul (sau maximul) global al funcțiilor nediferențiabile, neliniare, multimodale (posibil având un număr mare de extreme locale) ale multor variabile. Metoda este ușor de implementat și utilizat (conține puțini parametri de control care necesită selecție) și este ușor de paralelizat .
Metoda evoluției diferențiale a fost dezvoltată de Rainer Storn și Kenneth Price, publicată pentru prima dată de aceștia în 1995 [1] și dezvoltată în continuare în lucrările lor ulterioare. [2] [3]
În forma sa de bază, algoritmul poate fi descris după cum urmează. Inițial, un set de vectori, numit generație, este generat. Vectorii sunt puncte ale spațiului -dimensional în care este definită funcția obiectiv , care trebuie minimizată. La fiecare iterație, algoritmul generează o nouă generație de vectori prin combinarea aleatorie a vectorilor din generația anterioară. Numărul de vectori din fiecare generație este același și este unul dintre parametrii metodei.
Noua generație de vectori este generată după cum urmează. Pentru fiecare vector din vechea generație, trei vectori aleatori diferiți , , sunt selectați dintre vectorii vechei generații, cu excepția vectorului însuși , iar așa-numitul vector mutant este generat prin formula:
unde este unul dintre parametrii metodei, o constantă reală pozitivă în intervalul [0, 2].
Pe vectorul mutant se efectuează o operație de încrucișare , care constă în înlocuirea unora dintre coordonatele acestuia cu coordonatele corespunzătoare din vectorul original (fiecare coordonată este înlocuită cu o anumită probabilitate, care este și unul dintre parametrii acestei metode). Vectorul obținut după încrucișare se numește vector de probă. Dacă se dovedește a fi mai bun decât vectorul (adică valoarea funcției obiectiv a devenit mai mică), atunci în noua generație vectorul este înlocuit cu un vector de probă, altfel rămâne .
Motorul de căutare Yandex folosește metoda evoluției diferențiale pentru a-și îmbunătăți algoritmii de clasare. [4] [5]
Link-uri externe :
de optimizare | Metode|
---|---|
Unidimensional |
|
Comanda zero | |
Prima comanda | |
a doua comanda | |
Stochastic | |
Metode de programare liniară | |
Metode de programare neliniară |
Învățare automată și extragerea datelor | |
---|---|
Sarcini | |
Învățarea cu un profesor | |
analiza grupului | |
Reducerea dimensionalității | |
Prognoza structurală | |
Detectarea anomaliilor | |
Modele grafice probabilistice | |
Rețele neuronale | |
Consolidarea învățării |
|
Teorie | |
Reviste și conferințe |
|