• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
jiajia920716
博客园    首页    新随笔    联系   管理    订阅  订阅
P & NP 问题

 

P & NP 问题是由Steve Cook于1971年首次提出,克雷数学研究所将它作为高额悬赏的七个千禧年难题之一,同时,它也是计算机科学领域的最大难题。

下面先看看最基本的P类问题和NP问题:

P问题

  P——Polynomial,多项式时间。P问题表示在多项式时间内可以解决的问题。时间复杂度为O(n), O(nk), O(nlogn)的问题都能在多项式时间内解决,我们在数据结构与算法中的大部分问题如排序、找最短路径等都能在多项式时间内解决。

NP问题

  NP——Nondeterministic Polynomial ,非确定多项式时间。NP问题表示不确定在多项式时间内是否能解决的一类问题。也就是说它可能能在多项式时间内解决,也可能不能。同时P问题是NP问题的一个子类,即所有的P问题都是NP问题。

 

NP问题的延伸

NPC问题

  NPC问题即NP-Complete问题,是NP问题中最难的一类问题。

  它的定义分为两个层面:

    1. 它是一个NP问题;

    2. 所有的NP问题都能在多项式时间内变换得到它。

  它有一个很管用的性质:如果一个NPC问题存在多项式时间能解决的算法,那么所有NP问题都能在多项式时间内求解,也就能证明P=NP。这对于求解N是否等于NP有重大意义。

  Steve Cook在 1971年找到了第一个NPC问题,此后人们又陆续发现很多NPC问题,现在可能已经有3000多个了。哈密顿回路问题,货郎担问题,集团问题,最小边覆盖问题等等很多问题都是NPC问题。

NPH问题

  NPH问题即NP-Hard问题,它是比NPC还难的问题。它满足NPC问题定义的第二条,但是不满足第一条。比如一个问题A,若它不是NP问题,同时可以找到某一个NPC问题能再多项式时间内转换为A,则A是一个NPH问题。旅行商问题(TSP)就是一个NPH问题。

 

最后我们设想一下,假如P=NP,那么世界将变成怎样?

  首先,所有的NPC问题将被全部解决。

  困扰人类已久的自然语言处理问题将被一举攻破。

  所有人工智能问题都将得到解决:我们只需向计算机提交足够多的情境以及与之对应的正常人的反应,计算机就可以找出一种能正确生成出这些反应的最简算法,完全模仿人类的行为。

  数学证明可以全部交给计算机解决:寻找一个反例将变得和验证一个反例一样简单,一切错误的猜想都将瞬间被推翻。

  任何密码算法都将成为徒劳:计算机可以通过一大批明文密文样本推算出生成密文的算法。

 

posted on 2013-11-26 22:13  jiajia920716  阅读(706)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3