【问题标题】:Using CP-SAT Solver for non-linear objective function将 CP-SAT Solver 用于非线性目标函数
【发布时间】:2019-08-16 12:02:36
【问题描述】:

我正在尝试使用带有一些变量的 CP-SAT 求解器:x,y。我想最大化x**2-y*x 形式的目标函数,并带有一些约束。我来了

TypeError: ** 或 pow() 不支持的操作数类型:'IntVar' 和 'int'

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

【问题讨论】:

    标签: python or-tools cp-sat-solver


    【解决方案1】:

    您必须使用 AddMultiplicationEquality(x2, [x, x]) 创建一个中间变量

    【讨论】:

    • 现在好像是 AddProdEquality。
    • 我认为它已被弃用,取而代之的是 MultiplicationEq
    • 确实,不推荐使用的 API 是 AddMultiplicationEquality
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多