在调用整数规划求解器时,约束条件必须是线性的,这时候怎么表达 呢 ?
在整数规划中: 就意味着
或者
. 但最优化工具不允许有这种“或”的操作啊。它只能处理线性的目标函数和约束条件。
这就是工程问题跟科学问题之间的区别。我们想要利用已有的工具,就要想方设法去满足它的应用条件。
这里给出 Big-M 转换技巧。
在整数规划中:
等价于以下以下两个不线性不等式约束
其中 M 是一个非常大的常数,可以根据问题的实际来设置。 是引入的布尔变量。
如何理解呢?
当 时,上面的不等式等价于
由于M很大,第二个不等式肯定会满足,所以相当于没有。同理,当 时,上面的不等式等价于
而 要不就等于1,要不就等于0,这就等同于
或者
。
在工程问题中,通过引入大数M和布尔变量b,就实现了约束条件线性化。
网友评论