План • Где я применил генетический алгоритм • Как устроен генетический алгоритм • Гиперпараметры и настройки алгоритма • В каких задачах генетические алгоритмы применимы • Ссылки на источники
Задача и решение https://www.codingame.com/training/medium/ mars-lander-episode-2 • Приземлить посадочный модуль на поверхность (дается несколько наборов поверхности) o Только горизонтальный участок o Вертикальная скорость не более 40 м/с o Горизонтальная не более 20 м/с o Ориентация при осадке – строго вертикально o Сэкономить побольше топлива • Управляем углом наклона и мощностью двигателя o За один такт изменения не более чем на один шаг • Начальные условия o Описание поверхности o Начальная точка o Начальная скорость по вертикали и горизонтали Алгоритм в действии
Основы генетического алгоритма • Модель (Особь) • Хромосома (gene) • Популяция (population) • Функция приспособляемости (fitting) • Функция отбора (selection) • Функция скрещивания (cross over) • Функция мутации (mutation) Создание первого поколения Скрещивание Мутация Новое поколение Оценка Отбор *Приемле мый результат
Хромосома и модель • Хромосома – упорядоченный набор управляющих воздействий на модель o В рассматриваемой задаче – это последовательность команд • Модель – в общем случае объект описывающий как ведет себя модель для любого набора управлявших воздействий o Модель поверхности • Расчет факта касания (пересечение отрезка траектории и отрезка поверхности) • Расчет координат точки касания o Модель посадочного модуля • Расчет траектории • Функции оценки, скрещивания, мутации
Fitting функция (приспособляемость) • Основное преимущество генетических алгоритмов o Определил кусками и последовательно • Расстояние от точки касания до горизонтальной поверхности: 100 - (Distance/Full Surface Length) • Горизонтальная скорость и вертикальная скорость: 100 – MAX(ABS(Speed – Speed Limit), 0) • Угол наклона: 100 – ABS(Angle) • Топливо: 100 – (100 * Fuel / Init Fuel))
Мутации • Зачем? - Обеспечить вариативность популяции • Стратегии мутации (гиперпараметры) o Какие гены мутируют • Один или несколько • Выбор генов для мутации o Случайный o С учетом последовательности – чем выше ген к концу цепочки в хромосоме тем выше шанс мутации o Как мутируют гены • Любое значение гена • Из под выборки в зависимости от предыдущих и последующих генов
Новое поколение • Часть 1 – «выжившие» особи предыдущего поколения • Часть 2 – «потомки» полученные после скрещивания • Размер новой популяции o Классика - не менять размер популяции • Увеличение – замедляет расчет • Уменьшение – снижает вариативность "старики" "молодежь"
Применение алгоритма • Инженерные задачи o ST5 X-band антенна. Создана благодаря генетическому алгоритму. Превосходит другие типы антенн в определенных диаграммах направленности. Использовалась NASA в 2016 году в проекте Space Technology 5 • Self Driving Cars • ML задачи/соревнования • «Игровые» задачи (CodinGame, Open AI, Russia AI CUP ) o Пример (английский) http://files.magusgeek.com/csb/csb_en.html
Ссылки • Задача на CodinGames https://www.codingame.com/training/medium/mars-lander-episode-2 • Разъяснение по Генетическому алгоритму (английский) https://tech.io/playgrounds/334/genetic-algorithms/history • Статья победителя CODERS STRIKE BACK: http://files.magusgeek.com/csb/csb_en.html • Статья на хабре – размер популяции https://habr.com/post/114910/ • Демонстрация – конструкции машин http://rednuht.org/genetic_cars_2/