Еволюційні алгоритми: що це таке і для чого вони потрібні
Реалізація
Крок перший – створення початкового населення з індивідуумів у випадковому порядку.
Крок другий – оцінка придатності кожного індивідуума в цій групі (обмеження по часу, достатня підготовленість і т. д.).
Крок третій – повторення наступних пунктів регенерації до завершення:
Вибрати найбільш підходящих людей для розмноження (батьки).
Вивести нових особин, які пройшли еволюційний алгоритм c допомогою кросоверу та мутації, щоб отримати потомство.
Оцінити індивідуальну придатність нових людей.
Замінити найменш пристосований населення ними.
Типи
Генетичний алгоритм — це еволюційна послідовність, самий популярний тип радника. Шукається рішення проблеми у вигляді рядків чисел (традиційно двійкових, хоча найкращими виставами зазвичай є ті, які відображають більше в розв’язуваної задачі) шляхом застосування таких операторів, як рекомбінація і мутація (іноді одного, у окремих обох випадках). Цей тип радника часто використовується в задачах оптимізації. Інша назва для цього — fetura (від латинського «народження»):
Генетичне програмування. У ньому рішення представлені у вигляді комп’ютерних кодів, і їх придатність визначається здатністю виконувати обчислювальні завдання.
Еволюційне програмування. Аналогічно еволюційно генетичним алгоритмом, але структура фіксована та її числові параметри можуть бути змінені.
Програмування експресії генів. Розвиває комп’ютерні програми, але досліджує систему генотип-фенотип, де проекти різних розмірів кодуються в лінійних хромосомах фіксованої довжини.
Стратегія. Працює з векторами дійсних чисел як уявленнями рішень. Зазвичай використовує самоадаптивные еволюційні алгоритми швидкості мутацій.
Диференціальне розвиток. Створено на основі векторних різниць і, отже, в першу чергу підходить для задач чисельної оптимізації.
Нейроеволюція. Аналогічно еволюційного програмування і генетичних алгоритмах. Але останні являють собою штучні нейронні мережі, описуючи структуру і вага сполук. Кодування генома може бути прямою або непрямою.