MILP(混合整数线性规划)

用于在给定可行域内,求解线性约束下线性目标函数的最优解及最优值。

MILP全称为Mixed-integer linear programming,即混合整数线性规划,指目标函数和约束条件均为线性,部分决策变量限制为整数的数学规划问题。具体来说,其约束条件支持等式约束及不等式约束;变量类型包括 0-1变量、整型变量、实数型变量。

混合整数线性规划(MILP)的设置参数包括:

#1)目标函数:# min/max(<表达式>); #2)约束条件:# <bool表达式1>; <bool表达式2>; ... #3)变量声明:# <变量名1>:<变量类型1>, <变量名2>:<变量类型2>, ...

其中变量类型包括以下三类:

变量类型含义
10-1二进制变量
2整型变量
3实数型变量

实际列写时,按顺序写下目标函数、约束条件、变量声明的标准格式式子即可,上例中##间的备注内容不必写入。

注意一些写法:

  • 约束,相等应当写作“==”。
  • 最后一个变量结尾不加逗号。
  • 分号用于区分目标函数和各条约束。如果不写分号,则需要严格换行,且变量需要写在一行里。

例1: 输入为:

max((5*1)*x1+3*x2+2*x3+(10-3)*x4+4*x5); 2*x1+(2*4)*x1+4*x3+2*x4+max(1,5)*x5<=5*2; x1:1,x2:1,x3:1,x4:1,x5:1

输出为:

x1 : 0 x2 : 0.9999999999999999 x3 : 0 x4 : 1 x5 : 1

例2:输入为:

max(x+y) x<=3 y<=2 x:3,y:3

输出为:

x : 3 y : 2