问题描述
所以对于一项作业,我必须找到使绝对差异之和最小的时间表 在每个时间间隔内通过解决 整数线性优化模型。
因此,我将日程安排建模为固定的覆盖问题,并创建了一个具有所需工人数的行和一个具有实际工人数的行。
我将两行之间的绝对差之和作为对象,并尝试将其最小化。
=SUM(ABS(C39:Z39-C33:Z33))
但是我得到错误“ LP解算器所需的线性条件不满足”,并且由于线性报告 是,我不知道为什么。
* X_i是选择换档的次数。
解决方法
ABS()不是线性函数。谁知道excel为什么不这样说呢?它的内部求解器没有很高的声誉。
您可能会尝试将OBJ功能更改为某些罚款*未发现的作业,并查看是否可以启动和运行模式。然后也许从可用数量中减去使用过的工人,加总并为未使用的工人增加罚款....
,@AirSquid已经指出,绝对值不是线性函数。但是,在您的上下文中可以线性化它。你可以给我们
最小化abs(sum x_i)
等同于
最小化sum a_i
,其中a_i
是具有约束a_i>=x_i,a_i>=-x_i
的新变量。