跳到主要内容

九州大学 システム情報科学府 情報理工学専攻 2017年8月実施 オートマトンと言語

Author​

Zero, 祭音Myyura

Description​

【問1】​

以下の遷移図を持つ非決定性有限オートマトン M=(K,Σ,δ,q0,F)M = (K,\Sigma,\delta,q_0,F) に対し, 次の各問いに答えよ。ただし, K={q0,q1,q2,q3,q4}K = \{q_0,q_1,q_2,q_3,q_4\}, Σ={a,b}\Sigma = \{a,b\}, δ\delta, q0q_0, F={q1,q2,q4}F = \{q_1,q_2,q_4\} は, それぞれ状態の集合, アルファベット, 遷移関数, 初期状態, 最終状態の集合を表す。MM によって受理される言語を LL とする。

(1) LL に含まれる長さ 44 の文字列をすべて列挙せよ。

(2) LL に含まれる任意の文字列を, 正規表現 (α+β)(α+β)∗(\alpha + \beta)(\alpha + \beta)^* を用いて表すことができる。ただし, α\alpha と β\beta はともに Σ\Sigma 上の文字列である。これらの文字列 α\alpha と β\beta を与えよ。

(3) ww を Σ\Sigma 上の文字列とする。以下の 22 つの命題はそれぞれ真であるか偽であるか。真ならば理由を説明し, 偽ならば反例を与えよ。

  • (a) 「 w∈Lw \in L ならば, bbbb は ww の部分文字列ではない。」

  • (b) 「 bbbb が ww の部分文字列でないならば, w∈Lw \in L である。」

(4) LL を受理する状態数最小の決定性有限オートマトンの遷移図を与えよ。

【問2】​

文脈自由文法 G1=(N,Σ,P1,S)G_1 = (N, \Sigma, P_1, S), G2=(N,Σ,P2,S)G_2 = (N, \Sigma, P_2, S) を考える. ただし,N={S,A,B}N = \{S, A, B\}, Σ={a,b,c}\Sigma = \{a, b, c\}, Pi (i=1,2)P_i \ (i = 1, 2), SS はそれぞれ非終端記号の集合,終端記号の集合,生成規則の集合,開始記号とする. ここで, P1={S→AB,A→ab∣aAb,B→c∣Bc}P_1 = \{S \to AB, A \to ab \mid aAb, B \to c \mid Bc\}, P2={S→AB,A→a∣aA,B→bBc∣bc}P_2 = \{S \to AB, A \to a \mid aA, B \to bBc \mid bc\} とする.

(1) G1G_1 による文字列 aabbcaabbc の導出過程を与えよ.

(2) G1G_1 が生成する言語 L(G1)L(G_1) に含まれる文字列を説明せよ.

(3) G2G_2 が生成する言語 L(G2)L(G_2) に含まれる文字列を説明せよ.

(4) 言語 L(G1)∪L(G2)L(G_1) \cup L(G_2) を生成する文脈自由文法 G3=(N3,Σ,P3,S)G_3 = (N_3, \Sigma, P_3, S) の生成規則の集合 P3P_3 を与えよ.ただし, N3={S,A,B,C,D}N_3 = \{S, A, B, C, D\}.

题目描述​

【问题 1】给定非确定性有限自动机 M=(K,Σ,δ,q0,F)M=(K,\Sigma,\delta,q_0,F),其中 K={q0,q1,q2,q3,q4}K=\{q_0,q_1,q_2,q_3,q_4\}、Σ={a,b}\Sigma=\{a,b\}、初始状态为 q0q_0、终态集合 F={q1,q2,q4}F=\{q_1,q_2,q_4\},δ\delta 及其余转移关系见原题迁移图。记 MM 接受的语言为 LL。回答:

  1. 枚举 LL 中所有长度为 44 的字符串。
  2. LL 中任意字符串都可用正则表达式 (α+β)(α+β)∗(\alpha+\beta)(\alpha+\beta)^* 表示,其中 α,β\alpha,\beta 均为 Σ\Sigma 上的字符串;求 α\alpha 与 β\beta。
  3. 对任意 Σ\Sigma 上的字符串 ww,分别判断下列命题真假;若为真须说明理由,若为假须给出反例:
    • (a) 若 w∈Lw\in L,则 bbbb 不是 ww 的子串;
    • (b) 若 bbbb 不是 ww 的子串,则 w∈Lw\in L。
  4. 画出接受 LL 且状态数最少的确定性有限自动机的迁移图。

