Основні принципи
В основі роботи генетичного алгоритму лежить робота з популяцією потенційних рішень для задачі. Кожне рішення представлене як «окремий елемент» або «хромосома», зазвичай закодоване як рядок бітів (двоєве представлення) або чисел.
Ці хромосоми піддаються процесам, аналогічним природному відбору: розмноження (крос-перемішування), мутація та відбір. Найкращі окремі елементи – ті, що мають найкращі рішення – більш імовірно розмножуються та передають свої характеристики.
Оптимізація за допомогою методів генетичного програмування
Кросівер моделює сексуальну репродукцію, об'єднуючи генетичний матеріал з двох батьківських хромосом для створення нащадків. Це вводить нові комбінації ознак у популяцію.
Мутація випадково змінює код хромосоми, вводячи різноманітність і запобігаючи передчасній конвергенції на локальних оптимумах. Рівень мутації є критичним; занадто високий, і рішення стають нестабільними; занадто низький, і дослідження зупиняється.
P_crossover = α * (chromosome1 ∩ chromosome2) + (1 - α) * chromosome1 (α: crossover probability)
Методи Вибору
Різні методи вибору визначають, які особини сприяють наступному поколінню. Поширечні техніки включають Вибір Рулеточного Колеса (ймовірність пропорційна пристосованості), Турнірний Вибір та Рейтингований Вибір.
Вибір рулетового колеса призначає ймовірності на основі ‘пристосуваності’ особини – наскільки добре вона вирішує проблему. Турнірний вибір випадково обирає підмножину осіб і вибирає найсильнішу з цієї групи.
Застосування та міркування
Генетичні алгоритми чудово працюють у задачах з комплексною, нелінійною структурою, де методи на основі градієнта не справляються. Прикладами є оптимізація маршрутів (Задача про мішаників), планування завдань та налаштування параметрів.
Ефективність генетичного алгоритму значною мірою залежить від таких параметрів, як розмір популяції, коефіцієнт схрещування, коефіцієнт мутації та метод відбору. Ретельна настройка є ключем до досягнення оптимальної продуктивності.
Часті запитання
Що робить Генетичні Алгоритми відмінними від Градієнтного Спуск?
Градієнтний спуск покладається на обчислення похідних для знаходження мінімуму функції, що може бути складним для комплексних недиференційованих задач. ГА використовують підхід на основі популяції, який імітує еволюцію.
Як визначити ‘фітнес’ у Генетичному Алгоритмі?
'Фітнес' є мірою того, наскільки добре окремий розв'язок виконує поставлену задачу. Він зазвичай визначається на основі обчислювальної функції, яку потрібно мінімізувати або максимізувати.
Чи завжди можуть Генетичні Алгоритми знайти оптимальне рішення?
Ні, ГА є стохастичними (випадковими) методами і не гарантують пошуку найкращого рішення. Однак вони часто збігаються до майже оптимального рішення протягом розумного часу.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте SPH Fluid і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію SPH Fluid