整数线性规划解决的是自变量在一定的线性约束条件下,使得线性目标函数求得最大值或者最小值的问题。其中自变量只能取整数。特别地,当自变量只能取0或者1时,称之为 0-1 整数规划问题。
当目标函数为最小值时,上述问题可以写成如下形式:
其中
F线性目标函数系数向量
X 为决策变量向量
A 为线性不等式系数矩阵
B为线性不等式右端常数向量
Aeq 为线性等式系数矩阵
Beq 为线性等式右端常数向量
LB为决策变量下界向量
UB 为决策变量上界向量
Matlab模型代码
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = intlinprog(F,intcon,A,B,Aeq,Beq,LB,UB) % 统一形式
输入变量
- F为目标函数系数向量
- intcon为整数变量的地址
- A 为不等式约束系数矩阵(注意默认不等式方向为小于等于,若为大于等于,需要将其取相反数)
- B 为不等式右端常数向量(注意默认不等式方向为小于等于,若为大于等于,需要将其取相反数)
- Aeq 为等式约束系数矩阵
- Beq 为等式右端常数向量
- LB 为决策变量下界向量
- UB为决策变量上界向量
在调用时,输入参数不存在时,可以将其输入用 [] 空矩阵表示。
输出变量
- X 为最优解
- FVAL 为最优目标值
- EXITFLAG 为运行结束标志,当等于1时,表示程序收敛于解 X;当等于0时,表示程序运行次数到达最大;当小于0时,说明情况较多
- OUTPUT 为程序迭代次数
- LAMBDA 为解X相关的Largrange乘子和影子价格