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

advertisement
Санкт-Петербургский Государственный Университет
Информационных Технологий, Механики и Оптики
Кафедра «Компьютерных Технологий»
Применение генетического
программирования для
реализации систем со
сложным поведением
Поликарпова Надежда Игоревна
Точилин Владимир Николаевич
Научный руководитель: д.т.н., профессор
Шалыто Анатолий Абрамович
Системы со сложным поведением
Программные и аппаратные системы часто имеют сложное
поведение (например, устройства управления, сетевые протоколы,
диалоговые окна, персонажи компьютерных игр, ...)
Для их реализации применяется автоматный подход: сущность со
сложным поведением представляется в виде автоматизированного
объекта
Автоматизированный объект
Управляющий автомат
множество
управляющих
состояний
функция
переходов
Объект управления
действия
{0,1}m
функция
выходов
(действий)
множество
вычислительных
состояний
(значений)
предикаты
{0,1}n
2
Проблемы автоматного подхода
Объект управления легко реализуется традиционными методами
Описание логики (управляющего автомата) производится с помощью
графа переходов:
+ Граф переходов хорошо структурирован
+ Разработан ряд методов декомпозиции
- Для ряда задач эвристическое построение автомата невозможно
(или очень сложно)
- Часто автомат, построенный вручную, содержит ошибки
- Даже если автомат корректен, он часто не оптимален
Решение: поручить построение логики системы со сложным
поведением машине!
3
Генетическое программирование
Генетическое программирование (ГП) – применение генетического
алгоритма для оптимизации параметров некоторой модели вычислений
В ГП написать программу в данной модели = задать оценочную функцию,
определяющую для каждого результата вычисления в данной модели его
пригодность (fitness)
Выполняется один
раз для выбранной
модели вычислений
Адаптация
генетического
алгоритма
Параметры
модели
Модель
вычислений
Специфично для
каждой задачи
Генетический
алгоритм
Оптимальные
параметры
модели
Оценочная
функция
(fitness)
4
ГП + автоматы: состояние вопроса
Существующие работы по генетической оптимизации автоматов:
• Простые задачи: распознаватели (parsers) и преобразователи
(transducers)
• Для сложных задач в ГП используют низкоуровневые модели (в т.ч.
в виде графов)
+ Универсальность
- Отсутствие высокоуровневой структуры (непонятно человеку)
- Большое пространство поиска (требуется много времени)
• В существующих работах не рассматриваются наиболее
актуальные для задач управления автоматы с произвольным числом
входов и выходов
Решение: использовать в качестве модели вычислений
автоматизированный объект (это высокоуровневый вычислитель с
произвольным количеством входов и выходов)
5
Постановка задачи
Задача построения управляющего автомата: найти такой автомат, что
за k шагов работы под его управлением заданный объект управления
перейдет в вычислительное состояние с максимальной пригодностью
Выполняется
один раз
Адаптация генетического
алгоритма для работы с
автоматами
Генетический
алгоритм
Специфично для
каждой задачи
Объект
управления
Оптимальный
управляющий
автомат
Оценочная функция на
множестве вычислительных
состояний
Адаптация генетического алгоритма:
• Выбор представления автомата в виде особи
• Адаптация генетических операторов (мутации и скрещивания)
6
Представление автоматов: наивный
подход (полные таблицы состояний)
В ГП особь – набор хромосом
Удобно сопоставить хромосому
каждому состоянию
Автомат – набор состояний
Естественный способ записи хромосомы состояния – табличное
представление функций переходов и действий
Полная таблица состояния
Значения
предикатов
(аргументов
функций
переходов и
действий)
x0
x1
s
z0
z1
z2
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
2
1
1
1
Значение функции переходов
(номер целевого состояния)
Значение функции
действий
(множество
действий)
7
Мутация и скрещивание полных
таблиц состояний
s
s
s
z0
z1
z2
s
z0
z1
z2
0
p1
2
0
0
0
1
0
0
0
1
1
(1-p1)
1
1
1
0
1
1
0
0
1
0
(1-p1)
0
0
0
1
0
0
0
1
0
2
p1
1
2
1
1
1
0
0
1
0
z0
z1
z2
z0
z1
z2
s
z0
z1
z2
s
z0
z1
z2
0
0
1
(1-p2)
0
0
1
1
1
1
0
1
1
1
0
1
0
1
p2
0
1
1
2
0
0
1
2
1
0
1
0
1
0
(1-p2)
0
1
0
2
0
1
0
2
0
1
0
1
1
1
p2
0
1
1
0
0
1
0
2
1
1
1
Мутация полных таблиц: с
некоторой вероятностью может
измениться каждая ячейка
Скрещивание полных таблиц:
одноточечное скрещивание
соответствующих столбцов 8
Сокращенные таблицы состояний
Проблема полных таблиц – экспоненциальный рост размера
хромосомы с увеличением числа предикатов
В реальных задачах предикаты имеют «локальную природу»
Одно из решений: ограничить число предикатов, значимых в каждом
состоянии
Сокращенная таблица состояния
x0
0
x1
1
x2
0
x3
1
x4
0
Множество значимых
предикатов
x1
x3
s
z0
z1
z2
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
2
1
1
1
x5
0
9
Мутация и скрещивание
сокращенных таблиц состояний
x0
x1
x2
x3
x4
x5
0
1
0
1
0
0
(1-p)
0
1
p
0
0
1
1
1
1
1/2
1
0
Мутация множества
значимых предикатов:
каждый значимый
предикат с некоторой
вероятностью
заменяется незначимым
Мутация остальной
хромосомы происходит
так же, как для полных
таблиц
1
1
1/2
1
1
Выбор значимых
предикатов детей
при скрещивании
сокращенных
таблиц
1
При заполнении таблиц детей
несколько ячеек родительских таблиц
голосуют за значение в одной ячейке
таблицы ребенка
10
Экспериментальная проверка
Предложенные методы были апробированы на задаче построения
управляющего автомата «разливочной линии»
Задача: налить как можно больше бутылок за заданный промежуток
времени
11
Экспериментальная проверка
Объект
управления
Объект
управления
A
Бутылка стоит
правильно
x0
z0
Запустить
транспортер
Транспортер
движется
x1
z1
Остановить
транспортер
Бак пуст
x2
z2
Открыть нижний
клапан
Бак полон
x3
z3
Закрыть нижний
клапан
Тумблер в позиции
x4
"выключено"
z4
Открыть верхний
клапан
z5
Закрыть верхний
клапан
Схема связей разливочной линии
12
Экспериментальная проверка
1. Бутылка
подъезжает, бак
заполняется
x0/z1
x3/z5
x0&x3/z1z2z5
2. Бак
заполняется
!x0x1/z4
x0!x1/z5
x0x1/z1z5
x3/z5z2
1
3. Булытка
подъезжает
x0/z1z2
4. Бутылка
заполняется
2
!x2/z2
x2/z0z3
x2/z3z4z0
!x0
5. Смена бутылки
Управляющий автомат
разливочной линии,
построенный вручную
Управляющий автомат
разливочной линии,
сгенерированный
автоматически с помощью
генетического алгоритма
13
Нерешенные задачи
• Другие решения проблемы экспоненциального роста
размерности хромосомы состояния (ограничение числа
переходов, деревья принятия решений)
• Проблема «долгого» вычисления оценочной функции
(изменение числа шагов эмуляции в процессе оптимизации,
турнирный метод)
• Более общие постановки задачи построения систем со
сложным поведением (не задавать предикаты и действия,
оптимизировать некоторые параметры предикатов и действий)
• Представление результатов генетической оптимизации в виде,
более понятном человеку (ввести в оценочную функцию
структурную оценку, генерировать систему взаимодействующих
автоматов)
14
Спасибо за внимание!
15
Download