跳到主要内容

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

Author

Zero

Description

【問1】

以下の状態遷移図を持つ有限オートマトン M=(K,Σ,δ,q0,F)M = (K, \Sigma, \delta, q_0, F) に対し,次の各問いに答えよ. ただし,K,Σ,δ,q0,FK, \Sigma, \delta, q_0, F は,それぞれ状態の集合,アルファベット,遷移関数,初期状態,最終状態の集合を表し,Σ={a,b,c}\Sigma = \{a, b, c\} とする.

(1) MM が受理する長さ 22 以下の文字列をすべて列挙せよ.

(2) MM が受理する言語を L(M)L(M) で表す.L(M)L(M) を受理する状態数最小の決定性有限オートマトンの状態遷移図を与えよ.

(3) LL を,状態 q4q_4 を通らずに MM によって受理される文字列からなる言語とする.LL を表す正規表現を1つ与えよ.

【問2】

Σ={a,b}\Sigma = \{a, b\} を終端記号の集合とする2つの文脈自由文法 G1=(N1,Σ,P1,S)G_1 = (N_1, \Sigma, P_1, S), G2=(N2,Σ,P2,T)G_2 = (N_2, \Sigma, P_2, T) を考える. ただし,N1={S,A}N_1 = \{S, A\}, P1={SaSaA,AbAb}P_1 = \{S \rightarrow aS \mid aA, A \rightarrow bA \mid b\}, SS は,それぞれ G1G_1 の非終端記号の集合,生成規則の集合,開始記号である. また,N2={T,B,C}N_2 = \{T, B, C\}, P2={TaBCb,BεaBaBb,CεCbaCb}P_2 = \{T \to aB \mid Cb, B \to \varepsilon \mid aB \mid aBb, C \to \varepsilon \mid Cb \mid aCb\}, TT は,それぞれ G2G_2 の非終端記号の集合,生成規則の集合,開始記号である. 文脈自由文法 GG が生成する言語を L(G)L(G) と表す.次の各問いに答えよ.

(1) G1G_1 が生成する長さ 3 の文字列をすべて列挙せよ.

(2) 言語 L(G1)L(G_1) を説明せよ.

(3) G2G_2 が生成する長さ 4 の文字列をすべて列挙せよ.

(4) 言語 L(G1)L(G2)L(G_1) \setminus L(G_2) を説明せよ.ただし,集合 U,VU, V について,UV={wwU and wV}U \setminus V = \{w \mid w \in U \text{ and } w \notin V\} とする.

题目描述

【问题 1】给定有限自动机 M=(K,Σ,δ,q0,F)M=(K,\Sigma,\delta,q_0,F),其中 KKΣ\Sigmaδ\deltaq0q_0FF 依次表示状态集合、字母表、转移函数、初始状态和终态集合,且 Σ={a,b,c}\Sigma=\{a,b,c\};状态转移关系见原题状态迁移图。回答:

  1. 枚举 MM 接受的所有长度不超过 22 的字符串。
  2. MM 接受的语言为 L(M)L(M),画出接受 L(M)L(M) 且状态数最少的确定性有限自动机的状态迁移图。
  3. LL 为所有被 MM 接受、且接受路径不经过状态 q4q_4 的字符串所组成的语言,给出一个表示 LL 的正则表达式。

【问题 2】令 Σ={a,b}\Sigma=\{a,b\} 为终结符集合,考虑两个上下文无关文法 G1=(N1,Σ,P1,S)G_1=(N_1,\Sigma,P_1,S)G2=(N2,Σ,P2,T)G_2=(N_2,\Sigma,P_2,T)。其中 N1={S,A}N_1=\{S,A\}P1={SaSaA, AbAb}P_1=\{S\rightarrow aS\mid aA,\ A\rightarrow bA\mid b\}SS 分别为 G1G_1 的非终结符集合、产生式集合和开始符号;另有 N2={T,B,C}N_2=\{T,B,C\}P2={TaBCb, BεaBaBb, CεCbaCb}P_2=\{T\to aB\mid Cb,\ B\to\varepsilon\mid aB\mid aBb,\ C\to\varepsilon\mid Cb\mid aCb\}TTG2G_2 的开始符号。记文法 GG 生成的语言为 L(G)L(G)。回答:

  1. 枚举 G1G_1 生成的所有长度为 33 的字符串。
  2. 描述语言 L(G1)L(G_1)
  3. 枚举 G2G_2 生成的所有长度为 44 的字符串。
  4. 描述差集语言 L(G1)L(G2)L(G_1)\setminus L(G_2),其中 UV={wwU 且 wV}U\setminus V=\{w\mid w\in U\text{ 且 }w\notin V\}

考点

  • 确定性有限自动机与最小化:根据状态迁移图判断短字符串是否被接受,并构造接受同一语言且状态数最少的确定性有限自动机。
  • 正则表达式:在禁止经过指定状态的路径约束下,概括自动机所接受的字符串并写出对应正则表达式。
  • 上下文无关文法:由产生式枚举定长字符串、归纳两个文法各自生成的语言,并求语言差集。

Kai

【問1】

(1)

b,c,ab,ac,ba,bc,ca,ccb, c, ab, ac, ba, bc, ca, cc

(2)

q2=q3,q0=q1q_2 = q_3, q_0 = q_1

(3)

L={a(b+c)(a+c)}L = \{ a^{*} (b+c)(a+c)^{*} \}

【問2】

(1)

aab,abbaab, abb

(2)

L(G1)={anbmn1,m1}L(G_1) = \{a^n b^m \mid n \geq 1, m \geq 1\}

(3)

aaaaaaabbbbbabbbaaaa \quad aaab \quad bbbb \quad abbb

(4)

L(G2)={anbmn0,m0 and mn}L(G_2) = \{a^n b^m \mid n \geq 0, m \geq 0 \text{ and } m \neq n\}

よって、

L(G1)L(G2)={anbnn1}L(G_1) \setminus L(G_2) = \{ a^n b^n \mid n \geq 1 \}