オートマトン・形式言語の問題
アルファベット 上の決定性有限オートマトン を考える。状態の集合は 、初期状態は 、受理状態は のみであり、遷移関数 は次の表で与えられる(行が現在の状態、列が読む文字、表の中身が次の状態)。
| 状態 | ||
|---|---|---|
次の つの文字列のうち、 が受理するものの番号の集合を求めよ。
この問題で使うもの
- 決定性有限オートマトンの動作と受理判定(説明と入口の問題)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
「決定性有限オートマトンの動作と受理判定」を使います。初期状態 から、文字列を左から 1 文字ずつ読んで遷移表で次の状態をたどりましょう。
ヒント 2
読み終えたときの状態 が受理状態 なら受理、それ以外なら受理されません。
ヒント 3
たとえば の は とたどります。同じように 〜 も最後の状態を求めて、 になるものを集めましょう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
DFA が文字列 を受理するのは、初期状態 から を左から 1 文字ずつ読んで遷移表に従って状態をたどり、最後の状態 が受理状態 になるときです。各文字列についてたどります。
:
最後の状態は なので受理されます。
:
最後の状態は なので受理されません。
:
最後の状態は なので受理されます。
:
最後の状態は なので受理されません。
:
最後の状態は なので受理されます。
よって、受理される文字列の番号の集合は です。
(参考:この は、文字列を 2 進数とみたときの値を で割った余りを状態 で記憶していて、余りが の文字列を受理します。実際、, , はどれも で割ると 余ります。)
別解
各文字列について q0 から遷移をたどる。(1) 10: q0 -1-> q1 -0-> q2、受理。(2) 110: q0 -1-> q1 -1-> q0 -0-> q0、拒否。(3) 101: q0 -1-> q1 -0-> q2 -1-> q2、受理。(4) 0111: q0 -0-> q0 -1-> q1 -1-> q0 -1-> q1、拒否。(5) 1011: q0 -1-> q1 -0-> q2 -1-> q2 -1-> q2、受理。よって受理されるのは (1), (3), (5)。