跳到主要内容

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

Author​

Casablanca, 祭音Myyura

Description​

【問1】​

決定性有限オートマトン M1=(P,Σ,δ1,p1,F1)M_1 = (P, \Sigma, \delta_1, p_1, F_1) を考える. ただし,PP, Σ\Sigma, δ1\delta_1, p1p_1, F1F_1 はそれぞれ M1M_1 の状態集合,アルファベット,遷移関数,初期状態,最終状態の集合を表す. P={p0,p1,p2,p3}P = \{p_0, p_1, p_2, p_3\}, Σ={0,1,2,3}\Sigma = \{0, 1, 2, 3\}, F1={p0}F_1 = \{p_0\} であり,i=1,2,3,4i = 1,2,3,4 に対し δ1(pi,a)=p(i+n(a)) mod 4\delta_1 (p_i, a) = p_{(i + n(a)) \text{ mod } 4} である. ここで n(a)n(a) は記号 a∈Σa \in \Sigma に対応する整数であり,n(0)=0n(0) = 0, n(1)=1n(1) = 1, n(2)=2n(2) = 2, n(3)=3n(3) = 3 である. 非負の整数 xx と正の整数 yy に対し,x mod yx \text{ mod } y は xx を yy で割ったときの余りを表す. たとえば δ1(p1,3)=p0\delta_1(p_1, 3) = p_0 となる.次の各問いに答えよ.

(1) M1M_1 の状態遷移図を与えよ.

(2) 決定性有限オートマトン M2=(P,Σ,δ1,p1,F2)M_2 = (P, \Sigma, \delta_1, p_1, F_2) は,M1M_1 と同じ状態集合,アルファベット,遷移関数,初期状態を持つ. M2M_2 と等価な決定性有限オートマトンの最小状態数が 22 であるとき,最終状態の集合 F2⊆PF_2 \subseteq P の例をひとつ与えよ.

(3) Σ\Sigma 上の文字列 uu に対して,

