(一):食品公司的优化问题

题目:

  某食品公司生产两种点心①和②,采用采用原料A和B。已知生产每盒点心①和②时消耗的原料数及原料单价、月供应量及两种点心的批发价如下表所示:
  据对市场估计,②点心月销量不超过2000盒,且其销量不超过点心①1000盒。要求计算使销售收人最大的计划安排。
模型建立:

设①点心的销量为 x 1 x_1 x1盒,②点心的销量为 x 2 x_2 x2盒,设销售收入为 S S S,那么可得 S = ( 30 x 1 + 20 x 2 ) − 9.9 ( x 1 + 2 x 2 ) + 6.6 ( 2 x 1 + x 2 ) = 6.9 x 1 − 6.4 x 2 S=(30x_1+20x_2)-9.9(x_1+2x_2)+6.6(2x_1+x_2)\\=6.9x_1-6.4x_2 S=(30x1+20x2)−9.9(x1+2x2)+6.6(2x1+x2)=6.9x1−6.4x2

为了使销售收入最大,所以目标函数就是 m a x    S = 6.9 x 1 − 6.4 x 2 max\,\,S=6.9x_1-6.4x_2 maxS=6.9x1−6.4x2

约束条件:

根据表中数据可得原料的供应量约束为
x 1 + 2 x 2 ⩽ 6000 2 x 1 + x 2 ⩽ 8000 x_1+2x_2\leqslant6000 \\2x_1+x_2\leqslant8000 x1+2x2⩽60002x1+x2⩽8000

根据两种点心的销量关系可得销量约束为
x 2 ⩽ 2000 x 2 − x 1 ⩽ 1000 x_2\leqslant2000\\x_2-x_1\leqslant1000 x2⩽2000x2−x1⩽1000

综上可得总的约束条件为
s . t . { x 1 + 2 x 2 ⩽ 6000 2 x 1 + x 2 ⩽ 8000 x 2 ⩽ 2000 − x 1 + x 2 ⩽ 1000 x 1 , x 2 ⩾ 0 s.t.\left\{ \begin{array}{c} x_1+2x_2\leqslant 6000\\ 2x_1+x_2\leqslant 8000\\ x_2\leqslant 2000\\ -x_1+x_2\leqslant 1000\\ x_1,x_2\geqslant 0\\ \end{array} \right. s.t.⎩ ⎨ ⎧x1+2x2⩽60002x1+x2⩽8000x2⩽2000−x1+x2⩽1000x1,x2⩾0
模型求解:

下面我们使用两种方法针对上述问题进行求解,一种是利用CPLEX求解器进行求解,还有一种是利用matlab自带的intlinprog求解(由于该问题是整数规划,所以使用intlinprog)。

CPLEX求解代码:

matlab 复制代码
%CPLEX求解
clc,clear,close
tic
x=intvar(2,1);
s=6.9*x(1)-6.4*x(2);
c=[x(1)+2*x(2)<=6000
    2*x(1)+x(2)<=8000 
    x(1)<=2000
    -x(1)+x(2)<=1000
    x(1),x(2)>=0];
options=sdpsettings('solver','cplex','verbose',2);
result=solvesdp(c,-s,options);%由于本题是求最大值,所以加一个负号
if result.problem==0
    xresult=value(x)
    sresult=value(s)
else
    disp('求解错误')
end
toc;

求解结果:
Intlinprog求解代码:

matlab 复制代码
%intlinprog求解
clc,clear
s=[6.9;-6.4];
intcon=2;
a=[1,2;2,1;0,1;-1,1];
b=[6000;8000;2000;1000];
lb=zeros(2,1);
ub=[2000;2000];
[x,y]=intlinprog(-s,intcon,a,b,[],[],lb,ub)
s=-y %由于intlinprog标准形式是求最小值,所以此处取相反数最大值。

求解结果:
对比两种结果发现:求解结果一致。

所以当点心①销售2000盒,点心②销售0盒,最大销售收入为13800元。

相关推荐
Funing713 小时前
STM32 电机动态 PI 控制:从编码器反馈、增量式 PI 到 Matlab 参数拟合与 PWM 输出
stm32·嵌入式硬件·matlab·pi控制算法
zq_638915 小时前
利用 MATLAB 调用 STK Object Model COM 显示雷达受干扰前后探测范围的变化
开发语言·matlab
zq_638917 小时前
ObjectModel_diagram.pdf 文档详细总结
开发语言·matlab
民乐团扒谱机18 小时前
【微科普】压缩感知(CS):违反了奈奎斯特采样定理?不先采集也能还原信号?大白话讲透稀疏采样、L1重建与OMP,一文吃透附代码
python·神经网络·线性代数·算法·数学建模·压缩感知·奈奎斯特
88号技师18 小时前
2026年SCI-分数牛顿衍生优化算法Fractional Newton-derived optimizer-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
机器学习之心20 小时前
LSTM神经网络+SHAP可解释性分析+NSGA-II工艺参数优化,从预测到可解释性再到多目标优化的全流程实战,MATLAB代码
神经网络·matlab·lstm·shap可解释性分析·nsga-ii工艺参数优化
Logintern092 天前
[Matlab] 遗传算法求解TSP入门
开发语言·matlab
我爱C编程2 天前
基于BP译码和用户RMA解码的LT码实现及度分布设计matlab实现和误码仿真
matlab·bp译码·rma解码·lt码·度分布
民乐团扒谱机3 天前
【微实验】物理启发神经网络(PINN):当AI学会遵守物理定律(附matlab代码))
人工智能·神经网络·matlab
NoteStream3 天前
MATLAB绘制带置信区间的折线散点图(科研绘图模板)
开发语言·matlab