线性规划求解问题
一共有6个人,拥有1200的资源。做A事件一个人消耗240的资源获得收益40,做B事件一个人消耗120的资源获得收益30.求如何分配获得最大收益。
数学模型建立
Zmax=40x1+30x2 (Zmax为最大收益,x1为A事件人数,x2为B事件人数)
约束条件(S·T):
X1+X2<=6
240X1+120X2<=1200
X1>=1,X2>=1
构建线性代数矩阵模型使用matlab进行求解
matlab内置函数Linprog(Linprog为求最小值函数,将最大值问题加负号转化为最小值问题进行求解)
f | 目标函数的系数列向量 |
---|---|
A,b | 不等式约束条件的变量系数矩阵和常规项矩阵 |
Aeq,Beq | 等式约束条件的系数矩阵和常规项矩阵 |
lb,ub | 决策变量的最小取值和最大取值 |
[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)
其中x为最优解变量取值,fval为最优值
% 六个人,1200的资源,完成A获得40收益消耗240,完成B获得30收益消耗120,求最大收益
f=[-40,-30];
a=[1,1;-1,0;0,-1;240,120];
b=[6,;-1;-1;1200];
[x,fval]=linprog(f,a,b);
fprintf('最优解为:%d',-fval);
数学解题思维:二元方程,在四个约束条件下的函数极值,可采用拉格朗日乘数法等