跳到主要内容

電気通信大学 情報理工学研究科 情報学専攻 2022年8月実施 選択問題 計算機工学 4-1

Author

祭音Myyura (co-authored with GPT 5.6 SOL)

Description

  1. 言語 {ambnm,n1}\{a^mb^n\mid m,n\ge1\}{ambmm1}\{a^mb^m\mid m\ge1\} の語を三つずつ挙げ、それぞれを生成する指定個数の文法規則を書け。
  2. {a,b}\{a,b\} 上で部分語 bbbb を含まない語を受理する三状態 DFA の状態遷移図と状態遷移関数を示せ。
  3. 次の右線形文法が生成する語を三つ挙げ、生成語に含まれる aa の個数が偶数であることを証明せよ。
SaAbB,BbBaAb,AaBbAa.\begin{aligned} S&\to aA\mid bB,\\ B&\to bB\mid aA\mid b,\\ A&\to aB\mid bA\mid a. \end{aligned}

题目描述

构造正则文法与上下文无关文法,设计识别“不含连续两个 bb”的三状态确定有限自动机,并证明给定文法生成的串含偶数个 aa

Kai

1.

(1)

語の例は

ab, aab, abb.\boxed{ab,\ aab,\ abb}.

ちょうど六個のプロダクションからなる正則文法の一例は

SaA,AaAbBb,BbBb.\boxed{ \begin{aligned} S&\to aA,\\ A&\to aA\mid bB\mid b,\\ B&\to bB\mid b. \end{aligned}}

である。

(2)

語の例は

ab, aabb, aaabbb.\boxed{ab,\ aabb,\ aaabbb}.

ちょうど二個のプロダクションからなる文脈自由文法は

SaSbab\boxed{S\to aSb\mid ab}

である。

2.

q0q_0 を初期状態かつ直前が bb でない状態、q1q_1 を直前が bb の状態、qdq_dbbbb を読んだ死状態とする。受理状態は q0,q1q_0,q_1 である。

状態遷移関数は

qqδ(q,a)\delta(q,a)δ(q,b)\delta(q,b)受理
q0q_0q0q_0q1q_1\checkmark
q1q_1q0q_0qdq_d\checkmark
qdq_dqdq_dqdq_d

である。

3.

(1)

例えば、

aa, bb, aba\boxed{aa,\ bb,\ aba}

が生成される。

(2)

導出途中の形を wAwA または wBwB とする。次の不変条件を考える。

{wA のとき、w に含まれる a は奇数個,wB のとき、w に含まれる a は偶数個.\begin{cases} wA\text{ のとき、}w\text{ に含まれる }a\text{ は奇数個},\\ wB\text{ のとき、}w\text{ に含まれる }a\text{ は偶数個}. \end{cases}

SaA,bBS\to aA,bB の直後に成立する。また、

AaB, AbA, BaA, BbBA\to aB,\ A\to bA,\ B\to aA,\ B\to bB

のいずれでもこの不変条件は保たれる。最後に AaA\to a なら奇数個に一個加わり、BbB\to b なら偶奇は変わらない。したがって、いずれの場合も終端語に含まれる aa は偶数個である。