You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google OR-Tools报BoundedLinearExpr布尔值评估不支持错误如何解决

OR-Tools 排班约束报错解决方案

问题根因

该报错是OR-Tools v9.7及以上版本的非兼容更新导致的:旧版本CP-SAT解析器支持直接在model.Add()中传入a <= b <= c形式的链式不等式,新版本不再支持将带上下界的线性表达式(BoundedLinearExpr)直接作为布尔值传入约束方法,因此触发NotImplementedError。
你部署在谷歌云VM的环境应该是开启了依赖自动更新,最近两周OR-Tools推送了v9.7+正式版,云端环境更新后触发报错;本地安装的是v9.6及以下的旧版本,所以运行正常。

处理方案

你可以二选一:

  • 方案1:固定依赖版本,无需修改业务代码
    在项目的依赖声明文件(如requirements.txt)中指定OR-Tools版本低于9.7即可,示例:
    ortools==9.6.2534
    
    重新部署云端环境后即可恢复正常运行。
  • 方案2:修改代码适配所有版本,更稳妥
    将你写的链式不等式约束拆为两条独立的约束即可,修改后的代码如下:
    work_sum = sum(work[k, s, d] for s in range(1, 4) for d in range(i, j))
    model.Add(work_sum >= min_hour)
    model.Add(work_sum <= max_hour)
    
    该写法兼容所有已发布的OR-Tools版本,不会再触发该报错。

不需要等待官方修复,这是版本更新的规则调整,不属于功能缺陷。


内容的提问来源于stack exchange,提问作者Michiel V.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 19:15:04