5.2.1. 混合整数线性规划建模

混合整数线性规划(Mixed Integer Linear Program,MILP)问题可以用以下数学形式表示:

mincf+cTxs.t.lrAxur,lcxuc,xkZ
其中
  • xRn 是决策变量,

  • lcRnucRn 分别为 x 的下界和上界,

  • cfR 是目标函数中的常量,

  • cRn 是目标函数中的系数向量,

  • ARm×n 是约束矩阵,

  • lrRmurRm 分别为是约束的下界和上界,

  • xkZ 是指 x 变量中部分元素为整数的约束。

使用 MindOpt 的步骤为:

  1. 创建优化模型;

  2. 输入优化问题并设置算法参数;

  3. 求解优化问题并获取解。

Note

MindOpt 仅存储约束矩阵 A 中的 非零元;因此,在建模时只需要输入 非零元 在约束矩阵中的 行列位置 (row/column index) 以及对应的 非零数值 (nonzero value)

5.2.1.1. 混合整数线性规划问题示例

在下文中,我们将考虑下列混合整数线性规划问题:

min1x0+2x1+1x2+1x3s.t.1x0+1x1+2x2+3x311x01x2+6x3=1
0x0100x10x20x3x0x1x2Z

我们将展示如何使用 MindOpt 建模和求解这个优化问题。混合整数线性规划与线性规划的区别在于,添加变量时将属性设为整数或者0-1二进制。

我们将分别给出不同编程语言下的示例,来展示如何使用 MindOpt 建模和求解这个优化问题。