Скачать презентацию F-схема моделирования автоматная схема Finite-State Machin FSM Входные Скачать презентацию F-схема моделирования автоматная схема Finite-State Machin FSM Входные

F-схема.pptx

  • Количество слайдов: 56

F-схема моделирования (автоматная схема) Finite-State Machin (FSM) Входные сигналы Выходные сигналы Моделирования динамических систем F-схема моделирования (автоматная схема) Finite-State Machin (FSM) Входные сигналы Выходные сигналы Моделирования динамических систем с выделенными состояниями

F-схема моделирования Области применения: 1. Моделирование динамических объектов с выделенными состояниями. 2. Моделирование систем F-схема моделирования Области применения: 1. Моделирование динамических объектов с выделенными состояниями. 2. Моделирование систем управления динамическими объектами Характерные особенности F-схемы: 1. Четкое выделение состояний системы и условий перехода из одного состояния в другое. 2. Схема детерминированная. 3. Схема с дискретная (т. е. состояния системы меняются в определенные моменты модельного времени).

Два вида F-схем Автомат как объект Автомат как система управления объектом Объект Система управления Два вида F-схем Автомат как объект Автомат как система управления объектом Объект Система управления Обратная связь Управляющие сигналы Объект управления В этом случае необходимо дополнительно создавать модель управляемого объекта.

F-схема моделирования Автомат это: A={X, Y, Q, q 0, P, } X - алфавит F-схема моделирования Автомат это: A={X, Y, Q, q 0, P, } X - алфавит входных сигналов, Y – алфавит выходных сигналов Q – множеств состояний, q 0 Q – начальное состояние, P – правила перехода, (q, x) или (q) – функция выходных сигналов. q(t+1)=P(q(t), x(t)), т. е. новое состояние автомата зависит от текущего состояния автомата и входного сигнала

F-схема моделирования Диаграмма состояний автомата X - алфавит входных сигналов, Q – множеств состояний, F-схема моделирования Диаграмма состояний автомата X - алфавит входных сигналов, Q – множеств состояний, q 0 – начальное состояние, P – правила перехода, Y - алфавит выходных сигналов X = {0, 1}, Y = {0, 1}. Q = {S 0, S 1, S 2}, q 0 = S 0, P = (S 0, 0) (S 2), (0, 0)=1 … Обозначение на диаграмма состояний: входной символ / выходной символ (например, 0/1)

Диаграмма состояний работы банкомата Диаграмма состояний работы банкомата

Абстрактный и структурный автомат Абстрактный автомат Структурный автомат Особенности: 1. Не имеет внутренней структуры; Абстрактный и структурный автомат Абстрактный автомат Структурный автомат Особенности: 1. Не имеет внутренней структуры; 2. Обрабатывает символы Особенности: 1. Имеет внутреннюю структуру; 2. Обрабатывает входные сигналы

Абстрактный автомат Особенности: - Не структурирован - В основном реализуется программно - Принимает на Абстрактный автомат Особенности: - Не структурирован - В основном реализуется программно - Принимает на вход символы Области применения: - Компиляция и интерпретация искусственных языков - Парсинг (поиск в тексте определенных слов или языковых конструкций) - Языковое моделирование - Моделирование вычислительного процесса с целью определения временной и емкостной сложностей алгоритма

Абстрактный автомат Абстрактный автомат

Виды абстрактных автоматов Автомат с конечным числом состояний (КА) – автомат с бесконечным числом Виды абстрактных автоматов Автомат с конечным числом состояний (КА) – автомат с бесконечным числом состояний Автомат-транслятор Автомат с магазинной памятью (МП-автомат) Детерминированный автомат – недетерминированный автомат

Конечный распознающий автомат A={ , Q, q 0, P, F}, где F – множество Конечный распознающий автомат A={ , Q, q 0, P, F}, где F – множество конечных состояний Pi Qx x. Q Например: Pj=(q 2, a) (q 3) Текст считается распознанным в случае, если автомат находится в одном из конечных состояний F.

Пример диаграммы состояний конечного автомата Конечное состояние Начальное состояние Пример диаграммы состояний конечного автомата Конечное состояние Начальное состояние

Конечный автомат-транслятор A={ , , Q, q 0, P, F}, где – мн-во символов Конечный автомат-транслятор A={ , , Q, q 0, P, F}, где – мн-во символов на выходной ленте Pi Qx x. Qx Например: Pj=(q 2, a) (q 3, d)

