Теория автоматов в программировании

Содержание

Слайд 2

План курса

Основные понятия автоматного программирования
Инструментальные средства автоматного программирования
Применение генетических алгоритмов
Верификация автоматных программ
Текстовые

План курса Основные понятия автоматного программирования Инструментальные средства автоматного программирования Применение генетических
языки автоматного программирования

Слайд 3

Преподаватели курса

Шалыто А. А.
Царев Ф. Н.

Преподаватели курса Шалыто А. А. Царев Ф. Н. …

Слайд 4

Место и время проведения занятий

Пятница, 17-20
Аудитория 218, 219 или 146

Место и время проведения занятий Пятница, 17-20 Аудитория 218, 219 или 146

Слайд 5

Как получить зачет?

5 семестр
Сдать лабораторную работу по генетическим алгоритмам
Сообщить тему своей курсовой

Как получить зачет? 5 семестр Сдать лабораторную работу по генетическим алгоритмам Сообщить тему своей курсовой работы
работы

Слайд 6

Виртуальная лаборатория по ГА

Два варианта: Java или C#
Сайт is.ifmo.ru, раздел «Генетические алгоритмы»,

Виртуальная лаборатория по ГА Два варианта: Java или C# Сайт is.ifmo.ru, раздел
подраздел «Лабораторные работы»
Сдать работу = сдать программу + выложить на сайт отчет

Слайд 7

Как сдать курсовую работу?

6 семестр
Написать программу
Написать проектную документацию
Выложить ее на сайт is.ifmo.ru
Не

Как сдать курсовую работу? 6 семестр Написать программу Написать проектную документацию Выложить
забывать записываться в календарь Шалыто

Слайд 8

Цель выполнения курсовой работы

Привести ее в такое состояние, чтобы было не стыдно

Цель выполнения курсовой работы Привести ее в такое состояние, чтобы было не стыдно выкладывать в Интернет
выкладывать в Интернет

Слайд 9

Материалы по курсу

Сайт кафедры «Технологии программирования» по автоматному программированию и мотивации к

Материалы по курсу Сайт кафедры «Технологии программирования» по автоматному программированию и мотивации
творчеству is.ifmo.ru
Книга Н. Поликарпова, А. Шалыто Автоматное программирование
Материалы лекций

Слайд 10

1.1 Области применения автоматного программирования

1.1 Области применения автоматного программирования

Слайд 11

1.1.1. Классификация программ по Харелу

Трансформирующие системы
некоторое преобразование входных данных
например: компиляторы, архиваторы
Интерактивные

1.1.1. Классификация программ по Харелу Трансформирующие системы некоторое преобразование входных данных например:
системы
взаимодействуют с окружающей средой в режиме диалога
например: текстовые редакторы
Реактивные системы
обмен со средой сообщениями, в темпе задаваемом средой
например: системы контроля

Слайд 12

1.1.2. Критерии применимости

«Сложное поведение»
поведение, зависящее от состояния
реакция зависит от предыстории
«Простое поведение»

1.1.2. Критерии применимости «Сложное поведение» поведение, зависящее от состояния реакция зависит от

поведение, не зависящее от состояния
реакция зависит только от воздействия

Слайд 13

Сущность с простым поведением

1.1.2. Критерии применимости

Сущность со сложным
поведением

Сущность с простым поведением 1.1.2. Критерии применимости Сущность со сложным поведением

Слайд 14

Пример использования: ЭЛЕКТРОННЫЕ ЧАСЫ

Простое поведение
H – увеличивает на единицу число часов
M –

Пример использования: ЭЛЕКТРОННЫЕ ЧАСЫ Простое поведение H – увеличивает на единицу число
увеличивает на единицу число минут

Слайд 15

Пример использования: ЭЛЕКТРОННЫЕ ЧАСЫ

Сложное поведение
H – увеличивает на единицу число часов
M –

Пример использования: ЭЛЕКТРОННЫЕ ЧАСЫ Сложное поведение H – увеличивает на единицу число
увеличивает на единицу число минут
A – включает и выключает настройку «будильник»

Слайд 16

1.1.3. Идеи автоматного программирования:

отделение логики от семантики
описание логики при автоматном подходе строго

1.1.3. Идеи автоматного программирования: отделение логики от семантики описание логики при автоматном подходе строго структурировано
структурировано

Слайд 17

1.1.4. Рекомендации при использовании автоматного подхода

используйте автоматный подход при создании любой программной

1.1.4. Рекомендации при использовании автоматного подхода используйте автоматный подход при создании любой
системы, в которой есть сущности со сложным поведением
используйте автоматный подход при создании только тех компонент системы, которые являются сущностями со сложным поведением

Слайд 18

1.2. Основные понятия автоматного программирования

1.2. Основные понятия автоматного программирования

Слайд 19

Основные понятия автоматного программирования

1.2.1. Основные понятия

Состояние
особая величина, которая в неявной форме объединяет

Основные понятия автоматного программирования 1.2.1. Основные понятия Состояние особая величина, которая в
все входные воздействия прошлого, влияющие на реакцию сущности в настоящий момент времени

Слайд 20

Основные понятия автоматного программирования

1.2.1. Основные понятия

Свойства состояния системы:
текущее состояние несет в себе

Основные понятия автоматного программирования 1.2.1. Основные понятия Свойства состояния системы: текущее состояние
всю информацию о прошлом системы, необходимую для определения ее реакции на любое входное воздействие, формируемое в момент времени t 0
не требуется знание предыстории

