TechHype
Что такое конечный автомат: простыми словами
Например, Airbnb использует конечные автоматы для оценки быстродействия «страниц» в iOS. Что такое конечный автомат (finite state machine)? Это функция, реакция которой на входное событие зависит не только от события, но и от ее состояния. Состояние может быть активно только одно, под воздействием оно меняется.
Например вам наступили на ногу в автобусе, а вы промолчали, вам еще раз наступили, вы сказали больше так не делать, вам снова наступили, а вы дали в морду. Это и есть конечно-автоматное поведение — воздействие было одно и тоже, ваше состояние и ответные действия менялись.
Почему автомат конечный? Потому что количество состояний автомата конечно (есть и бесконечные дискретные автоматы — автоматы с бесконечным числом внутренних состояний).
Графически это можно нарисовать как модель некой системы с конечным числом состояний и правилами перехода (алгоритмами) из одних состояний в другие. Изображается в виде ориентированного графа, где узлы (кружки) — это состояния, а ребра (стрелочки) — переходы.
Типичный примером КА в разработке является кнопка. У нее есть входное воздействие и внутренние состояния, в соответствии с которыми она “наружу” реализует ту или иную реакцию.
Дополнительно про конечный автомат:
- Конечный автомат в Википедии
- Видео «Использование State Machine в приложениях»
- Введение в конечные автоматы