目录
方法简介
解决的是优化类问题,有限资源,实现最大收益/最小花销
且所有变量间的关系都是线性的
适用于生产、投资、运输等问题
简单例题
某机床厂生产甲、乙两种机床,每台销售后的利润分别为 4000 元与 3000 元。 生产甲机床需用 A、B 机器加工,加工时间分别为每台 2 小时和 1 小时;生产乙机床 需用 A、B、C 三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时 数分别为 A 机器 10 小时、B 机器 8 小时和C 机器 7 小时,问该厂应生产甲、乙机床各 几台,才能使总利润最大?
思路分析
这里变量 1 2 x , x 称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式 是问题的约束条件,记为 s.t.(即 subject to)。由于上面的目标函数及约束条件均为线性 函数,故被称为线性规划问题。
标准形式
线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以 是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab 中规定线性 规划的标准形式为
其中 c 和 x 为 n 维列向量, A 、 Aeq 为适当维数的矩阵,b 、beq 为适当维数的列向量。
代码实现
clc,clear;
f=[-4,-3];
A=[2,1;1,1;0,1];
b=[10;8;7];
lb=zeros(2,1)
[x,fval]=linprog(f,A,b,[],[],lb);
x,fval=-fval
找到最优解
x = 2×1 2 6
fval = 26