Теоретичні основи методу диференціальної еволюції
Метод диференціальної еволюції - один з методів еволюційного моделювання, призначений для вирішення завдання багатовимірної оптимізації.
Метод диференціальної еволюції - один з методів еволюційного моделювання, призначений для вирішення завдання багатовимірної оптимізації. За класифікацією оптимізаційних методів він відноситься до класу стохастичних методів, так як використовує в процесі пошуку рішення генератор випадкових чисел. Крім того, він використовує і деякі ідеї генетичних алгоритмів , Але, на відміну від них, не вимагає роботи зі змінними в бінарному коді.
Метод диференціальної еволюції - прямий метод оптимізації, тобто в ході його роботи потрібно тільки обчислення значення цільової функцій (критерію оптимізації), але не її похідних. У загальному випадку, цільові функції, що оптимізуються за допомогою даного методу, можуть бути не диференціюються, нелінійні, багатоекстремального і з дуже великою кількістю змінних. Метод простий в реалізації і використанні і легко распараллеливается.
Диференціальна еволюція була придумана Рейнер сторно і Кеннетом Прайсом і в 1995 році вперше опублікована ними.
Алгоритм методу диференціальної еволюції
1. Ініціалізується безліч випадкових векторів, званих поколінням, що представляють собою можливі рішення задачі оптимізації. Число векторів в кожному поколінні один і той же і є одним з параметрів настройки методу.
2. На кожній епосі еволюційного процесу алгоритм генерує нове покоління векторів, випадковим чином комбінуючи між собою вектори попереднього покоління.
Генерація векторів нового покоління проводиться таким чином. Для кожного вектора зі старого покоління (базового вектора) вибираються три різних випадкових вектора також серед векторів старого покоління, за винятком самого вектора , І генерується так званий мутантний вектор по співвідношенню:
де φ - один з параметрів настройки методу, що характеризує максимально можливу відстань, на яке може розширитися область пошуку оптимуму по одній змінної за одну епоху еволюції - позитивна дійсна константа в інтервалі (φ ≤ 2,0).
3. Над мутантним вектором виконується операція кросовера (схрещування). В ході неї деякі координати мутантного вектора заміщуються відповідними координатами з базового вектора. Кожна координата заміщається з певною ймовірністю (ρ), яка також є параметром настройки методу диференціальної еволюції.
Отриманий після схрещування вектор називається пробним вектором. Якщо він виявляється краще базового вектора (значення цільової функції покращився), то в новому поколінні базовий вектор замінюється на пробний, в іншому випадку базовий вектор зберігається в новому поколінні.
4. На кожній епосі еволюційного процесу або із заданою періодичністю визначається кращий вектор покоління з метою контролю швидкості пошуку оптимального рішення. Умовами закінчення моделювання можуть бути наступні:
- вичерпано заданий гранична кількість епох еволюції;
- вичерпано заданий граничний фізичний розрахунковий час;
- значення критерію оптимізації кращого вектора покоління не змінюється протягом заданого граничного кількості епох еволюції;
- досягнуто задовільний значення критерію оптимізації.
У більшості випадків використання для вирішення завдання багатовимірної оптимізації методу диференціальної еволюції рекомендується приймати число особин в популяції приблизно в 10 разів більше кількості оптимізуються змінних. Вибір коефіцієнта φ і постійної кросовера ρ здійснюється емпірично, оскільки багато в чому залежить від рельєфу поверхні критерію оптимізації.