算导Ch34. NP Complete
1.图灵停机问题:无论在多长时间内都无法被任何一台计算机解决
问题描述:问题为H,H的输入数据为P(P是一段程序(程序也是一串字符串数据)),判定P在输入w下是否能够最终停止
H(P(w))=0 若P在输入w下可停机
-1 若P在输入w下死循环(H的输出为状态)
分析:假设问题H可解,则构造一个过程K(P),输入为一段程序,K的输出结果依赖于H(P(P))的结果
procedure K(input P):
if (H(P(P))==0) 死循环
else if (H(P(P))==-1) return 0;
则对K(K):若K(K)死循环,则H(K(K))=0,K(K)应当可停机
若K(K)停机,则H(K(K))=-1,K(K)本应为死循环
出现矛盾
//真是绕……这段改了三遍才懂
2.一些问题实例
1)在有向图G=(V,E)中,在O(VE)时间内从单一源顶点开始找到最短路径
相关NPC:确定一个图在给定数量的边中是否包含一条简单路径
2)可以在O(E)时间确定一个图是否有Eular回路(恰好经过每一条边的回路)(22-3),事实上,可以在O(E)时间遍历欧拉回路的各条边
相关NPC:确定一个有向图是否包含哈密顿圈(恰好经过每一个顶点一次的简单回路)
3)k-CNF:k合取范式,用and连接若干个or子句,且每个子句恰有k个bool变量或其否定
多项式时间判断2-CNF的可满足性(是否存在一组合法赋值):多项式时间
3-CNF的可满足性:NPC
3.P,NP,NPC problems
P类:可在O(n^k)时间内解决
NP类:可在多项式时间内验证(给定一组赋值)
显然P类问题也是NP问题
NPC问题的集合运算的封闭性讨论:
http://stackoverflow.com/questions/26893497/concatenation-of-two-languages-in-np
算导Ch34. NP Complete的更多相关文章
- [另开新坑] 算导v3 #26 最大流 翻译
26 最大流 就像我们可以对一个路网构建一个有向图求最短路一样,我们也可以将一个有向图看成是一个"流量网络(flow network)",用它来回答关于流的问题. Just as ...
- 简析P和NP问题的概念
简析P和NP问题的概念 本文系作者学习笔记,内容均来源于网络,如有侵权,请联系删除 P类问题:所有能用多项式时间算法计算得到结果的问题,称为多项式问题,也就是P(polynomial). 多项式时间举 ...
- (数学)P、NP、NPC、NP hard问题
概念定义: P问题:能在多项式时间内解决的问题: NP问题:(Nondeterministic Polynomial time Problem)不能在多项式时间内解决或不确定能不能在多项式时间内解决, ...
- P、NP、NPC、NPH问题的区别和联系
时间复杂度 时间复杂度描述了当输入规模变大时,程序运行时间的变化程度,通常使用\(O\)来表示.比如单层循环的时间复杂度为\(O(n)\),也就是说程序运行的时间随着输入规模的增大线性增长,两层循环的 ...
- P/NP问题
目录 P NP NPC NPH 写在开头 1.多项式 如公式:y = axn-bxn-1+c.Ο(log2n).Ο(n). Ο(nlog2n).Ο(n2)和Ο(n3)称为多项式时间.Ο(2n)和Ο(n ...
- np中的温故知新
1.一维数组中寻找与某个数最近的数 # 一维数组中寻找与某个数最近的数 Z=np.random.uniform(0,1,20) print("随机数组:\n",Z) z=0.5 m ...
- Python机器学习笔记:不得不了解的机器学习知识点(2)
之前一篇笔记: Python机器学习笔记:不得不了解的机器学习知识点(1) 1,什么样的资料集不适合用深度学习? 数据集太小,数据样本不足时,深度学习相对其它机器学习算法,没有明显优势. 数据集没有局 ...
- POJ2677 Tour(DP+双调欧几里得旅行商问题)
Tour Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3929 Accepted: 1761 Description ...
- 百度之星资格赛——Disk Schedule(双调旅行商问题)
Disk Schedule Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
随机推荐
- HUE的时区问题
转自 http://molisa.iteye.com/blog/1953390 我主要是根据这个说明调整的HUE的时区问题 在使用Cloudera Hue时遇到一问题: 1. 使用Sqoop导入功 ...
- js上传和预览图片
[1].[代码] [HTML]代码 跳至 [1] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- H5开发之Eclipes 编码乱码问题
1.编码不对 a.对某文件或某工程更改编码: 鼠标移到工程名或文件名,右键->Properties->Resource->Text file enCoding ->更改编码(G ...
- PHP 读取逐条数据库记录,以及提交下拉菜单选项
<?php $db_host=localhost; //MYSQL服务器名$db_user=root; //MYSQL用户名$db_pass="******"; //MYSQ ...
- js:语言精髓笔记10--闭包
闭包: //JS函数式风格中,在内部保存数据和对外无副作用这两个特性主要就是通过闭包实现的: 函数与闭包: 一个函数是一段静态代码,它是一个代码书写时已经编译期,静态概念:闭包是函数在代码运行过程中 ...
- QUnit使用笔记-2同步与异步处理方式
同步: 有时候如果我们想判断方法执行的次数,可以通过间接设置expect(n);//可以将expect的参数放到test的第二参数来简化: QUnit.test("expect test&q ...
- 手持扫描打印终端POS机应用商场零售批发移动销售开单
无线开单系统,通过此无线开单系统,使用者可以进行日常的盘点.开单等作业.与进销存软件实时对接,可以提供给使用者即时.准确的库存数量.商品价格等信息.手持系统易上手.一次配置即可使用,极大的方便了使用者 ...
- 记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence
题目传送门 /* 记忆化搜索(DP+DFS):dp[i][j] 表示第i到第j个字符,最少要加多少个括号 dp[x][x] = 1 一定要加一个括号:dp[x][y] = 0, x > y; 当 ...
- 计算几何 HDOJ 4720 Naive and Silly Muggles
题目传送门 /* 题意:给三个点求它们的外接圆,判断一个点是否在园内 计算几何:我用重心当圆心竟然AC了,数据真水:) 正解以后补充,http://www.cnblogs.com/kuangbin/a ...
- 初识view
屏幕左上角为原点,向右为 x 轴, 向下为 y 轴. getLeft getTop getRight getBottom 分别返回 view 的左上右下的坐标,这里的坐标都是相对于view的父view ...