gpt4 book ai didi

python - 我自己的约束谷歌或工具

转载 作者:太空宇宙 更新时间:2023-11-03 12:01:32 24 4
gpt4 key购买 nike

我是 CP 问题和 Python 中的 OR-Tools 的新手,我想执行以下操作:

# declare variables
for i in range(I):
for k in range(K):
x[i,k]=solver.IntVar(0,N,"x %i %i " % (i,k))

#constraints
solver.Add(CustomFunction[(x[i,k])] == 1) # only consider the values of x[i,k] evaluated in CustomFunction is equal to 1

但是我在评估 CustomFunction 时遇到错误:

IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

这是对的,因为 x 是一个 IntVar。

另一方面,我在 https://developers.google.com/optimization/reference/constraint_solver/constraint_solver/Solver/ 中看到我可以添加自定义约束,但我不知道如何在 Python 中执行此操作。

感谢您的帮助:)

最佳答案

不幸的是,添加新的约束并没有在原来的 CP 求解器中实现。并且此求解器已弃用,取而代之的是 CP-SAT 求解器。新求解器不支持添加新约束,但由于支持 bool 约束和执行字面量,因此具有更具表现力的建模语言。

参见:

无论如何,这并不能解决你问题的基础。您不能在 CP 求解器(原始或 CP-SAT)中嵌入任何任意代码。

一种方法是预先计算所有可能的分配,并将其添加到 AllowedAssignment 约束中。

关于python - 我自己的约束谷歌或工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47145729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com