* 状態集合 $Q = \{q_0, q_1, q_2\}$ * アルファベット $\Sigma = \{a, b\}$ * 遷移関数 $\delta: Q \times (\Sigma \cup \{\epsilon\}) \rightarrow 2^Q$ で、$\delta(q_0, a) = \{q_1\}$, $\delta(q_1, \epsilon) = \{q_0\}$, $\delta(q_1, b) = \{q_2\}$, $\delta(q_2, a) = \{q_1\}$ * 受理状態 $F = \{q_1\}$ (a) $\delta(q_0, b)$ を求めます。 (b) $M_2$ の状態遷移図を示します。 (c) $M_2$ が受理する言語を示します。 (d) $M_2$ と同じ言語を受理する決定性有限オートマトンを構成します。
2025/7/3
## 問題の解答
###
1. 問題の内容
1. 空動作のある非決定性有限オートマトン $M_2$ が与えられています。
* 状態集合
* アルファベット
* 遷移関数 で、, , ,
* 受理状態
(a) を求めます。
(b) の状態遷移図を示します。
(c) が受理する言語を示します。
(d) と同じ言語を受理する決定性有限オートマトンを構成します。
2. 決定性プッシュダウンオートマトン $M_3 = <Q, \Sigma, \Gamma, \delta, q_0, Z_0, F>$ において、$M_3$ の様相が $(q, ax, A\gamma Z_0)$ で、$\delta(q, a, A) = (p, AA)$ であるときの次の様相を示します。
3. 決定性有限オートマトン $M_4 = <Q, \Sigma, \delta, q_0, F>$ が与えられています。
* 状態集合
* アルファベット
* 遷移関数 で、, , , , ,
* 受理状態
(a) の状態遷移図を示します。
(b) と同じ言語を受理する最簡形決定性有限オートマトン の状態遷移図を示します。
4. 以下の言語を受理するオートマトンを、決定性有限オートマトン (dfa)、非決定性有限オートマトン (nfa)、空動作のある非決定性有限オートマトン ($\epsilon$-nfa)、決定性プッシュダウンオートマトン (dpda)、非決定性プッシュダウンオートマトン (npda) の中から、構成可能なものをすべて挙げます。
(a) は末尾が であるような語
(b)
(c)
###
2. 解き方の手順
1. (a) $\delta(q_0, b)$ について、$M_2$ の定義より、$\delta(q_0, b)$ は定義されていません。したがって、$\delta(q_0, b) = \emptyset$です。
(b) 状態遷移図は、状態をノード、遷移を矢印で表現します。
* 状態 をノードで表します。
* から で へ遷移する矢印を描きます。
* から で へ遷移する矢印を描きます。
* から で へ遷移する矢印を描きます。
* から で へ遷移する矢印を描きます。
* を二重丸で囲み、受理状態であることを示します。
* を初期状態とします。
(c) が受理する言語は、受理状態 に到達できる文字列です。
* から で に到達できます。
* から で へ戻り、 で に到達できます。
* から で へ行き、 で に到達できます。
したがって、 が受理する言語は、 で始まり、 または が続く任意の文字列となります。
(d) と同じ言語を受理する決定性有限オートマトンを構成するには、まず の状態遷移表を作成し、部分集合構成法を用いて決定性オートマトンを構成します。
は で始まり、 または が続く任意の文字列を受理します。この言語を受理する決定性有限オートマトンは、次のようになります。
* 状態集合
* アルファベット
* 初期状態
* 受理状態
* 遷移関数 :
*
*
*
*
*
*
2. $M_3$の様相が$(q, ax, A\gamma Z_0)$であり、$\delta(q, a, A) = (p, AA)$ であるときの次の様相は、入力 $a$ を読み、スタックから $A$ を取り除き、$AA$ をプッシュするため、$(p, x, AA\gamma Z_0)$となります。
3. (a) $M_4$ の状態遷移図は、状態をノード、遷移を矢印で表現します。
* 状態 をノードで表します。
* から で へ遷移する矢印を描きます。
* から で へ遷移する矢印を描きます。
* から で へ遷移する矢印を描きます。
* から で へ遷移する矢印を描きます。
* から で へ遷移する矢印を描きます。
* から で へ遷移する矢印を描きます。
* を二重丸で囲み、受理状態であることを示します。
* を初期状態とします。
(b) は、入力文字列 の個数が 3 で割って 0, 2, 4 余る場合に受理します。
と同じ言語を受理する最簡形決定性有限オートマトン は、 の状態を同値類に分割することで得られます。
この場合、 の状態はすでに最簡形になっているため、 は と同じになります。
状態遷移図はと同じです。
4. (a) $L = \{w \mid w$ は末尾が $bb$ であるような語$\}$
* dfa, nfa, -nfa で構成可能です。
末尾が であることを記憶しておけば良いのでプッシュダウンオートマトンのスタックは不要。
* dpda, npda では構成できません。
正則言語のため、プッシュダウンオートマトンは不要です。
(b)
* dfa, nfa, -nfa では構成できません。
の個数を記憶する必要があるので、状態数が無限個必要になってしまいます。
* dpda, npda で構成可能です。
を読み込んだらスタックに積んで、を読み込んだらスタックから取り出す操作をすることで、の個数がの個数の2倍であるか確認できます。
(c)
* dfa, nfa, -nfa では構成できません。
の個数を記憶する必要があるので、状態数が無限個必要になってしまいます。
* npda で構成可能です。
* dpda では構成できません。
###
3. 最終的な答え
1. (a) $\delta(q_0, b) = \emptyset$
(b) (状態遷移図は省略)
(c)
(d) (決定性有限オートマトンの構成は省略)
2. $(p, x, AA\gamma Z_0)$
3. (a) (状態遷移図は省略)
(b) (状態遷移図は省略。M4と同じ)
4. (a) dfa, nfa, $\epsilon$-nfa
(b) dpda, npda
(c) npda