Site icon AppTractor

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

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

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

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

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

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

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

Exit mobile version