我试图在着名的游戏Flow中找到解决问题的方法。 http://moh97.us/flow/
谷歌搜索后我发现这是一个NP完全问题。一个好的解决方案是利用启发式和削减。如何轻松发现NP完全问题?有时当我阻止时,我看不到明显的解决方案。当NP-complete发生这种情况时,最好快速识别它并继续下一个问题。
答案 0 :(得分:1)
当你有一个对象爆炸时(比如计数增长的对象) 指数地基于一些参数或参数),这应该指出 你的方向是NP完全问题。当你 必须检查,检查太多物体(组合或其他)。 通常这些对象是某些初始的子集或子空间 对象空间。你应该为此建立一些直觉。但像往常一样, 有时直觉就是谎言(我的直觉让我被这样的谎言所欺骗 2-3次)。
然后,一旦你怀疑某些问题是NP完全的,只是 谷歌为它,并尝试找到更多的信息 相同或类似的问题。
这就是我至少做过的事情 解决了很多算法问题 前一段时间。
这是一个很好的问题,我很确定 是NP完全但可以通过解决 例如遗传算法。
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=973
正如Dukeling所说,没有通用的做法。
答案 1 :(得分:0)
这样做没有简单的通用方法。它主要归结为减少一些已知的NP完全问题来解决这个问题,或者表明它们是等价的。
因此,了解有关众所周知的NP完全问题的更多信息,并在减少问题以解决另一个问题和识别等效问题方面获得更多经验。
免责声明:您只需要注意NP完全问题的特殊情况 - 虽然问题的一般情况可能需要指数时间来解决,但这些特殊情况实际上可以解决多项式时间。