P、NP与NPC 的通俗理解

P、NP与NPC 的通俗理解

1.多项式时间复杂度

定义: 解决问题需要的时间与问题的规模之间是多项式关系。

多项式关系形如O(nk)” role=”presentation” style=”position: relative;”>O(nk)O(nk),k为某个常数,n是问题的输入规模。例如,时间复杂度为O(nlog(n))、O(n^3)都是多项式时间复杂度。时间复杂度为O(n^log(n))、O(2^n)是指数时间复杂度,O(n!)是阶乘时间复杂度。像O(a^n)和O(n!)型的时间复杂度,它是非多项式级的,其复杂度计算机往往不能承受。

为什么多项式时间复杂度的定义形式是O(nk)” role=”presentation” style=”position: relative;”>O(nk)O(nk)呢,它的多项式的多项性体现在哪呢?

因为算法的时间复杂度的表达式O(nk)” role=”presentation” style=”position: relative;”>O(nk)O(nk),取指数最高项保留作为时间复杂度的表达式,未删除低指数项就可以看出多项式的多项性了吧!当然,单项式也算作多项式。

注:图G的顶点个数称为图G的阶(Order)。

2.P问题

《算法导论》给出的定义:在多项式时间内可解的问题为P问题(Polynomial Problem,多项式问题)。

更为具体的是:P问题指可以在多项式时间内求解的问题,例如:时间复杂度为O(nlog(n))的快速排序和堆排序,O(n2)” role=”presentation” style=”position: relative;”>O(n2)O(n2)的算法是指数时间算法。

3.NP问题

