Upload
iosif-itkin
View
111
Download
3
Embed Size (px)
DESCRIPTION
Michael Lukin, Maxim Buzdalov and Anatoly Shalyto Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
Citation preview
1
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Верификация 800 автоматных
программ при помощи
генетического программирования
Лукин М.А., Буздалов М.В., Шалыто А.А.
Университет ИТМО
TMPA, Кострома, 2014
2
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Автоматные программы
Автоматизированные объекты управления
Автоматы
Объекты управления
Удобство верификации
3
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Model Checking
Модель: структура Крипке – конечный
автомат
Спецификация: темпоральная логика
Автоматическая проверка соответствия
модели спецификации.
4
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Формулировка задачи
Задача поиска пути
Неполная информация
Агент
O(1) памяти
Сенсор определяет только контакт с препятствием
Препятствия конечного размера
Агент должен найти цель
5
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Формулировка задачи:
дискретная версия (1)
Неограниченное клетчатое поле
Каждая клетка либо свободна, либо
содержит препятствие, занимающее
всю клетку
Каждая диагонально-связная группа
препятствий конечна
Агент занимает всю клетку
Одна из свободных клеток объявляется
целью
6
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Формулировка задачи:
дискретная версия (2)
7
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Решение
В работе1 при помощи генетических алгоритмов
построено 800 решений в виде автоматных
программ
Каждое решение работает верно на более, чем
104 тестах
Формального доказательства корректности нет
Будем строить доказательство методом
Проверки моделей (Model Checking)
1. Buzdalov, M., Sokolov, A.: Evolving EFSMs Solving a Path-Planning
Problem by Genetic Programming. In: Proceedings of Genetic and
Evolutionary Computation Conference Companion. pp. 591–594 (2012)
8
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Входные данные
“can move forward” – может ли агент двигаться вперёд
“is move forward cool” – приближает ли движение вперёд к цели
“is at finish” – достиг ли агент цели
“is at saved” находится ли агент в сохранённой клетке
“is better than saved” – ближе ли агент к цели, чем сохранённая позиция
9
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Выходные воздействия
“move forward” – сделать шаг вперёд на соседнюю клетку
“rotate positive” – повернуться по часовой стрелке на 90
“rotate negative” – повернуться против часовой стрелки на 90
“report reached” – вернуть ответ, что цель достигнута, и завершить работу
“report unreachable” – вернуть ответ, что цель недостижима, и завершить работу
“save position” – сохранить текущую позицию
“do nothing” – ничего не делать
10
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Пример построенного
автомата
“can move forward”
“is move forward cool”
“is at finish”
“is at saved”
“is better than saved”
11
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Проблемы верификации
Неограниченное клетчатое поле
Неограниченные координаты агента
Неограниченное расстояние до цели
12
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Предложенный подход к
верификации
1. Построить гипотезу об алгоритме, который реализует
программа.
2. Построить модель программы и аппроксимации внешней
среды и множество формул, которые вместе с моделью
будут использованы верификатором для доказательства,
что данная программа соответствует гипотезе.
3. Доказать как теорему, что если программа соответствует
спецификации, то она корректна.
4. Запустить верификатор на всех автоматах, используя
модель и формулы из шага 2. Программа, которая
успешно прошла верификацию, корректна.
13
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Шаг 1. Гипотеза
Автоматы реализуют модификацию
алгоритма поиска пути BUG-22, которая
учитывает, что поле клетчатое
2. http://www.stepanovpapers.com/PathPlanningStrategies.pdf
14
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Алгоритм BUG-2
Агенты двигаются по кратчайшей линии к цели, пока это возможно.
Когда агент упирается в препятствие, есть две возможности. если возможно повернуть и продолжить двигаться по
кратчайшей линии к цели (не натыкаясь на препятствия), то агент может это сделать.
он может перейти в режим обхода препятствия
Когда можно оторваться от препятствия, агент это делает
Условие отрыва: агент ближе к цели, чем точка соприкосновения с препятствием и можно идти в сторону цели
15
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Шаг 2. Модель
Модель на языке Promela.
Составные части модели:
1. Аппроксимация поля
2. Пересчёт состояния
3. Модель управляющего автомата
16
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Аппроксимация поля
Информация о наличии препятствий в
восьми соседних клетках;
Направление агента (вверх, вниз, вправо
или влево).
Пеленг на цель
Относительное положение текущего
состояния агента по отношению к
сохранённому состоянию
17
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Пересчёт состояния
То, что можно пересчитать, исходя из
имеющейся информации,
пересчитывается
Остальное недетерминированно
генерируется
18
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Модель управляющего
автомата
При помощи инструмента Stater, для
каждого автомата была сгенерирована
модель на Promela
19
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Недостатки модели
«Проблемное» действие: движение вперёд. Информация о клетках позади агента забывается
Информация о клетках впереди агента генерируется
Направление на цель генерируется частично
Недостатки модели Изменяющееся поле
Бесконечно большие препятствия
Бесконечно далёкая цель
«Блуждающая цель»
«Блуждающая сохранённая клетка»
20
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
LTL спецификация
Два набора формул: формулы,
описывающие обход препятствия по
часовой стрелке и против
Формулы можно посмотреть на GitHub:
https://github.com/mbuzdalov/papers/blob/ma
ster/2014-hvc-bugs/formulae.ltl
21
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Шаг 3. Доказательство (1)
Необходимо доказать четыре теоремы:
1. Каждый агент (который удовлетворяет спецификации) никогда не заходит внутрь препятствия
2. Если существует путь к цели, то агент когда-нибудь её достигнет
3. Если пути к цели не существует, то агент когда-нибудь сообщит об этом
4. Каждый агент заканчивает работу за конечное время
22
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Шаг 3. Доказательство (2)
Идея доказательства теоремы 2.
Лемма. Если существует путь к цели, то всегда верно, что агент когда-нибудь достигнет цели или когда-нибудь сохранит позицию ближе к цели, чем последнее сохранение.
Д-во. Агент стартует из сохранённой позиции. Пока можно, агент идёт к цели. Иначе, он начинает обход. По спецификации, он обходит корректно. => он будет ближе последнего сохранения => (спецификация) он сохранится ближе, либо дойдёт до цели.■
23
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Шаг 3. Доказательство (3)
Теоремы и доказательства доступны в
статье и на GitHub
https://github.com/mbuzdalov/papers/blob/ma
ster/2014-hvc-bugs/proofs.txt
24
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Шаг 4. Верификация
Построенные модели можно посмотреть
здесь: https://yadi.sk/d/-orvfVKnYhRFc
231 решение удовлетворяет одному из
двух вышеописанных наборов формул
Остальные 569 решений не
удовлетворяют ни одному из наборов
Вопрос об их корректности остаётся
открытым
25
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Спасибо за внимание