OR-工具 CP SAT 条件约束

问题描述 投票:0回答:1

在我试图解决的问题中,我有一个长度为 n 的布尔变量列表,称为 x。给定一个整数 m 其中 m < n,我需要定义这两个约束:

  • 如果
    LinearExpr.Sum(x[m:]) > 0
    那么
    LinearExpr.Sum(x[:m]) == 0
  • 如果
    LinearExpr.Sum(x[:m]) > 0
    那么
    LinearExpr.Sum(x[m:]) == 0

根据我所读到的内容,我应该使用以下一项或多项:

然而,经过几个小时的尝试,我还是无法弄清楚。非常感谢任何解决此问题的帮助!

python boolean-logic or-tools constraint-programming cp-sat
1个回答
0
投票
  model.add_at_most_one(x)

如果我没记错的话,这是唯一可行的情况。

© www.soinside.com 2019 - 2024. All rights reserved.