25
1 ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Верификация 800 автоматных программ при помощи генетического программирования Лукин М.А., Буздалов М.В., Шалыто А.А. Университет ИТМО TMPA, Кострома, 2014

Verification of 800 Automata-Based Programs Built by means of Genetic Programming

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

Page 1: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

1

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Верификация 800 автоматных

программ при помощи

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

Лукин М.А., Буздалов М.В., Шалыто А.А.

Университет ИТМО

TMPA, Кострома, 2014

Page 2: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

2

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Автоматные программы

Автоматизированные объекты управления

Автоматы

Объекты управления

Удобство верификации

Page 3: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

3

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Model Checking

Модель: структура Крипке – конечный

автомат

Спецификация: темпоральная логика

Автоматическая проверка соответствия

модели спецификации.

Page 4: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

4

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Формулировка задачи

Задача поиска пути

Неполная информация

Агент

O(1) памяти

Сенсор определяет только контакт с препятствием

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

Агент должен найти цель

Page 5: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

5

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Формулировка задачи:

дискретная версия (1)

Неограниченное клетчатое поле

Каждая клетка либо свободна, либо

содержит препятствие, занимающее

всю клетку

Каждая диагонально-связная группа

препятствий конечна

Агент занимает всю клетку

Одна из свободных клеток объявляется

целью

Page 6: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

6

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Формулировка задачи:

дискретная версия (2)

Page 7: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

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)

Page 8: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

8

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Входные данные

“can move forward” – может ли агент двигаться вперёд

“is move forward cool” – приближает ли движение вперёд к цели

“is at finish” – достиг ли агент цели

“is at saved” находится ли агент в сохранённой клетке

“is better than saved” – ближе ли агент к цели, чем сохранённая позиция

Page 9: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

9

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Выходные воздействия

“move forward” – сделать шаг вперёд на соседнюю клетку

“rotate positive” – повернуться по часовой стрелке на 90

“rotate negative” – повернуться против часовой стрелки на 90

“report reached” – вернуть ответ, что цель достигнута, и завершить работу

“report unreachable” – вернуть ответ, что цель недостижима, и завершить работу

“save position” – сохранить текущую позицию

“do nothing” – ничего не делать

Page 10: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

10

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Пример построенного

автомата

“can move forward”

“is move forward cool”

“is at finish”

“is at saved”

“is better than saved”

Page 11: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

11

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Проблемы верификации

Неограниченное клетчатое поле

Неограниченные координаты агента

Неограниченное расстояние до цели

Page 12: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

12

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Предложенный подход к

верификации

1. Построить гипотезу об алгоритме, который реализует

программа.

2. Построить модель программы и аппроксимации внешней

среды и множество формул, которые вместе с моделью

будут использованы верификатором для доказательства,

что данная программа соответствует гипотезе.

3. Доказать как теорему, что если программа соответствует

спецификации, то она корректна.

4. Запустить верификатор на всех автоматах, используя

модель и формулы из шага 2. Программа, которая

успешно прошла верификацию, корректна.

Page 13: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

13

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Шаг 1. Гипотеза

Автоматы реализуют модификацию

алгоритма поиска пути BUG-22, которая

учитывает, что поле клетчатое

2. http://www.stepanovpapers.com/PathPlanningStrategies.pdf

Page 14: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

14

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Алгоритм BUG-2

Агенты двигаются по кратчайшей линии к цели, пока это возможно.

Когда агент упирается в препятствие, есть две возможности. если возможно повернуть и продолжить двигаться по

кратчайшей линии к цели (не натыкаясь на препятствия), то агент может это сделать.

он может перейти в режим обхода препятствия

Когда можно оторваться от препятствия, агент это делает

Условие отрыва: агент ближе к цели, чем точка соприкосновения с препятствием и можно идти в сторону цели

Page 15: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

15

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Шаг 2. Модель

Модель на языке Promela.

Составные части модели:

1. Аппроксимация поля

2. Пересчёт состояния

3. Модель управляющего автомата

Page 16: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

16

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Аппроксимация поля

Информация о наличии препятствий в

восьми соседних клетках;

Направление агента (вверх, вниз, вправо

или влево).

Пеленг на цель

Относительное положение текущего

состояния агента по отношению к

сохранённому состоянию

Page 17: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

17

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Пересчёт состояния

То, что можно пересчитать, исходя из

имеющейся информации,

пересчитывается

Остальное недетерминированно

генерируется

Page 18: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

18

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Модель управляющего

автомата

При помощи инструмента Stater, для

каждого автомата была сгенерирована

модель на Promela

Page 19: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

19

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Недостатки модели

«Проблемное» действие: движение вперёд. Информация о клетках позади агента забывается

Информация о клетках впереди агента генерируется

Направление на цель генерируется частично

Недостатки модели Изменяющееся поле

Бесконечно большие препятствия

Бесконечно далёкая цель

«Блуждающая цель»

«Блуждающая сохранённая клетка»

Page 20: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

20

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

LTL спецификация

Два набора формул: формулы,

описывающие обход препятствия по

часовой стрелке и против

Формулы можно посмотреть на GitHub:

https://github.com/mbuzdalov/papers/blob/ma

ster/2014-hvc-bugs/formulae.ltl

Page 21: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

21

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Шаг 3. Доказательство (1)

Необходимо доказать четыре теоремы:

1. Каждый агент (который удовлетворяет спецификации) никогда не заходит внутрь препятствия

2. Если существует путь к цели, то агент когда-нибудь её достигнет

3. Если пути к цели не существует, то агент когда-нибудь сообщит об этом

4. Каждый агент заканчивает работу за конечное время

Page 22: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

22

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Шаг 3. Доказательство (2)

Идея доказательства теоремы 2.

Лемма. Если существует путь к цели, то всегда верно, что агент когда-нибудь достигнет цели или когда-нибудь сохранит позицию ближе к цели, чем последнее сохранение.

Д-во. Агент стартует из сохранённой позиции. Пока можно, агент идёт к цели. Иначе, он начинает обход. По спецификации, он обходит корректно. => он будет ближе последнего сохранения => (спецификация) он сохранится ближе, либо дойдёт до цели.■

Page 23: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

23

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Шаг 3. Доказательство (3)

Теоремы и доказательства доступны в

статье и на GitHub

https://github.com/mbuzdalov/papers/blob/ma

ster/2014-hvc-bugs/proofs.txt

Page 24: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

24

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Шаг 4. Верификация

Построенные модели можно посмотреть

здесь: https://yadi.sk/d/-orvfVKnYhRFc

231 решение удовлетворяет одному из

двух вышеописанных наборов формул

Остальные 569 решений не

удовлетворяют ни одному из наборов

Вопрос об их корректности остаётся

открытым

Page 25: Verification of 800 Automata-Based Programs Built by means of Genetic Programming

25

ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ

Спасибо за внимание