SlideShare a Scribd company logo
Finite State Machine




    Никифоров Константин
knikiforov@codemastersintl.com
Абстрактный конечный автомат
 Множество состояний Q
 Начальное состояние q0
 Множество конечных состояний F ⊂ Q
 Допустимый входной алфавит A
 Множество возможных выходных действий Z
 Функция перехода δ: Q × A → Q
 Отображение λ: Q × A → Z
Автомат Мили
   Это конечный автомат, генерирующий выходные
    воздействия y(t) в зависимости от своего текущего
    состояния s(t) и входного воздействия х(t)
Автомат Мура
 Частный случай автомата Мили.
 Входные сигналы изменяют только состояние
  автомата.
 Выходной сигнал в автомате Мура зависит
  только от текущего состояния автомата и не
  зависит от входного сигнала.
Абстрактный КА


   Детерминированным (ДКА) называется такой
    автомат, в котором для каждой последовательности
    входных символов существует лишь одно состояние,
    в которое автомат может перейти из текущего.

   Недетерминированный конечный автомат (НКА)
    является обобщением детерминированного.
    Нескольких стартовых состояний у автомата.
ДКА, распознающий числа в ассемблерном
                     формате




Это не совсем правильный ДКА. В «правильном» ДКА из каждого состояния есть переход по каждому символу входного алфавита,
определением для ДКА не предусмотрено ситуации пустого множества состояний и «засыхания ветки вычислений».
Поэтому для полного соответствия нужно добавить в автомат ещё одно состояние, в которое должны сходиться все переходы по
«непредусмотренным» символам, а выхода из этого состояния не будет – по любому символу следует переход в себя. Иногда такие
состояния называют «дьявольскими»
НКА, распознающий числа в ассемблерном
              формате
От теории к практике

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

   Конечный автомат это совокупность состояний и
    переходов между ними.
Когда применять конечный автомат?




   Всегда (шутка).
WorkFlow.
  Список наиболее известных международных коалиций,
  разрабатывающих спецификации, относящиеся к WF-системам
                                       Спецификации, описывающие

      Коалиции                                                   графические нотации
                       архитектуру WF-       языки определения
                                                                 диаграммы описания
                            систем           бизнес-процессов
                                                                   бизнес-процессов

WfMC www.wfmc.org      Workflow reference
                                                WPDL, XPDL
                             model

BPMI www.bpmi.org
                                                   BPML                 BPMN

Коалиция IBM,
Microsoft, BEA, SAP,                             BPEL4WS
Siebel
OMG www.omg.org            Workflow
                                                                  Activity диаграмма
                       Management Facility
                                                                      языка UML
                          Specification
UML

   Unified Modeling Language — унифицированный язык
    моделирования.
   Графический язык моделирования общего
    назначения, предназначенный для спецификации,
    визуализации, проектирования и документирования
    всех артефактов, создаваемых при разработке
    программных систем.
   Рисование картинок.
   Обмен информацией.
   Спецификация систем.
UML. Диаграмма автомата (state machine diagram) или
диаграмма состояний


   Состояния (States). Простые (simple), составные
    (composite), специальные (pseudo), ссылочные
    (submachine), выбор (choice).
   Переходы (Transitions).
   События (Events).
   Действия (Actions). При входе (Entry actions). При выходе
    (Exit Actions)
W3C State Chart XML (SCXML)
http://www.w3.org/TR/scxml/

Нотация, которая позволяет описывать конечные
автоматы в общем виде на основе диаграмм состояний
Харела (составная часть UML). Основана на XML.

Используя  SCXML можно описать различные типы
структур конечных автоматов. В качестве примера
можно привести такие случаи, как вложенность,
параллельность, синхронизация или конкурентность
подавтоматов
Нотация SCXML
WorkFlow patterns.
   Sequence (последовательность)




   Fork (расщепление)




   Join (синхронизация)
WorkFlow patterns.


   Decision (выбор)




   Merge (соединение)
