如果一个算法的最差时间效率属于O(p(n)),则该算法可以在多项式的时间内对问题进行求解,其中p(n)是输入规模n的一个多项式函数。

可以在多项式时间内求解的问题是易解的。不能在多项式时间内求解的问题是难解的

判定问题是能够回答是或否的问题,通常第一,只有判定问题才属于P。

P类问题是一类能够用确定性的算法,在多项式的时间内求解的判定问题,这种问题类型也称为多项式类型。

为什么要将P约束为判定问题?

1、不能在多项式时间内求解的问题会产生指数级的巨大输出。

2、许多重要问题可以化简为一系列更容易研究的判定问题。

并不是每一个判定问题都能够在多项式的时间内求解,某些判定问题是不能用任何算法求解的,这种问题成为不可判定的问题。这是相对于用算法求解的可判定问题来说的。不可判定问题,我们称它为停机问题:给定一段计算机程序和它的一个输入,判断对于该输入是会终止,还是会无限的运行下去。

存在可以判定,但又难解的问题。也有许许多多的重要问题,我们竟没有找到它的多项式类型算法,也无法证明这样的算法不存在。比如哈密顿回路问题,旅行商问题,背包问题,划分问题,装箱问题,图的着色问题,整数线性规划问题。这些问题中有一些是判定问题,另一些不是判定问题,都可以转化为等价的判定问题,这些问题的共同点是,他们都有着按这指数增长的候选项,其规模是输入规模的函数,我们需要在这些候选项中寻找问题的最终结。其次,虽然在计算机上对问题的求解可能是困难的,但是在计算上判定一个待定解是否解决了该问题,就是简单的,这种判定可以在多项式时间内完成。

一个不确定算法是一个两阶段过程,他把一个判定问题的实例l作为它的一个输入,并进行下面的操作:

  非确定阶段,生成一个任意串s,,把它当作给定实例的一个候选解。

  确定阶段,确定算法把l和s都作为它的输入,如果s的确是l的一个解,就输出是,否则输出否或者不停下来。

  当且仅当对于问题都每一个真实例,不确定算法都会在某次执行中返回是的时候,我们说它能够求解这个判定问题。

  如果一个不确定算法在验证阶段的时间效率是多项式级的,我们说它是不确定多项式的类型。

NP类问题是一类可以用不确定多项式算法求解的判定问题,这种问题类型称为不确定多项式类型。

大多数判定问题都属于NP问题。NP问题也包含哈密顿回路问题,旅行商问题,背包问题,划分问题,装箱问题,图的着色问题,整数线性规划问题。停机问题则属于为数很少,一句不属于NP问题的判定问题。

一个NP完全问题是NP中的一个问题,他和该类型中任何其他问题的难度都是一样的,NP中的任何其他问题都能够在多项式的时间内化解为这种问题.

一个判定问题D是NP完全问题,条件是,一它属于NP问题,二NP中的任何问题都能够在多项式时间内化简为D.

P、NP、NP完全问题的更多相关文章

  1. NP完全性理论与近似算法

    转自:http://www.cnblogs.com/chinazhangjie/archive/2010/12/06/1898070.html 一.图灵机 根据有限状态控制器的当前状态及每个读写头读到 ...

  2. np问题

    NP(np) Time Limit:1000ms Memory Limit:64MB 题目描述 LYK 喜欢研究一些比较困难的问题,比如 np 问题.这次它又遇到一个棘手的 np 问题.问题是这个样子 ...

  3. 一起聊聊什么是P问题、NP问题、NPC问题

    概念 P问题:如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题.通常NOI和NOIP不属于P类问题,我们常见到的一些信息奥赛的题目都是P问题. NP问题:可以在多项式的 ...

  4. 区分range() , np.arange() , np.linspace()

    content: range() np.arange() np.linspace() 一.range(start, stop, step) 1.range() 为 python 自带函数 2.生成一个 ...

  5. numpy中np.nan(pandas中NAN)

    转自:http://blog.csdn.net/xiaodongxiexie/article/details/54352889 在处理数据时遇到NAN值的几率还是比较大的,有的时候需要对数据值是否为n ...

  6. np归纳总结(全)第一天

    1.概述 1.np.array()  # 将列表转换为数组 import numpy as np array = [1, 2, 3, 4, 5] array = np.array(array) 2.. ...

  7. P vs NP

    Complexity Class Computational problem Decision Problems Model of computation Time-complexity classe ...

  8. 以np.concatenate为主题,谈谈numpy数组按维度合并的问题

    1.引言 最近在做多模态融合的图像问题,其中最需要解决的就是不同模态的图像用什么方法进行融合,最简单也最直观的方法就是采用合并数组的方法,将不同模态的图像合并为多通道进行处理.在一些论文中,比如< ...

  9. NP完全问题 NP-Completeness

    原创翻译加学习笔记,方便国人学习算法知识! 原文链接http://www.geeksforgeeks.org/np-completeness-set-1/ 我们已经找到很多很高效的算法来解决很难得问题 ...

  10. NP完全问题

    1.概念 好算法:Edmonds与1975年提出:具有多项式时间(O(nk)的算法为好算法. P类问题:存在多项式时间算法的问题.如:货郎问题.调度问题.最大团问题.最大独立集问题.Steiner树问 ...

随机推荐

  1. SSH远程连接时间设置

    SSH远程连接时间设置步骤: 1.回到根目录:cd // 2.进入ssh目录:cd etc/ssh 3.编辑sshd_config文件:vi sshd_config 4.按 i 进入编辑状态 5.找到 ...

  2. 查看Page结构

    SQL Server存储数据的基本单元是Page,每一个Page的大小是8KB,数据文件是由Page构成的.在同一个数据库上,每一个Page都有一个唯一的资源标识,标识符由三部分组成:db_id,fi ...

  3. 学习爬虫的day02 (用线程去爬虫 提高速度)

    通过lxml的方式去分析数据,将爬到的数据放到file中的html中代码如下# 用线程去爬虫 from urllib.request import Request from urllib.reques ...

  4. Libevent 事件循环(1)

    // 事件的dispatch int event_base_loop(struct event_base *base, int flags) {    //得到采用的事件模型 epoll/epoll/ ...

  5. nginx启动脚本,手动编辑

    nginx启动脚本,手动编辑 #! /bin/bash # chkconfig: - # description: nginx service XDIR=/www/server/nginx DESC= ...

  6. 关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案

    在win7,win10,vs2015,vs2017之间折腾了两天,死活就是调不出来Mysql数据源.真是活见鬼了. 直接说方案吧. 一,卸载你所安装过的mysql-connector-net.mysq ...

  7. oracle和mysql几点差异对比

    Oracle与mysql差异性总结 之前有个项目是用oracle数据库进行开发,需要把数据库改成mysql,遇到了一些地方需要注意的,就简单记了下来. 备注: 再把oracle转成mysql的时候,表 ...

  8. python re 正则匹配 split sub

    import re 编译: motif='([ST])Q' seq="SQAAAATQ" regrex=re.compile(motif) #编译成正则对象 regrex=re.c ...

  9. OJ随笔——【1088-N!】——同余定理

    题目如下: Description 请求N!(N<=10000),输出结果对10007取余输入每行一个整数n,遇到-1结束.输出每行一个整数,为对应n的运算结果.   Sample Input ...

  10. 剑指Offer——当当+搜狐+好未来笔试题+知识点总结

    剑指Offer--当当+搜狐+好未来笔试题+知识点总结 情景回想 时间:2016.9.21 15:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:当当笔试.搜狐笔试.好未来笔试 3 ...