您能否在发现的不同解决方案之间提供OR-tools求解器外部数据?

时间:2020-07-18 13:59:06

标签: or-tools

我正在尝试解决min-SAT问题的复杂变体。到目前为止,我有两个子问题,两个子问题都给出了需要在目标函数中考虑的解决方案值。但是,使用OR-tools cp_model模块只能解决两个问题之一。另一个通过外部算法解决。现在,理想情况下,我将执行以下操作:

  1. cp-solver找到第一个子问题的解决方案,
  2. 暂停求解器,
  3. 使用外部算法解决第二个子问题,以cp-solver找到的解决方案为参数,
  4. 将外部算法的结果反馈给cp-solver,
  5. cp-solver现在将其本身找到的第一个子问题的解决方案与外部算法找到的解决方案之和作为目标值。
  6. cp-solver进行下一次迭代,并为新分配重复步骤1-6

所以我的问题是:是否有Google OR工具的功能,可以让我执行步骤1-6之类的操作,其中求解程序与外部算法配合运行并相应地提供值?我是使用此模块的新手,因此我不知道可以在Google上搜索哪些术语以找到所需的术语。非常感谢我的朋友们。最好的问候,是30厘米。

1 个答案:

答案 0 :(得分:1)

在cp-sat求解器中,solve()是无状态的,并且是黑盒子。 您唯一可以做的就是修改模型并解析。