Инструменты для построения
Workflow
   MS Visio
   yWorks eYd
   Altova Umodel
   Finite State Machine Editor (http://fsme.sourceforge.net/)
   SCXMLUI (http://code.google.com/p/scxmlgui/)

   Другие
MS Visio
yEd Graph Editor
Finite State Machine Editor
Altova Umodel
JFLAP
Appccelerate State Machine
   http://www.appccelerate.com

   use enums, ints or strings for states and events - resulting in single class
    state machines.
   transition, entry and exit actions.
   transition guards
   hierarchical states with history behavior to initialize state always to same
    state or last active state.
   fluent definition syntax.
   passive state machine handles state transitions synchronously.
   active state machine handles state transitions asynchronously on the
    worker thread of the state machine.
   extension support to extend functionality of state machine.
   extensible thorough logging simplifies debugging.
   state machine reports as text, csv or yEd diagram.
Appccelerate State Machine
Windows Workflow Foundation
Собственная разработка
Finite State Machine


• Вопросы?

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


                Никифоров Константин
             knikiforov@codemastersintl.co
                          m

More Related Content

PDF
пр3 (2часа)b pwin
PPS
операторы и выражения
PPT
Программирование как этап решения задач на компьютере
PPTX
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
PPTX
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
PPTX
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
PPTX
Основы "мобильной" разработки на примере платформы iOs (iPhone)
пр3 (2часа)b pwin
операторы и выражения
Программирование как этап решения задач на компьютере
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
Основы "мобильной" разработки на примере платформы iOs (iPhone)

Viewers also liked (20)

PPTX
Sql azure federations
PPTX
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
PPTX
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
PPTX
Введение в Knockout
PPTX
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
PPTX
RESPONSIVE WEB DESIGN
PPTX
Thinking in parallel ab tuladev
PPTX
Unit tests
PDF
Domain-Driven Design: Модель вместо требований
PPTX
PaaS и SaaS
PPTX
TDD (Test-driven Development) как стиль разработки.
PPTX
Автоматизированное тестирование UI на C# + Selenium WebDriver
PPTX
Реализация REST и SOAP сервисов с помощью WCF
PPT
Лекция Android
PPTX
Ruby - или зачем мне еще один язык программирования?
PPTX
Domain Driven Design
PDF
DDD Workshop
PPTX
СОЗДАЙ РОБОТА С НУЛЯ
PPTX
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
PPTX
Как писать красивый код или основы SOLID
Sql azure federations
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Введение в Knockout
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
RESPONSIVE WEB DESIGN
Thinking in parallel ab tuladev
Unit tests
Domain-Driven Design: Модель вместо требований
PaaS и SaaS
TDD (Test-driven Development) как стиль разработки.
Автоматизированное тестирование UI на C# + Selenium WebDriver
Реализация REST и SOAP сервисов с помощью WCF
Лекция Android
Ruby - или зачем мне еще один язык программирования?
Domain Driven Design
DDD Workshop
СОЗДАЙ РОБОТА С НУЛЯ
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
Как писать красивый код или основы SOLID
Ad

Similar to РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE. (20)

PDF
Процесс майнинг
PPT
Нотации оформления требований
PPTX
Bpmn
PPT
UML: Statechart Diagram
PDF
Разработка ПО с помощью UML
PDF
Bpm. неделя 2
PPT
600853.Сервис PPT Онлайн предназначен для показа презентаций PowerPoint. Загр...
PPTX
Workflow Foundation
PPTX
Рамочные диаграммы процессов в арсенале аналитика
PPTX
Бизнес процессы в Битрикс24 семинар часть 1
PPT
лекция 11
PPTX
Киев, BA Con 2017
PDF
Distributed Systems Presentation for Business informatics students (Staroletov)
PPTX
Как выжить глобальной корпорации?
PDF
Back to the future: Функциональное программирование вчера и сегодня
PDF
Essentials of Visual modeling and UML (rus) by SkillsCup.com
PPT
лекция 10
PPTX
5 1 диаграммы состояний
PPTX
Описание бизнес процессов веб-приложения - подходы, инструменты, подводные камни
PPTX
Infostart 2023 Business Analysis Core Concept Model.pptx
Процесс майнинг
Нотации оформления требований
Bpmn
UML: Statechart Diagram
Разработка ПО с помощью UML
Bpm. неделя 2
600853.Сервис PPT Онлайн предназначен для показа презентаций PowerPoint. Загр...
Workflow Foundation
Рамочные диаграммы процессов в арсенале аналитика
Бизнес процессы в Битрикс24 семинар часть 1
лекция 11
Киев, BA Con 2017
Distributed Systems Presentation for Business informatics students (Staroletov)
Как выжить глобальной корпорации?
Back to the future: Функциональное программирование вчера и сегодня
Essentials of Visual modeling and UML (rus) by SkillsCup.com
лекция 10
5 1 диаграммы состояний
Описание бизнес процессов веб-приложения - подходы, инструменты, подводные камни
Infostart 2023 Business Analysis Core Concept Model.pptx
Ad

More from Pavel Tsukanov (8)

PPTX
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
PPT
ВВЕДЕНИЕ В NODE.JS
PPTX
АНИМАЦИЯ В FLASH И HTML5
PPT
ХАКЕРЫ И АНТИХАКЕРЫ
PPTX
ЗАРАБОТОК В ИНТЕРНЕТЕ.
PPT
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
PPTX
Статический анализ кода
PPTX
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
ВВЕДЕНИЕ В NODE.JS
АНИМАЦИЯ В FLASH И HTML5
ХАКЕРЫ И АНТИХАКЕРЫ
ЗАРАБОТОК В ИНТЕРНЕТЕ.
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Статический анализ кода
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.

РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.

  • 1. Finite State Machine Никифоров Константин knikiforov@codemastersintl.com
  • 2. Абстрактный конечный автомат  Множество состояний Q  Начальное состояние q0  Множество конечных состояний F ⊂ Q  Допустимый входной алфавит A  Множество возможных выходных действий Z  Функция перехода δ: Q × A → Q  Отображение λ: Q × A → Z
  • 3. Автомат Мили  Это конечный автомат, генерирующий выходные воздействия y(t) в зависимости от своего текущего состояния s(t) и входного воздействия х(t)
  • 4. Автомат Мура  Частный случай автомата Мили.  Входные сигналы изменяют только состояние автомата.  Выходной сигнал в автомате Мура зависит только от текущего состояния автомата и не зависит от входного сигнала.
  • 5. Абстрактный КА  Детерминированным (ДКА) называется такой автомат, в котором для каждой последовательности входных символов существует лишь одно состояние, в которое автомат может перейти из текущего.  Недетерминированный конечный автомат (НКА) является обобщением детерминированного. Нескольких стартовых состояний у автомата.
  • 6. ДКА, распознающий числа в ассемблерном формате Это не совсем правильный ДКА. В «правильном» ДКА из каждого состояния есть переход по каждому символу входного алфавита, определением для ДКА не предусмотрено ситуации пустого множества состояний и «засыхания ветки вычислений». Поэтому для полного соответствия нужно добавить в автомат ещё одно состояние, в которое должны сходиться все переходы по «непредусмотренным» символам, а выхода из этого состояния не будет – по любому символу следует переход в себя. Иногда такие состояния называют «дьявольскими»
  • 7. НКА, распознающий числа в ассемблерном формате
  • 8. От теории к практике  Математическая абстракция, модель дискретного устройства, имеющего один вход, один выход и в каждый момент времени находящегося в одном состоянии из множества возможных.Число возможных состояний конечно.  Конечный автомат это совокупность состояний и переходов между ними.
  • 9. Когда применять конечный автомат?  Всегда (шутка).
  • 10. WorkFlow. Список наиболее известных международных коалиций, разрабатывающих спецификации, относящиеся к WF-системам Спецификации, описывающие Коалиции графические нотации архитектуру WF- языки определения диаграммы описания систем бизнес-процессов бизнес-процессов WfMC www.wfmc.org Workflow reference WPDL, XPDL model BPMI www.bpmi.org BPML BPMN Коалиция IBM, Microsoft, BEA, SAP, BPEL4WS Siebel OMG www.omg.org Workflow Activity диаграмма Management Facility языка UML Specification
  • 11. UML  Unified Modeling Language — унифицированный язык моделирования.  Графический язык моделирования общего назначения, предназначенный для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке программных систем.  Рисование картинок.  Обмен информацией.  Спецификация систем.
  • 12. UML. Диаграмма автомата (state machine diagram) или диаграмма состояний  Состояния (States). Простые (simple), составные (composite), специальные (pseudo), ссылочные (submachine), выбор (choice).  Переходы (Transitions).  События (Events).  Действия (Actions). При входе (Entry actions). При выходе (Exit Actions)
  • 13. W3C State Chart XML (SCXML) http://www.w3.org/TR/scxml/ Нотация, которая позволяет описывать конечные автоматы в общем виде на основе диаграмм состояний Харела (составная часть UML). Основана на XML. Используя SCXML можно описать различные типы структур конечных автоматов. В качестве примера можно привести такие случаи, как вложенность, параллельность, синхронизация или конкурентность подавтоматов
  • 15. WorkFlow patterns.  Sequence (последовательность)  Fork (расщепление)  Join (синхронизация)
  • 16. WorkFlow patterns.  Decision (выбор)  Merge (соединение)
  • 17. Инструменты для построения Workflow  MS Visio  yWorks eYd  Altova Umodel  Finite State Machine Editor (http://fsme.sourceforge.net/)  SCXMLUI (http://code.google.com/p/scxmlgui/)  Другие
  • 22. JFLAP
  • 23. Appccelerate State Machine  http://www.appccelerate.com  use enums, ints or strings for states and events - resulting in single class state machines.  transition, entry and exit actions.  transition guards  hierarchical states with history behavior to initialize state always to same state or last active state.  fluent definition syntax.  passive state machine handles state transitions synchronously.  active state machine handles state transitions asynchronously on the worker thread of the state machine.  extension support to extend functionality of state machine.  extensible thorough logging simplifies debugging.  state machine reports as text, csv or yEd diagram.
  • 27. Finite State Machine • Вопросы? • Спасибо за внимание. Никифоров Константин knikiforov@codemastersintl.co m