OSDN Git Service

添加内容
authorMrFoodinChina <44801001+MrFoodinChina@users.noreply.github.com>
Thu, 22 Aug 2019 09:01:12 +0000 (17:01 +0800)
committerGitHub <noreply@github.com>
Thu, 22 Aug 2019 09:01:12 +0000 (17:01 +0800)
docs/misc/cc-basic.md

index 5505984..0f56f7d 100644 (file)
@@ -10,6 +10,8 @@
 
 ### 图灵机
 
+!!! warning "注" 如果不加特殊说明,通常所说的图灵机都是确定型图灵机。
+
 非形式化地说,图灵机包含一个有限状态机、一条两端无限长的纸带和一个指针。图灵机的每一步操作包括一次状态转移和一次指针移动。采用何种操作的依据是当前的状态以及指针指向的字符。一般情况下输入位于图灵机的纸带上,而指针初始位置指向输入字符串的开头。形式化地,一个图灵机是七元组 $M=(Q,\sigma, \gamma, \delta, q_0, B, F)$ ,其中
 
 1.   $Q$ 是状态机的状态集合。
 
 (挖坑)
 
-### 非确定性图灵机
+### 非确定型图灵机
+
+非确定型图灵机是图灵机的一种,它与确定型图灵机最大的不同在于:确定型图灵机的每一步只能转移到一个状态,状态转移方式近似于DFS;非确定型图灵机可以并行转移到多个状态,状态转移方式近似于BFS。事实上,任何确定型图灵机都可以用类似于迭代加深搜索的方式在$\Theta(w^n)$内模拟一台非确定型图灵机$\Theta(n)$内的行为。
+
+在现实生活中,确定型图灵机等价于单核处理器,只支持串行处理;而非确定型图灵机等价于理想的多核处理器,支持无限大小的并行处理。
 
 (大坑)
 
-## 复杂度类 P、NP 与 coNP
+## 复杂度类 P、NP、coNP 与 NPC
 
-(挖坑)
+P类问题指可以由确定性图灵机在多项式时间内判定的问题,包括选择最值$\Theta(n)$,序列排序$\Theta(n\log n)~\Theta(n^2)$等。
+
+NP类问题指可以由非确定性图灵机在多项式时间内判定的问题(同时可以用确定性图灵机在多项式时间内判定答案正确性),包括质因数分解问题,01整数线性规划等。
+
+coNP类问题与NP类问题相反:NP类问题是可以快速判断答案是否**正确**的一类问题,而coNP类问题是可以快速判断答案是否**错误**的一类问题。
+
+在NP类问题中,有一类问题比较特殊,他们能够在多项式时间内转化为任何一个NP问题(包括其他同类问题),这类问题被称为NPC问题,其中较为有名的有21个:
+
+- SAT问题:0-1整数规划、最小顶点覆盖问题、集合覆盖问题、分团问题、集合覆盖问题等
+
+- 3-SAT问题:图着色问题、分团覆盖问题、三维匹配问题、背包问题、最大割、划分问题等
+
+显而易见的是,P类问题一定既是NP问题,也是coNP问题(可以直接计算结果来与答案比较),但**P=NP仍是一个仍未解决的问题**。
 
 ## Karp 归约、Cook-Levin 定理与 NP 完全性