所以我得到了这个作业问题,我们被要求将一个 k 独立集可满足性问题简化为合取范式下的 3-SAT 子句集。
所以对于G (V, E) 我们有顶点集
V = {x1, x2, x3, x4, x5, x6}
和边集
E = { e1 = (x1,x3), e2 = (x1,x5), e3 = (x1,x6), e4 = (x2,x5), e5 = (x2,x6), e6 = (x3,x4), e7 = (x3,x5), e8 = (x5,x6) }
我的第一种方法是每条边都有一个子句,因为我们不能在独立集中的两个顶点之间有一条边:
e1: (¬x1 v ¬x3)
e2: (¬x1 v ¬x5)
e3: (¬ x1 v ¬x6)
e4: (¬x2 v ¬x5)
e5: (¬x2 v ¬x6)
e6: (¬x3 v ¬x4)
e7: (¬x3 v ¬x5)
e8: (¬x5 v ¬x6)
但问题是,例如,对于 k = 3,如何编写子句以确保至少 3 个不同的变量 (xi) 设置为 true ?
使用加权 2 可满足性可以实现这一点,但仅使用良好的旧 3-SAT 似乎很难实现。
有关如何进行的任何提示?