Счетчики как конечные автоматы
Stateflow
Графический язык программирования для создания управляющей логики на основе конечных автоматов, таблиц истинности и блок-схем.
Stateflow предоставляет графический язык, который включает диаграммы переходов состояний, блок-схемы, таблицы переходов состояний и таблицы истинности. Вы можете использовать Stateflow, чтобы описать, как алгоритмы MATLAB и модели Simulink реагируют на входные сигналы, события и условия на основе времени.
Stateflow позволяет проектировать и разрабатывать диспетчерское управление, планирование задач, управление отказами, протоколы связи, пользовательские интерфейсы и гибридные системы.
С помощью Stateflow создается комбинаторная логика и логика принятия решений, которые можно смоделировать как блок в модели Simulink или выполнить как объект в MATLAB. Графическая анимация позволяет анализировать и отлаживать свою логику во время ее выполнения. Проверки во время редактирования и во время выполнения обеспечивают согласованность и полноту проектирования перед внедрением.
Диаграмма Stateflow, использующая конечные автоматы (слева) и блок-схемы (справа)
Что такое конечный автомат?
Конечный автомат (или попросту FSM — Finite-state machine) это модель вычислений, основанная на гипотетической машине состояний. В один момент времени только одно состояние может быть активным. Следовательно, для выполнения каких-либо действий машина должна менять свое состояние.
Конечные автоматы обычно используются для организации и представления потока выполнения чего-либо. Это особенно полезно при реализации ИИ в играх. Например, для написания «мозга» врага: каждое состояние представляет собой какое-то действие (напасть, уклониться и т. д.).
Описание состояний автомата
Конечный автомат можно представить в виде графа, вершины которого являются состояниями, а ребра — переходы между ними. Каждое ребро имеет метку, информирующую о том, когда должен произойти переход. Например, на изображении выше видно, что автомат сменит состояние «wander» на состояние «attack» при условии, что игрок находится рядом.
Понятия и терминология
А государственный — это описание состояния системы, ожидающей выполнения переход. Переход — это набор действий, которые должны быть выполнены при выполнении условия или при получении события. Например, при использовании аудиосистемы для прослушивания радио (система находится в состоянии «радио») получение сообщения » следующий «стимул» приводит к переходу к следующей станции. Когда система находится в состоянии «CD», «следующий» стимул приводит к переходу к следующей дорожке. Одинаковые стимулы запускают разные действия в зависимости от текущего состояния.
В некоторых представлениях конечных автоматов также можно связать действия с состоянием: