MILP(混合整数线性规划)
用于在给定可行域内,求解线性约束下线性目标函数的最优解及最优值。
MILP全称为Mixed-integer linear programming,即混合整数线性规划,指目标函数和约束条件均为线性,部分决策变量限制为整数的数学规划问题。具体来说,其约束条件支持等式约束及不等式约束;变量类型包括 0-1变量、整型变量、实数型变量。
混合整数线性规划(MILP)的设置参数包括:
#1)目标函数:#
min/max(<表达式>);
#2)约束条件:#
<bool表达式1>;
<bool表达式2>;
...
#3)变量声明:#
<变量名1>:<变量类型1>,
<变量名2>:<变量类型2>,
...
其中变量类型包括以下三类:
变量类型 | 含义 |
---|---|
1 | 0-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