跳到主要内容

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

Author

Casablanca

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 } yxxyy で割ったときの余りを表す. たとえば δ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 であるとき,最終状態の集合 F2PF_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_0Y(u)=0Y(u) = 0 を満たす文字列 uu に対応.
  • q1q_1Y(u) mod 20Y(u) \text{ mod } 2 \neq 0 かつ Y(u) mod 30Y(u) \text{ mod } 3 \neq 0 を満たす文字列 uu に対応.
  • q2q_2Y(u) mod 2=0Y(u) \text{ mod } 2 = 0 かつ Y(u) mod 60Y(u) \text{ mod } 6 \neq 0 を満たす文字列 uu に対応.
  • q3q_3Y(u) mod 3=0Y(u) \text{ mod } 3 = 0 かつ Y(u) mod 60Y(u) \text{ mod } 6 \neq 0 を満たす文字列 uu に対応.
  • q6q_6Y(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| と表す. また,1iw1 \leq i \leq |w| に対して w[i]w[i]wwii 番目の文字を表す. ww の逆文字列を wRw^R と表す. x=y1|x| = |y| \geq 1 を満たす Σ\Sigma 上の文字列 xxyy に対して,d(x,y)={i1ix,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^* が存在するとき,yyww の部分文字列という. #\#Σ\Sigma に含まれない文字とする. 次の各言語を考える.

L0={wwΣ,w=wR}L1={wxwRwΣ,xΣ}L2={uxvwu,v,wΣ,uv=wR,xΣ}L3={uvu,vΣ,u=v1,d(uR,v)1}L4={x#wx,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 は以下の生成規則を持つ文脈自由文法によって生成される.

SaSabSbabε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 とする.

Kai

【問1】

(1)

(2)

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

(3)

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

【問2】

(1)

SaSabSbabS \to aSa \mid bSb \mid a \mid b

(2)

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

(3)

SaSabSbεaTbbTaTaTabTbε\begin{aligned} S &\to aSa \mid bSb \mid \varepsilon \mid aTb \mid bTa \\ T &\to aTa \mid bTb \mid \varepsilon \end{aligned}

(4)

STXTaTabTb#XXaXbXε\begin{aligned} S &\to TX \\ T &\to aTa \mid bTb \mid \# X \\ X &\to aX \mid bX \mid \varepsilon \end{aligned}