Слайд 21

1.2.1. Основные понятия

Входное воздействие
это вектор, составляющие которого - события и входные переменные
Функция

1.2.1. Основные понятия Входное воздействие это вектор, составляющие которого - события и
переходов
правила, по которым происходит смена состояний
Выходное воздействие

Основные понятия автоматного программирования

Слайд 22

1.2.1. Основные понятия

Функция выходов
правила формирования выходных воздействий
Автомат без выходов (конечный)
совокупность

1.2.1. Основные понятия Функция выходов правила формирования выходных воздействий Автомат без выходов
конечного множества состояний и конечного множества входных воздействий

Основные понятия автоматного программирования

Слайд 23

1.2.2. Конечный автомат

Основные понятия автоматного программирования

1.2.2. Конечный автомат Основные понятия автоматного программирования

Слайд 24

1.3. Парадигма автоматного программирования

1.3. Парадигма автоматного программирования

Слайд 25

Тезис Тьюринга-Черча

Все, что можно «вычислить», «запрограммировать» или «распознать» в любом смысле

Тезис Тьюринга-Черча Все, что можно «вычислить», «запрограммировать» или «распознать» в любом смысле
(из формально определенных в настоящее время) можно вычислить, запрограммировать или распознать с помощью подходящей машины Тьюринга

Слайд 26

1.3.1. Машина Тьюринга

Машина Тьюринга
состоит из 2-х частей:
Устройство управления
Запоминающее устройство - лента

1.3.1. Машина Тьюринга Машина Тьюринга состоит из 2-х частей: Устройство управления Запоминающее устройство - лента

Слайд 27

1.3.1. Машина Тьюринга

Устройство управления представляет собой конечный автомат
единственное входное воздействие:
символ,

1.3.1. Машина Тьюринга Устройство управления представляет собой конечный автомат единственное входное воздействие:
считанный с ленты
два выходных воздействия:
символ, записываемый на ленту
указание головке сдвинуться на одну ячейку в ту или иную сторону, либо остаться на месте

Слайд 28

1.3.2. Программирование на Машине Тьюринга

Реализация функции инкремент:
двигаться вправо, пока не встретится пустой

1.3.2. Программирование на Машине Тьюринга Реализация функции инкремент: двигаться вправо, пока не
символ
сдвинуться на одну ячейку влево
пока в текущей ячейке находится '1', заменять его на '0' и двигаться влево
если в текущей ячейке находится '0' или 'blank', записать в ячейку '1' и завершить работу

Слайд 29

1.3.3. Краткое описание поведение машины

Граф переходов, где:
вершины - состояния автомата
дуги – переходы

1.3.3. Краткое описание поведение машины Граф переходов, где: вершины - состояния автомата
между состояниями

Слайд 30

1.3.4. Выводы по работе машины Тьюринга

Для того, чтобы задать алгоритм для машины

1.3.4. Выводы по работе машины Тьюринга Для того, чтобы задать алгоритм для
Тьюринга, достаточно описать ее поведение в каждом из трех состояний управляющего автомата
Состояния управляющего автомата определяют действия машины, а состояние ленты – результат этих действий

Слайд 31

1.3.4. Выводы по работе машины Тьюринга

Состояния устройства управления
следует явно перечислять, отображать на

1.3.4. Выводы по работе машины Тьюринга Состояния устройства управления следует явно перечислять,
графе переходов
качественные состояния машины
называют управляющими
Состояния ленты
в программе в явном виде не участвуют, построить граф переходов между ними невозможно
количественные состояния машины
называют вычислительными

Слайд 32

1.3.5. Управляющие и вычислительные состояния

Управляющие состояния
Их относительно немного
Каждое из них имеет вполне

1.3.5. Управляющие и вычислительные состояния Управляющие состояния Их относительно немного Каждое из
определенный смысл и качественно отличается от других
Они определяют действия, которые совершает сущность

Слайд 33

1.3.5. Управляющие и вычислительные состояния

Вычислительные состояния
Их количество либо бесконечно, либо конечно, но

1.3.5. Управляющие и вычислительные состояния Вычислительные состояния Их количество либо бесконечно, либо
очень велико
Большинство из них не имеет смысла и отличается от остальных лишь количественно
Они непосредственно определяют лишь результаты действий

Слайд 34

1.3.6. Сущность со сложным поведением

Управляющая часть
управляющий автомат
отвечает за логику поведения – выбор

1.3.6. Сущность со сложным поведением Управляющая часть управляющий автомат отвечает за логику
выполняемых действий, зависящий от текущего состояния и входных воздействий, а также за переход в новое состояние

Слайд 35

1.3.6. Сущность со сложным поведением

Управляемая часть
объект управления
отвечает за выполнение действий, выбранных для

1.3.6. Сущность со сложным поведением Управляемая часть объект управления отвечает за выполнение
выполнения управляющей частью, и, возможно, за формирование некоторых компонентов входных воздействий для управляющей части – обратных связей

Слайд 36

1.3.6. Сущность со сложным поведением

Парадигма автоматного программирования состоит в представлении сущностей со

1.3.6. Сущность со сложным поведением Парадигма автоматного программирования состоит в представлении сущностей
сложным поведением в виде автоматизированных объектов управления
Автоматизированный объект управления - объект управления, интегрированный вместе с системой управления в одно устройство
Имя файла: Теория-автоматов-в-программировании.pptx
Количество просмотров: 129
Количество скачиваний: 0