目录

  • 奶制品的生产销售计划一 (粗加工)
    • 1. 制订生产计划, 使每天获利最大
    • 2. 35 元可买到 1 桶牛奶, 买吗? 若买, 每天最多买多少?
    • 3. 可聘用临时工人,付出的工资最多是每小时几元?
    • 4. A1A_1A1​的获利增加到 30 元/kg, 应否改变生产计划?
  • 奶制品的生产销售计划二 (深加工)
    • 1. 制订生产计划, 使每天净利润最大
    • 2. 30 元可增加 1 桶牛奶, 3 元可增加 1 h 时间, 应否投资?
    • 3. 现投资 150 元, 可赚回多少?
    • 4. B1,B2B_1, B_2B1​,B2​ 的获利经常有 10% 的波动, 对计划有无影响?
    • 5. 每天销售 10 kg A1A_1A1​ 的合同必须满足, 对利润有什么影响?

奶制品的生产销售计划一 (粗加工)

1桶牛奶{12h⟶3kgA1⟶获利 24元/kg8h⟶4kgA2⟶获利 16元/kg1 \ \text{桶牛奶} \begin{cases} 12 \ \mathrm{h} \longrightarrow 3 \ \mathrm{kg} \ A_1 \longrightarrow \text { 获利 } 24 \text { 元} / \mathrm{kg}\\ 8 \ \mathrm{h} \longrightarrow 4 \ \mathrm{kg} \ A_2 \longrightarrow \text { 获利 } 16 \text { 元} / \mathrm{kg}\\ \end{cases} 1 桶牛奶{12 h⟶3 kg A1​⟶ 获利 24 元/kg8 h⟶4 kg A2​⟶ 获利 16 元/kg​

每天 50 桶牛奶, 时间 480 h, 至多加工 100 kg A1A_1A1​.

  1. 制订生产计划, 使每天获利最大;
  2. 35 元可买到 1 桶牛奶, 买吗? 若买, 每天最多买多少?
  3. 可聘用临时工人,付出的工资最多是每小时几元?
  4. A1A_1A1​ 的获利增加到 30 元/kg, 应否改变生产计划?

1. 制订生产计划, 使每天获利最大

设 x1x_1x1​ 桶生产 A1A_1A1​, x2x_2x2​ 桶生产 A2A_2A2​, 建立线性规划模型
max⁡z=72x1+64x2s.t.{(11128)⋅(x1x2)⩽(50480)0⩽(x1x2)⩽(10003+∞)\begin{gathered} \max z=72 x_{1}+64 x_{2} \\ s.t. \begin{cases} \left( \begin{matrix} 1& 1\\ 12& 8\\ \end{matrix} \right) \cdot \left( \begin{array}{c} x_1\\ x_2\\ \end{array} \right) \leqslant \left( \begin{array}{c} 50\\ 480\\ \end{array} \right) \\ \mathbf{0} \leqslant \left( \begin{array}{c} x_1\\ x_2\\ \end{array} \right) \leqslant \left( \begin{array}{c} \frac{1000}{3}\\ + \infty \\ \end{array} \right) \end{cases} \end{gathered} maxz=72x1​+64x2​s.t.⎩⎪⎪⎨⎪⎪⎧​(112​18​)⋅(x1​x2​​)⩽(50480​)0⩽(x1​x2​​)⩽(31000​+∞​)​​

用 scipy.optimize.linprog 函数求解

from scipy.optimize import linprog
c=[-72, -64]    #目标向量
A=[[1, 1],[12, 8]]; b=[[50],[480]]
bound=((0,100/3.0),(0,None))
res=linprog(c,A,b,None,None,bound,method='simplex')
print('最优值:',res.fun)
print('最优解:',res.x)
最优值: -3360.0
最优解: [20. 30.]

即最优解为 x1=20,x2=30x_{1}=20, x_{2}=30x1​=20,x2​=30, 最大收益为 3360 元

2. 35 元可买到 1 桶牛奶, 买吗? 若买, 每天最多买多少?

设买 x3x_3x3​ 桶, 模型变为

max⁡z=72x1+64x2−35x3s.t.{(11−11280)⋅(x1x2x3)⩽(50480)0⩽(x1x2x3)⩽(10003+∞+∞)\begin{gathered} \max z=72 x_{1}+64 x_{2}-35 x_3 \\ s.t. \begin{cases} \left( \begin{matrix} 1& 1& -1\\ 12& 8& 0\\ \end{matrix} \right) \cdot \left( \begin{array}{c} x_1\\ x_2\\ x_3\\ \end{array} \right) \leqslant \left( \begin{array}{c} 50\\ 480\\ \end{array} \right) \\ \mathbf{0} \leqslant \left( \begin{array}{c} x_1\\ x_2\\ x_3\\ \end{array} \right) \leqslant \left( \begin{array}{c} \frac{1000}{3}\\ + \infty \\ + \infty \\ \end{array} \right) \end{cases} \end{gathered} maxz=72x1​+64x2​−35x3​s.t.⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​(112​18​−10​)⋅⎝⎛​x1​x2​x3​​⎠⎞​⩽(50480​)0⩽⎝⎛​x1​x2​x3​​⎠⎞​⩽⎝⎛​31000​+∞+∞​⎠⎞​​​

from scipy.optimize import linprog
c=[-72, -64, 35]    #目标向量
A =[[1, 1, -1],[12, 8, 0]]; b=[[50],[480]]
bound=((0,100/3.0),(0,None),(0,None))
res=linprog(c,A,b,None,None,bound,method='simplex')
print('最优值:',res.fun)
print('最优解:',res.x)
最优值: -3490.0
最优解: [ 0. 60. 10.]

所以应该买 10 桶, 最大收益 3490 元

3. 可聘用临时工人,付出的工资最多是每小时几元?

计算间增加 1 单位的利润增长

from scipy.optimize import linprog
c=[-72, -64]    #目标向量
A =[[1, 1],[12, 8]]
b1=[[50],[480]]
bound=((0,100/3.0),(0,None))
res1=linprog(c,A,b1,None,None,bound,method='simplex')
b2=[[50],[480+1]]
bound=((0,100/3.0),(0,None))
res2=linprog(c,A,b2,None,None,bound,method='simplex')
print(res1.fun-res2.fun)
2.0

即时间增加 1 单位, 利润增长 2 元, 所以聘用临时工人付出的工资最多每小时 2 元.

4. A1A_1A1​的获利增加到 30 元/kg, 应否改变生产计划?

将目标函数变为 max⁡z=90x1+64x2\max z=90 x_{1}+64 x_{2}maxz=90x1​+64x2​ 再次求解

from scipy.optimize import linprog
c=[-90, -64]    #目标向量
A=[[1, 1],[12, 8]]; b=[[50],[480]]
bound=((0,100/3.0),(0,None))
res=linprog(c,A,b,None,None,bound,method='simplex')
print('最优值:',res.fun)
print('最优解:',res.x)
最优值: -3720.0
最优解: [20. 30.]

最优解仍为 x1=20x_{1}=20x1​=20, x2=30x_{2}=30x2​=30, 无需改变生产计划.

奶制品的生产销售计划二 (深加工)

1桶牛奶→{→12h3kgA1→{获利 24元/kg→1kg,2h,3元0.8kgB1→获利 44元 /kg→8h4kgA2→{获利 16元/kg→1kg,2h,3元0.75kgB2→获利 32元 /kg1 \ \text{桶牛奶} \rightarrow \begin{cases} \xrightarrow{12 \ \mathrm{h}} 3 \ \mathrm{kg} \ A_1 \rightarrow \begin{cases} \text { 获利 } 24 \text {元} / \mathrm{kg}\\ \xrightarrow{1 \ \mathrm{kg}, \ 2 \ \mathrm{h}, \ 3 \text{元}}0.8 \ \mathrm{kg} \ {B}_{1} \rightarrow \text { 获利 } 44 \text { 元 } / \mathrm{kg} \end{cases} \\ \xrightarrow{8 \ \mathrm{h}} 4 \ \mathrm{kg} \ A_2 \rightarrow \begin{cases} \text { 获利 } 16 \text {元} / \mathrm{kg}\\ \xrightarrow{1 \ \mathrm{kg}, \ 2 \ \mathrm{h}, \ 3 \text{元}}0.75 \ \mathrm{kg} \ {B}_{2} \rightarrow \text { 获利 } 32 \text { 元 } / \mathrm{kg} \end{cases} \end{cases} 1 桶牛奶→⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​12 h​3 kg A1​→{ 获利 24元/kg1 kg, 2 h, 3元​0.8 kg B1​→ 获利 44 元 /kg​8 h​4 kg A2​→{ 获利 16元/kg1 kg, 2 h, 3元​0.75 kg B2​→ 获利 32 元 /kg​​

每天 50 桶牛奶, 时间 480 h, 至多加工 100 kg A1A_1A1​.

  1. 制订生产计划, 使每天净利润最大;
  2. 30 元可增加 1 桶牛奶, 3 元可增加 1 h 时间, 应否投资?
  3. 现投资 150 元, 可赚回多少?
  4. B1,B2B_1, B_2B1​,B2​ 的获利经常有 10% 的波动, 对计划有无影响?
  5. 每天销售 10 kg A1A_1A1​ 的合同必须满足, 对利润有什么影响?

1. 制订生产计划, 使每天净利润最大

设出售 x1kg⁡A1,x2kg⁡A2x_{1} \operatorname{kg} A_{1}, x_{2} \operatorname{kg} A_{2}x1​kgA1​,x2​kgA2​, x3kg⁡B1,x4kg⁡B2x_{3} \operatorname{kg} B_{1}, x_{4} \operatorname{kg} B_{2}x3​kgB1​,x4​kgB2​,. x5kg⁡A1x_{5} \operatorname{kg} A_{1}x5​kgA1​ 加工 B1B_{1}B1​, x6kg⁡A2x_{6} \operatorname{kg} A_{2}x6​kgA2​ 加工 B2B_{2}B2​

有 x5=x30.8\displaystyle{x_5=\frac{x_3}{0.8}}x5​=0.8x3​​, x6=x40.75\displaystyle{x_6=\frac{x_4}{0.75}}x6​=0.75x4​​

建立线性规划模型
max⁡z=24x1+16x2+44x3+32x4−3x5−3x6s.t.{x1+x53+x2+x64≤504(x1+x5)+2(x2+x6)+2x5+2x6≤480x1+x5≤100xi≥0\begin{gathered} \max \quad z=24 x_{1}+16 x_{2}+44 x_{3}+32 x_{4}-3 x_{5}-3 x_{6} \\ s.t. \begin{cases} \displaystyle{\frac{x_{1}+x_{5}}{3}+\frac{x_{2}+x_{6}}{4} \leq 50} \\ 4\left(x_{1}+x_{5}\right)+2\left(x_{2}+x_{6}\right)+2 x_{5}+2 x_{6} \leq 480\\ x_{1}+x_{5} \leq 100 \\ x_i \geq 0 \end{cases} \end{gathered} maxz=24x1​+16x2​+44x3​+32x4​−3x5​−3x6​s.t.⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​3x1​+x5​​+4x2​+x6​​≤504(x1​+x5​)+2(x2​+x6​)+2x5​+2x6​≤480x1​+x5​≤100xi​≥0​​

⟹\Longrightarrow⟹
max⁡z=24x1+16x2+1614x3+28x4s.t.{(1314512134215216310540)(x1x2x3x4)⩾(50480100)(x1x2x3x4)⩾0\begin{gathered} \max \quad z=24 x_{1}+16 x_{2}+\displaystyle{\frac{161}{4}} x_{3}+28 x_{4} \\ s.t.\begin{cases} \left( \begin{matrix} \frac{1}{3}& \frac{1}{4}& \frac{5}{12}& \frac{1}{3}\\ 4& 2& \frac{15}{2}& \frac{16}{3}\\ 1& 0& \frac{5}{4}& 0\\ \end{matrix} \right) \left( \begin{array}{c} x_1\\ x_2\\ x_3\\ x_4\\ \end{array} \right) \geqslant \left( \begin{array}{c} 50\\ 480\\ 100\\ \end{array} \right) \\ \left( \begin{array}{c} x_1\\ x_2\\ x_3\\ x_4\\ \end{array} \right) \geqslant \mathbf{0} \end{cases} \end{gathered} maxz=24x1​+16x2​+4161​x3​+28x4​s.t.⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​⎝⎛​31​41​41​20​125​215​45​​31​316​0​⎠⎞​⎝⎜⎜⎛​x1​x2​x3​x4​​⎠⎟⎟⎞​⩾⎝⎛​50480100​⎠⎞​⎝⎜⎜⎛​x1​x2​x3​x4​​⎠⎟⎟⎞​⩾0​​

用 scipy.optimize.linprog 函数求解

from scipy.optimize import linprog
c=[-24, -16, -161/4, -28]    #目标向量
A =[[1/3, 1/4, 5/12, 1/3],[4, 2, 15/2, 16/3],[1, 0, 5/4, 0]]
b=[[50],[480],[100]]
Lb=[0]*4; Ub=[None]*4
bound=tuple(zip(Lb, Ub))
res=linprog(c,A,b,None,None,bound,method='simplex')
print('最优值:',res.fun)
print('最优解:',res.x)
最优值: -3460.8
最优解: [  0.  168.   19.2   0. ]

每天销售 168 kg A2A_2A2​ 和 19.2 kg B1B_1B1​, 利润 3460.8 元

2. 30 元可增加 1 桶牛奶, 3 元可增加 1 h 时间, 应否投资?

# 增加牛奶
from scipy.optimize import linprog
c=[-24, -16, -161/4, -28]    #目标向量
A =[[1/3, 1/4, 5/12, 1/3],[4, 2, 15/2, 16/3],[1, 0, 5/4, 0]]
b1=[[50],[480],[100]]
Lb=[0]*4; Ub=[None]*4
bound=tuple(zip(Lb, Ub))
res1=linprog(c,A,b1,None,None,bound,method='simplex')
b2=[[50+1],[480],[100]]
res2=linprog(c,A,b2,None,None,bound,method='simplex')
print(res1.fun-res2.fun)
37.91999999999962

即增加 1 桶牛奶使利润增长 37.92 元

# 增加时间
from scipy.optimize import linprog
c=[-24, -16, -161/4, -28]    #目标向量
A =[[1/3, 1/4, 5/12, 1/3],[4, 2, 15/2, 16/3],[1, 0, 5/4, 0]]
b1=[[50],[480],[100]]
Lb=[0]*4; Ub=[None]*4
bound=tuple(zip(Lb, Ub))
res1=linprog(c,A,b1,None,None,bound,method='simplex')
b2=[[50],[480+1],[100]]
res2=linprog(c,A,b2,None,None,bound,method='simplex')
print(res1.fun-res2.fun)
3.2600000000002183

即增加 1 h 时间使利润增长 3.26 元

3. 现投资 150 元, 可赚回多少?

相同投资增加牛奶的收益 (37.9230=1.264\frac{37.92}{30}=1.2643037.92​=1.264) 大于增加时间的收益 (3.263=1.087\frac{3.26}{3}=1.08733.26​=1.087), 所以投资 150 元增加 5 桶牛奶, 可赚回 189.6 元

4. B1,B2B_1, B_2B1​,B2​ 的获利经常有 10% 的波动, 对计划有无影响?

目标函数变为 max⁡z=24x1+16x2+44(1±0.1)x3+32(1±0.1)x4−3x5−3x6\max \, z=24 x_{1}+16 x_{2}+44(1\pm 0.1) x_{3}+32(1\pm 0.1) x_{4}-3 x_{5}-3 x_{6}maxz=24x1​+16x2​+44(1±0.1)x3​+32(1±0.1)x4​−3x5​−3x6​, x5=x30.8\displaystyle{x_5=\frac{x_3}{0.8}}x5​=0.8x3​​, x6=x40.75\displaystyle{x_6=\frac{x_4}{0.75}}x6​=0.75x4​​, 分别求解

from scipy.optimize import linprog
c0=[-24, -16, -161/4, -28]    #目标向量
A =[[1/3, 1/4, 5/12, 1/3],[4, 2, 15/2, 16/3],[1, 0, 5/4, 0]]
b=[[50],[480],[100]]
Lb=[0]*4; Ub=[None]*4
bound=tuple(zip(Lb, Ub))
res0=linprog(c0,A,b,None,None,bound,method='simplex')
# B1 增加 10%
c11=[-24, -16, -893/20, -28]
res11=linprog(c11,A,b,None,None,bound,method='simplex')
# B1 减少 10%
c12=[-24, -16, -717/20, -28]
res12=linprog(c12,A,b,None,None,bound,method='simplex')
# B2 增加 10%
c21=[-24, -16, -161/4, -156/5]
res21=linprog(c21,A,b,None,None,bound,method='simplex')
# B2 减少 10%
c22=[-24, -16, -161/4, -124/5]
res22=linprog(c22,A,b,None,None,bound,method='simplex')
print('原始方案',res0.x)
print('B1增加10%',res11.x)
print('B1减少10%',res12.x)
print('B2增加10%',res21.x)
print('B2减少10%',res22.x)
原始方案 [  0.  168.   19.2   0. ]
B1增加10% [  0.  168.   19.2   0. ]
B1减少10% [  0. 160.   0.  30.]
B2增加10% [  0. 160.   0.  30.]
B2减少10% [  0.  168.   19.2   0. ]

B1B_1B1​ 获利下降 10%, B2B_2B2​ 获利上升 10%时对计划有影响, 所以浮动对计划有影响

5. 每天销售 10 kg A1A_1A1​ 的合同必须满足, 对利润有什么影响?

增加约束条件 x1≥10x_1 \geq 10x1​≥10, 再次求解

from scipy.optimize import linprog
c=[-24, -16, -161/4, -28]    #目标向量
A =[[1/3, 1/4, 5/12, 1/3],[4, 2, 15/2, 16/3],[1, 0, 5/4, 0]]
b=[[50],[480],[100]]
Lb0=[0]*4; Ub=[None]*4
Lb=[10,0,0,0]
bound0=tuple(zip(Lb0, Ub))
bound=tuple(zip(Lb, Ub))
res0=linprog(c,A,b,None,None,bound0,method='simplex')
res=linprog(c,A,b,None,None,bound,method='simplex')
print('最优值:',res.fun)
print('利润减少:',res0.fun-res.fun)
最优值: -3444.0
利润减少: -16.800000000000182

所以利润减少16元

数学建模:线性规划—奶制品的生产销售计划模型 (Python 求解)相关推荐

  1. 数学建模:插值与拟合—插值问题的python求解

    目录 scipy.interpolate.interpnd 简介 一.一维插值 (interp1d) 二.二维网格节点插值 (interp2d) 三.二维散乱点插值 (griddata) scipy. ...

  2. 数学建模——线性规划模型详解Python代码

    数学建模--线性规划模型详解Python代码 标准形式为: min z=2X1+3X2+x s.t x1+4x2+2x3>=8 3x1+2x2>=6 x1,x2,x3>=0 上述线性 ...

  3. Python数学建模—线性规划

    我是猿童学,本文是根据司守奎老师<数学建模算法与程序>的书本内容编写,使用其书中案例,书中的编程语言是MATLAB.Lingo,我将使用Python来解决问题.接下来的一个月我将学习使用P ...

  4. 种群内禀增长率matlab求法,数学建模讲义:第三讲微分方程模型

    <数学建模讲义:第三讲微分方程模型>由会员分享,可在线阅读,更多相关<数学建模讲义:第三讲微分方程模型(74页珍藏版)>请在人人文库网上搜索. 1.第三讲 微分方程模型,动态模 ...

  5. Algorithm:数学建模大赛之数学建模基础(经验/技巧)、流程(模型准备/模型假设/建模/求解/分析/优化/预测/评价)、论文写作(意义/摘要/关键词/问题重述和模型假设/建模/文献)之详细攻略

    Algorithm:数学建模大赛之数学建模基础(经验/技巧).流程(模型准备/模型假设/建模/求解/分析/优化/预测/评价).论文写作(意义/摘要/关键词/问题重述和模型假设/建模/求解/结论/参考文 ...

  6. 数学建模——智能优化之粒子群模型详解Python代码

    数学建模--智能优化之粒子群模型详解Python代码 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplo ...

  7. 数学建模——一维、二维插值模型详解Python代码

    数学建模--一维.二维插值模型详解Python代码 一.一维插值 # -*-coding:utf-8 -*- import numpy as np from scipy import interpol ...

  8. 数学建模清风第一次直播:传染病模型和微分方程拟合

    学习网址:课件下载 数学建模清风第一次直播:传染病模型和微分方程拟合 数学建模清风第二次直播:模拟退火算法 数学建模清风第三次直播:excel在数学建模中的应用 博客笔记: 数学建模清风第一次直播:传 ...

  9. Matlab数学建模(七):连续模型

    一.学习目标 (1)了解连续模型及解题步骤. (2)掌握用 dsolve 求解常见的微分方程解析解. (3)掌握用 ODE 家族的求解器求解数值解. (4)掌握使用专用的求解器求解. 二.实例演练 ( ...

  10. 数学建模:整数规划示例模型 (Python 求解)

    目录 例 1 : 选课策略模型 1. 为了选修课程门数最少, 应学习哪些课程? 建立 0-1 规划模型 Python 求解 2. 选修课程最少时, 为了学分尽量多, 应学习哪些课程? 例 2 : 装箱 ...

最新文章

  1. 基本控件HyperlinkButton控件
  2. 2016-11-15试题解题报告
  3. BannerDemo【图片轮播图控件】
  4. 数据分析师被老板问住了——场面一度非常尴尬。
  5. 历届试题 大臣的旅费(树的直径)
  6. ORA-28547 连接服务器失败,可能是Oracle Net 管理错误
  7. Python中的getpass模块
  8. 使用FlashFXP V3.8烈火汉化绿色版软件连接Linux
  9. python log模块_Python日志模块-logging
  10. java selenium (十三) 智能等待页面加载完成
  11. 谷歌:早在这个0day 补丁发布前几周,朝鲜国家黑客就已利用
  12. rac节点频繁重启的问题分析
  13. zip知识点的部分总结!
  14. matlab遗传算法求解TSP旅行商问题
  15. Work breakdown structure 简介
  16. 2022-01-24:K 距离间隔重排字符串。 给你一个非空的字符串 s 和一个整数 k,你要将这个字符串中的字母进行重新排列,使得重排后的字符串中相同字母的位置间隔距离至少为 k。 所有输入的字符串
  17. 设计模式7-适配器模式
  18. 本科毕设-基于C8051单片机的身份识别系统设计
  19. 优化爬山法之八皇后问题
  20. 计算机考研abc区划分,考研abc区有什么区别

热门文章

  1. 推荐系统-基于用户的推荐在社交网络中的应用
  2. Java中的Stream流
  3. mkv格式用什么播放器打开?视频转换器怎样操作
  4. 舞伴问题(数据结构队列,c语言版)
  5. 教程丨一文了解如何在OpenSea上创建自己的NFT商店
  6. 快速排序(萝卜填坑算法)【必会知识】
  7. Bugku CTF Web 滑稽 计算器 GET POST 矛盾 alert 你必须让他停下
  8. 最具潜力的人工智能机器人玩具(2019年更新)
  9. 图片优化——质量与性能的博弈
  10. 《东周列国志》第十九回 擒傅瑕厉公复国 杀子颓惠王反正