【问题 2】考虑上下文无关文法 G1=(N,Σ,P1,S)G_1=(N,\Sigma,P_1,S) 与 G2=(N,Σ,P2,S)G_2=(N,\Sigma,P_2,S),其中 N={S,A,B}N=\{S,A,B\}、Σ={a,b,c}\Sigma=\{a,b,c\},SS 为开始符号,且

P1={S→AB, A→ab∣aAb, B→c∣Bc},P_1=\{S\to AB,\ A\to ab\mid aAb,\ B\to c\mid Bc\},
P2={S→AB, A→a∣aA, B→bBc∣bc}.P_2=\{S\to AB,\ A\to a\mid aA,\ B\to bBc\mid bc\}.

回答:

  1. 给出 G1G_1 推导字符串 aabbcaabbc 的过程。
  2. 描述 G1G_1 生成的语言 L(G1)L(G_1) 中的字符串。
  3. 描述 G2G_2 生成的语言 L(G2)L(G_2) 中的字符串。
  4. 构造生成并集语言 L(G1)∪L(G2)L(G_1)\cup L(G_2) 的上下文无关文法 G3=(N3,Σ,P3,S)G_3=(N_3,\Sigma,P_3,S):已知 N3={S,A,B,C,D}N_3=\{S,A,B,C,D\},求产生式集合 P3P_3。

Kai​

【問1】​

(1)​

bb で終わることがない、かつ bb を連続で含まないことが条件になっているので

aaaa,aaba,abaa,baaa,babaaaaa,aaba,abaa,baaa,baba

(2)​

(1) を基に考えると

α=a,β=ba\alpha = a,\beta = ba

(3)​

(a)​

真;

理由:(2) より w∈Lw \in L ならば、ww は (a+ba)(a+ba)∗(a + ba)(a + ba)^* と表せるので、bb の後に連続して bb がくることがないから。

(b)​

偽;

反例:abab

(4)​

部分集合構成により、到達可能な状態だけを列挙する。原図では δ(q3,a)={q2,q4}\delta(q_3,a)=\{q_2,q_4\}、δ(q4,a)={q2}\delta(q_4,a)=\{q_2\}、δ(q4,b)=∅\delta(q_4,b)=\emptyset である。

状態aabb
開始{q0}\{q_0\}{q1}\{q_1\}{q3}\{q_3\}
受理{q1}\{q_1\}{q1}\{q_1\}{q3}\{q_3\}
{q3}\{q_3\}{q2,q4}\{q_2,q_4\}∅\emptyset
受理{q2,q4}\{q_2,q_4\}{q1,q2}\{q_1,q_2\}{q3}\{q_3\}
受理{q1,q2}\{q_1,q_2\}{q1}\{q_1\}{q3}\{q_3\}
∅\emptyset∅\emptyset∅\emptyset

三つの受理状態は同値なので一つの状態 AA にまとめられる。

状態aabb
開始q0q_0AAq3q_3
受理AAAAq3q_3
q3q_3AA∅\emptyset
∅\emptyset∅\emptyset∅\emptyset

受理状態と他の状態は空語で区別できる。q0q_0 と q3q_3 は接尾語 baba で、これらと ∅\emptyset は接尾語 aa で区別できる。したがって四状態が最小である。以下の図では AA を q1q_1 と表記している。

ゆえに、求める状態数最小の決定性有限オートマトンの遷移図は

【問2】​

(1)​

S→AB→aAbB→aAbc→aabbcS \to AB \to aAbB \to aAbc \to aabbc

(2)​

L(G1)={anbncm∣n≥1,m≥1}L(G_1) = \{a^n b^n c^m \mid n \geq 1, m \geq 1\}

(3)​

L(G2)={ambncn∣m≥1,n≥1}L(G_2) = \{a^m b^n c^n \mid m \geq 1, n \geq 1\}

(4)​

P3={S→AB∣CDA→ab∣aAbB→c∣BcC→a∣aCD→bDc∣bc}\begin{aligned} P_3 = \{&S \to AB \mid CD \\ &A \to ab \mid aAb \\ &B \to c \mid Bc \\ &C \to a \mid aC \\ &D \to bDc \mid bc \} \end{aligned}