已知一个m*n整数矩阵A和一个m维向量b,0/1整数规划问题是:是否存在其元素属于集合{0,1}的一个n维整数向量使得ax<=b。证明0/1整数规划问题是NP完全的。(提示:约简到3-CNF-SAT)
时间: 2024-06-05 18:13:19 浏览: 150
要证明0/1整数规划问题是NP完全的,需要证明两个事实:
1. 0/1整数规划问题属于NP问题集合中;
2. 0/1整数规划问题可以被约简到3-CNF-SAT问题。
首先,我们证明0/1整数规划问题属于NP问题集合中。给定一个0/1整数规划问题,如果存在一个解向量x,使得ax<=b,那么我们可以在多项式时间内验证这个解向量是否正确。因此,0/1整数规划问题可以在多项式时间内验证,属于NP问题集合中。
接下来,我们需要将0/1整数规划问题约简到3-CNF-SAT问题。具体来说,我们需要将一个0/1整数规划问题转化为一个等价的3-CNF-SAT问题,并且这个转化过程可以在多项式时间内完成。
考虑如何将一个0/1整数规划问题转化为一个3-CNF-SAT问题。我们将每个0/1整数规划问题中的变量xi都转换为一个布尔变量yi和它的否定变量yi',即yi表示xi取值为1,yi'表示xi取值为0。然后,我们将0/1整数规划问题中的每个约束ax<=b都转换为一个3-CNF子句。
具体来说,对于一个约束ax<=b,我们可以将它转换为以下三个子句:
1. 如果aij=0,则必须有yj'=1;
2. 如果aij=1,则必须有yj=1;
3. 如果ax<=b,则必须有∑(aij*yj)<=b。
第一个子句表示如果aij=0,那么yi'必须为真,即xi必须取值为0。第二个子句表示如果aij=1,那么yi必须为真,即xi必须取值为1。第三个子句表示aij*yj的总和不能超过b。
这样,我们就将0/1整数规划问题转化为了一个等价的3-CNF-SAT问题。这个转化过程可以在多项式时间内完成,因此0/1整数规划问题可以被约简到3-CNF-SAT问题。
综上所述,我们证明了0/1整数规划问题是NP完全的,因为它既属于NP问题集合中,又可以被约简到3-CNF-SAT问题。
阅读全文