跳到主要内容

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

Author

Zero

Description

【問1】

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

(1) MM が受理する長さ 4 の文字列をすべて列挙せよ。

(2) MM が受理する言語 L1L_1 に含まれる文字列を説明せよ。

(3) L1L_1 を受理する状態数最小の決定性有限オートマトンの状態遷移図を与えよ。

(4) 文字 aa で始まり文字 bb で終わる Σ\Sigma 上の文字列の集合を言語 L2L_2 とする。 言語 L1L2L_1 \cap L_2 を受理する状態数最小の決定性有限オートマトンの状態遷移図を与えよ。

【問2】

1+2+3 や 4+4−10 のように数の加減算を行う式を扱える、次の文脈自由文法 GG を考える。 文法 GG の終端記号は 0,1,2,3,4,5,6,7,8,9,+,0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, −、非終端記号は S,N,DS, N, D、開始記号は SS であり、生成規則は次の通りである。

SNS+NSNNDDND0123456789\begin{aligned} S &\rightarrow N \mid S+N \mid S-N \\ N &\rightarrow D \mid DN \\ D &\rightarrow 0 \mid 1 \mid 2 \mid 3 \mid 4 \mid 5 \mid 6 \mid 7 \mid 8 \mid 9 \end{aligned}

開始記号 SS から生成規則に従った書換えにより導出できる文字列が、GG によって生成される文字列である。 例えば GG は文字列 4+4−10 を次の導出木により生成する。

次の各問い (1), (2) に答えよ。

(1) 次の各文字列は GG によって生成されるか。されるならば導出木を与え、されないならば理由を説明せよ。

  • (a) 5+13+9
  • (b) 25
  • (cc) 空文字列
  • (d) -4+15

(2) GG は 05+3-0007 のように個々の数を表す部分の先頭に不要な 0 が付いた文字列も生成してしまう。 このような文字列が生成されないように修正した文法 GG' を考える。 文法 GG' の終端記号は 0,1,2,3,4,5,6,7,8,9,+,0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, −、非終端記号は S,N,M,DS, N, M, D、開始記号は SS であり、生成規則は次の通りである。 ただし ε\varepsilon は空文字を表す。

SNS+NSNN0  i  Mε  ii    iii  D123456789\begin{aligned} S &\rightarrow N \mid S+N \mid S-N \\ N &\rightarrow 0 \mid \boxed{\ \ i \ \ } \\ M &\rightarrow \varepsilon \mid \boxed{\ \ ii \ \ } \mid \boxed{\ \ iii \ \ } \\ D &\rightarrow 1 \mid 2 \mid 3 \mid 4 \mid 5 \mid 6 \mid 7 \mid 8 \mid 9 \end{aligned}

GG' が意図通りになるよう空欄   i  \boxed{\ \ i \ \ },   ii  \boxed{\ \ ii \ \ },   iii  \boxed{\ \ iii \ \ } を埋めよ。 ただし GG により生成される文字列のうち、排除したい文字列以外は、すべて GG' により生成されるようにすること。 また他の数字が直後に続かない単独の 0 が現れることは許すものとする。 GG' は例えば 0 や 1+301 や 0+0-203 を生成するが、00 や 1+0301 は生成しない。

题目描述

【问题 1】给定非确定性有限自动机 M=(K,Σ,δ,q0,F)M=(K,\Sigma,\delta,q_0,F),其中 K={q0,q1}K=\{q_0,q_1\}Σ={a,b}\Sigma=\{a,b\}、初始状态为 q0q_0、终态集合 F={q0,q1}F=\{q_0,q_1\},转移函数 δ\delta原题状态迁移图。回答:

  1. 枚举 MM 接受的所有长度为 44 的字符串。
  2. MM 接受的语言为 L1L_1,描述 L1L_1 中字符串的共同特征。
  3. 画出接受 L1L_1 且状态数最少的确定性有限自动机的状态迁移图。
  4. L2L_2Σ\Sigma 上所有以 aa 开头、以 bb 结尾的字符串组成的语言,画出接受交集语言 L1L2L_1\cap L_2 且状态数最少的确定性有限自动机的状态迁移图。

【问题 2】考虑能表示数的加减算式(如 1+2+34+4−10)的上下文无关文法 GG。其终结符为 0,1,2,3,4,5,6,7,8,9,+,0,1,2,3,4,5,6,7,8,9,+,−,非终结符为 S,N,DS,N,D,开始符号为 SS,产生式为

SNS+NSN,NDDN,D0123456789.\begin{aligned} S &\rightarrow N \mid S+N \mid S-N, \\ N &\rightarrow D \mid DN, \\ D &\rightarrow 0 \mid 1 \mid 2 \mid 3 \mid 4 \mid 5 \mid 6 \mid 7 \mid 8 \mid 9. \end{aligned}

能从 SS 按产生式改写得到的字符串即为 GG 生成的字符串;原题以 4+4−10推导树为例。回答:

  1. 分别判断下列字符串能否由 GG 生成;若能,画出推导树;若不能,说明理由:

    • (a) 5+13+9
    • (b) 25
    • (c) 空字符串
    • (d) -4+15
  2. 文法 GG 还会生成 05+3-0007 这类在数值部分前带有多余 0 的字符串。现构造文法 GG' 排除它们:终结符仍为 0,1,2,3,4,5,6,7,8,9,+,0,1,2,3,4,5,6,7,8,9,+,−,非终结符为 S,N,M,DS,N,M,D,开始符号为 SS,且 ε\varepsilon 表示空字符串,

    SNS+NSN,N0 i ,Mε ii  iii ,D123456789.\begin{aligned} S &\rightarrow N \mid S+N \mid S-N, \\ N &\rightarrow 0 \mid \boxed{\ i\ }, \\ M &\rightarrow \varepsilon \mid \boxed{\ ii\ } \mid \boxed{\ iii\ }, \\ D &\rightarrow 1 \mid 2 \mid 3 \mid 4 \mid 5 \mid 6 \mid 7 \mid 8 \mid 9. \end{aligned}

    填写空格  i \boxed{\ i\ } ii \boxed{\ ii\ } iii \boxed{\ iii\ },使 GG' 恰好排除数值部分含无用前导零的情形,而 GG 生成的其他字符串仍全部可由 GG' 生成。允许不紧跟其他数字的单独 0:例如 GG' 应生成 01+3010+0-203,但不能生成 001+0301

考点

  • 非确定性有限自动机与语言刻画:从非确定性自动机转移图枚举定长接受串,并归纳 L1L_1 的字符串特征。
  • 确定性有限自动机最小化与积自动机:为 L1L_1 构造最小确定性自动机,并通过语言交运算构造、最小化识别 L1L2L_1\cap L_2 的自动机。
  • 上下文无关文法与推导树:按给定产生式判断算式字符串的可生成性,并为可生成字符串画出完整推导树。
  • 文法约束设计:补全非终结符 N,M,DN,M,D 的产生式,在保留合法整数和算式的同时排除多余前导零。

Kai

【問1】

(1)

aaaa,aaab,aaba,abab,abaa,baaa,baba,baabaaaa, aaab, aaba, abab, abaa, baaa, baba, baab

(2)

bb が連続しない文字列

(3)

(4)

【問1】

(1)

(a)
(b)
(cc)

生成されない。生成規則に空文字列を終端記号として導出するものが存在しない。

(d)

生成されない。文頭は最終的に非終端記号 SS から導出されるが、SS から「-」は導出されない。

(2)

  • (i) DM
  • (ii) NM
  • (iii) DM

または

  • (i) DM
  • (ii) DM
  • (iii) DM