Конечный автомат с магазинной памятью (МП-автомат) A={ , B, b, Q, q 0, P, Конечный автомат с магазинной памятью (МП-автомат) A={ , B, b, Q, q 0, P, F}, где B – мн-во символов в магазине b – символ дна стека ↑ - обозначение удаления символа из вершины стека Pi Qx x. Bx. Qx. B Например: Pj=(q 2, «(» , *) (q 3, ↑) Текст считается распознанным в случае, если автомат находится в одном из конечных состояний F и в стеке находится символ дна стека b.

Пример диаграммы состояний МПавтомата Скобочное арифметическое выражение с числом 1 и операцией + Примеры Пример диаграммы состояний МПавтомата Скобочное арифметическое выражение с числом 1 и операцией + Примеры арифметических выражений: 1. y=(1+1)+1+((1+1)+1) 2. y=1+1(1) 3. y=(((1+1)+1)+1

Формальная грамматика Основатель теории формальных языков – Наум Хомский (род. В 1928 г. ) Формальная грамматика Основатель теории формальных языков – Наум Хомский (род. В 1928 г. ) Формальная грамматика предназначена для синтеза языка Формальная грамматика это четверка: G={ , N, S, P}, где - алфавит терминальных символов; N – алфавит нетерминальных символов; S N – начальный символ; P – правила вывода цепочки строк.

Пример формальной грамматики (1) Необходимо описать синтез строки, состоящей из одинакового количества единиц и Пример формальной грамматики (1) Необходимо описать синтез строки, состоящей из одинакового количества единиц и нулей, чтобы сначала шли нули, а затем единицы, т. е. 000111 ={0, 1} N={S} S={S} P: 1. S 0 S 1 2. S 01

Пример формальной грамматики S с. N 1 т. N 2 е. N 3 N Пример формальной грамматики S с. N 1 т. N 2 е. N 3 N 2 с. N 14 N 3 н. N 4 N 14 е. N 15 л. N 4 а. N 5 N 4 ы. N 6 N 4 е. N 7 N 4 у. N 8 N 4 о. N 9 N 4 а N 4 ы N 4 е N 4 у N 5 м. N 11 N 5 х. N 13 N 11 и. N 12 N 9 й. N 10 N 9 ю. N 10

Другие виды записи формальных грамматик - Форма Бекуса-Наура (БНФ) - Расширенная форма Бекуса-Наура (РБНФ) Другие виды записи формальных грамматик - Форма Бекуса-Наура (БНФ) - Расширенная форма Бекуса-Наура (РБНФ) - Регулярные выражения

Иерархия формальных языков Н. Хомского Четыре класса языков: 0: Свободные - нет ограничений на Иерархия формальных языков Н. Хомского Четыре класса языков: 0: Свободные - нет ограничений на правила. 1: Контекстно-зависимые - правила вида , где , , , - строки из терминалов и нетерминалов 2: Контекстно-свободные - A , где A – символнетерминал, - строка из терминалов и нетерминалов 3: автоматные (регулярные) - N a. A или N Aa, где A – нетерминальный символ, a – терминальный символ.

Типы вычислителей, необходимых для распознания языка, принадлежащего уровню иерархии Н. Хомского 0: Свободные – Типы вычислителей, необходимых для распознания языка, принадлежащего уровню иерархии Н. Хомского 0: Свободные – машина Тьюринга или другой универсальный вычислитель. 1: Контекстно-зависимые – специализированные вычислители (например, система Мельчука – смысл-текст) 2: Контекстно-свободные – МП-автомат 3: автоматные (регулярные). – конечный автомат.

Детерминированный и недетерминированный автоматы Детерминированный автомат пребывает только в одном состоянии в один момент Детерминированный и недетерминированный автоматы Детерминированный автомат пребывает только в одном состоянии в один момент времени Недетерминированный автомат может пребывать в нескольких состояниях сразу

Алгоритм получения ДА из НДА 1. Сформировать начальное состояние ДА и приписать ему метки Алгоритм получения ДА из НДА 1. Сформировать начальное состояние ДА и приписать ему метки начального(-ых) состояние(-ия) НДА. 2. Выделить все символы, по которым происходит переход из начального(ых) состояния(-ий) НДА – из начального состояния ДА вывести дуги (переходы), помеченные выделенными символами. С концом каждой дуги сопоставить состояние и пометить его метками состояния НДА, в которые происходит переход из начального состояния (-ий) по символу, приписанному к дуге ДА. 3. Для каждой сформированной вершины ДА выделить символы, по которым из вершин НДА, метки которых имеются в состоянии ДА, каждому символу сопоставить дугу, выходящую из узла ДА. Концу каждой дуги сопоставить состояние ДА, с метками вершин НДА, куда выходят дуги с меткой дуги ДА. 4. И т. д. 5. После того, как не удается сформировать в ДА состояний с новыми метками, выделяем в ДА конечные состояния: конечным является состояние, в метке которого присутствует хотя бы одна метка конечного состояния НДА.

Алгоритм получения ДА из НДА 1. Сформировать начальное состояние ДА и приписать ему метки Алгоритм получения ДА из НДА 1. Сформировать начальное состояние ДА и приписать ему метки начального(-ых) состояние(-ия) НДА. 2. Выделить все символы, по которым происходит переход из начального(ых) состояния(-ий) НДА – из начального состояния ДА вывести дуги (переходы), помеченные выделенными символами. С концом каждой дуги сопоставить состояние и пометить его метками состояния НДА, в которые происходит переход из начального состояния (-ий) по символу, приписанному к дуге ДА. 3. Для каждой сформированной вершины ДА выделить символы, по которым из вершин НДА, метки которых имеются в состоянии ДА, каждому символу сопоставить дугу, выходящую из узла ДА. Концу каждой дуги сопоставить состояние ДА, с метками вершин НДА, куда выходят дуги с меткой дуги ДА. 4. И т. д. 5. После того, как не удается сформировать в ДА состояний с новыми метками, выделяем в ДА конечные состояния: конечным является состояние, в метке которого присутствует хотя бы одна метка конечного состояния НДА.

Пример получения ДА из НДА Пример получения ДА из НДА

Программная реализация ДА 1. Объявить переменную, хранящую номер состояния ДА (например, S). 2. Объявить Программная реализация ДА 1. Объявить переменную, хранящую номер состояния ДА (например, S). 2. Объявить переменную, хранящую текущий распознаваемый символ (например, ch). 3. Создать цикл и в нем языковую конструкцию множественного выбора (switch) относительно переменной, хранящей текущий распознаваемый символ. Каждый вариант множественного выбора соответствует состоянию ДА. 4. В каждой альтернативе множественного выбора произвести анализ текущего символа и относительно него произвести изменение состояния ДА S. Если текущий символ последний, то проверить, находится для ДА в конечном состоянии.

Пример программной реализации ДА int S; char ch; // @ - символ конца текста Пример программной реализации ДА int S; char ch; // @ - символ конца текста While(1) {S=0; getch(ch); switch(ch) {0: if(ch==1) {S=1; pusch('0')}; else if(ch==0) {S=0; pusch('0')}; else {printf("Error!"); break}; break; 1: switch(ch) {Case'0': S=2; pusch('1'); break; Case'1': S=1; pusch('1'); break; default: printf("Error!"); break; } 2: switch(ch) {Case'0': S=1; pusch('0'); break; Case'1': S=2; pusch('0'); break; Case'@': printf("Ok!"); break; default: printf("Error!"); break; } } }

Пример реализации ДА с помощью матрицы смежности 0 1 2 3 4 @ 0 Пример реализации ДА с помощью матрицы смежности 0 1 2 3 4 @ 0 В ячейке матрицы указывается символ, по которому происходит переход в другое состояние, а также символ, который выдается на выходную ленту. 1/0 0/0 1 2 1/1 0/1 @ 1/0 0/0 @ S 3 – конечное состояние S 4 – состояние ошибки

Пример реализации ДА с помощью матрицы переходов 0 1 @ 0 S 2/0 S Пример реализации ДА с помощью матрицы переходов 0 1 @ 0 S 2/0 S 1/0 S 4 В ячейке матрицы указывается символ, по которому происходит переход в другое состояние, а также символ, который выдается на выходную ленту. 1 S 2/1 S 1/1 S 4 2 S 2/0 S 1/0 S 3 – конечное состояние S 4 – состояние ошибки

Реализация НДА намного сложнее, чем ДА: необходимо вводить не одну переменную, хранящую состояние автомата Реализация НДА намного сложнее, чем ДА: необходимо вводить не одну переменную, хранящую состояние автомата (S), а вектор множество состояний. Поэтому разработчики программ и аппаратуры и стараются свести НДА к ДА!

Виды абстрактных автоматов 1. Распознающий автомат (лента движется в одну сторону, символы на ленте Виды абстрактных автоматов 1. Распознающий автомат (лента движется в одну сторону, символы на ленте не изменяются 2. Автомат-транслятор – две ленты, движущиеся в одном направлении. 3. Автомат с магазинной памятью (МП-автомат) - входная лента движется в одном направлении и только читается. Вторая лента выступает в роли стека (запись и чтение осуществляется только в верхушки стека. 4. МП автомат-транслятор – считывает символы со входной ленты, записывает на выходную ленту, промежуточные данные записывает в стек 5. Машина Тьюринга и машина Поста – автомат может двигать ленту в обоих направлениях и может изменять символы на ленте

Виды абстрактных автоматов 1) 4) 2) 3) 5) Виды абстрактных автоматов 1) 4) 2) 3) 5)

