Google OR 工具动态增加 CP-SAT 下限

问题描述 投票:0回答:1

我想知道是否有一种方法可以在

on_solution_callback(self)
方法中动态增加变量的下限?

这只是我想到的一种方法。

我有一个变量数组:

vars = [model.NewIntVar(0, suitableUpperBound, f'x{i}') for i in range(some_number)]

问题是,一旦我找到了特定数组配置的解决方案(具有我所具有的约束)(例如,[0,1,4,5]是一个解决方案),我确实想要搜索具有相同 vars[-1] 元素(即相同的最后一个元素)的解决方案的算法。我希望它增加到“6”并寻找解决方案。

我想到的一种方法是每次找到解决方案时动态更改下限(因此它从另一个位置开始搜索),但是有没有更严格的数学方法来实现这一点?

python or-tools constraint-programming operations-research cp-sat-solver
1个回答
1
投票

一旦开始求解。该模型是只读的。

解决方案回调不允许修改模型。

您可以修补模型以更改变量的范围。 这里有一些关于如何做到这一点的轻微提示。

© www.soinside.com 2019 - 2024. All rights reserved.