定义: NP问题((Non-deterministic Polynomial Problem,非确定性多项式问题),指问题只能通过验证给定的猜测是否正确来求解。所谓多项式指的是验证猜测可在多项式时间内完成,所谓非确定性指的是问题只能通过验证猜测来解,而不能直接求解。

如Hamilton回路是NP问题,因为验证一条路是否恰好经过了每一个顶点可在多项式时间内完成,但是找出一个Hamilton回路却要穷举所有可能性,不能直接求解。

又如大合数的质因数分解,没有给定的公式可直接求出一个合数的两个质因数是什么,但是验证两个数是否是质因数却可在多项式时间完成,所以它也是非确定性多项式问题,即NP问题。

之所以要定义NP问题,是因为通常只有NP问题才可能找到多项式的算法。我们不会指望一个连多项式地验证一个解都不行的问题存在一个解决它的多项式级的算法。

简单的说,存在多项式时间的算法的一类问题,称之为P类问题;而像梵塔问题,推销员旅行问题等问题,至今没有找到多项式时间算法解的一类问题,称之为NP问题。同时,P类问题是NP问题的一个子集。也就是说,能多项式时间地解决一个问题,必然能多项式时间地验证一个问题的解。

3.1NP与P的关系

目前,人类还未解决的问题是:是否所有的NP问题都是P类问题,即P=NP?。这就是注明的世界七大数学难题之首。虽然这个问题尚未解决,但是,一个总的趋势和大方向是人们普遍认为,P=NP不成立,也就是说,多数人相信,存在至少一个不可能有多项式级复杂度的算法的NP问题。

人们如此坚信P≠NP是有原因的,就是在研究NP问题的过程中找出了一类非常特殊的NP问题叫做NP-完全问题(Non-deterministic Polynomial Complete Problem),也即所谓的 NPC问题。正是NPC问题的存在,使人们相信P≠NP。

4.NPC问题

4.1约化

为了说明NPC问题,我们先引入一个概念——约化(Reducibility,有的资料上叫“归约”(Reduction)) 。

约化的概念:
约化的标准概念:如果能找到这样一个变化法则,对任意一个程序A的输入,都能按这个法则变换成程序B的输入,使两程序的输出相同,那么我们说,问题A可约化为问题B,即可以用问题B的解法解决问题A,或者说,问题A可以“变成”问题B。 如:一元一次方程可以“归约”为一元二次方程。

约化的性质:
约化具有一项重要的性质:约化具有传递性。如果问题A可约化为问题B,问题B可约化为问题C,则问题A一定可约化为问题C。

约化的意义:
问题A可约化为问题B”有一个重要的直观意义:B的时间复杂度高于或者等于A的时间复杂度。也就是说,问题A不比问题B难。

约化的要求:
我们所说的“可约化”指的是可“多项式时间地”约化(Polynomial-time Reducible),即变换输入的方法是能在多项式的时间里完成的。约化的过程只有用多项式的时间完成才有意义。

4.2NPC问题

NPC问题是指满足下面两个条件的问题:
(1)它是一个NP问题;
(2)所有的NP问题都可以用多项式时间约化到它。

所以显然NP完全问题具有如下性质:它可以在多项式时间内求解,当且仅当所有的其他的NP完全问题也可以在多项式时间内求解。这样一来,只要我们找到一个NPC问题的多项式解,所有的NP问题都可以多项式时间内约化成这个NPC问题,再用多项式时间解决,这样NP就等于P了。

目前,NPC问题还没有找到一个多项式时间算法,因此我们就此可直观地理解,NPC问题目前没有多项式时间复杂度的有效算法,只能用指数级甚至阶乘级复杂度的搜索。

大多数人的观点对于 P类问题,NP类问题,NPC之间的关系可用下图表示(此图正确性有待验证):

这里写图片描述

4.3第一个NPC问题

逻辑电路问题是第一个NPC问题。逻辑电路问题指的是这样一个问题:给定一个逻辑电路,问是否存在一种输入使输出为True。

逻辑电路问题属于NPC问题。这是有严格证明的。它显然属于NP问题,并且可以直接证明所有的NP问题都可以约化到它(不要以为NP问题有无穷多个将给证明造成不可逾越的困难)。证明过程相当复杂,其大概意思是说任意一个NP问题的输入和输出都可以转换成逻辑电路的输入和输出(想想计算机内部也不过是一些0和1的运算),因此对于一个NP问题来说,问题转化成了求出满足结果为True的一个输入(即一个可行解)。

有了第一个NPC问题后,一大堆NPC问题就出现了,因为再证明一个新的NPC问题只需要将一个已知的NPC问题约化到它就行了。后来,Hamilton回路成了NPC问题,TSP问题(旅行商问题)也成了NPC问题。现在被证明是NPC问题的还有很多,任何一个NPC问题找到了多项式算法的话所有的NP问题都可以完美解决了。因此说,正是因为NPC问题的存在,P=NP变得难以置信。P=NP问题还有许多有趣的东西,有待大家自己进一步的挖掘。攀登这个信息学的巅峰是我们这一代的终极目标。现在我们需要做的,至少是不要把概念弄混淆了。

5.NPH问题

NPH问题(NP难问题,英文NP-hard问题),其满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比 NPC问题的范围广,但不一定是NP问题)。

NP-Hard问题同样难以找到多项式时间复杂度的算法,但它不列入我们的研究范围,因为它不一定是NP问题。即使NPC问题发现了多项式级的算法,NP-Hard问题有可能仍然无法得到多项式级的算法。事实上,由于NP-Hard放宽了限定条件,它将有可能比所有的NPC问题的时间复杂度更高从而更难以解决。


参考文献

[1]http://blog.csdn.net/liufeng_king/article/details/8475508.
[2]多项式时间算法.
[3]NP(Non-Deterministic Polynomial, 非确定多项式) .
[4]什么是P问题、NP问题和NPC问题.
[5]图论中P、NP、NPC和NP难问题详解.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18055.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算理论】计算理论总结 ( P 、NP 、NPC 总结 ) ★★

