将 CP-SAT 求解器用于非线性 objective 函数

Using CP-SAT Solver for non-linear objective function

我正在尝试对一些变量使用 CP-SAT 求解器:xy。我想在一些约束条件下最大化 x**2-y*x 形式的 objective 函数。我得到

TypeError: unsupported operand type(s) for ** or pow(): 'IntVar' and 'int'

错误信息。我假设我不能对 CP-SAT 使用非线性 objective 函数是否正确,因为我找不到任何使用非线性 objectives 的文档或示例?或者有什么办法可以做到这一点?

您必须使用 AddMultiplicationEquality(x2, [x, x])

创建一个中间变量