那传说中的P、NP以及NPC问题
那传说中的P、NP以及NPC问题
(这里只是自己的一些总结)
在讲这几个问题之前,有几个东西是必须要说的,包括时间复杂度、空间复杂度、图灵机什么的。那么我们就慢慢来一一说来。
图灵机:图灵机其实就是一个计算模型,是由图灵提出来的。图灵机号称可以模拟实际计算机的所有计算行为,计算能力还超过现有的计算机。但是还是有图灵机无法做到的事情,就好像计算机并不能处理所有的事情一样。
定义:
1)有一个无限长的带子作为无限存储。
2)有一个读写头,能在带子上读、写和左右移动。
3)有一套控制规则,根据当前机器所处的状态以及当前读写头所指的格子符号来确定下一步的动作,另机器进入一个新的状态。
4)一个状态寄存器,用来保存图灵机当前所处的状态。
工作方式:
在图灵机的计算过程中,当前状态、当前带内容和读写头当前位置组合一起称为图灵机的格局。包括起始格局、接受格局、拒绝格局。
图灵机读取纸袋上的内容,结合读写头的当前状态,根据一组控制规则决定下一步的动作。可以认为这是一台理想的,能够处理所有的“人类计算”。
我们可以想象,一个问题如果在理论上是可解的,但是计算它所需要的时间和空间的资源是我们无法承受的,那么这个问题对我们来说就是没有用的。当然这里说明一个问题是否理论上可解,用到图灵机什么的一箩筐东西,这里就不说明这些问题。
时间复杂度: 对于一个算法的时间复杂度一般采用大O表示,这里大O我就具体说明了,就是说明一个算法的时间复杂度的函数O(t(n))。运行时间是多项式时间的算法随着问题规模的不断上升,时间变化不大,但是如果一个算法的时间是指数形式的话,就不可理喻了。典型的指数时间算法源于通过搜索解空间来求解问题,这称为蛮力搜索。当然很多算法可以通过一些技巧避免蛮力搜索,但是还是有一些问题,我们是无能为力的,至今没有找到在多项式时间求解该问题的算法。
P类问题:
简单的认为,P问题就是可以在多项式时间被图灵机判定的语言类。这里又涉及到图灵机,那么我们可以简单的认为,如果一个算法可以在多项式时间内求解,那么就可以认为它是P类问题。这样你就会感觉好多算法都是P类问题,对!没错!如何证明一个问题是否是P类问题呢?只要它满足以下两个条(证明它在多项式时间内完成)
1)运行步骤数要有多项式上届时间
2)每一步都要保证它可以由合理的确定模型在多项式时间内完成,其实就是每一步的求解过程也是多项式时间
这样步奏是多项式时间的,而每一步也是多项式时间,整合起来整个算法还是多项式时间的。
想PATH问题就是属于P
PATH的一个多项式时间算法M运行如下:
M="对于输入<G,s,t>,G是包含结点s和t的有向图:
(1)在结点s上做标记。
(2)重复下面步骤3,直到不再有结点被标记。
(3)扫描G的所有边,如果找到一条边(a,b),a被标记而b没有,那么标记b
(4)若t被标记,则接受否则拒绝"
分析上面算法,可以得到步奏1和4只执行1步,步骤3最多执行m次,所以用到的步骤数是m+1+1。每一步都可以在合理的多项式时间内完成,所有PATH是P类问题。
NP类问题:
这里NP并不是指Not P的意思!实际上P是属于NP的,但是NP是否等于P我们目前还不懂。
NP问题指的是,这个算法可以在多项式时间内可验证,什么意思呢?我们知道对于P类问题,可以在多项式时间内求解出来,但是NP问题不行。可以这样理解,NP虽然不能在多项式时间内被求解,但是如果给出这个问题的某个解,那么我们可以在多项式时间内验证这个解是不是这个问题的解。听起来好像有点那这有什么用的感觉?比如求汉密尔顿路径问题(HAMPATH),我们只能在指数时间内求出这个解,但是这时候我们假设我们可以先随机猜测出一条路径序列出来,那么我们就可在多项式时间内验证这个解是不是对的。常常也称为非确定型多项式时间。
简单的的区分P和NP问题:
对于P问题,我们可以有个算法能够在多项式时间内求得解。但是对于NP问题,就不可以了,求解某个问题可能需要指数的时间。NP问题也可以认为,我们可以在多项式时间内验证一个解,比如说我可以随机猜测一个解,如果我可以在多项式时间内验证说明这个解是不是问题的解,那么这个问题就是NP问题。
NPC类问题:
说到NP完全问题,那么就需要说到可规约这个问题。
规约:当问题A规约到B问题时,B的有效解就可以用于求解问题A了。
NPC指定是所有的NP问题都可以多项式时间规约到某一类问题,那么这某一类问题就是所谓的NPC问题。
那传说中的P、NP以及NPC问题的更多相关文章
- P、NP、NPC和NP-Hard相关概念的图形和解释
P.NP.NPC和NP-Hard相关概念的图形和解释 http://blog.csdn.net/huang1024rui/article/details/49154507 一.相关概念 P: 能在多项 ...
- 什么是P,NP和NPC问题?
P问题,NP问题,NPC问题?这些都是计算机科学领域,关于算法方面的术语.在认识这些术语之前,建议同学们先认真学习一下算法的时间复杂度,因为算法的时间复杂度与P,NP和NPC问题高度相关. 什么是P问 ...
- P、NP、NPC、NP-Hard问题到底是何方神圣?
最近在做一个求解有向图中回路的问题,老师说求解图中全部回路是一个NP难问题.突然想到P.NP.NPC.NP-hard的描述一致不是很清楚,所以又学习了一下. 在解释这四个概念之前,我们需要先知道两个问 ...
- P、NP、NPC问题详解
转载地址 https://blog.csdn.net/bcb5202/article/details/51202589 P.NP.NPC 概念 > P问题:能够在多项式时间内解决的决策问题. - ...
- AI数学基础之:P、NP、NPC问题
目录 简介 P问题 NP问题 NP问题的例子 有些NP问题很难解决 NPC问题 NP-hard P和NP问题 简介 我们在做组合优化的时候需要去解决各种问题,根据问题的复杂度不同可以分为P.NP.NP ...
- [转]对P,NP和NPC问题的解释
总结: 归约(或别的什么叫法):如果解决了问题A,就能用解决A的方法来解决问题B,那么我们说问题B可以归约为/到问题A,本文记为[B]<[A].其含义就是问题A的求解复杂度比问题B要高,比如说A ...
- P问题,NP问题 NPC问题 大神解答
http://blog.sina.com.cn/s/blog_5212bec30100o03y.html http://blog.csdn.net/u010385646/article/details ...
- (数学)P、NP、NPC、NP hard问题
概念定义: P问题:能在多项式时间内解决的问题: NP问题:(Nondeterministic Polynomial time Problem)不能在多项式时间内解决或不确定能不能在多项式时间内解决, ...
- P、NP、NPC、NP-Hard问题
转自:http://www.matrix67.com/blog/archives/105 总结 P:能用多项式时间求解的问题NP:能用多项式时间验证的问题(但不知道能不能用多项式时间求解).存在不属于 ...
随机推荐
- What are the advantages of logistic regression over decision trees?FAQ
What are the advantages of logistic regression over decision trees?FAQ The answer to "Should I ...
- 团体程序设计天梯赛-练习集L2-002. 链表去重
L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...
- jsp request.getParameterValues获取数组值代码示例
tt.jsp <form action="tt2.jsp" method="POST"> <select name="two&quo ...
- Win32 DLL和MFC DLL 中封装对话框
现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题.这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题. ...
- POJ 3393 Lucky and Good Months by Gregorian Calendar
http://poj.org/problem?id=3393 题意 : 对于这篇长长的英语阅读,表示无语无语再无语,花了好长时间,终于读完了.题目中规定每周的周六日为假日,其他为工作日,若是一个月的第 ...
- C#一个简单下载程序实例(可用于更新)
运行时的界面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Dat ...
- 【mysql的编程专题⑥】视图
视图是表的一个映射,是一张虚表,在结构上视图和普通的表没什么区别,一样可以用sql语句来增删改查; 视图创建后是一直存在数据库内 操作 创建视图 语法 CREATE [ALGORITHM]={UNDE ...
- eclipse为hibernate.cfg.xml添加自动提示【转】
在hibernate.cfg.xml头部部分如下: <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate C ...
- NFC(9)NDEF文本格式规范及读写示例(解析与封装ndef 文本)
只有遵守NDEF文本格式规范的数据才能写到nfc标签上. NDEF文本格式规范 不管什么格式的数据本质上都是由一些字节组成的.对于NDEF文本格式来说. 1,这些数据的第1个字节描述了数据的状态, 2 ...
- WINCE6.0+IMX515通过cfimager.exe烧录镜像文件
WINCE6.0+IMX515通过cfimager.exe烧录镜像文件 freescale提供了cfimager.exe工具,可在SD/MMC卡中烧录系统镜像文件和创建FAT文件,这样,我们可以不需要 ...