Site icon AppTractor

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

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

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

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

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

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

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

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

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

Exit mobile version