Об информации на входной ленте абстрактного автомата Входная лента автомат может содержать не только Об информации на входной ленте абстрактного автомата Входная лента автомат может содержать не только символы, но и другие информационные конструкции!!! Например, в теории компиляции имеется такие понятия как лексический и синтаксический автоматы. Лексический занимается выделением из цепочки символов лексем (слова, числа, разделительные знаки) и формирование их описания в виде токенов. Токен описывает лексему и состоит из двух частей: атрибута, описывающего тип лексемы, и самой лексемы. Типы лексем могут быть: константа, переменная, зарезервированное слово, разделительный знак. Синтаксический автомат принимает на вход токены и обрабатывает их. Т. е. на входной ленте синтаксического автомата находятся не символы, а токены!!!

Структурный автомат Особенности: - Структурирован - Принимает на вход сигналы - Выходами являются сигналы Структурный автомат Особенности: - Структурирован - Принимает на вход сигналы - Выходами являются сигналы - Рассматривается как устройство управления Области применения: - Управление динамическими объектами - Программирование (автоматная парадигма программирования)

Имитационная модель на основе Fсхемы X – входные переменные автомата Z – управляющие импульсы Имитационная модель на основе Fсхемы X – входные переменные автомата Z – управляющие импульсы от автомата E/X – воздействие внешней среды (события)

Автомат Мили и автомат Мура Автомат Мура Q(t)=f(q(t-1), x(t-1)) Y(t)=f(q(t)) Автомат Мили Q(t)=f(q(t-1), x(t-1)) Автомат Мили и автомат Мура Автомат Мура Q(t)=f(q(t-1), x(t-1)) Y(t)=f(q(t)) Автомат Мили Q(t)=f(q(t-1), x(t-1)) Y(t)=f(q(t), x(t))

Автоматизированный объект управления Управляющий автомат – это шестерка {X, Y, Z, y 0, , Автоматизированный объект управления Управляющий автомат – это шестерка {X, Y, Z, y 0, , }, где X=XE x XO – сигналы от внешней среды и объекта управления. Y – множество состояний автомата. Z – множество выходных воздействий. Y 0 – начальное состояние =( ', ‘') – функция переходов: ‘: Y Z функции в состояниях, ‘‘: Xx. Y Z функции в на переходах : Xx. Z Y

Автоматизированный объект управления Объект управления– это тройка {V, fq, fc}, где V - потенциально Автоматизированный объект управления Объект управления– это тройка {V, fq, fc}, где V - потенциально бесконечное множество вычислительных состояний (или значений). fq: V x 0 – функция, сопоставляющая входное воздействие вычислительному состоянию f c → Zx. V V – функция, изменяющая вычислительное состояние в зависимости от выходного воздействия.

Парадигмы автоматного (А) управления объектами (О) Парадигмы автоматного (А) управления объектами (О)

Иерархическая система автоматов Иерархическая система автоматов

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

Формализация вызываемого автомата Вызываемый автомат - это. CA={ , QC, h, s, PC}, где Формализация вызываемого автомата Вызываемый автомат - это. CA={ , QC, h, s, PC}, где — множество входных символов (сигналов), Q – множество состояний вызываемого автомата, h – состояние host-автомата, в которое происходит возвращение из вызываемого автомата, s – начальное состояние, PС – правила перехода вида PС x QС x (QС h), где h QH. Возврат из вызываемого автомата происходит по правилу вида: i qi h. Вызов вложенного автомата можно приписывать как к переходу из одного состояния в другое, так и к состоянию host-автомата. В случае привязки вызываемого автомата к дуге в правила перехода host-графа приводятся к виду: P x QH x (QH QC) В случае привязки вызываемого автомата к состоянию, вводится функция, отображающая множество QH на множество состояния сложенного автомата QC – FC: QH QC.

Формализация вложенного автомата Вложенный автомат – это AI={ , QI, QH, S, PI}, где Формализация вложенного автомата Вложенный автомат – это AI={ , QI, QH, S, PI}, где , - алфавит входных символов (сигналов); QI - множество состояний вложенного автомата; QH – множество состояний host-графа, S – начальное состояние вложенного автомата; PI - множество правил перехода между состояниями вложенного автомата (PI x. QIx. QH), т. е. в зависимости от текущего входного символа и текущего состояния вложенного автомата, вложенный автомат переходит в состояние QI, а host-автомат – в состояние QH. Для того, чтобы привязать вложенные автоматы к вершинам hostавтомата введем функцию, отображающую FI: QH {AI}, где {AI} – множество вложенных автоматов. Функция FI является инъекцией в случае, если host-граф является детермированным; Если host-автомат недетерминированный, то FI может отражать на одно состояние QH сразу несколько вложенных автоматов – при попадании в такую вершину активизируются сразу несколько вложенных автоматов.

Синхронизация системы параллельно работающих автоматов 1. Обмен состояниями 2. Синхронизация по внешним событиям Синхронизация системы параллельно работающих автоматов 1. Обмен состояниями 2. Синхронизация по внешним событиям

Пример синхронизации параллельных автоматов путем обмена состояниями ПУСК РАБОТА Насос 1 ГОТОВ Пример синхронизации параллельных автоматов путем обмена состояниями ПУСК РАБОТА Насос 1 ГОТОВ

Пример синхронизации параллельных автоматов путем обмена состояниями ПУСК_1 Насос 1 РАБОТА_2 СТОП_2 ПУСК_2 ГОТОВ_1 Пример синхронизации параллельных автоматов путем обмена состояниями ПУСК_1 Насос 1 РАБОТА_2 СТОП_2 ПУСК_2 ГОТОВ_1 Насос 2 РАБОТА_2 СТОП_2 ГОТОВ_2

Пример синхронизации параллельных автоматов путем обмена состояниями Пример синхронизации параллельных автоматов путем обмена состояниями

Виды автоматной декомпозиции Параллельной работающие автоматы Параллельной работающие деревья автоматов Виды автоматной декомпозиции Параллельной работающие автоматы Параллельной работающие деревья автоматов

Декомпозиция системы автоматов По объектам управления – уместна, когда для каждого ОУ можно выработать Декомпозиция системы автоматов По объектам управления – уместна, когда для каждого ОУ можно выработать свой алгоритм работы и сигналы синхронизации с другими автоматами По режимам - уместна тогда, когда в поведении системы можно выделить несколько качественно различных режимов (каждый из которых при необходимости можно конкретизировать, выделив режимы более низкого уровня абстракции).

Схема связей автомата управления клапаном Схема связей автомата управления клапаном

Схема связей автомата «Часы с будильником» Схема связей автомата «Часы с будильником»

Типичные обозначения в графе состояний структурного автомата 1. К дуге приписывается булево выражение, обозначающее Типичные обозначения в графе состояний структурного автомата 1. К дуге приписывается булево выражение, обозначающее условие перехода в другое состояние. Если выражение громоздкое, то его можно заменить кратким обозначением, а обозначение расшифровать в другом месте. 2. Выходное воздействие отделяется от номера состояния (автомат Мура) или условия перехода в другое состояние (автомат Мили) горизонтальной или косой чертой. 3. Обычно используются краткие обозначения вида: Ai –автомат, ei – событие, xi – входной сигнал, yi –выходной сигнал, Ci – условие перехода. 4. Для того, чтобы обозначить приоритет при переходов в том случае, когда выполняются условия перехода сразу на двух ветвях, применяется обозначение приоритета с помощью натурального числа, помещенного перед условием перехода и отделенного от него двоеточием. 5. Переход «Иначе» необходим для того, чтобы пометить переход, совершаемый, если не выполняются условия других переходов

Пример обозначений Пример обозначений

Программная реализация вложенного и вызываемого автоматов 1. Ввод новых переменных, обозначающих состояние вложенного или Программная реализация вложенного и вызываемого автоматов 1. Ввод новых переменных, обозначающих состояние вложенного или вызываемого автоматов. 2. Процедуры с передачей номера hostавтомата при реализации вызываемого автомата.

Автоматы с непрерывным пространством состояний 1. Дифференциальный автомат Автоматы с непрерывным пространством состояний 1. Дифференциальный автомат

Литература 1. Поликарпова Н. И. , Шалыто А. А. Автоматное программирование. 2008. — 167 Литература 1. Поликарпова Н. И. , Шалыто А. А. Автоматное программирование. 2008. — 167 с. 2. Ахо А. , Сети Р. , Ульман Д. Компиляторы. Принципы, технологии, инструменты. -М. : Вильяме, 2001