提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
证明一个NP-complete问题的Optimization版本是NP-hard的
前言
提示:此处的讨论为非正式的讨论,我谨记录我踩坑的心得,有不严谨之处欢迎指正。
所有NP-Complete问题都是Decision Problem。给定一组输入I和一个值B,可以在多项式时间内验证:输入I产生的结果O和B的关系。
有若干NP-Complete问题对应有Optimization Problem。比如:斯坦纳树(Steiner Tree)问题是NP-Complete的,它的Optimization版本最小斯坦纳树(Steiner Minimal Tree)是NP-hard。
但是,在写作过程中,证明自己提出的问题Q是NP-hard的时候,会发现只有相近的NP-Complete的问题NPC可以规约(reduce)到Q,却找不到对应的NP-hard的证明。比如,能很容易搜索到Steiner Tree问题是NP-Complete的,Steiner Minimal Tree的问题却被一笔带过:因为SMT是ST的Optimization版本,因此SMT不比ST更简单,所以SMT是NP-hard的。
疑问因此产生:对啊,是显然成立,但是为什么?
一、Decision问题不会比Optimization问题更难
引用自Johnson, David S., and Michael R. Garey. Computers and intractability: A guide to the theory of NP-completeness. WH Freeman, 1979.
第二章,2.1节:
对于Decision Problem旅行商问题(TSP),一个界限B,一个城市集合C,城市间的开销集合D,是否存在一个路径,经过所有城市,其开销之和W≤B?
那么一个Decision问题是如何衍生自Optimization问题呢?我们可以通过将Optimization问题和一个带有可枚举的界B(a numerical bound B)的Decision问题联系到一起,并且问是否存在一个解不大于B?只要问题的cost函数可以简单评估是否大于B,那么对应的Decision问题一定不比Optimization问题更难。
总结:TSP的Decison问题不比Optimization问题更难,并且TSP是NP-Complete的,这两个条件加总证明其Optimization是NP-hard的。(第五章5.1节)
比如TSP的Optimization问题,我们需要在多项式时间内找到一条最小旅行路径,使之小于给定的边界B。又由于TSP是已知的NP-Complete问题,因此TSP的Optimization问题至少是不比Decision问题一样难。反过来(在第五章),TSP的Decision问题也不比其Optimization问题更简单。