什么是NP-Hard

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等人发现,这批难题有一个值得注意的性质,对其中一个问题存在有效算法时,每个问题都会有有效算法。

猜你喜欢

转载自blog.csdn.net/nanaz11/article/details/84249573