* 状態集合 $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$ が与えられています。

* 状態集合 Q={q0,q1,q2}Q = \{q_0, q_1, q_2\}
* アルファベット Σ={a,b}\Sigma = \{a, b\}
* 遷移関数 δ:Q×(Σ{ϵ})2Q\delta: Q \times (\Sigma \cup \{\epsilon\}) \rightarrow 2^Q で、δ(q0,a)={q1}\delta(q_0, a) = \{q_1\}, δ(q1,ϵ)={q0}\delta(q_1, \epsilon) = \{q_0\}, δ(q1,b)={q2}\delta(q_1, b) = \{q_2\}, δ(q2,a)={q1}\delta(q_2, a) = \{q_1\}
* 受理状態 F={q1}F = \{q_1\}
(a) δ(q0,b)\delta(q_0, b) を求めます。
(b) M2M_2 の状態遷移図を示します。
(c) M2M_2 が受理する言語を示します。
(d) M2M_2 と同じ言語を受理する決定性有限オートマトンを構成します。

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>$ が与えられています。

* 状態集合 Q={q0,q1,q2,q3,q4,q5}Q = \{q_0, q_1, q_2, q_3, q_4, q_5\}
* アルファベット Σ={a}\Sigma = \{a\}
* 遷移関数 δ:Q×ΣQ\delta: Q \times \Sigma \rightarrow Q で、δ(q0,a)=q1\delta(q_0, a) = q_1, δ(q1,a)=q2\delta(q_1, a) = q_2, δ(q2,a)=q3\delta(q_2, a) = q_3, δ(q3,a)=q4\delta(q_3, a) = q_4, δ(q4,a)=q5\delta(q_4, a) = q_5, δ(q5,a)=q0\delta(q_5, a) = q_0
* 受理状態 F={q0,q2,q4}F = \{q_0, q_2, q_4\}
(a) M4M_4 の状態遷移図を示します。
(b) M4M_4 と同じ言語を受理する最簡形決定性有限オートマトン M5M_5 の状態遷移図を示します。

4. 以下の言語を受理するオートマトンを、決定性有限オートマトン (dfa)、非決定性有限オートマトン (nfa)、空動作のある非決定性有限オートマトン ($\epsilon$-nfa)、決定性プッシュダウンオートマトン (dpda)、非決定性プッシュダウンオートマトン (npda) の中から、構成可能なものをすべて挙げます。

(a) L={wwL = \{w \mid w は末尾が bbbb であるような語}\}
(b) L={anbmn1,m=2n}L = \{a^n b^m \mid n \geq 1, m = 2n\}
(c) L={anbmn1,3nmn}L = \{a^n b^m \mid n \geq 1, 3n \geq m \geq n\}
###

2. 解き方の手順

1. (a) $\delta(q_0, b)$ について、$M_2$ の定義より、$\delta(q_0, b)$ は定義されていません。したがって、$\delta(q_0, b) = \emptyset$です。

(b) 状態遷移図は、状態をノード、遷移を矢印で表現します。
* 状態 q0,q1,q2q_0, q_1, q_2 をノードで表します。
* q0q_0 から aaq1q_1 へ遷移する矢印を描きます。
* q1q_1 から ϵ\epsilonq0q_0 へ遷移する矢印を描きます。
* q1q_1 から bbq2q_2 へ遷移する矢印を描きます。
* q2q_2 から aaq1q_1 へ遷移する矢印を描きます。
* q1q_1 を二重丸で囲み、受理状態であることを示します。
* q0q_0を初期状態とします。
(c) M2M_2 が受理する言語は、受理状態 q1q_1 に到達できる文字列です。
* q0q_0 から aaq1q_1 に到達できます。
* q1q_1 から ϵ\epsilonq0q_0 へ戻り、aaq1q_1 に到達できます。
* q1q_1 から bbq2q_2 へ行き、aaq1q_1 に到達できます。
したがって、M2M_2 が受理する言語は、aa で始まり、aa または baba が続く任意の文字列となります。(a(aba))(a(a \cup ba)^*)
(d) M2M_2 と同じ言語を受理する決定性有限オートマトンを構成するには、まず M2M_2 の状態遷移表を作成し、部分集合構成法を用いて決定性オートマトンを構成します。
M2M_2aa で始まり、aa または baba が続く任意の文字列を受理します。この言語を受理する決定性有限オートマトンは、次のようになります。
* 状態集合 Q={s0,s1,s2}Q' = \{s_0, s_1, s_2\}
* アルファベット Σ={a,b}\Sigma' = \{a, b\}
* 初期状態 s0s_0
* 受理状態 F={s1}F' = \{s_1\}
* 遷移関数 δ\delta':
* δ(s0,a)=s1\delta'(s_0, a) = s_1
* δ(s0,b)=\delta'(s_0, b) = \emptyset
* δ(s1,a)=s1\delta'(s_1, a) = s_1
* δ(s1,b)=s2\delta'(s_1, b) = s_2
* δ(s2,a)=s1\delta'(s_2, a) = s_1
* δ(s2,b)=\delta'(s_2, b) = \emptyset

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$ の状態遷移図は、状態をノード、遷移を矢印で表現します。

