東京工業大学 情報理工学院 数理・計算科学系 2016年8月実施 午前 問7
Author
GPT-5
Description
Let
(1) Let be the language of strings whose upper-row string is a palindrome; . Show using the pumping lemma that is not regular.
(2) Give a context-free grammar generating .
(3) Regard each row as a binary number whose leftmost position is the most significant bit, and let consist of strings whose lower row is three times the upper row; . Let . Give a four-state deterministic finite automaton recognizing .
题目描述
令字母表
这里每个字符串可看成上下两行等长的二进制串。
-
令 为所有“上方一行是回文串”的字符串组成的语言,并约定空串 。使用抽引引理证明 不是正则语言。
-
给出一个生成 的上下文无关文法。
-
把每一行都视为最高位在最左侧的二进制数,令 为满足“下方一行表示的数是上方一行的三倍”的字符串集合,并约定 。定义反转语言
给出一个恰有四个状态、能够识别 的确定有限自动机。
考点
- 正则语言抽引引理:针对上行回文约束选取字符串并分析所有合法分解,从而推出抽引后的矛盾。
- 上下文无关文法:利用成对生成首尾符号的产生式刻画上行回文,同时允许下行符号自由取值。
- 确定有限自动机:从低位到高位读取反转后的两行二进制位,以乘以 时的进位状态构造四状态转移。
Kai
以下では列記号 を単に と書く。第 1 ビットが上段、第 2 ビットが下段である。
(1)
が正則で、ポンピング長が であると仮定する。文字列
を取る。これは上段が なので に属する。任意の分解 で , を満たすものを考えると、 である。
として を除くと、上段は となり回文ではない。したがって であり、ポンピング補題に矛盾する。よって
(2)
非終端記号を 、開始記号を とし、次の生成規則を取る。
は上段ビット 0、 は上段ビット 1 の任意の列を生成する。 と は同じ上段ビットを両端に付け、下段ビットは左右で独立に選べる。したがってこの文法は、上段が回文で下段が任意の文字列をちょうど生成する。
(3)
では最下位ビットから順に読むことになる。3 倍算の現在の桁への繰上がりを 、入力列を とすると、遷移条件は
到達し得る繰上がりは であり、これらに不正入力用のデッド状態を加えれば 4 状態になる。 を繰上がり の状態、 をデッド状態とする。
初期状態かつ唯一の受理状態は である。入力を読み終えたとき繰上がりが 0 であることが、同じ桁数の下段が上段のちょうど 3 倍であることに対応する。 を受理状態にすることで空文字列も受理される。