将 CP-SAT Solver 用于非线性目标函数
Posted
技术标签:
【中文标题】将 CP-SAT Solver 用于非线性目标函数【英文标题】:Using CP-SAT Solver for non-linear objective function 【发布时间】:2019-08-16 12:02:36 【问题描述】:我正在尝试使用带有一些变量的 CP-SAT 求解器:x
,y
。我想最大化x**2-y*x
形式的目标函数,并带有一些约束。我来了
TypeError: ** 或 pow() 不支持的操作数类型:'IntVar' 和 'int'
错误消息。我是否正确假设我不能对 CP-SAT 使用非线性目标函数,因为我找不到任何使用非线性目标的文档或示例?或者有什么方法可以做到这一点?
【问题讨论】:
【参考方案1】:您必须使用 AddMultiplicationEquality(x2, [x, x]) 创建一个中间变量
【讨论】:
现在好像是 AddProdEquality。 我认为它已被弃用,取而代之的是 MultiplicationEq 确实,不推荐使用的 API 是 AddMultiplicationEquality以上是关于将 CP-SAT Solver 用于非线性目标函数的主要内容,如果未能解决你的问题,请参考以下文章