【おーとまとん】

オートマトン とは?

最終更新:
💡 入力を受けて状態が変わる、コンピュータ科学の原点となる計算モデル
📌 このページのポイント
有限オートマトンの状態遷移図 開始 q0 初期状態 a q1 中間状態 b q2 受理状態 b a 通常の状態 受理状態 a 入力記号による遷移
有限オートマトンの状態遷移図イメージ
ひよこ ひよこ
オートマトンって何のための理論なの?
ペンギン先生 ペンギン先生
「計算するとはどういうことか」を数学的に表現したモデルだよ。自動販売機を想像してみて。お金を入れるとボタンが押せる状態になって、ボタンを押すとジュースが出る。この「入力に応じて状態が変わる」仕組みがオートマトンなんだ
ひよこ ひよこ
有限オートマトンのDFAとNFAって何が違うの?
ペンギン先生 ペンギン先生
DFA(決定性有限オートマトン)は1つの入力に対して次の状態が1つに決まる。NFA(非決定性有限オートマトン)は次の状態が複数ありえるんだ。面白いのは、両方とも認識できる言語の範囲は同じということだよ
ひよこ ひよこ
正規表現とどう関係するの?
ペンギン先生 ペンギン先生
実は正規表現と有限オートマトンは等価なんだ。正規表現で書けるパターンは必ず有限オートマトンで表現できるし、逆もまた然り。だからプログラミング言語正規表現エンジンの中では、オートマトンが動いているよ
ひよこ ひよこ
有限オートマトンより強力なものもあるの?
ペンギン先生 ペンギン先生
あるよ。スタック(メモリ)を1本追加した「プッシュダウンオートマトン」は括弧の対応のような構造を扱える。さらに無限のテープを持つ「チューリングマシン」は理論上あらゆる計算が可能なんだ。これがチョムスキー階層と対応しているよ
ひよこ ひよこ
おもしろい!実際のソフトウェア開発で使うことってあるの?
ペンギン先生 ペンギン先生
意識せずに使っている場面は多いよ。ゲームのキャラクターAI、通信プロトコル状態管理UIの画面遷移設計など、「状態遷移図」を描く場面はすべてオートマトンの考え方が基盤になっているんだ。理論を知ると設計力がぐんと上がるよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「オートマトン」って出てきたら「入力で状態が変わる計算の仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Automaton」 = 自動装置・自動機械
💬 ギリシャ語の「automatos(自ら動くもの)」が語源で、自動販売機のように入力に対して決まった動きをする機械をイメージするとわかりやすいよ
← 用語集にもどる