算法概论课后习题解答
习题8.2
*证明如果有一个判断图中是否存在哈密顿回路的程序,该程序的时间复杂性是多项式的,则用
该程序构造哈密顿回路是多项式的.*
证明:
1. isRudrata(G)为判断是否是哈密顿回路的程序,
G 为一个任意图
edges为G的边集合
2. 循环从edges中取出一条边e
3. 如果isRudrate(G-e)返回true,说明e是哈密顿回路的一条边,
否则,将e从G中去掉
4. 因为isRudrate(G)的时间是多项式的,一个图的边数是确定的,所以用该程序构造哈密顿回路是多项式时间的
习题8.3
证明STINGY SAT是NP完全问题
1. 很明显 STINGY SAT可以在多项式时间内完成验证,即STINGY SAT是NP的,关键是要证明
STINGY SAT是NP完全的
2. 通过将变量的总个数为k即可将SAT问题归约为STINGY SA