将NP-Complete问题与现实问题联系起来

时间:2010-03-08 19:37:12

标签: algorithm computer-science

我对NP完全问题的掌握得体;那不是问题。我没有的是很好地理解他们在“真正的”编程中出现的位置。有些人(比如背包和旅行推销员)很明显,但其他人似乎并没有明显与“真实”问题联系在一起。

我曾经多次遇到过困难问题,只是意识到这是一个众所周知的NP完整问题,已被广泛研究过。如果我更快地认识到连接,我可以节省相当多的时间来研究现有解决方案以解决我的具体问题。

是否有任何资源(在线或打印)专门将NP Complete连接到真实世界的实例?

编辑: 例如,我正在研究一个程序,该程序试图根据年龄,年级和原始学校将学生分成小组,这实际上是图形分区问题。我花了一段时间才意识到这种联系。

4 个答案:

答案 0 :(得分:4)

我发现Computers and Intractability是该主题的权威参考。

答案 1 :(得分:1)

通常,您所谈论的连接必须使用所谓的简化进行提取,例如,您将 3-SAT 减少到您正在使用的问题,然后你可以得出结论,你的问题具有相同的复杂性。

这段话并非无足轻重,因为你必须证明你可以解决已知的 NP-Hard 问题的 l L 使用确定性polinomyal算法 C c 实例。

所以,除了使用你的记忆学习常见的 NP-Hard 问题的基本相关性之外,没有办法确定问题是否与另一个 NP-Hard 相似在没有先尝试猜测然后证明它的情况下,你必须要聪明。

答案 2 :(得分:1)

这是一个wiki链接: http://wapedia.mobi/en/List_of_NP-complete_problems 注意它说

  

这个清单并不全面(已知有超过3000个NP完全问题)

如果任何人都可以编译这样的列表,那么这可能是一项伟大的任务。

理论家应该尝试理解/证明NP-Complete / Hard问题。但是,程序员没有那段时间。他需要一份清单。

我说错了吗?

我认为你应该谷歌。并阅读所有链接。在列表链接中添加任何新问题

希望有所帮助

PS:完成后不要忘记发布列表:P

答案 3 :(得分:0)

为了发展更好的直觉,Skiena的书“算法设计手册,第二版”(谷歌书籍摘录)简直太棒了。

  1. 在后面列出有问题 (包括难题),那 包括插图和 (通常)讨论现实世界 示例即可。
  2. 涵盖理论 经常是事物的实际方面 谈论实际代码。
  3. 在线阅读例外情况(参见第14章中的一些例子): http://books.google.dk/books?id=7XUSn0IKQEgC&printsec=frontcover#v=onepage&q&f=false

    第16章(不在线)讨论了一些难题,包括图分区。