Y(u)={1if u is the empty string,Y(v)×n(a)if u=va,v∈Σ∗,a∈Σ.Y(u) = \begin{cases} &1 &\text{if } u \text{ is the empty string}, \\ &Y(v) \times n(a) &\text{if } u = va, v \in \Sigma^*, a \in \Sigma. \end{cases}

とする.Y(u) mod 6=0Y(u) \text{ mod } 6 = 0 かつ Y(u)≠0Y(u) \neq 0 となる uu のみを受理する決定性有限オートマトン M3M_3 を考える. ただし,M3M_3 の状態集合を {q0,q1,q2,q3,q6}\{q_0, q_1, q_2, q_3, q_6\}, 初期状態を q1q_1, 最終状態の集合を {q6}\{q_6\} とする. また,各状態は次のような文字列に対応する.

  • q0q_0 は Y(u)=0Y(u) = 0 を満たす文字列 uu に対応.
  • q1q_1 は Y(u) mod 2≠0Y(u) \text{ mod } 2 \neq 0 かつ Y(u) mod 3≠0Y(u) \text{ mod } 3 \neq 0 を満たす文字列 uu に対応.
  • q2q_2 は Y(u) mod 2=0Y(u) \text{ mod } 2 = 0 かつ Y(u) mod 6≠0Y(u) \text{ mod } 6 \neq 0 を満たす文字列 uu に対応.
  • q3q_3 は Y(u) mod 3=0Y(u) \text{ mod } 3 = 0 かつ Y(u) mod 6≠0Y(u) \text{ mod } 6 \neq 0 を満たす文字列 uu に対応.
  • q6q_6 は Y(u) mod 6=0Y(u) \text{ mod } 6 = 0 かつ Y(u)≠0Y(u) \neq 0 を満たす文字列 uu に対応.

M3M_3 の状態遷移図を与えよ.

【問2】​

アルファベット Σ={a,b}\Sigma = \{a, b\} 上の文字列 ww に対し,ww の長さを ∣w∣|w| と表す. また,1≤i≤∣w∣1 \leq i \leq |w| に対して w[i]w[i] は ww の ii 番目の文字を表す. ww の逆文字列を wRw^R と表す. ∣x∣=∣y∣≥1|x| = |y| \geq 1 を満たす Σ\Sigma 上の文字列 xx と yy に対して,d(x,y)=∣{i∣1≤i≤∣x∣,x[i]≠y[i]}∣d(x,y) = |\{ i \mid 1 \leq i \leq |x|, x[i] \neq y[i]\}| とする. 文字列 ww に対し,w=xyzw = xyz を満たす文字列 x,z∈Σ∗x, z \in \Sigma^* が存在するとき,yy を ww の部分文字列という. #\# は Σ\Sigma に含まれない文字とする. 次の各言語を考える.

L0={w∣w∈Σ∗,w=wR}L1={wxwR∣w∈Σ∗,x∈Σ}L2={uxvw∣u,v,w∈Σ∗,uv=wR,x∈Σ}L3={uv∣u,v∈Σ∗,∣u∣=∣v∣≥1,d(uR,v)≤1}L4={x#w∣x,w∈Σ∗,xR is a substring of w}\begin{aligned} L_0 &= \{w \mid w \in \Sigma^*, w = w^R\} \\ L_1 &= \{wxw^R \mid w \in \Sigma^*, x \in \Sigma\} \\ L_2 &= \{uxvw \mid u, v, w \in \Sigma^*, uv = w^R, x \in \Sigma\} \\ L_3 &= \{uv \mid u, v \in \Sigma^*, |u| = |v| \geq 1, d(u^R, v) \leq 1\} \\ L_4 &= \{x \# w \mid x, w \in \Sigma^*, x^R \text{ is a substring of } w\} \end{aligned}

これらの言語はすべて文脈自由言語である.例えば,言語 L0L_0 は以下の生成規則を持つ文脈自由文法によって生成される.

S→aSa∣bSb∣a∣b∣εS \to aSa \mid bSb \mid a \mid b \mid \varepsilon

ただし,ε\varepsilon は空文字列を表す.

次の問いに答えよ.

(1) 言語 L1L_1 を生成する文脈自由文法の生成規則を与えよ.ただし,非終端記号を SS とし,開始記号を SS とする.

(2) 言語 L2L_2 を生成する文脈自由文法の生成規則を与えよ.ただし,非終端記号を S,TS, T とし,開始記号を SS とする.

(3) 言語 L3L_3 を生成する文脈自由文法の生成規則を与えよ.ただし,非終端記号を S,TS, T とし,開始記号を SS とする.

(4) 言語 L4L_4 を生成する文脈自由文法の生成規則を与えよ.ただし,非終端記号を S,T,XS, T, X とし,開始記号を SS とする.

题目描述​

【问题 1】考虑确定性有限自动机 M1=(P,Σ,δ1,p1,F1)M_1=(P,\Sigma,\delta_1,p_1,F_1),其中 PP、Σ\Sigma、δ1\delta_1、p1p_1、F1F_1 依次表示状态集合、字母表、转移函数、初始状态和终态集合。已知 P={p0,p1,p2,p3}P=\{p_0,p_1,p_2,p_3\}、Σ={0,1,2,3}\Sigma=\{0,1,2,3\}、F1={p0}F_1=\{p_0\},题面给定对 i=1,2,3,4i=1,2,3,4 有 δ1(pi,a)=p(i+n(a)) mod 4\delta_1(p_i,a)=p_{(i+n(a))\bmod 4}。这里,n(0)=0n(0)=0、n(1)=1n(1)=1、n(2)=2n(2)=2、n(3)=3n(3)=3;对非负整数 xx 和正整数 yy,x mod yx\bmod y 表示 xx 除以 yy 的余数,例如 δ1(p1,3)=p0\delta_1(p_1,3)=p_0。回答:

  1. 画出 M1M_1 的状态迁移图。

  2. 确定性有限自动机 M2=(P,Σ,δ1,p1,F2)M_2=(P,\Sigma,\delta_1,p_1,F_2) 与 M1M_1 具有相同的状态集合、字母表、转移函数和初始状态。若与 M2M_2 等价的最小 DFA 恰有 22 个状态,给出一个满足条件的终态集合 F2⊆PF_2\subseteq P。

  3. 对 Σ\Sigma 上的字符串 uu 定义

    Y(u)={1,u 为空字符串,Y(v)×n(a),u=va, v∈Σ∗, a∈Σ.Y(u)= \begin{cases} 1,&u\text{ 为空字符串},\\ Y(v)\times n(a),&u=va,\ v\in\Sigma^*,\ a\in\Sigma. \end{cases}

    构造只接受满足 Y(u) mod 6=0Y(u)\bmod 6=0 且 Y(u)≠0Y(u)\ne0 的字符串 uu 的 DFA M3M_3。其状态集合为 {q0,q1,q2,q3,q6}\{q_0,q_1,q_2,q_3,q_6\},初始状态为 q1q_1,终态集合为 {q6}\{q_6\};各状态含义如下:

    • q0q_0:Y(u)=0Y(u)=0;
    • q1q_1:Y(u) mod 2≠0Y(u)\bmod2\ne0 且 Y(u) mod 3≠0Y(u)\bmod3\ne0;
    • q2q_2:Y(u) mod 2=0Y(u)\bmod2=0 且 Y(u) mod 6≠0Y(u)\bmod6\ne0;
    • q3q_3:Y(u) mod 3=0Y(u)\bmod3=0 且 Y(u) mod 6≠0Y(u)\bmod6\ne0;
    • q6q_6:Y(u) mod 6=0Y(u)\bmod6=0 且 Y(u)≠0Y(u)\ne0。

    画出 M3M_3 的状态迁移图。

【问题 2】在字母表 Σ={a,b}\Sigma=\{a,b\} 上,∣w∣|w| 表示字符串 ww 的长度,w[i]w[i] 表示其第 ii 个字符,wRw^R 表示其逆序字符串。对满足 ∣x∣=∣y∣≥1|x|=|y|\ge1 的字符串 x,yx,y,定义汉明距离 d(x,y)=∣{i∣1≤i≤∣x∣, x[i]≠y[i]}∣d(x,y)=|\{i\mid1\le i\le|x|,\ x[i]\ne y[i]\}|。若存在 x,z∈Σ∗x,z\in\Sigma^* 使 w=xyzw=xyz,则称 yy 为 ww 的子串;字符 #\# 不属于 Σ\Sigma。考虑以下均为上下文无关语言的五个语言:

L0={w∣w∈Σ∗, w=wR},L1={wxwR∣w∈Σ∗, x∈Σ},L2={uxvw∣u,v,w∈Σ∗, uv=wR, x∈Σ},L3={uv∣u,v∈Σ∗, ∣u∣=∣v∣≥1, d(uR,v)≤1},L4={x#w∣x,w∈Σ∗, xR 是 w 的子串}.\begin{aligned} L_0 &= \{w\mid w\in\Sigma^*,\ w=w^R\},\\ L_1 &= \{wxw^R\mid w\in\Sigma^*,\ x\in\Sigma\},\\ L_2 &= \{uxvw\mid u,v,w\in\Sigma^*,\ uv=w^R,\ x\in\Sigma\},\\ L_3 &= \{uv\mid u,v\in\Sigma^*,\ |u|=|v|\ge1,\ d(u^R,v)\le1\},\\ L_4 &= \{x\#w\mid x,w\in\Sigma^*,\ x^R\text{ 是 }w\text{ 的子串}\}. \end{aligned}

例如 L0L_0 可由产生式 S→aSa∣bSb∣a∣b∣εS\to aSa\mid bSb\mid a\mid b\mid\varepsilon 生成,其中 ε\varepsilon 为空字符串。分别完成:

  1. 给出生成 L1L_1 的上下文无关文法产生式,唯一非终结符及开始符号均为 SS。
  2. 给出生成 L2L_2 的产生式,非终结符为 S,TS,T,开始符号为 SS。
  3. 给出生成 L3L_3 的产生式,非终结符为 S,TS,T,开始符号为 SS。
  4. 给出生成 L4L_4 的产生式,非终结符为 S,T,XS,T,X,开始符号为 SS。

Kai​

公式原題(18–19頁)でも問 1 の添字範囲は i=1,2,3,4i=1,2,3,4 となっている。一方、状態集合は {p0,p1,p2,p3}\{p_0,p_1,p_2,p_3\} なので、このままでは p0p_0 の遷移が未定義で p4p_4 は存在しない。以下は添字範囲を i=0,1,2,3i=0,1,2,3 と解釈した解答である。

【問1】​

(1)​

(2)​

F2={p0,p2}F_2 = \{p_0, p_2\}

(3)​

Y(u) mod 6≡0,Y(u)≠0Y(u) \text{ mod } 6 \equiv 0, Y(u) \neq 0

非零で 66 の倍数になった積に 1,2,31,2,3 を掛けても、非零の 66 の倍数のままである。したがって q6q_6 から q1,q2,q3q_1,q_2,q_3 へ戻る遷移はない。

【問2】​

(1)​

S→aSa∣bSb∣a∣bS \to aSa \mid bSb \mid a \mid b

(2)​

S→aSa∣bSb∣aT∣bTT→aTa∣bTb∣ε\begin{aligned} S &\to aSa \mid bSb \mid aT \mid bT \\ T &\to aTa \mid bTb \mid \varepsilon \end{aligned}

(3)​

S→aSa∣bSb∣aa∣bb∣aTb∣bTaT→aTa∣bTb∣ε\begin{aligned} S &\to aSa \mid bSb \mid aa \mid bb \mid aTb \mid bTa \\ T &\to aTa \mid bTb \mid \varepsilon \end{aligned}

(4)​

S→TXT→aTa∣bTb∣#XX→aX∣bX∣ε\begin{aligned} S &\to TX \\ T &\to aTa \mid bTb \mid \# X \\ X &\to aX \mid bX \mid \varepsilon \end{aligned}