跳到主要内容

九州大学 システム情報科学府 情報理工学専攻 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 とする.

题目描述

【问题 1】考虑确定性有限自动机 M1=(P,Σ,δ1,p1,F1)M_1=(P,\Sigma,\delta_1,p_1,F_1),其中 PPΣ\Sigmaδ1\delta_1p1p_1F1F_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))mod4\delta_1(p_i,a)=p_{(i+n(a))\bmod 4}。这里,n(0)=0n(0)=0n(1)=1n(1)=1n(2)=2n(2)=2n(3)=3n(3)=3;对非负整数 xx 和正整数 yyxmodyx\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 个状态,给出一个满足条件的终态集合 F2PF_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)mod6=0Y(u)\bmod 6=0Y(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_0Y(u)=0Y(u)=0
    • q1q_1Y(u)mod20Y(u)\bmod2\ne0Y(u)mod30Y(u)\bmod3\ne0
    • q2q_2Y(u)mod2=0Y(u)\bmod2=0Y(u)mod60Y(u)\bmod6\ne0
    • q3q_3Y(u)mod3=0Y(u)\bmod3=0Y(u)mod60Y(u)\bmod6\ne0
    • q6q_6Y(u)mod6=0Y(u)\bmod6=0Y(u)0Y(u)\ne0

    画出 M3M_3 的状态迁移图。

【问题 2】在字母表 Σ={a,b}\Sigma=\{a,b\} 上,w|w| 表示字符串 ww 的长度,w[i]w[i] 表示其第 ii 个字符,wRw^R 表示其逆序字符串。对满足 x=y1|x|=|y|\ge1 的字符串 x,yx,y,定义汉明距离 d(x,y)={i1ix, 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,则称 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 是 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 可由产生式 SaSabSbabε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

【問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}