将任何问题分解为NP和P的主要目的或主要用途是什么?这是否有任何历史原因,或者他们是否创造了这些概念来帮助我们?如果是这样,这些对我们有什么帮助?NP和P的问题需要什么?
回答
这是过于复杂的一个问题,以期望在这里一个完整的答案,但总之,从实践的角度,P中的问题是指那些解决方案可以在时间和问题NP合理的量可以找到那些解决方案需要花费太多时间来计算的(假设P!= NP)。
P与NP之间的边界可以被非正式地认为是能够和不能有效地使用计算解决的问题之间的边界。
你应该通过阅读维基百科http://en.wikipedia.org/wiki/P_versus_NP_problem更多地了解这些复杂类的动机和目的开始。
是的,具有讽刺意味的是,“P”归结为*没有问题解决优化*和'NP'归结为*一个问题解决优化*。 – 2011-03-20 13:49:10
我认为将问题分解为P和NP的“实际”意图是下界。如果你证明一个问题是NP难的(并且你同意P!= NP这个普遍的观点),你已经证明你找不到在合理的时间内运行的问题的算法。
更非正式的,说你的老板要求你写在5分钟运行算法。如果你说你找不到一个,他会认为你正在懈怠。如果你告诉他他问你的是NP难,他应该确信你不能这样做。回到形式主义,你可以用一个近似算法来证明它的合理性。
这是一个历史对话,因为现在,在行业中,我们有时会实施NP完全问题(例如SAT求解器)或甚至PSPACE完整问题(例如形式验证,即PSPACE完成公式的大小)。另一方面,例如在图形中,您有时无法实现在n^2
中运行的算法。即使nlogn
有时可能会前卫。
主要想法是根据难度级别分离问题。
这里的P将指所有简单的问题(可在合理的时间内解决)。而NP困难的。 (没有合理的时间解决方案,但如果您能猜出解决方案,可以快速验证它)
一旦您将问题分类到这两组中,那么您可以担心解决问题。
例如,如果您遇到问题,而不是在解决方案上突如其来,您可以意识到它在合理的时间内无法解决并继续前进(或使用良好的猜测工作并检查解决方案)。另一方面,如果是P问题,那么您可能会担心找到更有效的解决方案等等。
- 1. 如果P = NP,为什么P = NP = NP-Complete?
- 2. 什么是NP问题?
- 3. 复杂性问题类P,NP,EXP?
- 4. P!= NP证明缺少什么?
- 5. 什么是NP-中级问题?
- 6. 如果P!= NP,P是否比非P问题多,反之亦然?
- 7. 有什么问题,需要在文件
- 8. NP-complete问题也是NP-hard吗?
- 9. P = NP:最有前途的方法是什么?
- 10. 为了证明某些事情是NP难的,为什么你需要从NP-complete中减少它?
- 11. 证明NP完全问题
- 12. 这个问题NP-hard?
- 13. 这是NP问题吗?
- 14. 问题需要
- 15. 我为什么要“删除p;”,而不是“删除(p + 1);”?为什么删除需要左值?
- 16. 没有这样的表android_metadata,有什么问题?</p> <p>没有这样的表android_metadata</p> <p>我需要:
- 17. 为什么某些组件需要“需要UIExplorerBlock”和“需要UIExplorerPage”?
- 18. attr_accessible需要的问题和解释
- 19. 如果P = NP,是否存在NP中间体?
- 20. 我的RewriteRule通过.htaccess发生了什么问题? (为什么它需要RewriteBase?)
- 21. 2 [p]和6 [p]是什么意思?
- 22. Git和添加-p问题
- 23. 为什么filebeat只需要cert和metricbeat需要key,ca和cert?
- 24. node.js需要问题
- 25. 需要CSV问题
- 26. 的Heroku:Gemfile.lock的需要问题
- 27. 证明融通α的问题是NP
- 28. 第一个NP完全问题如何显示为NP完全?
- 29. 上传新项目需要的标题和正文是什么?
- 30. 访问sys。$表需要什么特权?
属于cstheory.stackexchange.com – 2011-03-19 18:00:49