NSP中最小化的绝对差异

时间:2019-03-09 21:14:19

标签: python optimization constraint-programming or-tools

我是Python和约束编程的新手,我敢肯定有些简单/愚蠢的东西会引发错误。

我正在尝试使相对于预测的项目盈余最小化(尝试使预测尽可能接近)。要做到这一点,看来每天查看绝对差异是一个好的开始。 绝对部分是我遇到的困难。

对于背景:

  • items是每个项目,日期和时间的BoolVar
  • forecast是每天和每个时间段的数组

我的最小化功能如下:

model.Minimize(sum(abs(sum(items[(i, d, t)] for i in all_items) - forecast[d][t]) for d in all_days for t in all_timeblocks))

运行此命令时,出现以下错误:

TypeError: bad operand type for abs(): '_SumArray'

任何帮助/输入将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

abs,min和max是求解器无法理解的python构造。

您需要使用

model.AddAbsEquality(target_var, [x1, .. xn])