SAT解决优化问题

时间:2013-01-28 21:05:19

标签: optimization satisfiability conjunctive-normal-form

假设您有一个CNF公式,其中一些变量标记为特殊 有没有办法让SAT求解器(比方说,minisat)找到一个解决方案,最大化分配给true的特殊变量的数量?

3 个答案:

答案 0 :(得分:2)

你(我)想要的是Partial Max Sat.有一个名为qmaxsat的求解器,它似乎运行得很好。

答案 1 :(得分:0)

不确定是否所有这些都能处理特殊变量的指示,但至少wikipedia为搜索提供了一些方向:

  

有几个解决方案提交给上一次Max-SAT评估:

     
      
  • 基于分支和界限:克隆,MaxSatz(基于Satz),IncMaxSatz,IUT_MaxSatz,WBO。
  •   
  • 基于满意度:SAT4J,QMaxSat。
  •   
  • 不满足:msuncore,WPM1,PM2。
  •   

检查所有这些内容的描述应该是可管理的。

答案 2 :(得分:0)

您可以使用PBC解算器,例如minisat + http://minisat.se/MiniSat+.html 它们使用称为伪布尔约束的附加约束来解决常规CNF文件 Minisat +还支持优化此类约束 从我的理解,它解决了你的问题

设x1,.... xn是你想要最大化真值分配数的变量 然后您可以定义约束 最大化+1 x1 ..... +1 xn minisat +解决了这样的优化问题