[NP问题简介]2021.11.3随笔

易解决问题 :多项式时间 O ( n k ) O(n^k) O(nk)算法能解决的问题。

难解决问题:多项式时间 O ( n k ) O(n^k) O(nk)算法不能解决的问题。

判定问题:提出一个问题,回答y或者n
优化问题:涉及到求极值,优化问题一般都可以转化为判定问题。

启发式算法------------>最优化算法

1.P类问题(polynomial)

定义:可以在多项式 O ( n k ) O(n^k) O(nk)时间内求解的确定性问题。

2.NP问题(Non-Detecministic)

2.1NP问题定义

多无法在项式 O ( n k ) O(n^k) O(nk)时间内求解的非确定性算法属于NP问题。(n为输入规模)
对于NP问题,算法输出结果可能是问题的解,也可能不是问题的解
。对于计算机来说,很多NP类问题如果无法在多项式时间内解决,那么于我们当前的计算能力而言是几乎无解的

假设你正在为400名大学生组织住宿,但是空间有限只有100名学生能在宿舍里找到位置。更复杂的是还给了你一份不相容学生的名单,并要求在你的最终选择中不要出现这份名单中的任何一对。

这是计算机科学家称之为NP问题的一个例子,因为很容易检查一个同事提出的一百个学生的给定选择是否令人满意,然而从头开始生成这样一个列表的任务似乎太难了以至于完全不切实际。

事实上从400名申请者中选择100名学生的方法总数比已知宇宙中的原子数量还要多!这类其答案可以被快速检查,但是通过任何直接的程序需要不可接受长度的时间来解决,比如300年或者更多…

举几个例子来加深印象:

  • 计算1-1000的连续整数之和
    -这个问题就比较简单,无论是编程还是使用高斯求和公式都可以在有限可接受的时间内完成,这种算是P类问题。

  • 计算地球上所有原子个数之和
    这个问题就很困难甚至无解,但是现在有个答案是300个,显然是错的,所以很容易验证但不容易求解,这种算NP类问题。

2.2常见NP问题

TSP货郎担问题:能否起点出发走完所有城市再回到起点的最短路径。

3.NPC问题

在这里插入图片描述

Reference

1.课堂派ppt
2.博客-P类问题与NP类问题的基本概念
3.吴师兄学编程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值