从ILP到SAT的多时减少?


14

因此,众所周知,ILP的0-1决策问题是NP完全的。用NP显示它很容易,最初的减少来自SAT。从那时起,许多其他NP-Complete问题已被证明具有ILP公式(其作用是将这些问题简化为ILP),因为ILP非常有用。

排量 ILP似乎更难要么自己或追查。

因此,我的问题是,有谁知道从ILP到SAT的多时减少,即说明如何使用SAT解决任何0-1 ILP决策问题?

Answers:


12

0-1 ILP公式如下:

是否存在向量,但受约束:x

a11x1+a12x2...+a1nxnb1a21x1+a22x2...+a2nxnb2...am1x1+am2x2...+amnxnbm

x的域:xjxxj{0,1}

减少到k-sat:

首先归结为电路坐:

从第一行开始,创建一个用于表示每个位的布尔变量,以及一个用于布尔变量。然后为变量。进行加法处理(选择您喜欢的方法)以增加行数。a1jxjb1

然后进行比较,声明总和小于。b1

将这两个电路转换为CNF,填充变量和因为它们已给出。a1jb1

对所有行重复上述操作,但是在它们之间重用变量。xj

最终的CNF将包含所有约束。


啊,我现在知道了……我不知何故忘记了通过电路坐的选择……。非常感谢您的帮助。
codetaku 2013年

0

这是对已经回答并接受的问题的一种坏答案,但我想指出的是,确实有更简单的方法。

考虑您具有以下不平等之一:

5x1+2x2+3x36

您可以轻松地针对此不等式测试所有无向量: 1,1,1,和 1,0,1都可以。(1,1,1)(1,1,0)(1,0,1)

第一个向量表示所有三个向量都不是真的:,我们可以将此向量改写为取。(1,1,1)¬(x1x2x3)(¬x1¬x2¬x3)

这样,您可以向量形成3个子句:,和(¬x1¬x2¬x3)(¬x1¬x2x3)(¬x1x2¬x3)

遍历所有不平等和收集条款,您最终将获得cnf。通常,这个cnf是WAY SIMPLER,然后是一个被接受的答案。但是,成本较难进行预处理。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.