ステートマシンの従来の定義を使用して、ステートマシンレコードを同時に複数の状態にすることができますか?たとえば、User
モデルがある場合、ユーザーはasubscriber
とpromotional_period
状態の両方を同時に持つことができますか?
注意してください、私はこれを行うことが理にかなっているかどうかを尋ねていません、私の質問は-ステートマシンでそれが可能かどうかです。
ステートマシンの従来の定義を使用して、ステートマシンレコードを同時に複数の状態にすることができますか?たとえば、User
モデルがある場合、ユーザーはasubscriber
とpromotional_period
状態の両方を同時に持つことができますか?
注意してください、私はこれを行うことが理にかなっているかどうかを尋ねていません、私の質問は-ステートマシンでそれが可能かどうかです。
「いいえ」と答えるすべての答えは、決定性有限オートマトン(DFA)と呼ばれる「典型的な」タイプの有限状態マシン(FSM)を想定している場合にのみ正しくなります。これは、常に単一のアクティブ状態しか持つことができません。
ただし、これがFSMの唯一のタイプではなく、すべての場合にこのタイプのメカニズムに制限する正当な理由はありません。非決定性有限オートマトン(NFA)もあり、これは同時に任意の数の状態になる可能性があります。
これは単なる学術的なものではなく、実際には構文解析に関するものでもありません(ウィキペディアのリンクが示すように):NFAは実際には非常にシンプルで非常に便利であり、ハードウェアとソフトウェアの両方の実装で実際に使用されています。
基本的に、NFAを設計するには、DFAと同じように行いますが、「現在の状態」を持ち、入力を使用して「次の状態」を計算する代わりに、「現在の状態を設定」し、入力を使用して計算します。 「次の状態セット」。ハードウェア(VHDLで実装されたFPGAなど)では、これは文字通り同時に実行できます。(シングルスレッド)ソフトウェアでは、これは通常、マシンの各「ステップ」で現在の状態を繰り返すだけで実行されます。
いいえ。ステートマシンには一度に1つの状態があります。
組み合わせ状態は、のような別の状態で実行できますsubscriber_and_promotional_period
。これはそれを行う通常の方法です。
ウィキペディアをもう1日引用します。
「有限状態機械(FSM)または有限状態オートマトン(複数:オートマトン)、または単に状態機械は、コンピュータープログラムと順序論理回路の両方を設計するために使用される計算の数学モデルです。これは抽象的な機械として考えられています。これは、有限数の状態の1つになる可能性があります。マシンは一度に1つの状態のみになります。ある時点での状態は、現在の状態と呼ばれます。」
だから、いや。
ペトリネットは、複数の同時「状態」を可能にするステートマシンの一般化です。