跳到主要内容

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

Author​

Zero, 祭音Myyura

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 とする。 言語 L1∩L2L_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 であり、生成規則は次の通りである。

S→N∣S+N∣S−NN→D∣DND→0∣1∣2∣3∣4∣5∣6∣7∣8∣9\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 が付いた文字列も生成してしまう。 このような文字列が生成されないように修正した文法 G′G' を考える。 文法 G′G' の終端記号は 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 は空文字を表す。

S→N∣S+N∣S−NN→0∣  i  M→ε∣  ii  ∣  iii  D→1∣2∣3∣4∣5∣6∣7∣8∣9\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}

G′G' が意図通りになるよう空欄   i  \boxed{\ \ i \ \ },   ii  \boxed{\ \ ii \ \ },   iii  \boxed{\ \ iii \ \ } を埋めよ。 ただし GG により生成される文字列のうち、排除したい文字列以外は、すべて G′G' により生成されるようにすること。 また他の数字が直後に続かない単独の 0 が現れることは許すものとする。 G′G' は例えば 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 结尾的字符串组成的语言,画出接受交集语言 L1∩L2L_1\cap L_2 且状态数最少的确定性有限自动机的状态迁移图。

【问题 2】考虑能表示数的加减算式(如 1+2+3、4+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,产生式为

S→N∣S+N∣S−N,N→D∣DN,D→0∣1∣2∣3∣4∣5∣6∣7∣8∣9.\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 的字符串。现构造文法 G′G' 排除它们:终结符仍为 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 表示空字符串,

    S→N∣S+N∣S−N,N→0∣ i ,M→ε∣ ii ∣ iii ,D→1∣2∣3∣4∣5∣6∣7∣8∣9.\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\ },使 G′G' 恰好排除数值部分含无用前导零的情形,而 GG 生成的其他字符串仍全部可由 G′G' 生成。允许不紧跟其他数字的单独 0:例如 G′G' 应生成 0、1+301、0+0-203,但不能生成 00 或 1+0301。

Kai​

【問1】​

(1)​

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

(2)​

bb が連続しない文字列

(3)​

(4)​

【問2】​

(1)​

(a)​
(b)​
(cc)​

生成されない。NN は少なくとも一桁の数字を生成し、SS は少なくとも一つの NN を含む式を生成するため、空文字列は得られない。

(d)​

生成されない。SS が生成する式の先頭は必ず NN が生成する数字であり、単項の負号を置く規則はない。

(2)​

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

この解答の M→NM∣DM∣εM\to NM\mid DM\mid\varepsilon は冗長だが、MM が生成する言語は数字列全体である。N→0∣DMN\to0\mid DM により、数は単独の 00 または非零の数字で始まる数に限られる。空欄 (ii) を 0M0M としても正しい。