JSP是典型NP-hard问题之一

所以首先我想解释一下什么是NP-hard问题

在这之前,必须了解一个概念叫做多项式时间:在计算复杂度理论中,指的是一个问题的计算时间不大于问题大小的多项式倍数,通俗些理解我觉得就是一定规模的问题,总有一个时间范围内可以将它解决,这个范围就是多项式时间

然后NP是指非确定性多项式(non-deterministic polynomial,缩写NP)。所谓的非确定性是指,可用一定数量的运算去解决多项式时间内可解决的问题。

再次说下我的理解,NP问题就像是如果给你一个确定那个的例子,你可以很容易的验证他是不是正确,但是如果让你去找这个最优解确实无穷无尽,不太容易求解的

它躲开了求解到底需要多少时间这样的问题,而仅仅只是强调验证需要多少时间

再举一个经典的例子

著名的推销员旅行问题(Travel Saleman Problem or TSP):假设一个推销员需要从香港出发,经过广州,北京,上海,…,等 n 个城市, 最后返回香港。 任意两个城市之间都有飞机直达,但票价不等。假设公司只给报销 C 元钱,问是否存在一个行程安排,使得他能遍历所有城市,而且总的路费小于 C?

推销员旅行问题显然是 NP 的。因为如果你任意给出一个行程安排,可以很容易算出旅行总开销。但是,要想知道一条总路费小于 C 的行程是否存在,在最坏情况下,必须检查所有可能的旅行安排! 这将是个天文数字。

旅行推销员问题是数图论中最著名的问题之一,即“已给一个n个点的完全图,每条边都有一个长度,求总长度最短的经过每个顶点正好一次的封闭回路”。Edmonds,Cook和Karp等人发现,这批难题有一个值得注意的性质,对其中一个问题存在有效算法时,每个问题都会有有效算法。

什么是NP-Hard相关推荐

  1. np.percentile()函数超详解 异常值极端值百分位四分位数

    20211115 当有空值存在时,四分位数会是空值 20211019 https://www.zhihu.com/question/58421946 https://baike.baidu.com/i ...

  2. python pandas 如何找到NaN、缺失值或者某些元素的索引名称以及位置,np.where的使用

    我们在处理数据的时候,经常需要检查数据的质量,也需要知道出问题的数据在哪个位置.我找了很久,也尝试了很多办法,都没能找到一种非常直接的函数,本文所要介绍的是一种我认为比较方便的方法:np.where( ...

  3. 【Math】P=NP问题

    文章目录 **P vs NP** **0 P=NP基本定义** 0.1 Definition of NP-Completeness 0.2 NP-Complete Problems 0.3 NP-Ha ...

  4. python对数运算符号_科学网—Python中算数运算符之注意及np.logspace - 张伟的博文...

    (一)算数运算符 数字2 是一个整数的例子. 长整数 不过是大一些的整数. 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4. (-5+4j ...

  5. 准备IE--复习NP,NP从头开始,每天学一点,就多一点收获

    2011-07-07 今天开始重新开始NP!每天一实验,加油!写下心路历程,为自己加油! 转载于:https://blog.51cto.com/sunchangsheng/605482

  6. 什么是多项式时间?什么是NP问题?

    参考:https://zhidao.baidu.com/question/68492427.html?qbl=relate_question_0&word=%B6%E0%CF%EE%CA%BD ...

  7. P、NP、NPC问题最通俗的讲解

    转:Matrix67原创 什么是P问题.NP问题和NPC问题 这或许是众多OIer最大的误区之一.     你会经常看到网上出现"这怎么做,这不是NP问题吗"."这个只有 ...

  8. np.reshape()

    关于 reshape 的普通用法这里就不提了,记录一下代码中遇到的其他用法: reshape 还可以给数据扩充维度,如: a = np.arange(0,12).reshape((2,2,3)) '' ...

  9. np.vstack()和np.hstack()

    在这里我们介绍两个拼接数组的方法: np.vstack():在竖直方向上堆叠 np.hstack():在水平方向上平铺 import numpy as np arr1=np.array([1,2,3] ...

  10. python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别

    1. np.dot() 对类型为 ndarray 的数据: 一维情况:为点乘,即对应元素相乘再相加 二维情况:矩阵乘法 对类型为 matrix 的数据:矩阵乘法 一个二维数组跟一个大小合适的一维数组的 ...

最新文章

  1. R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、编写自定义三线表结构(将因子变量细粒度化重新构建三线图)、为不同的变量显示不同的统计信息
  2. 树莓派开发4-串口通讯wiringpi库
  3. Asp.net 性能监控之压测接口“卡住” 分析
  4. Linux 2.4调度系统分析--转
  5. 基于空间数据库的空间数据管理
  6. bat 发邮件与手机交互_售价17500元!华为首款5G折叠屏手机来了,更多新机细节曝光...
  7. Linux Capabilities 入门教程--进阶实战篇
  8. 前端学习(1520):vue-router嵌套路由
  9. xss防御补丁_Discuz论坛最新dom xss漏洞的解决方法
  10. (转)基于MVC4+EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts
  11. squid android 工具包,xUtils Android工具包 v3.9.0
  12. 物质之学 —— 金属
  13. nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题...
  14. Http之客户端请求服务器,服务器响应客户端。通过Handler在主线程中读取数据
  15. Struts数据传输问题-- 数据超出2M时会导致映射数据丢失
  16. PHP经典实用案例1000个
  17. Resolution和Scale关系
  18. 【unity3d】复刻死亡之书自动设置摄像机景深
  19. iOS 怎么查app的下载量
  20. 基于Layui自定义内容轮播插件

热门文章

  1. 小奇的矩阵(动态规划
  2. 手把手写深度学习(18):finetune微调CLIP模型的原理、代码、调参技巧
  3. django母版用法
  4. python读取加密excel_python使用pywin32模块给excel文件加密解密
  5. 音乐计算机曲谱狂妄之人,undertale狂妄之人简谱
  6. python javascript人工智能_Python,Java和JavaScript哪个编程语言未来发展空间更大?...
  7. python 生成诸如A001 A002 ... A100这样的序列
  8. PV、UV、CTR含义
  9. u盘win7纯净版_如何制作纯净版WIN7启动U盘
  10. JavaScript基础小节——手写重点整理02