P and NP,Decidable and RE
递归语言和递归可枚举语言
递归语言(decidable)要求存在一个满足如下要求的图灵机:
- Halt on accept
- Halt on reject
但是递归可枚举语言(RE:Recursive enumerable)要求存在的图灵机只需要满足: - Halt on accept
换言之,对于 True RE可能存在某个句子,你不知道这个句子在图灵机上会不会停机
正规定义:
- 递归可枚举语言是指由图灵机定义的语言(不管是通过终止状态接受还是通过停机接受)
- 递归语言:
- 定义算法是一个图灵机,该图灵机通过终止状态接受,并且无论接受与否,它都注定会停机
- 定义递归语言是由
定义的,且 是一个算法
可判定性
对于图灵可判定和图灵可识别,这两个概念如下:
- 如果一个语言是 递归语言 那么这个语言是 图灵可判定语言
- 如果一个语言是 递归可枚举语言 那么这个语言是 图灵可识别语言
非递归可枚举语言
这种类型的语言是存在的,因为RE的集合是可数集合,但是所有语言的集合的势势不可数的
P 和 NP
P 是指存在一个单带、确定性的图灵机,能够在多项式时间内判定
NP是指,存在一个非确定性图灵机,能够在多项式时间内判定
注意这两者和上面的递归可枚举的区别,这里要求的都是判定,即一定是要停机的,这两个都是递归语言的子集
对于一个
对于 NP 问题有一个很重要的定理,即
如果语言
其中
该定理的意思是,如果一个问题是
规约
规约的定义
那么
可判定的规约
如果
RE的规约
如果
注意规约的方向,假设我们现在已知问题 OLD 是一个不可判定的问题,我们想证明 NEW也是一个不可判定的问题,那么思路应该是:
- 假设 NEW 是可判定的
- 使用NEW的判定机来判定OLD
- 从而证明OLD也是可判定的
- 导出矛盾,证明NEW是不可判定的
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.