我目前正在使用Google OR工具CP—SAT求解平面化问题.我使用IntVars作为日期的表示.所有这些国际文书都在一本字典里.我有几个约束可以正常工作,但**我想强制求解器有大约2/3的Intvars低于400. **

我试着用BoolVars解决这个问题,但没有成功,我用完了如何强制2/3的值低于400的 idea . 有人可以想到一个解决方案吗?

推荐答案

我不确定这是一个好的商业规则,

反正

  int_vars = [...]
  bool_vars = []
  for v in int_vars:
    is_less_than_400 = model.new_bool_var('')
    model.add(v <= 400).only_enforce_if(is_less_than_400)
    model.add(v > 400).only_enforce_if(~is_less_than_400)
    bool_vars.append(is_less_than_400)

  threshold = len(bool_var) * 2 // 3
  model.add(sum(bool_vars) <= threshold)

Python相关问答推荐

我必须将Sigmoid函数与r2值的两种类型的数据集(每种6个数据集)进行匹配,然后绘制匹配函数的求导.我会犯错

Select 用a和i标签包裹的复选框?

时间序列分解

根据另一列中的nan重置值后重新加权Pandas列

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

使用groupby Pandas的一些操作

ODE集成中如何终止solve_ivp的无限运行

使用Python更新字典中的值

Python列表不会在条件while循环中正确随机化'

如何合并两个列表,并获得每个索引值最高的列表名称?

使用Python从rotowire中抓取MLB每日阵容

Python—转换日期:价目表到新行

如何使用OpenGL使球体遵循Python中的八样路径?

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?

python sklearn ValueError:使用序列设置数组元素

Pandas—堆栈多索引头,但不包括第一列

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

应用指定的规则构建数组

使用SQLAlchemy从多线程Python应用程序在postgr中插入多行的最佳方法是什么?'

将数据从一个单元格保存到Jupyter笔记本中的下一个单元格