東京大学 情報理工学系研究科 コンピュータ科学専攻 2024年8月実施 専門科目 問題1
Author
vv (co-authored with GPT 5.2 extended thinking, finalized by 祭音Myyura)
Description
例えば,
(1)
(2) 以下の有限オートマトンによって受理される言語を
(3) 以下の命題 1 が真であるか否かを答え,真であればその証明を,そうでなければ簡単な説明とともに反例を示せ.
- 命題 1:
上のすべての正規言語 について, も正規言語である.
(4) 以下の命題 2 が真であるか否かを答え,真であればその証明を,そうでなければ簡単な説明とともに反例を示せ.
- 命題 2:
上のすべての文脈自由言語 について, も文脈自由言語である.
Kai
(1)
先把
因此
若
所以
另外
再看
并且为了末尾是
反过来,任意
所以都属于
因此
用正则表达式表示为
(2)
先总结原 DFA 的关键性质(从图直接读出):
- 读到
:无论在 还是 ,都会到 (相当于“重置到 ”)。 - 读到
:无论在 还是 ,都会到 (“重置到 ”)。 - 读到
:在 间切换(“翻转”)。
对任意串
那么
注意:一旦
- 若
不含 ,即 ,则 是“恒等”(k 偶)或“交换”(k 奇),都满足 ,所以不在 。 - 若
含有 或 ,则 必为常量变换:要么把两状态都送到 ,要么都送到 。只有当 是“常量 ”时,才有 。
所以
把它翻译成“末尾结构”的条件:设
- 若
,读到 重置到 ,再读 个 翻转 次;要最终在 ,需 为偶数。 - 若
,读到 重置到 ,再读 个 ;要最终在 ,需 为奇数。
并且必须“出现过
接下来构造最小 DFA。只需要记住三种情况:
:至今还没见过 或 (只读到若干个 )。这是初态,非接受。 :已经见过 ,但当前处于“拒绝型”(对应“末尾情况不满足”)。 :已经见过 ,且当前处于“接受型”(对应“末尾情况满足”)。这是唯一接受态。
转移规则由上面的“重置/翻转”直接给出:
- 从
: 仍在 ;读到 进入拒绝型 ;读到 进入接受型 。 - 从
: 读 重置回 ;读 重置到 ;读 会翻转到 。 - 从
: 读 重置到 ;读 留在 ;读 翻转到 。
用转移表表示(字母表
| 状态 | |||
|---|---|---|---|
这台 DFA 的接受态集合为
最小性说明:三状态不可再合并。因为
(停在 )不被接受,但串 (停在 )被接受,故 。 - 串
(停在 )不被接受,但 被接受,且 不被接受,故 。 与 一个拒绝一个接受,显然可区分。
因此最少需要 3 个状态,上述构造即为最小 DFA。
(3) 结论:真
设
识别。对任意串
那么
关键点:
是有限集合(大小为
据此构造一个新的 DFA
- 状态集合:
(所有函数 )。 - 初态:恒等函数
(对应空串的迁移)。 - 读入一个字母
时的更新:令 (单字母的迁移),则 . 这样读完 后, 恰为 。 - 接受态集合:
.
于是对任意
由于
(4) 结论:假
给出一个上下文无关语言
取
也就是
说明
而 CFL 对连接封闭,所以
接下来证明
若
我们计算
那么
断言:对这类
理由如下。
- 若
,则存在分割 使得 , 。因为 必须先读完一段 再读 。在 的开头, 是一整段 。若 ,则在读完 后下一个符号仍是 ,不可能开始 。所以必须 。同理,为了让 的 紧接在这 之后,必须正好消耗掉开头的全部 ,因此还要 。否则 会导致 进入 前还残留或不足 ,无法匹配。于是 ,并且此时 只能是 ( )。若 ,则 将以 开头,但 的串必须形如 ,不能以 开头,因此必须 。所以分割点被迫落在两个拷贝之间: , 。现在 要求其后半部分 满足 。结合 ,得到 。 - 反过来,若
,则 显然可取 , ,所以 。
因此对于
也就是说
而
所以