Connect with us

TechHype

Что такое конечный автомат (машина состояний): простыми словами

Машина состояний помогает упростить сложные системы, разложив их на отдельные части с чётко определённой логикой переходов.

Опубликовано

/

     
     

Например, Airbnb использует конечные автоматы для оценки быстродействия «страниц» в iOS. Что такое конечный автомат, машина состояний (finite state machine)? Это функция, реакция которой на входное событие зависит не только от события, но и от ее состояния. Состояние может быть активно только одно, под воздействием оно меняется.

Например вам наступили на ногу в автобусе, а вы промолчали, вам еще раз наступили, вы сказали больше так не делать, вам снова наступили, а вы дали в морду. Это и есть конечно-автоматное поведение — воздействие было одно и тоже, ваше состояние и ответные действия менялись.

Почему автомат конечный? Потому что количество состояний автомата конечно (есть и бесконечные дискретные автоматы — автоматы с бесконечным числом внутренних состояний).

Графически это можно нарисовать как модель некой системы с конечным числом состояний и правилами перехода (алгоритмами) из одних состояний в другие. Изображается в виде ориентированного графа, где узлы (кружки) — это состояния, а ребра (стрелочки) — переходы.

Типичный примером конечного автомата в разработке является кнопка. У нее есть входное воздействие и внутренние состояния, в соответствии с которыми она “наружу” реализует ту или иную реакцию.

Основные элементы машины состояний

  • Состояния (States): Набор всех возможных состояний системы. Например, «Включено», «Выключено», «Ожидание».
  • События (Events): Внешние или внутренние сигналы, которые инициируют переход между состояниями. Например, нажатие кнопки.
  • Переходы (Transitions): Правила, определяющие, из какого состояния в какое можно перейти при определенном событии.
  • Начальное состояние (Initial State): Состояние, в котором система находится изначально.
  • Конечные состояния (Final States, опционально): Состояния, в которых система завершает свое выполнение.

Машина состояний помогает упростить сложные системы, разложив их на отдельные части с чётко определённой логикой переходов.

Дополнительно про конечный автомат:

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: