ortools 中的极限和对称性是什么意思?

What do limit and symmetry mean in ortools?

我有一个问题,我正在尝试使用大约 100 万个变量和 1000 万个约束进行优化。 CP-SAT 需要很长时间才能找到可行的解决方案。我在阅读输出时发现了一些我不明白的地方。

// Whether we try to automatically detect the symmetries in a model and // exploit them. Currently, at level 1 we detect them in presolve and try // to fix Booleans. At level 2, we also do some form of dynamic symmetry // breaking during search.

但它并没有说明 3 或以上的对称性。如果设置为 3 有什么作用?

[Symmetry] GraphSymmetryFinder error: During the initial refinement.

这是我应该尝试解决的问题吗?如果是,该如何解决?

[Probing] deterministic_time: 1.00001 (limit: 1) wall_time: 1.21766 (Aborted 10197/201810)

这是什么值得担心的事情吗?我可以增加 limit 以使探测完成而不是中止吗? limit 似乎不是 solver.parameters 中的参数之一。 limit 是否设置了探测可以 运行 的秒数上限?在此探测步骤中发生了什么?

对称检测和探测是预求解期间可选的、可能成本高昂的阶段。

对称检测很好,但尚不支持所有约束。所以它可能会失败。求解器将默默地忽略此失败。

对于探测,提高性能的最佳方法是使用多个 worker(8 个或更多)。如果您有 12 个以上的工人,则启用连续探测。当然,如果你的电脑有那么多核就更好了。