NP完全问题相关探讨
1. 其他NP完全问题
在算法领域,有数百个问题已被证明是NP完全问题,了解哪些类型的问题往往较难是很重要的,这样在实际应用中遇到时能识别出来,也能为未来的归约提供合适的候选问题。以下是一些常见的NP完全问题:
| 问题名称 | 问题描述 |
| ---- | ---- |
| 整数划分 | 是否可以将n个整数划分为两个子集,使得这两个子集的和相等? |
| 装箱问题 | 需要多少个给定大小的箱子才能装下n个不同大小的物品? |
| 色数问题 | 给一个图着色,使得相邻顶点颜色不同,最少需要多少种颜色? |
| 带宽问题 | 当图的顶点在一条直线上排序时,哪个顶点排列p能使最长边的长度最小? |
还有一些问题处于不确定状态,即不知道是否存在快速算法或是否为NP完全问题,最突出的是图同构问题和素性测试问题。不过,这种不确定问题的列表很短,这充分体现了算法设计的先进水平和NP完全性理论的强大。
对于工作中遇到的问题,应该明确其是困难问题还是多项式问题。如果让问题处于不确定状态,那是算法设计者不成熟的表现。判断一个问题是否困难需要经验,而仔细研究问题目录可能是获得这种经验的最快方法。需要注意的是,问题表述的细微变化可能会导致它是多项式问题还是NP完全问题的巨大差异。例如,在图中找最短路径很容易,而找最长路径则很难;构造一个访问图中所有边一次的路径很容易,而构造一个访问所有顶点一次的路径则很难。
当怀疑一个问题可能是NP完全问题时,首先可以查阅Garey和Johnson所著的《Computers and Intractability》,其中列出了数百个已知的NP完全问题,很可能会找到你感
超级会员免费看
订阅专栏 解锁全文

74

被折叠的 条评论
为什么被折叠?