文章目录 一、P 类二、NP 类三、NPC 类 ( NP 完全 )四、P 、NP 、NPC 三者关系 一、P 类 P \rm P P 类 : ★ 所有 能够被 确定性 单个带子图灵机 , 在 多项式时间 内 , 能够被 判定的计算问题 ( 语言类 ) , 将这些问题放在一起 ( 广义并集 ⋃ \bigcup ⋃ ) , 组成一个整体 ,…

奇迹私服服务器端npc修改,奇迹教程-奇迹EX802 NPC商店修改教程与NPC编号查询

摘 要 本教程适用于EX802的NPC商代为XML文件的,主要详细介绍手动修改NPC商店教程,我们记得在03H版本中NPC商店修改的是TXT文件,本次修改是XML文件,修改大致相同,就是格式不是太一样,为了 y8xrookie博客-Rk Blog 本教程适用于EX802的NPC商代为XML文件的,主要详细介绍…

我的世界服务器最新npc获得,我的世界1.8Citizens2——NPC插件

Citizens2(公民2)是一款非常有趣的NPC插件,他可以给服务器带来故事背景,风格,是纯净服务器必备的选择! 可以创建一个NPC,让它说话,让它走动,让他当守卫等等。 它也有很多扩展插件(扩展插件有时间…

我的世界服务器npc怎么修改,我的世界NPCmod教程如何设置任务NPC

我的世界中,玩家可通过npcmod来创建有任务的npc,那么有任务的npc该怎么创建呢,下面一起来看看吧。 一,创建新的NPC 请使用这个东西右键地面 这时就创建好了一个漂亮的NPC 这是你建立好的成品 如果你想改他的皮肤或者是名称请打开他基本属性栏我就不详说了 这时候我们创建好…

传奇服务器npc位置文件,传奇GEE引擎服务端自定义NPC示列工具

传奇GEE引擎服务端自定义NPC示列工具 测试自定义NPC 配置文件:D:\MirServer\Mir200\Envir\CustomNPC 先在 Merchant.txt 中,设置一个 appr 10000 的npc,然后重新加载npc,进入自定义npc设置 在 Merchant.txt 中配置一个npc appr …

018 打开NPC交接任务功能分析

文章目录 打开NPC交任务接任务 打开NPC 来到明文封包call头部,点击NPC,然后断下。这里最好新建一个1级的小号,去分析,这样周围没有其他玩家会少很多干扰项。 返回上层,这个call应该就是我们要的选择NPC的call 但是我们…

传奇私服服务器怎么增加npc,传奇添加NPC的方法以及形象代码计算

今天介绍一下如何在传奇私服里面增加NPC,以及自定义NPC的外观样子。 本文使用的GOM引擎,添加自定义NPC很简单只需要两步: 传奇添加NPC的方法步骤: 首先:在服务端目录Mir200中的Envir目录里面找到Merchant.txt&#xff…

群晖部署nps的客户端npc in docker

先下载一个npc的容器,注意是npc 启动 然后高级设置 (3)点击“高级设置” (4)点击“添加文件夹” (5)选择一个NAS本地文件夹。(要记住,待会用到) (6)装载路径为“/conf” 注意这个是配置文件所在地 网络选择本地hosts网络 然后创建后,到conf目录添加下配置文件…

服务器自定义npc音乐,Custom NPC 自定义NPC模组自定义音乐添加教程

教程 一、格式转换[也是很重要的一部,音乐格式必须为ogg不然放不出声音] MC所使用的音乐格式为ogg,所以你要把需要添加的音乐转换成合适的ogg格式。 二、添加文件 打开MC的.minecraft\customnpcs\assets\customnpcs\sounds文件夹然后你可以直接把ogg音乐放在那里,也可以新建一…

传奇私服服务器怎么增加npc,传奇新建NPC/npc修改功能/NPC修改模版

先拿最简单的公告NPC做例子 咱们在自己搭建的版本上找到一个公告的NPC 那么我们怎么去修改,或者添加类似的NPC呢? 我们先找到这个NPC在服务端的位置 搜索关键字找到这两个NPC.我们打开看看里面都是写的什么 然后对应搜索命令脚本的意思。每个引擎里面都有一个指导文件 我们打…

[算法笔记]NPC问题证明sample

[算法笔记]NPC问题证明sample 前言一些概念一些例子Reduction to 3-ColoringNP Basicsreduce vertex cover to dominating set另一个解法:reduce set cover to dominating set partition, subset sum and knapsack另解 Orthogonal vectorsreduce vertex cover to se…

传奇服务器修改npc外观,传奇NPC里面图片修改方法

格式: N表示显示文件中的第几个图片,F表示WIL文件序号,X是横向坐标,Y是纵向坐标. FWIL文件序号(详见引擎:查看-列表信息(二)-WIL资源) X和Y这两个坐标可以使图片显示的坐标更加精准. Label是点击图片时需要触发的脚本标签. 2015-09-01新增加 格式: FWIL文件序号(详…

我的世界服务器怎么增加npc,自定义NPC (Custom Npcs)

本模组原名自定义人物(现在被认为是别称)。 该模组增加了一些设置自定义 NPC 的道具,使得玩家(尤其是创造模式的玩家)可以创建和编辑自定义职业(商人,战士,歌手等等),自定义皮肤&模型,自定义对话,自定义…

文心一言来了!李彦宏:百度是全球大厂中第一个做出来的!

整理 | 郑丽媛 屠敏 出品 | CSDN(ID:CSDNnews) 对于昨日 GPT-4 的意外发布,相信多数人都有如下想法: 1、多模态大模型 GPT-4 真的很强大! 2、恰好赶在了文心一言发布前夕,百度要如何应对压力&am…

百度文心一言在国产模型中倒数?我看懵了

夕小瑶科技说 原创 作者 | 卖萌酱最近几天,我们公众号的社群在纷纷转发一张名为SuperClue 评测的截图。科大讯飞甚至在官号进行了宣传: 由于讯飞星火大模型刚发布,笔者玩的少,它是不是真的是国产最强这个笔者不敢下结论。 但在该评…

ChatGPT演进过程

GPT-3.5[24] GPT-3.5 是从 GPT-3 演化来的一些列模型,如下图所示,从初始的 GPT-3 到 GPT-3.5 再到 ChatGPT 是经过了一些列的优化和演进。图片来源:ChatGPT进化的秘密 和 拆解追溯 GPT-3.5 各项能力的起源,参考文章整理了以下 GP…

摩根大通打造ChatGPT式人工智能服务;度小满开源金融大模型“轩辕”;2022年中国数字孪生市场规模超100亿元丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 阿里巴巴:网传裁员为谣言,今年预估新招15000人 5月25日,阿里巴巴集团官微宣布,2023年六大业务集团总计需新招15000人,其中校招超过3000人。同时表示&a…

如何用ChatGPT协助生产社群的每日新闻资讯?

该场景对应的关键词库(8个): 品牌推广、产品信息、行业动态、用户互动、品牌文化、品牌活动、行业知识、兴趣爱好 例如:新消费、餐饮品类、品牌联名 注意:受制于ChatGPT语料库的数据包截止时间是2021年9月&#xff0c…

月薪30k,这个网络工程师凭什么?

晚上好,我是老杨。 最近又收到一些小友投稿,不少刚入行的小友想和我聊聊网工的职业发展,觉得自己的薪资升不上去。 为什么别的资深网工能月入30k,而你15k顶天了? 其实对比其他工种,网工这个技术性工作&am…

AI+时代开启,算力模组成为推动AI应用落地的动力之源

人工智能是第四次技术革命中的重要技术。近期ChatGPT不断出圈,OpenAI随即又推出了新一代大语言模型GPT-4,再次引发了全球对人工智能技术发展的关注。微软宣布正式把GPT-4模型装进Office套件,推出全新的AI功能Copliot。在国内,百度…