在写题目之前,想先总结一下这一章的基本内容。这一章主要讲的是NP, NPC问题。
关于NP问题
- P问题,是它能够找到一个在多项式时间内解决的算法;而NP问题不是非P问题,而是可以在多项式时间里验证一个解的问题。
- NP问题:所有搜索问题都称为NP问题。搜索问题的特征性定义是,任意可能解的正确性都能被快速检验,也就是说,存在以问题实例I(用于确定待求解问题的数据)和可能解S为输入的高效检验算法C,其输出时间为true的充要条件是S确实是I的解。
- NP-完全问题(NPC):存在一个NP问题,所有的NP问题都可以归约化成它。这里说明了两个条件。一是它是一个NP问题,二是所有NP问题都可以归约化为它。
一个问题A可以归约为问题B的含义是,可用问题B的解法解决问题A,或者说,问题A可以“变成”问题B;举个例子,一元一次方程求解可以归约化为一元二次方程求解。(B的复杂度大于等于A的复杂度)
也就是说,如果能找到一个变化法则,对任意一个程序A的输入,都能按这个法则变换成程序B的输入,使两程序的输出相同,则说明问题A可以归约化为问题B。下图来自课本。描述了将求解问题B的算法可以转换为求解问题A的算法的过程。