如果一个算法的最差时间效率属于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. php中使用swoole实现头协议

    当需要有数据交互的时候,为了安全起见,双方会协商一个固定的头协议,这样必须实现其头协议才能拿到数据. PHP的swoole完美的提供了固定包头+包体协议自动分包. 首先需要通过open_length_ ...

  2. POJ 1511 Invitation Cards 链式前向星+spfa+反向建边

    Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 27200   Accepted: 902 ...

  3. PPPOE拨号上网流程及密码窃取具体实现

    楼主学生党一枚,最近研究netkeeper有些许心得. 关于netkeeper是调用windows的rasdial来进行上网的东西,网上已经有一大堆,我就不赘述了. 本文主要讲解rasdial的部分核 ...

  4. Java中的比较总结

    Java中的比较问题是一个很基础又很容易混淆的问题.今天就几个容易出错的点作一个比较详细的归纳与整理,希望对大家的学习与面试有帮助. 一.==与equals()的区别 首先,我们需要知道==与equa ...

  5. 大数据学习系列之五 ----- Hive整合HBase图文详解

    引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环 ...

  6. MySQL数据库数据信息迁移

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...

  7. CSS3学习笔记--media query 响应式布局

    语法:@media screen and (min-width: 320px) and (max-width : 479px) media属性后面跟着的是一个 screen 的媒体类型(上面说过的十种 ...

  8. PHP中的会话控制

    了解HTTP(超文本传输协议)可以知道,它采用请求与响应的模式,最大的特点就是无连接无状态. 无连接:每次连接仅处理一个客户端的请求,得到服务器响应后,连接就结束了 无状态:每个请求都是独立的,服务器 ...

  9. PHP去除unicode续:json_encode之后,仅仅有文字,数字不见了的解决方法

    接前文.http://blog.csdn.net/yanzi1225627/article/details/44985487 这么处理了一段时间.确实没发现问题.但近期发现了一个bug.比方输入&qu ...

  10. Android OpenGL ES(八)----纹理编程框架

    1.把纹理载入进OpenGL中 我们的第一个任务就是把一个图像文件的数据载入到一个OpenGL的纹理中. 作为開始.让我们又一次舍弃第二篇的框架.又一次创建一个程序,新建一个util工具包,在该包下创 ...