九州大学 システム情報科学府 情報理工学専攻 2019年8月実施 オートマトンと言語
Author
Casablanca
Description
【問1】
決定性有限オートマトン M1=(P,Σ,δ1,p1,F1) を考える.
ただし,P, Σ, δ1, p1, F1 はそれぞれ M1 の状態集合,アルファベット,遷移関数,初期状態,最終状態の集合を表す.
P={p0,p1,p2,p3}, Σ={0,1,2,3}, F1={p0} であり,i=1,2,3,4 に対し δ1(pi,a)=p(i+n(a)) mod 4 である.
ここで n(a) は記号 a∈Σ に対応する整数であり,n(0)=0, n(1)=1, n(2)=2, n(3)=3 である.
非負の整数 x と正の整数 y に対し,x mod y は x を y で割ったときの余りを表す.
たとえば δ1(p1,3)=p0 となる.次の各問いに答えよ.
(1) M1 の状態遷移図を与えよ.
(2) 決定性有限オートマトン M2=(P,Σ,δ1,p1,F2) は,M1 と同じ状態集合,アルファベット,遷移関数,初期状態を持つ.
M2 と等価な決定性有限オートマトンの最小状態数が 2 であるとき,最終状態の集合 F2⊆P の例をひとつ与えよ.
(3) Σ 上の文字列 u に対して,
Y(u)={1Y(v)×n(a)if u is the empty string,if u=va,v∈Σ∗,a∈Σ.
とする.Y(u) mod 6=0 かつ Y(u)=0 となる u のみを受理する決定性有限オートマトン M3 を考える.
ただし,M3 の状態集合を {q0,q1,q2,q3,q6}, 初期状態を q1, 最終状態の集合を {q6} とする.
また,各状態は次のような文字列に対応する.
- q0 は Y(u)=0 を満たす文字列 u に対応.
- q1 は Y(u) mod 2=0 かつ Y(u) mod 3=0 を満たす文字列 u に対応.
- q2 は Y(u) mod 2=0 かつ Y(u) mod 6=0 を満たす文字列 u に対応.
- q3 は Y(u) mod 3=0 かつ Y(u) mod 6=0 を満たす文字列 u に対応.
- q6 は Y(u) mod 6=0 かつ Y(u)=0 を満たす文字列 u に対応.
M3 の状態遷移図を与えよ.
【問2】
アルファベット Σ={a,b} 上の文字列 w に対し,w の長さを ∣w∣ と表す.
また,1≤i≤∣w∣ に対して w[i] は w の i 番目の文字を表す.
w の逆文字列を wR と表す.
∣x∣=∣y∣≥1 を満たす Σ 上の文字列 x と y に対して,d(x,y)=∣{i∣1≤i≤∣x∣,x[i]=y[i]}∣ とする.
文字列 w に対し,w=xyz を満たす文字列 x,z∈Σ∗ が存在するとき,y を w の部分文字列という.
# は Σ に含まれない文字とする.
次の各言語を考える.
L0L1L2L3L4={w∣w∈Σ∗,w=wR}={wxwR∣w∈Σ∗,x∈Σ}={uxvw∣u,v,w∈Σ∗,uv=wR,x∈Σ}={uv∣u,v∈Σ∗,∣u∣=∣v∣≥1,d(uR,v)≤1}={x#w∣x,w∈Σ∗,xR is a substring of w}
これらの言語はすべて文脈自由言語である.例えば,言語 L0 は以下の生成規則を持つ文脈自由文法によって生成される.
S→aSa∣bSb∣a∣b∣ε
ただし,ε は空文字列を表す.
次の問いに答えよ.
(1) 言語 L1 を生成する文脈自由文法の生成規則を与えよ.ただし,非終端記号を S とし,開始記号を S とする.
(2) 言語 L2 を生成する文脈自由文法の生成規則を与えよ.ただし,非終端記号を S,T とし,開始記号を S とする.
(3) 言語 L3 を生成する文脈自由文法の生成規則を与えよ.ただし,非終端記号を S,T とし,開始記号を S とする.
(4) 言語 L4 を生成する文脈自由文法の生成規則を与えよ.ただし,非終端記号を S,T,X とし,開始記号を S とする.
题目描述
【问题 1】考虑确定性有限自动机
M1=(P,Σ,δ1,p1,F1),其中 P、Σ、δ1、p1、F1 依次表示状态集合、字母表、转移函数、初始状态和终态集合。已知
P={p0,p1,p2,p3}、Σ={0,1,2,3}、F1={p0},题面给定对 i=1,2,3,4 有
δ1(pi,a)=p(i+n(a))mod4。这里,n(0)=0、n(1)=1、n(2)=2、n(3)=3;对非负整数 x 和正整数 y,xmody 表示 x 除以 y 的余数,例如 δ1(p1,3)=p0。回答:
-
画出 M1 的状态迁移图。
-
确定性有限自动机 M2=(P,Σ,δ1,p1,F2) 与 M1 具有相同的状态集合、字母表、转移函数和初始状态。若与 M2 等价的最小 DFA 恰有 2 个状态,给出一个满足条件的终态集合 F2⊆P。
-
对 Σ 上的字符串 u 定义
Y(u)={1,Y(v)×n(a),u 为空字符串,u=va, v∈Σ∗, a∈Σ.
构造只接受满足 Y(u)mod6=0 且 Y(u)=0 的字符串 u 的 DFA M3。其状态集合为
{q0,q1,q2,q3,q6},初始状态为 q1,终态集合为 {q6};各状态含义如下:
- q0:Y(u)=0;
- q1:Y(u)mod2=0 且 Y(u)mod3=0;
- q2:Y(u)mod2=0 且 Y(u)mod6=0;
- q3:Y(u)mod3=0 且 Y(u)mod6=0;
- q6:Y(u)mod6=0 且 Y(u)=0。
画出 M3 的状态迁移图。
【问题 2】在字母表 Σ={a,b} 上,∣w∣ 表示字符串 w 的长度,w[i] 表示其第 i 个字符,wR 表示其逆序字符串。对满足 ∣x∣=∣y∣≥1 的字符串 x,y,定义汉明距离
d(x,y)=∣{i∣1≤i≤∣x∣, x[i]=y[i]}∣。若存在 x,z∈Σ∗ 使 w=xyz,则称 y 为 w 的子串;字符 # 不属于 Σ。考虑以下均为上下文无关语言的五个语言:
L0L1L2L3L4={w∣w∈Σ∗, w=wR},={wxwR∣w∈Σ∗, x∈Σ},={uxvw∣u,v,w∈Σ∗, uv=wR, x∈Σ},={uv∣u,v∈Σ∗, ∣u∣=∣v∣≥1, d(uR,v)≤1},={x#w∣x,w∈Σ∗, xR 是 w 的子串}.
例如 L0 可由产生式
S→aSa∣bSb∣a∣b∣ε
生成,其中 ε 为空字符串。分别完成:
- 给出生成 L1 的上下文无关文法产生式,唯一非终结符及开始符号均为 S。
- 给出生成 L2 的产生式,非终结符为 S,T,开始符号为 S。
- 给出生成 L3 的产生式,非终结符为 S,T,开始符号为 S。
- 给出生成 L4 的产生式,非终结符为 S,T,X,开始符号为 S。
- 确定性有限自动机构造:依据模运算和字符数值乘积的分类定义补全自动机的全部状态转移。
- 确定性有限自动机最小化:通过选择终态集合控制状态等价类,使等价最小自动机的状态数恰为指定值。
- 上下文无关文法构造:针对回文中心、逆序匹配、至多一次字符不一致和逆串子串匹配等约束,设计具有指定非终结符的产生式。
Kai
【問1】
(1)
(2)
F2={p0,p2}
(3)
Y(u) mod 6≡0,Y(u)=0
【問2】
(1)
S→aSa∣bSb∣a∣b
(2)
ST→aSa∣bSb∣aT∣bT→aTa∣bTb∣ε
(3)
ST→aSa∣bSb∣ε∣aTb∣bTa→aTa∣bTb∣ε
(4)
STX→TX→aTa∣bTb∣#X→aX∣bX∣ε