ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением Ф. Н. Царев, А. А. Шалыто 2007 год ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Автоматное программирование Предложено в России в 1991 году Программные системы предлагается разрабатывать так же, как выполняется автоматизация технологических (и не только) процессов Система управления является системой взаимодействующих конечных автоматов E, X2 Система управления Z Объект управления X1 Состояния События и входные переменные Выходные воздействия Конечный автомат Система конечных автоматов Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 2 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Преимущества автоматного подхода Обладает наибольшей эффективностью для систем со сложным поведением Формальное и понятное описание поведения Автоматическая генерация кода по диаграммам переходов Возможность верификации программ Проектная документация Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 3 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Инструментальное средство UniMod (1) Инструментальное средство для поддержки автоматного программирования Создано в рамках ФЦНТП «Исследования и разработки по приоритетным направлениям развития науки и техники» на 2002-2006 годы по приоритетному направлению «Информационнотелекоммуникационные системы» Критическая технология – «Технологии производства программного обеспечения» Вошел в число 15 наиболее инновационно перспективных и социально значимых проектов Федерального агентства по науке и инновациям Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 4 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Инструментальное средство UniMod (2) Вручную Семь автоматов Автоматическая генерация Вручную Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 5 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Инструментальное средство UniMod (3) Один из автоматов – AL Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 6 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Решаемая проблема Основная сложность в автоматном программировании – построение автоматов В большинстве случаев автоматы проектируются вручную Однако эвристическое построение автоматов часто затруднено или невозможно Решение – автоматическое построение конечных автоматов с помощью генетического программирования Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 7 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ 2007 год – исследования 1. 1. 2. Анализ источников и патентный поиск Разработка методов и алгоритмов для генерации автоматов для систем со сложным поведением 2008 год – внедрение 2. 1. 2. 3. Этапы решения проблемы Разработка библиотеки, реализующей разработанные методы и алгоритмы Апробация результатов работы при проектировании программного обеспечения систем со сложным поведением Это позволит повысить уровень автоматизации построения программ рассматриваемого класса Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 8 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Три рассматриваемые задачи «Простая» задача – задача об «Умном муравье» «Сложная» задача – задача «Беспилотные летательные объекты» «Народная» задача – «Разливочная линия» Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 9 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ «Простая» задача – задача об «Умном муравье» Тор – 32x32 89 клеток с едой 200 ходов Расположение еды и начальная позиция муравья фиксированы Цель – создать муравья, который съест всю еду Муравей = конечный автомат Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 10 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Эвристическое построение задачу не решает Пять состояний, за 200 ходов съедается 81 единица еды или все 89 единиц еды за 314 ходов !F / R 2 !F / R F/M 1 3 F/M F/M F/M !F / M !F / R F/M 5 !F / R 4 Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 11 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Решение «простой» задачи Известные решения: 13 состояний (1992) 11 состояний (1993) 8 состояний (1999) !F / M F/M F/M Известные подходы – кодирование битовыми строками + генетический алгоритм Предлагаемый подход – генетическое программирование Построены два автомата с 7 состояниями после перебора 160 и 230 млн. автоматов Полный перебор ~3·1018 автоматов 1 6 !F / L !F / M 2 F/M !F / R 0 !F / R F/M !F / R F/M 4 !F / M 3 5 F/M F/M Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 12 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ «Сложная» задача – задача «Беспилотные летательные объекты» Соревнование на дальность полета Две команды по восемь объектов Ограничения: запас топлива, столкновения, аэродинамическое взаимодействие Цель – разработка управляющей программы Задача заочного тура VI Открытой Всесибирской олимпиады по программированию (2005 год) Была решена при участии автора путем эвристического построения автоматов http://is.ifmo.ru/unimod-projects/plates/ Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 13 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Беспилотный летательный объект Бортовой компьютер Двигатель Аэродинамические рули Бак с топливом Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 14 Аэродинамическое взаимодействие ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Области повышенного сопротивления воздуха Области пониженного сопротивления воздуха – 20° + + – 20° 20° 20° Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 15 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Столкновение объектов Столкновение – абсолютно упругое и описывается законами сохранения энергии и импульса При этом, если относительная скорость столкновения > 1 м/с, то оба объекта выбывают из соревнования Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 16 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Решение (1) Система управления = нейронная сеть + конечный автомат Нейронная сеть преобразует вещественные входные переменные в логические Относительные координаты «товарища» по команде 1 S 5 2 L S Относительные координаты соперников 6 3 S Летающая тарелка 7 4 Угол с направлением «вперед» Конечный автомат L L S Время до столкновения с ближайшей стеной Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 17 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Решение (2) Особь = две системы Особь управления беспилотным Система управления Система управления летающей тарелкой летающей тарелкой объектом Нейронная Конечный Нейронная Конечный Особь из двух сеть автомат сеть автомат Состояние Нейрон Состояние Нейрон систем – для учета номер номер 1 номер 1 номер 1 1 ... ... ... ... взаимодействия Нейрон Состояние Нейрон Состояние объектов номер 7 номер N номер 7 номер N Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 18 Решение (3) ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Мутация особи Мутация системы управления летательным объектом Мутация нейронной сети Мутация конечного автомата Мутация элемента сети Изменение начального состояния Мутация перехода Скрещивание особей Скрещивание систем управления летающей тарелкой Скрещивание автоматов Скрещивание нейронных сетей Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 19 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Результаты применения генетического программирования За сутки была построена управляющая система, содержащая нейронную сеть и один автомат с шестью состояниями (вместо семи автоматов с 21 состоянием) Построенная с помощью ГП система Построенная вручную система Среднее 216,55 212,59 Минимум Максимум 203,05 241,11 203,44 225,09 Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 20 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ «Народная» задача – «Разливочная линия» Задача: налить как можно больше бутылок за заданный промежуток времени Объект управления Объект управления A Бутылка стоит правильно x0 z0 Запустить транспортер Транспортер движется x1 z1 Остановить транспортер Бак пуст x2 z2 Открыть нижний клапан Бак полон x3 z3 Закрыть нижний клапан Тумблер в позиции x4 "выключено" z4 Открыть верхний клапан z5 Закрыть верхний клапан Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 21 Решения задачи ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ 1. Бутылка подъезжает, бак заполняется x0/z1 2. Бак заполняется !x0x1/z4 x3/z5 x0&x3/z1z2z5 x0!x1/z5 x3/z5z2 x0x1/z1z5 3. Булытка подъезжает x0/z1z2 1 4. Бутылка заполняется 2 !x2/z2 x2/z3z4z0 !x0 x2/z0z3 5. Смена бутылки Построен вручную Построен автоматически Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 22 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Результаты Разработан подход к генерации автоматов для систем со сложным поведением, позволяющий повысить уровень автоматизации программирования систем этого класса Эффективность метода продемонстрирована на трех типах примеров Требуется дальнейшее совершенствование методов генетического программирования автоматов и разработка программного продукта – библиотеки для поддержки предлагаемого подхода Мировые аналоги отсутствуют (для подтверждения этого в ближайшее время будет завершен патентный поиск) Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 23 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Спасибо за внимание! Спасибо за внимание! Царев Ф. Н. Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением 24