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