Подтвердить что ты не робот

Государственные машины и множественные состояния

Используя традиционное определение конечных автоматов, можно записывать записи машин в несколько состояний одновременно? Например, если у меня есть модель User, могут ли пользователи одновременно находиться в состоянии subscriber и в promotional_period?

Заметьте, я не спрашиваю, имеет ли смысл делать это, мой вопрос: возможно ли это с помощью государственных машин.

4b9b3361

Ответ 1

Нет. Государственные машины имеют одно состояние за раз.

Состояние комбинации может быть выполнено с другим состоянием, например subscriber_and_promotional_period. Это обычный способ сделать это.

Ответ 2

Все ответы, говорящие "нет", являются правильными, если вы принимаете "типичный" тип конечных автоматов (FSM), известный как детерминированные конечные автоматы (DFA), которые могут иметь только одно активное состояние в любой момент времени.

Однако это не единственный тип FSM, и нет никаких оснований ограничивать себя этим типом механизма во всех случаях. Существуют также недетерминированные конечные автоматы (NFA), которые могут находиться в любом числе состояний одновременно.

Это не просто академическое или даже действительно синтаксическое разбор (как это могут иметь в виду ссылки в Википедии): NFA на самом деле довольно просты и невероятно полезны и используются на практике повсюду в аппаратных и программных реализациях.

В принципе, для разработки NFA вы делаете это как DFA, но вместо того, чтобы иметь "текущее состояние" и используя входы для вычисления "следующего состояния", у вас есть "текущий набор состояний" и используйте входы для вычисления "следующего набора состояний". В аппаратных средствах (например, FPGA, реализованных в VHDL) это можно сделать буквально одновременно. В однопоточном программном обеспечении это обычно выполняется путем простого повторения текущих состояний на каждом "шаге" машины.

Ответ 3

Цитата из Википедии на один день больше:

"Конечный автомат (FSM) или автомат с конечным состоянием (множественное число: автоматы) или просто машина состояний - это математическая модель вычислений, используемая для проектирования как компьютерных программ, так и последовательных логических схем. абстрактная машина, которая может находиться в одном из конечного числа состояний. Машина находится только в одном состоянии за раз, состояние, в котором оно находится в любой момент времени, называется текущим состоянием."

Итак, нет.

Ответ 4

Сети Петри - это обобщение состояний машин, которые допускают множественные одновременные "состояния".