Автоматное программирование А.А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2007 г.

Презентация:



Advertisements
Похожие презентации
Применение генетического программирования для построения автоматов, управляющих системами со сложным поведением Ф. Н. Царев, А. А. Шалыто 2007 год.
Advertisements

Разработка метода совместного применения генетического программирования и конечных автоматов Царев Федор Николаевич, гр Научный руководитель – докт.
Применение генетического программирования для построения автоматов А. А. Шалыто Г. А. Корнеев Санкт-Петербургский государственный университет информационных.
Автоматное программирование А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2009 г.
Применение автоматного программирования во встраиваемых системах В. О. Клебан, А. А. Шалыто Санкт-Петербургский государственный университет информационных.
Разработка программного средства 3Genetic для генерации автоматов управления системами со сложным поведением Государственный контракт «Технология.
Применение автоматного программирования для моделирования группового управления движением одного класса беспилотных летательных объектов Паращенко Д.А.,
Применение метода представления функции переходов с помощью абстрактных конечных автоматов в генетическом программировании Царев Ф. Н. Научный руководитель.
Применение генетического программирования для реализации систем со сложным поведением Санкт-Петербургский Государственный Университет Информационных Технологий,
Построение автоматов управления системами со сложным поведением на основе тестов с помощью генетического программирования Федор Николаевич Царев, СПбГУ.
Разработка методов совместного применения генетического и автоматного программирования Федор Николаевич Царев, гр Магистерская диссертация Научный.
Разработка методов совместного применения генетического и автоматного программирования Федор Николаевич Царев, гр Магистерская диссертация Научный.
Верификация автоматных программ Г. А. Корнеев А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики.
Технология верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода Руководитель проекта – А. А. Шалыто Докладчик.
Разработка методов совместного применения генетического и автоматного программирования Федор Николаевич Царев, гр Магистерская диссертация Научный.
Разработка методов совместного применения генетического и автоматного программирования Федор Николаевич Царев, гр Магистерская диссертация Научный.
Разработка методов совместного применения генетического и автоматного программирования Федор Николаевич Царев, гр Магистерская диссертация Научный.
Применение генетических алгоритмов для генерации автоматов Мура и систем взаимодействующих автоматов Мили в задаче об «Умном муравье» А. А. Давыдов, Д.
Совместное применение генетического программирования и верификации моделей для построения автоматов управления системами со сложным поведением К. В. Егоров,
1 Метод сокращенных таблиц для генерации автоматов с большим числом входных воздействий Автор Научный руководитель В. Н. Точилин А. А. Шалыто Санкт-Петербургский.
Транксрипт:

Автоматное программирование А.А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2007 г.

2 А.А. Шалыто Автоматное программирование Предложено мною в 1991 году Программные системы предлагается разрабатывать так же, как выполняется автоматизация технологических (и не только) процессов Система управления является системой взаимодействующих конечных автоматов Состояния События и входные переменные Выходные воздействия Конечный автомат Система конечных автоматов

3 А.А. Шалыто Автоматное программирование Система управления Машина Тьюринга

4 А.А. Шалыто Автоматное программирование Как строить программы? Поставщики событий Система конечных автоматов Объекты управления Обратная связь

5 А.А. Шалыто Автоматное программирование Преимущества Обладает наибольшей эффективностью для систем со сложным поведением Формальное и понятное описание поведения Автоматическая генерация кода по диаграммам переходов Возможность верификации программ Проектная документация

6 А.А. Шалыто Автоматное программирование Применение «Железо» Микропроцессоры Микроконтроллеры Программируемые логические контроллеры Парадигмы Процедурная Объектно-ориентированная Языки контроллеров Лестничные схемы Функциональные схемы Программное обеспечение Системы высокой надежности Военные приложения Аэрокосмическая индустрия Встроенные системы Мобильные системы Визуализаторы Web-приложения Клиент-сервер приложения

7 А.А. Шалыто Автоматное программирование Инструментальное средство UniMod (1) Инструментальное средство для поддержки автоматного программирования Создано в рамках ФЦНТП «Исследования и разработки по приоритетным направлениям развития науки и техники» на годы по приоритетному направлению «Информационно- телекоммуникационные системы» Критическая технология – «Технология производства программного обеспечения» Вошел в число 15 наиболее инновационной перспективных и социально значимых проектов Федерального агентства по науке и инновациям

8 А.А. Шалыто Автоматное программирование Инструментальное средство UniMod (2) Локальная и удаленная отладка диаграмм в терминах состояний Проверка формальных свойств диаграмм Интерпретируемый и компилируемый подходы Запись автоматов в нотации UML-диаграмм классов и состояний Встраиваемый редактор UML-диаграмм для платформы Eclipse Запуск диаграмм в «одно нажатие»

9 А.А. Шалыто Автоматное программирование Инструментальное средство UniMod (3) Семь автоматов Вручную Автоматическая генерация Вручную

10 А.А. Шалыто Автоматное программирование Инструментальное средство UniMod (4) Один из автоматов – AL

11 А.А. Шалыто Автоматное программирование Движение за открытую проектную документацию Три задачи: Повышается качество обучения – обучение на проектах Создаются предпосылки для научной работы и отбор «ученых» Совершенствуется технология автоматного программирования Создано более 100 студенческих проектов, содержащих не только программную часть, но и открытую проектную документацию Из них – 15 UniMod-проектов Проекты опубликованы на сайте

12 А.А. Шалыто Автоматное программирование Примеры. Игра «Космонавт» (1)

13 А.А. Шалыто Автоматное программирование Примеры. Игра «Космонавт» (2)

