跳到主要内容

東京工業大学 情報理工学院 数理・計算科学系 2016年8月実施 午前 問7

Author

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

Description

アルファベット

Σ={(00),(01),(10),(11)}\Sigma=\left\{\binom00,\binom01,\binom10,\binom11\right\}

上の言語を考える。

(1) 上段の文字列が回文である文字列全体を AA とする。空列 ε\varepsilonAA に含める。ポンピング補題を用いて AA が正規言語でないことを示せ。

(2) AA を生成する文脈自由文法を与えよ。

(3) 各行を左端が最上位ビットである二進数とみなし、下段の数が上段の 3 倍となる文字列全体を BB とする。空列も BB に含める。

BR={wRwB}B^R=\{w^R\mid w\in B\}

wRw^Rww を逆から読んだ文字列)を認識する、4 状態の決定性有限オートマトンの状態遷移図を与えよ。

题目描述

令字母表

Σ={(00),(01),(10),(11)}.\Sigma=\left\{ \binom00,\binom01,\binom10,\binom11 \right\}.

这里每个字符串可看成上下两行等长的二进制串。

  1. AA 为所有“上方一行是回文串”的字符串组成的语言,并约定空串 εA\varepsilon\in A。使用抽引引理证明 AA 不是正则语言。

  2. 给出一个生成 AA 的上下文无关文法。

  3. 把每一行都视为最高位在最左侧的二进制数,令 BB 为满足“下方一行表示的数是上方一行的三倍”的字符串集合,并约定 εB\varepsilon\in B。定义反转语言

    BR={wRwB}.B^R=\{w^R\mid w\in B\}.

    给出一个恰有四个状态、能够识别 BRB^R 的确定有限自动机。

Kai

以下では列記号 (xy)\binom{x}{y} を単に xyxy と書く。第 1 ビットが上段、第 2 ビットが下段である。

(1)

AA が正則で、ポンピング長が pp であると仮定する。文字列

w=(00)p(10)(00)pw=(00)^p(10)(00)^p

を取る。これは上段が 0p10p0^p10^p なので AA に属する。任意の分解 w=xyzw=xyzxyp|xy|\leq p, y>0|y|>0 を満たすものを考えると、y=(00)ry=(00)^r (r1)(r\geq1) である。

i=0i=0 として yy を除くと、上段は 0pr10p0^{p-r}10^p となり回文ではない。したがって xy0zAxy^0z\notin A であり、ポンピング補題に矛盾する。よって

A は正則言語ではない.\boxed{A\text{ は正則言語ではない}}.

(2)

非終端記号を S,Z,OS,Z,O、開始記号を SS とし、次の生成規則を取る。

SεZOZSZOSO,Z0001,O1011.\begin{aligned} S&\to\varepsilon\mid Z\mid O\mid ZSZ\mid OSO,\\ Z&\to00\mid01,\\ O&\to10\mid11. \end{aligned}

ZZ は上段ビット 0、OO は上段ビット 1 の任意の列を生成する。ZSZZSZOSOOSO は同じ上段ビットを両端に付け、下段ビットは左右で独立に選べる。したがってこの文法は、上段が回文で下段が任意の文字列をちょうど生成する。

(3)

BRB^R では最下位ビットから順に読むことになる。3 倍算の現在の桁への繰上がりを cc、入力列を xyxy とすると、遷移条件は

y3x+c(mod2),c=3x+c2.y\equiv3x+c\pmod2, \qquad c'=\left\lfloor\frac{3x+c}{2}\right\rfloor.

到達し得る繰上がりは 0,1,20,1,2 であり、これらに不正入力用のデッド状態を加えれば 4 状態になる。qcq_c を繰上がり cc の状態、qdq_d をデッド状態とする。

初期状態かつ唯一の受理状態は q0q_0 である。入力を読み終えたとき繰上がりが 0 であることが、同じ桁数の下段が上段のちょうど 3 倍であることに対応する。q0q_0 を受理状態にすることで空文字列も受理される。