MATLAB——求解最优配料问题

编程入门 行业动态 更新时间:2024-10-11 13:26:48

MATLAB——求解<a href=https://www.elefans.com/category/jswz/34/1768745.html style=最优配料问题"/>

MATLAB——求解最优配料问题

配料问题


一、配料问题介绍

         配料问题一般是研究通过若干种原料按照一定的比例,生产成若干种产品使其成本最小或利润最大。

某工厂要用三种原料1、2、3 混合调配出三种不同规格的产品甲、乙、丙产品的规格要求、产品的单价、每天能供应的原材料数量及原材料单价如下表所示.该厂应如安排生产,能使利润最大?

将该问题整理成表格为

解:设表示第 i (我们分别用1,2,3 表示产品甲、乙、丙)种产品中原材料 j 的含量。例如,就表示产品乙中第 3 种原材料的含量,我们的目标是要使利润最大,利润的计算公式如下:

利润=(销售单价×该产品的数量) - (每种原料单价×使用原料数量)

故得此问题的数学模型整理如下:

(1)linprog求解
% 定义目标函数系数向量f = [15; -25; -15; 30; -10; 0; 40; 0; 10];% 定义不等式约束矩阵和右侧向量A = [-0.5, +0.5, 0.5, 0, 0, 0, 0, 0, 0;-0.25, 0.75, -0.25, 0, 0, 0, 0, 0, 0;0, 0, 0, -0.75, 0.25, 0.25, 0, 0, 0;0, 0, 0, -0.5, 0.5, -0.5, 0, 0, 0;1, 0, 0, 1, 0, 0, 1, 0, 0;0, 1, 0, 0, 1, 0, 0, 1, 0;0, 0, 1, 0, 0, 1, 0, 0, 1];b = [0; 0; 0; 0; 100; 100; 60];% 定义变量下界lb = zeros(9, 1);% 使用线性规划函数求解[x, z] = linprog(f, A, b, [], [], lb);% 输出结果disp('最优解:');disp(x);disp('最优目标函数值:');disp(-z);
(2)solve求解
x = optimvar('x',3,3,'LowerBound',0);%创建优化对象prob,使用optimproblem函数进行优化;prob = optimproblem('ObjectiveSense','max');%输入约束系数perprice=[-15 25 15;-30 10 0;-40 0 -10];ST1=[0.5 -0.5 -0.5];ST2=[-0.25 0.75 -0.25];ST3=[0.75 -0.25 -0.25];ST4=[-0.5 0.5 -0.5];supply=[100 100 60];%创建目标函数prob.Objective = sum(perprice.*x,"all");%创建约束条件prob.Constraints.cons1 = sum(ST1.*x(1,:))>=0;prob.Constraints.cons2 = sum(ST2.*x(1,:))<=0;prob.Constraints.cons3 = sum(ST3.*x(2,:))>=0;prob.Constraints.cons4 = sum(ST4.*x(2,:))<=0;prob.Constraints.cons5 = sum(x,1)<=supply;%显示优化问题对象prob的详细信息;计算符合目标函数及约束条件下的最优解show(prob)sol = solve(prob)最优解sol.x最优值%输出最优解下的最优值,并将结果赋予给valval = evaluate(prob.Objective,sol)

更多推荐

MATLAB——求解最优配料问题

本文发布于:2024-03-08 18:21:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1721793.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最优   MATLAB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!