14 А.А. Шалыто Автоматное программирование Примеры. Игра «Космонавт» (3)

15 А.А. Шалыто Автоматное программирование Примеры. Игра «Космонавт» (4)

16 А.А. Шалыто Автоматное программирование Примеры. Игра «Lines» (1)

17 А.А. Шалыто Автоматное программирование Примеры. Игра «Lines» (2) Управление игрой Управление клеткой

18 А.А. Шалыто Автоматное программирование Новые направления в автоматном программировании В рамках Федеральной целевой программы «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007–2012 годы» Технология генетического программирования для генерации автоматов управления системами со сложным поведением (шифр « ») Разработка технологии верификации управляющих программ со сложным поведением, построенных на основе автоматного подхода (шифр « )

19 А.А. Шалыто Автоматное программирование Генерация автоматов и генетическое программирование Основная сложность в автоматном программировании – построение автоматов В большинстве случаев автоматы проектируются вручную Однако эвристическое построение автоматов часто затруднено или невозможно Решение – автоматическое построение конечных автоматов с помощью генетического программирования Это позволит повысить уровень автоматизации построения программ рассматриваемого класса Материалы – на сайте (раздел «Генетические алгоритмы»)

20 А.А. Шалыто Автоматное программирование Три рассматриваемые задачи «Простая» задача – задача об «Умном муравье» «Сложная» задача – задача «Беспилотные летательные объекты» «Народная» задача – «Разливочная линия»

21 А.А. Шалыто Автоматное программирование «Простая» задача – задача об «Умном муравье» Тор – 32x32 89 клеток с едой 200 ходов Расположение еды и начальная позиция муравья фиксированы Цель – создать муравья, который съест всю еду Муравей = конечный автомат

22 А.А. Шалыто Автоматное программирование Эвристическое построение задачу не решает Пять состояний, за 200 ходов съедается 81 единица еды или все 89 единиц еды за 314 ходов

23 А.А. Шалыто Автоматное программирование Решение «простой» задачи Известные подходы – кодирование битовыми строками + генетический алгоритм Известные решения: 13 состояний (1992) 11 состояний (1993) 8 состояний (1999) Предлагаемый подход – генетическое программирование Построены два автомата с 7 состояниями после генерации 160 и 250 млн. автоматов Полный перебор ~3·10 18 автоматов

24 А.А. Шалыто Автоматное программирование «Сложная» задача – задача «Беспилотные летательные объекты» Соревнование на дальность полета Две команды по восемь объектов Ограничения: запас топлива, столкновения, аэродинамическое взаимодействие Цель – разработка управляющей программы Задача заочного тура VI Открытой Всесибирской олимпиады по программированию (2005 год) Была решена при участии автора путем эвристического построения автоматов

25 А.А. Шалыто Автоматное программирование Решение (1) Система управления = нейронная сеть + конечный автомат Нейронная сеть преобразует вещественные входные переменные в логические

26 А.А. Шалыто Автоматное программирование Решение (2) Особь = две системы управления беспилотным объектом Особь из двух систем – для учета взаимодействия объектов

27 А.А. Шалыто Автоматное программирование Решение (3) Мутация особи Мутация системы управления летательным объектом Мутация нейронной сети Мутация элемента сети Мутация конечного автомата Изменение начального состояния Мутация перехода Скрещивание особей Скрещивание систем управления летающей тарелкой Скрещивание автоматов Скрещивание нейронных сетей

28 А.А. Шалыто Автоматное программирование Результаты применения генетического программирования За сутки была построена управляющая система, содержащая нейронную сеть и один автомат с шестью состояниями (вместо семи автоматов с 21 состоянием) Построенная с помощью ГП система Построенная вручную система Среднее 216,55212,59 Минимум 203,05203,44 Максимум 241,11225,09

29 А.А. Шалыто Автоматное программирование Задача: налить как можно больше бутылок за заданный промежуток времени «Народная» задача – «Разливочная линия»

30 А.А. Шалыто Автоматное программирование Решения «народной» задачи Построен вручную Построен автоматически

31 А.А. Шалыто Автоматное программирование Три традиционных подхода к верификации программ Тестирование – ничего не доказывает Доказательства теорем – все доказывает, но практически нигде не используется Верификация на моделях – Model Checking (модель программы с конечным числом состояний и свойства программы в темпоральной логике)

32 А.А. Шалыто Автоматное программирование Недостатки Model Checking для программ общего вида Не ясно, как построить модель Не ясно, как записать темпоральные свойства Не ясно, как перейти от модели к реальной программе в случае обнаружения ошибки

33 А.А. Шалыто Автоматное программирование Верификация автоматных программ Так как поведение автоматных программ задается графами переходов конечных автоматов, то все три указанные проблемы для этого класса программ эффективно решаются Работы проводятся совместно с кафедрой «Теоретическая информатика» Ярославского государственного университета им. П.Г. Демидова Материалы – на сайте (раздел «Верификация»)

34 А.А. Шалыто Автоматное программирование Повышение качества программного обеспечения NASA ( Открытые системы #03/2004 ) Использование состояний Генерация программ с помощью инструментального средства Stateflow Верификатор SPIN СПбГУ ИТМО Использование состояний Генерация программ с помощью инструментального средства UniMod Верификаторы SPIN и Bogor

35 А.А. Шалыто Автоматное программирование Надежда Есть области, в которых верификация необходима: авиация, управление ядерными реакторами Автор надеется, что в этих областях заказчики могут заставить программировать автоматно, если они поймут, что только такие программы можно формально верифицировать

36 А.А. Шалыто Автоматное программирование Спасибо за внимание!