Применение генетического программирования для построения

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