线性规化
引言
数学规化是运筹学的一个重要分支,而线性规化(Linear Programming,LP) 则是数学规化的一个重要分支。在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规化的使用范围更加广泛。
线性规化问题
线性规化问题是在一组线性约束条件的限制下,求线性目标函数的最大或最小值的问题。
一般线性规化的数学标准型:
可行解,最优解
可行域
线性规化的Matlab求解
Matlab中规定线性规化的标准形式为:
式中:f,x,b, beq,lb,ub为列向量,其中 f 价值向量,b 资源向量;A,aeq为矩阵。
Matlab中求解线性规划的命令为:
[x,fval]=linprog(f,A,b)
[x,fval]=linprog(f,A,b,Aeq,beq)
[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)
x返回决策向量的取值,fval返回目标函数的最优值
思考
线性规化并不难,难的是将问题进行转化。求解时注意要将其化为标准形式再用Matlab求解,也可以用Lingo。
可能在利用现有资源来安排生产,取得最大经济效益问题中使用。
e.g.投资的收益与风险
整数规化
概论
数学规划中的变量(部分或全部)限制为整数时,成为整数规化。若在线性规划中,变量限制为整数,则称为整数线性规划。
求解方法分类:
- 分支界定——可求纯或混合整数线性规划
- 割平面法——可求纯或混合整数线性规划
- 隐枚举法——求解“0-1”整数规化
- 匈牙利法——解决指派问题(“0-1”规化特殊情形)
- 蒙特卡罗法——求解各种类型问题
0-1整数规化
相互排斥的约束条件
关于固定费用的问题
指派问题
蒙特卡洛法(随机取样法)
计算机随机模拟方法
求解
Matlab
[x,faval]=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)
Lingo会更方便一点,Matlab必须要把所有的决策向量转化为以为决策向量。