【ゆうげんじょうたいきかい】

有限状態機械(FSM) とは?

最終更新:
💡 今どの部屋にいて、どのドアを通れば隣の部屋に行けるか、それを地図にしたもの

有限個の「状態」と、入力に応じて状態を切り替える「遷移」で動作を表すモデル。信号機や通信手順など、状況によって振る舞いが変わる仕組みを整理する。

📌 このページのポイント
有限状態機械:3状態の信号機 赤 青 黄 時間経過 時間経過 時間経過 丸=状態 矢印=状態の切り替え 実際の信号制御を単純化した例
3状態を時間経過で切り替える例。実際の信号機の全動作は表していません。
ひよこ ひよこ
有限状態機械って、何を整理するもの?
ペンギン先生 ペンギン先生
「今どの状態か」と「何が起きたら別の状態へ移るか」を決めて、動作を整理するモデルだよ。状態を丸、遷移を矢印で描くと見通しがよくなるんだ
ひよこ ひよこ
信号機なら、赤・青・黄が状態なの?
ペンギン先生 ペンギン先生
そう。図では動作を単純化して、赤→青→黄→赤と時間経過で切り替わる3状態にしているよ。実際の信号機のすべての制御を表したものではないんだ
ひよこ ひよこ
「有限」ってどういう意味?
ペンギン先生 ペンギン先生
モデルで扱う状態の数が有限個という意味だよ。3個に限らず、必要な状態を定めるんだ。無限個の状態を扱う別のモデルもあるよ
ひよこ ひよこ
同じ入力なら、必ず同じ状態へ移るの?
ペンギン先生 ペンギン先生
現在の状態と入力から次が一つに決まるのは、決定性のモデルだよ。同じ状態と入力に複数の遷移候補を持つ、非決定性の有限状態機械もあるんだ
ひよこ ひよこ
プログラムでは、どこで役立つの?
ペンギン先生 ペンギン先生
たとえば通信の接続前・接続中・切断済みを分け、イベントごとに許す動作を整理できるよ。正規表現との関係も計算理論で扱うけれど、実用エンジンの全機能を有限状態だけで表せるとは限らないんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「有限状態機械」って出てきたら「状態と、状態を切り替えるルールで動きを整理する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Finite State Machine」 = 有限状態機械
💬 Finiteは有限、Stateは状態、Machineは機械という意味だよ。略称はFSMで、有限オートマトンとも呼ばれるんだ

参考資料

← 用語集にもどる