如何生成SAT问题的切割平面



我正在研究一个想法,这个想法要求我为SAT问题生成切割平面。我使用的问题来自https://www.cs.ubc.ca/~hoos/SATLIB/banchm.html,qg5-10.cnf来自SAT编码的Quasigroup(或拉丁方(实例。

我使用的是最新版本的SCIP,SCIP8.0.0。我想知道是否有任何方法可以生成SAT问题的切割平面,并打印出生成的切割平面。我只需要在预求解后的第一次迭代中这样做。

我尝试过以下几种:

  1. set separating gomory freq 65534, set separating (other cutting plane methods) freq -1

但是,当我使用optimize命令时,这并不能告诉我是否正在生成gomory切割。

  1. 通过在sepa_gomory.c的第270行和第309行添加SCIPprintRow(scip, cut, NULL)来打印剪切

但是什么都没有打印出来,这让我认为SCIP的默认分支规则根本没有使用切割平面。

关于如何进行这项工作的一些建议将有助于我检验我关于切割飞机的假设。非常感谢。

切割平面生成/分离不与分支规则绑定。您只需要运行display statistics就可以查看是否生成并分离了剪切以及哪些剪切。

最新更新