Инструменты пользователя

Инструменты сайта


software:development:web:docs:glossary:state_machine

State machine (Государственная машина)

Конечный автомат — это математическая абстракция, используемая для разработки алгоритмов. Конечный автомат считывает набор входных данных и переходит в другое состояние на основе этих входных данных.

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

Глядя на конечное состояние, вы можете кое-что различить в серии входных данных, ведущих к этому состоянию.

Существует два типа основных конечных автоматов:

детерминированный конечный автомат Этот тип допускает только один возможный переход для любого разрешенного входа. Это похоже на утверждение «если» : это if x then doThis else doThat невозможно. Компьютер должен выполнить один из двух вариантов.

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

Рисунок 1: Детерминированный конечный автомат. Машина переходит из состояния 1 в состояние 2 для входа X и из состояния 1 в состояние 3 для входа Y. На рисунке 1 состояние начинается в Состоянии 1; состояние меняется на состояние 2 при вводе «X» или на состояние 3 при вводе «Y».

Рисунок 2: Недетерминированный конечный автомат. Машина может оставаться в состоянии 1, переходя в себя, или может переходить из состояния 1 в состояние 2 для входа X. На рисунке 2 при наличии входного сигнала «X» состояние может сохраниться или измениться на состояние 2.

Обратите внимание, что любое регулярное выражение может быть представлено конечным автоматом.

Только авторизованные участники могут оставлять комментарии.
software/development/web/docs/glossary/state_machine.txt · Последнее изменение: 2023/08/30 17:28 — vladpolskiy