Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Царев Ф.Н., Шалыто А.А. IV Международная научно-практическая конференция «Интегрированные модели и мягкие вычисления в искусственном интеллекте» мая 2007 г., Коломна
2 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» План доклада 1. Постановка задачи 2. Известные решения 3. Предлагаемый метод решения 4. Результаты
3 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» План доклада 1. Постановка задачи 2. Известные решения 3. Предлагаемый метод решения 4. Результаты
4 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Игровое поле Тор – 32x32 89 клеток с едой 200 ходов Расположение еды и начальная позиция муравья фиксированы Цель – создать муравья, который съест всю еду
5 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Что умеет муравей? Определять находится ли непосредственно перед ним еда За один игровой ход совершить одно из четырех действий: сделать шаг вперед, съедая еду, если она там находится повернуть налево повернуть направо ничего не делать
6 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Конечный автомат – способ описания муравья Автомат с действиями на переходах (автомат Мили) Придумать автомат с большим числом состояний – просто С небольшим – сложно На рисунке – 5 состояний, за 200 ходов – 81 единица еды
7 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» План доклада 1. Постановка задачи 2. Известные решения 3. Предлагаемый метод решения 4. Результаты
8 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Генетические алгоритмы–1 Jefferson D., Collins R., Cooper C., Dyer M., Flowers M., Korf R., Taylor C., Wang A. The Genesys System Кодирование автоматов битовыми строками Построен автомат из 13 состояний, позволяющий съесть всю еду за 200 ходов
9 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Генетические алгоритмы–2 Angeline P. J., Pollack J. Evolutionary Module Acquisition // Proceedings of the Second Annual Conference on Evolutionary Programming Кодирование автоматов битовыми строками + «замораживание» Построен автомат из 11 состояний, позволяющий съесть всю еду за 193 хода
10 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Генетические алгоритмы–3 Chambers L. D. Practical Handbook of Genetic Algorithms, Volume 3, Chapter 26, 6 – Algorithms to Improve the Convergence of a Genetic Algorithm with a Finite State Machine Genome. CRC Press, Кодирование автоматов битовыми строками + приведение автоматов к каноническому виду Построен автомат из 8 состояний, позволяющий съесть всю еду за 193 хода
11 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» План доклада 1. Постановка задачи 2. Известные решения 3. Предлагаемый метод решения 4. Результаты
12 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Предлагаемый подход – 1 Генетическое программирование Автомат = начальное состояние + описание состояний Состояние = два перехода Переход = номер состояния + действие public class Automaton { public Transition[][] transitions; public int initialState; public int stateCount; }
13 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Создание начального поколения Случайно генерируется заданное количество автоматов Все автоматы содержат одинаковое количество состояний
14 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Формирование следующего поколения Элитизм Фиксированная доля особей переходят напрямую Остальные – выбираются две особи из текущего поколения, и они с некоторой вероятностью скрещиваются или мутируют
15 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Мутации поколений Если за некоторое число поколений не произошло улучшений – надо что-то делать «Малая» мутация поколения – все, кроме 10% лучших «Большая» мутация поколения – все либо мутируют, либо заменяются на случайно сгенерированную особь
16 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Мутация автомата Изменение начального состояния Изменение действия на переходе Изменение состояния, в которое ведет переход Изменение условия на переходе
17 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Скрещивание На входе две особи, на выходе – две особи Родители – P1 и P2 Потомки – S1 и S2 Начальное состояние: S1.is = P1.is и S2.is = P2.is, либо S1.is = P2.is и S2.is = P1.is Переходы – есть два варианта
18 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Скрещивание переходов – первый вариант Рассмотрим состояние номер i «Перед муравьем нет еды» P1(i, 0) «Перед муравьем есть еда» P1(i, 1) Аналогично: P2(i, 0), P2(i, 1), S1(i, 0), S1(i,1), S2(i, 0), S2(i, 1) Есть 4 варианта для S1(i, 0), S1(i,1), S2(i, 0), S2(i, 1)
19 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» 4 варианта
20 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Скрещивание переходов – второй вариант В автоматах P1 и P2 найдем переходы, которые они выполняют в течение первых сорока ходов по игровому полю – TF(P1) и TF(P2) T(A) – множество переходов автомата A 2 варианта
21 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» 2 варианта
22 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Функция приспособленности F – количество еды, которое съедает за 200 ходов муравей T – номер хода, на котором муравей съедает последнюю единицу еды
23 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Настраиваемые параметры Размер поколения Доля особей, переходящих в следующее поколение Количество состояний Вероятность мутации Время до «малой» мутации поколения Время до «большой» мутации поколения
24 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» План доклада 1. Постановка задачи 2. Известные решения 3. Предлагаемый метод решения 4. Результаты
25 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Автомат из семи состояний Позволяет муравью съесть всю еду за 190 ходов Получен после генерации 160 млн. автоматов Время вычислений ~4 часа
26 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Автоматы из 8 состояний Размер поколения Доля особей, переходящих в следующее поколение Время до «малой» мутации поколения Время до «большой» мутации поколения Количество вычислений фитнес- функции
27 Царев Ф.Н., Шалыто А.А. Применение генетического программирования для генерации автомата в задаче об «Умном муравье» Спасибо за внимание!