東京工業大学 情報理工学院 数理・計算科学系 2016年8月実施 午前 問7
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
アルファベット
Σ={(00),(10),(01),(11)}
上の言語を考える。
(1) 上段の文字列が回文である文字列全体を A とする。空列 ε も A に含める。ポンピング補題を用いて A が正規言語でないことを示せ。
(2) A を生成する文脈自由文法を与えよ。
(3) 各行を左端が最上位ビットである二進数とみなし、下段の数が上段の 3 倍となる文字列全体を B とする。空列も B に含める。
BR={wR∣w∈B}
(wR は w を逆から読んだ文字列)を認識する、4 状態の決定性有限オートマトンの状態遷移図を与えよ。
题目描述
令字母表
Σ={(00),(10),(01),(11)}.
这里每个字符串可看成上下两行等长的二进制串。
-
令 A 为所有“上方一行是回文串”的字符串组成的语言,并约定空串 ε∈A。使用抽引引理证明 A 不是正则语言。
-
给出一个生成 A 的上下文无关文法。
-
把每一行都视为最高位在最左侧的二进制数,令 B 为满足“下方一行表示的数是上方一行的三倍”的字符串集合,并约定 ε∈B。定义反转语言
BR={wR∣w∈B}.
给出一个恰有四个状态、能够识别 BR 的确定有限自动机。
Kai
以下では列記号 (yx) を単に xy と書く。第 1 ビットが上段、第 2 ビットが下段である。
(1)
A が正則で、ポンピング長が p であると仮定する。文字列
w=(00)p(10)(00)p
を取る。これは上段が 0p10p なので A に属する。任意の分解 w=xyz で ∣xy∣≤p, ∣y∣>0 を満たすものを考えると、y=(00)r (r≥1) である。
i=0 として y を除くと、上段は 0p−r10p となり回文ではない。したがって xy0z∈/A であり、ポンピング補題に矛盾する。よって
A は正則言語ではない.
(2)
非終端記号を S,Z,O、開始記号を S とし、次の生成規則を取る。
SZO→ε∣Z∣O∣ZSZ∣OSO,→00∣01,→10∣11.
Z は上段ビット 0、O は上段ビット 1 の任意の列を生成する。ZSZ と OSO は同じ上段ビットを両端に付け、下段ビットは左右で独立に選べる。したがってこの文法は、上段が回文で下段が任意の文字列をちょうど生成する。
(3)
BR では最下位ビットから順に読むことになる。3 倍算の現在の桁への繰上がりを c、入力列を xy とすると、遷移条件は
y≡3x+c(mod2),c′=⌊23x+c⌋.
到達し得る繰上がりは 0,1,2 であり、これらに不正入力用のデッド状態を加えれば 4 状態になる。qc を繰上がり c の状態、qd をデッド状態とする。
初期状態かつ唯一の受理状態は q0 である。入力を読み終えたとき繰上がりが 0 であることが、同じ桁数の下段が上段のちょうど 3 倍であることに対応する。q0 を受理状態にすることで空文字列も受理される。