NP困难
NP-hard问题是一个是/非问题,在这个问题中,为它找到一个解决方案至少和为最难的问题找到一个解决方案一样难,而这个问题的解决方案可以很快被检查为真。有些NP-hard问题是可以快速检查出工作解的问题(NP问题),有些则不是。同样是NP问题的NP-hard问题适合于一类叫做NP-complete的问题。
一个问题的例子,它的难度至少和其他任何问题一样,我们可以快速检查解决,它也是可以快速检查的(它既是NP-hard,又是NP)。
一个旅行推销员想通过开车访问100个城市,在家里开始和结束他的旅行。他的汽油供应有限,所以他总共只能行驶10,000公里。他想知道他是否能在不耗尽汽油的情况下访问所有的城市。
人们不知道如何比测试每一个可能的答案更快地解决这个问题,但如果找到了一个允许推销员这样做的解决方案,我们可以使用算法检查它是真的。这个问题也被称为Travelling salesman问题。
一个问题的例子,这个问题至少和其他问题一样难解,我们可以快速检查解决,但不能快速检查(它是NP-hard,但它不是NP)。
如果有人启动一个程序,只是去。
while(true){ continue; }并从未停止过,它会永远运行吗?
目前还没有已知的方法可以找到解决所有这类问题的方法,这也无法检查。
问题和答案
问:什么是NP-hard问题?答:NP-hard问题是计算机科学中使用的一种数学问题,它是一个是/否问题,找到一个解决方案至少与找到一个最难的问题的解决方案一样难,而这个问题的解决方案可以很快被检查为真实。
问:对于所有的NP-hard问题,都能快速检查出有效的解决方案吗?
答:不能,只有一些NP硬问题,称为NP问题,有可以快速检查的解决方案。
问:对于也是NP问题的NP-hard问题,叫什么类别?
答:也是NP问题的NP-hard问题适合于一个叫做NP-complete的类别。
问:所有的NP-hard问题都是NP-complete的吗?
答:不,不是所有的NP-hard问题都是NP-完全的。只有那些也是NP问题的问题才属于这个类别。
问:NP-hard问题容易解决吗?
答:不,NP-hard问题不容易解决。事实上,为它们找到一个解决方案至少和为最难的问题找到一个解决方案一样难,而后者的解决方案可以很快被检查为真实。
问:解决NP-hard问题有什么好处吗?
答:是的,解决NP-hard问题可以在各个领域提供优势,比如计算机科学、物理学和社会科学,因为它们可能需要复杂的计算和建模。
问:在解决NP-hard问题方面是否有持续的研究?
答:是的,解决NP-hard问题的研究正在进行中,因为这些问题在各个领域都持续相关,找到高效的算法和解决方案会有重大影响。