* 状態 q0,q1,q2,q3,q4,q5q_0, q_1, q_2, q_3, q_4, q_5 をノードで表します。
* q0q_0 から aaq1q_1 へ遷移する矢印を描きます。
* q1q_1 から aaq2q_2 へ遷移する矢印を描きます。
* q2q_2 から aaq3q_3 へ遷移する矢印を描きます。
* q3q_3 から aaq4q_4 へ遷移する矢印を描きます。
* q4q_4 から aaq5q_5 へ遷移する矢印を描きます。
* q5q_5 から aaq0q_0 へ遷移する矢印を描きます。
* q0,q2,q4q_0, q_2, q_4 を二重丸で囲み、受理状態であることを示します。
* q0q_0を初期状態とします。
(b) M4M_4 は、入力文字列 aa の個数が 3 で割って 0, 2, 4 余る場合に受理します。
M4M_4と同じ言語を受理する最簡形決定性有限オートマトン M5M_5 は、M4M_4 の状態を同値類に分割することで得られます。
この場合、M4M_4 の状態はすでに最簡形になっているため、M5M_5M4M_4 と同じになります。
状態遷移図はM4M_4と同じです。

4. (a) $L = \{w \mid w$ は末尾が $bb$ であるような語$\}$

* dfa, nfa, ϵ\epsilon-nfa で構成可能です。
末尾が bbbb であることを記憶しておけば良いのでプッシュダウンオートマトンのスタックは不要。
* dpda, npda では構成できません。
正則言語のため、プッシュダウンオートマトンは不要です。
(b) L={anbmn1,m=2n}L = \{a^n b^m \mid n \geq 1, m = 2n\}
* dfa, nfa, ϵ\epsilon-nfa では構成できません。
aa の個数を記憶する必要があるので、状態数が無限個必要になってしまいます。
* dpda, npda で構成可能です。
aa を読み込んだらスタックに積んで、bbを読み込んだらスタックから取り出す操作をすることで、bbの個数がaaの個数の2倍であるか確認できます。
(c) L={anbmn1,3nmn}L = \{a^n b^m \mid n \geq 1, 3n \geq m \geq n\}
* dfa, nfa, ϵ\epsilon-nfa では構成できません。
aa の個数を記憶する必要があるので、状態数が無限個必要になってしまいます。
* npda で構成可能です。
* dpda では構成できません。
###

3. 最終的な答え

1. (a) $\delta(q_0, b) = \emptyset$

(b) (状態遷移図は省略)
(c) L=a(aba)L = a(a \cup ba)^*
(d) (決定性有限オートマトンの構成は省略)

2. $(p, x, AA\gamma Z_0)$

3. (a) (状態遷移図は省略)

(b) (状態遷移図は省略。M4と同じ)

4. (a) dfa, nfa, $\epsilon$-nfa

(b) dpda, npda
(c) npda

「離散数学」の関連問題

大人3人と子供3人が輪になって並ぶ場合の数を求める問題です。 (1) 全ての並び方を求めます。 (2) 大人と子供が交互に並ぶ並び方を求めます。

順列組み合わせ円順列
2025/7/9

無限集合 $X$ の部分集合 $A$ について、以下の2つの命題が正しいか否かを判断し、正しければ証明し、正しくなければ反例を挙げる。 (1) $A$ が有限集合ならば、$X-A$ は $X$ と対等...

集合論無限集合対等全単射証明反例
2025/7/9

男子4人と女子4人が手をつないで円を作るとき、次の問いに答えます。 (1) 円の作り方は全部で何通りあるか。 (2) 男子と女子が交互になる円の作り方は何通りあるか。 (3) 男子の太郎君と次郎君が向...

円順列順列組み合わせ場合の数
2025/7/9

図のような道のある町で、AからBまでの最短経路の総数、Qを通る最短経路の総数、PまたはQを通る最短経路の総数をそれぞれ求める問題です。

組み合わせ最短経路順列
2025/7/9

「KAWAGOE」の7文字を1列に並べる場合の数を求める問題です。ただし、Aが2つあるので、同じものを含む順列の考え方を使います。

順列組み合わせ場合の数重複順列
2025/7/9

正六角形を6個の正三角形に分割し、各三角形を異なる色で塗り分ける問題です。ただし、回転して一致する塗り方は同じものとみなします。 (1) 6色すべてを使って塗り分ける方法の数を求めます。 (2) 6色...

組み合わせ場合の数順列円順列正多角形
2025/7/9

(1) 集合 $A = \{1, 2, 3, 4, 6, 12\}$ の部分集合を、与えられた集合 $P = \{1, 2, 3, 5\}$, $Q = \{1, 2, 4, 6\}$, $R = \...

集合部分集合補集合共通部分和集合
2025/7/9

与えられた問題は、組み合わせ (combination) に関する計算問題と、正六角形に関する問題です。具体的には、以下の問題があります。 - 問題54: 組み合わせの計算 (6問) - 問題55: ...

組み合わせnCr正六角形組み合わせの計算
2025/7/9

いくつか場合の数を求める問題が掲載されています。 具体的には、組み合わせ(Combination)の計算、ケーキの選び方、コインの表裏の出方、正六角形に関する問題、果物の選び方、男女の選び方、カードの...

組み合わせ場合の数順列二項係数重複組合せ
2025/7/9

全体集合 $U = \{1, 2, 3, 4, 5, 6, 7, 8, 9\}$ の部分集合 $A = \{1, 2, 3, 4, 5\}$ と $B = \{2, 4, 5, 6, 8\}$ が与え...

集合集合演算補集合共通部分和集合
2025/7/9