一、线性规划
1.1 线性规划简介
线性规划(Linear programming,LP),是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,是辅助人们进行科学管理的一种数学方法,是研究线性约束条件下线性目标函数的极值问题的数学理论和方法。
1.2线性规划在数学建模中使用的范围
当生产安排、投资收益、销售运输、车辆安排等题型中出现如何安排/分配、尽量多(少)、利润最大、最合理等词汇时,往往就需要使用线性规划的方法解决问题。
1.3建立线性规划模型的一般步骤
1.分析问题,找出决策变量
2.根据题目所给条件,找出决策变量必须满足的一组线性等式或者不等式的约束,即为约束条件
3.根据问题的目标,构造关于决策变量的一个线性函数,即为目标函数
1.4线性规划的标准形式
如同上式的情况称为线性规划的标准型
可行解
满足约束条件(2)的解,称为线性规划问题的可行解,使目标函数(1)达到最大值的可行解称为最优解
1.5线性规划的matlab实现
在matlab中要求线性规划必须将max化为min的形式,对max式子两侧同乘以-1即可得到min的表达式。
f | 目标函数的系数列向量 |
A,b | 不等式约束条件的变系数矩阵和常系数矩阵 |
Aeq ,beq | 等式约束条件的系数矩阵和常系数矩阵 |
lb ,ub | 决策变量的最小及最大取值 |
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)
二、例题
求解以下线性规划模型
首先将问题转化为求解器的标准格式,
f=[-3;1;1];
a=[1,-2,1;
4,-1,-2];
b=[11;
-3];
aeq=[-2,0,1];
beq=1;
lb=zeros(3,1);%表示下界是一个三行一列的数组且全为0
[x,fval]=linprog(f,a,b,aeq,beq,lb);
y=-fval;%将最小值转化为最大值
disp(x);%输出各个x的取值
disp(y);%输出最大值