Ответ 1
Нет. Государственные машины имеют одно состояние за раз.
Состояние комбинации может быть выполнено с другим состоянием, например subscriber_and_promotional_period
. Это обычный способ сделать это.
Используя традиционное определение конечных автоматов, можно записывать записи машин в несколько состояний одновременно? Например, если у меня есть модель User
, могут ли пользователи одновременно находиться в состоянии subscriber
и в promotional_period
?
Заметьте, я не спрашиваю, имеет ли смысл делать это, мой вопрос: возможно ли это с помощью государственных машин.
Нет. Государственные машины имеют одно состояние за раз.
Состояние комбинации может быть выполнено с другим состоянием, например subscriber_and_promotional_period
. Это обычный способ сделать это.
Все ответы, говорящие "нет", являются правильными, если вы принимаете "типичный" тип конечных автоматов (FSM), известный как детерминированные конечные автоматы (DFA), которые могут иметь только одно активное состояние в любой момент времени.
Однако это не единственный тип FSM, и нет никаких оснований ограничивать себя этим типом механизма во всех случаях. Существуют также недетерминированные конечные автоматы (NFA), которые могут находиться в любом числе состояний одновременно.
Это не просто академическое или даже действительно синтаксическое разбор (как это могут иметь в виду ссылки в Википедии): NFA на самом деле довольно просты и невероятно полезны и используются на практике повсюду в аппаратных и программных реализациях.
В принципе, для разработки NFA вы делаете это как DFA, но вместо того, чтобы иметь "текущее состояние" и используя входы для вычисления "следующего состояния", у вас есть "текущий набор состояний" и используйте входы для вычисления "следующего набора состояний". В аппаратных средствах (например, FPGA, реализованных в VHDL) это можно сделать буквально одновременно. В однопоточном программном обеспечении это обычно выполняется путем простого повторения текущих состояний на каждом "шаге" машины.
Цитата из Википедии на один день больше:
"Конечный автомат (FSM) или автомат с конечным состоянием (множественное число: автоматы) или просто машина состояний - это математическая модель вычислений, используемая для проектирования как компьютерных программ, так и последовательных логических схем. абстрактная машина, которая может находиться в одном из конечного числа состояний. Машина находится только в одном состоянии за раз, состояние, в котором оно находится в любой момент времени, называется текущим состоянием."
Итак, нет.
Сети Петри - это обобщение состояний машин, которые допускают множественные одновременные "состояния".