存储论系列博文:

存贮论(一):基本概念、无约束的确定型存贮模型

存储论(二):有约束的确定型存贮模型、单周期随机库存模型


目录

3 有约束的确定型存贮模型

3.1 带有约束的经济订购批量存贮模型

3.1.1 具有资金约束的 EOQ 模型

3.1.2 具有库容约束的 EOQ 模型

3.1.3 兼有资金与库容约束的最佳批量模型

3.2 带有约束允许缺货模型

3.3 带有约束的经济生产批量存贮模型

4 单周期随机库存模型

4.1 模型的基本假设

4.2 模型的推导

4.3 模型的求解

习题



3 有约束的确定型存贮模型

3.1 带有约束的经济订购批量存贮模型

现在考虑多物品、带有约束的情况。设有 m 种物品,采用下列记号:

类似于前面的推导,可以得到带有约束的多物品的 EOQ 模型。

3.1.1 具有资金约束的 EOQ 模型

3.1.2 具有库容约束的 EOQ 模型

3.1.3 兼有资金与库容约束的最佳批量模型

结合上述两种模型,得到兼有资金与库容约束的最佳批量模型

编写 LINGO 程序如下:

model:
sets:
kinds/1..5/:C_P,D,K,W,Q,N;
endsets
min=@sum(kinds:0.5*C_P*Q+C_D*D/Q);
@sum(kinds:K*Q)<J;
@sum(kinds:W*Q)<W_T;
@for(kinds:N=D/Q;@gin(n));
data:
C_D=1000;
D=600 900 2400 12000 18000;
K=300 1000 500 500 100;
C_P=60 200 100 100 20;
W=1.0 1.5 0.5 2.0 1.0;
J=400000;
W_T=1500;
enddata
end

求得总费用为 142272.8 元,订货资金还余 7271.694 元,库存余 4.035621  ,其余 计算结果整理在表 2 中。

上述计算采用整数规划,如果不计算年订货次数,而只有年订货周期,则不需要 整数约束。由于整数规划的计算较慢,因此,在有可能的情况下,应尽量避免求解整数 规划问题。

3.2 带有约束允许缺货模型

编写 LINGO 程序如下:

model:
sets:
kinds/1..5/:C_P,D,K,W,C_S,Q,S,N;
endsets
min=@sum(kinds:0.5*C_P*(Q-S)^2/Q+C_D*D/Q+0.5*C_S*S^2/Q);
@sum(kinds:K*Q)<J;
@sum(kinds:W*(Q-S))<W_T;
@for(kinds:N=D/Q;@gin(n));
data:
C_D=1000;
D=600 900 2400 12000 18000;
K=300 1000 500 500 100;
C_P=60 200 100 100 20;
W=1.0 1.5 0.5 2.0 1.0;
J=400000;
W_T=1500;
enddata
@for(kinds:C_S=2*C_P);
end

求得总费用为 124660.8 元,订货资金还余 88.46 元,库存余 343.317 ,其余计算 结果整理在表 3 中。

3.3 带有约束的经济生产批量存贮模型

与经济定购模型类似,对于经济生产批量存贮模型,也可以考虑带有不同情况的 约束条件和各种不同物品的综合情况。下面用一个例子来说明问题。

例 8 某公司生产并销售 A,B,C 三种商品,根据市场预测,三种商品每天需求量 分别是 400,300,300(件),三种商品每天的生产量分别是 1300,1100,900(件), 每安排一次生产,其固定费用(与生产量无关)分别为 10000,12000,13000(元), 生产费用每件分别为 1.0,1.1,1.4(元)。商品的生产速率、需求率和最大生产量满足 如下约束:

编写 LINGO 程序如下:

model:
sets:
kinds/1..3/:C_P,P,C_D,D,Q,T,T_P; !T_P表示生产时间;
endsets
min=@sum(kinds:0.5*(1-D/P)*Q*C_P+C_D*D/Q);
@sum(kinds:D/P+1.5*D/Q)<1;
@for(kinds:T=Q/D;T_P=Q/P);
data:
C_D=1000,1200,1300;
D=400,300,300;
C_P=1.0,1.1,1.4;
P=1300,1100,900;
enddata
end

求得 A,B,C 三种商品的生产、存贮周期分别为 51.05936,54.86175,50.79914 天, 其中生产天数分别为 15.71057,14.96229,16.93305 天。总的最优生产,存贮费用为 20832.10 元。

4 单周期随机库存模型

在许多情形中需求量是随机的。随机需求模型可以分为周期观测与连续观测两类。 周期观测模型又可分为单周期、多周期及无穷周期等模型。 本节仅讨论单周期随机库存模型。 单周期库存模型又称为单订货模型。模型假定周期末库存对下一个周期没有任何 价值。这个问题也称为报童问题,因为报童手中的报纸若卖不完,明天就没有用了。该 模型研究的是仅有一次机会的存贮与供需关系的产品。

4.1 模型的基本假设

本模型的基本假设如下:

(1)在整个需求期内只订购一次货物,订货量为Q ,订购费和初始库存均为 0, 每单位产品的购价(成本)为 K ;

(2)需求量 D 为一个连续的随机变量,且 D 的概率密度为 f (x) ,当货物出售时, 每单位产品的价格为U ;

(3)需求期结束时,没有卖出的货物不存贮而是折价卖出,单位价格为V 。

4.2 模型的推导

单周期随机库存模型的问题是求订购量Q 为多少时,使得总利润最大。 当需求量 D = x 时,物品的出售量取决于物品的订购量Q 和需求量 x ,即

对于销售价U 、成本价 K 和折扣价V ,应满足U > K >V 。令 g =U − K 是 物品出售后的利润,同时表示物品不足时,由于缺货造成的损失。令 h = K −V 是物品 折扣出售的损失,因此方程(56)也可写成

4.3 模型的求解

例 9(报童问题) 在街中有一报亭,平均每天出售报纸 500 份,出售报纸的数量, 与来往的人流有关,假设服从 Poisson 分布,每卖出一份报纸能盈利 0.15 元。如果卖不 出去,只能作为废纸处理,每份报纸亏损 0.40 元,问:报亭应如何安排报纸的订购量, 使得报亭的利润最大?

解 由题意知,均值 μ = 500 ;每份报纸的利润 g = 0.15 元;作为废纸处理时, 每份报纸亏损 h = 0.4 元。利用式(57)计算出Q 来,再利用式(59)计算出期望总利 润。

编写 LINGO 程序如下:

model:
data:
mu=500;g=0.15;h=0.40;
enddata
@pps(mu,Q)=g/(g+h);
E_G=g*mu-h*(Q-mu)-(g+h)*@ppl(mu,Q);
end

求得报亭每天订购报纸 486 份,每天盈利 70.93 元。

下面我们使用 MATLAB 求例 9 的解。实际上式(57)中的Q 是 Poisson 分布的 分位点。对于式(59)中的积分计算,首先定义被积函数,然后使用 MATLAB 中的积 分命令 QUADL 进行积分,注意在积分时必须把积分区间化成有限区间。MATLAB 中被积函数定义如下(其中文件名为 fun1.m)

function f=fun1(x);
global Q mu
f=(x-Q).*poisspdf(mu,x);

最后编写调用的程序如下:

global mu Q
mu=500;g=0.15;h=0.40;
Q=poissinv(g/(g+h),mu)
E_G=g*mu-h*(Q-mu)-(g+h)*(mu-Q-quadl(@fun1,0,Q))

求得报亭每天订购报纸 486 份,每天赢利 71.09 元。


例 10 设在某食品店内,每天对面包的需求服从 μ = 300,σ = 50的正态分布。 已知每个面包的售价为 1.50 元,成本 0.90 元,对当天未售出的其处理价为每个 0.60 元, 问该商店每天应生产多少面包,使预期的利润为最大?

解 根据题意 μ = 300,σ = 50,U =1.50,K = 0.9 ,V = 0.60。利用式(57) 计算出Q 来,再利用式(59)计算出期望总利润。但对于正态分布分布,LINGO 只提 供了标准正态分布函数@psn( Z ),即

编写 LINGO 程序如下

data:
mu = 300; sigma = 50; U = 1.50; K = 0.90; V = 0.60;
enddata
@psn(Z)=(U-K)/(U-V);
Z=(Q-mu)/sigma;
@free(Z);
E_G = U*mu-K*Q+V*(Q-mu)-(U-V)*sigma*@psl(Z);

求得商店每天生产 322 个面包,可以使总利润达到最大,预期的最大利润为 163.638 元。 同样地,我们使用 MATLAB 求例 10 的解。实际上,式(57)中的Q 是正态分布   的 分位点。式(59)中的被积函数的 MATLAB 定义如下(其中文件 名为 fun2.m):

function f=fun2(x);
global mu sigma Q
f=(x-Q).*normpdf(x,mu,sigma);

最后编写调用的程序如下:

global mu sigma Q
mu = 300; sigma = 50; U = 1.50; K = 0.90; V = 0.60;
Q=norminv((U-K)/(U-V),mu,sigma)
E_G=U*mu-K*Q+V*(Q-mu)-(U-V)*(mu-Q-quadl(@fun2,0,Q))

求得的结果和 LINGO 的计算结果完全一样。


例 11 (航空机票超订票问题) 某航空公司执行两地的飞行任务,已知飞机的 有效载客量为 150 人。按民用航空管理有关规定:旅客因有事或误机,机票可免费改签 一次,此外也可在飞机起飞前退票。航空公司为了避免由此发生的损失,采用超量订票 的方法,即每班售出票数大于飞机载客数。但由此会发生持票登机旅客多于座位数的情 况,在这种情况下,航空公司让超员旅客改乘其它航班,并给旅客机票价的 20%作为 补偿。现假设两地的机票价为 1500 元,每位旅客有 0.04 的概率发生有事、误机或退票 的情况,问航空公司多售出多少张票?使该公司的预期损失达到最小。

解 先对该问题进行分析。 设飞机的有效载客数为 N ,超订票数为 S (即售出票数为 N + S ),k 为每个座位 的赢利值,h 为改乘其它航班旅客的补偿值。设 x 是购票未登机的人数,是一个随机变 量,其概率密度为 f (x) 。当 x ≤ S 时,有 S − x 个人购票后,不能登机,航空公司要为这部分旅客进行补偿。当 x > S 时,有 x − S 个座位没有人坐,航空公司损失的是座位 应得的利润,因此,航空公司的损失函数为

下面给出具体的求解过程。

根据题意, N = 150 , p = 0.04,k =1500 (假设机票价就是航空公司的赢利), h =1500×0.2 = 300 。写出相应的 LINGO 程序如下:

data:N = 150;p = 0.04;k = 1500;h = 300;
enddata
@pbn(p, N+S, S) = k/(k+h); 

求得超订的票数 S = 8.222487 ,因而,超订的票数在 8~9 张之间,即每班售出的 票数在 158~159 张之间。

function f=fun3(s);
N = 150;p = 0.04;k = 1500;h = 300;
f=binocdf(s,s+N,p)-k/(k+h);

MATLAB 中求函数 g(S) 的零点时溢出(使用命令 FZERO),我们只能编写 MATLAB 的搜索算法如下:

for s=1:100g(s)=fun3(s);
end
g

例 12(续例 11) 所有参数不变,问航空公司多售出多少张票,使该公司的预期 利润达到最大,并计算出相应的利润。

解 下面的计算希望达到以下目的:第一,得到超订票的整数解;第二,计算出 预期的利润值。

设飞机的有效载客数为 N ,超订票数为 S(即售出票数为 N + S ),k 为每个座位 的赢利值,h 为改乘其它航班旅客的补偿值,p 为每位旅客购票未登机的概率。设 x 是 购票未登机的人数,是一个随机变量,其概率密度为 f (x) 。当 x ≤ S 时,飞机满座, 有 S − x 个人购票后,不能登机,航空公司要为这部分旅客进行补偿。当 x > S 时,飞 机没有满座,有 N + S − x 名旅客乘机,因此,航空公司的利润函数为

编写的 MATLAB 程序如下:

clear,clc
N = 150;p = 0.04;k = 1500;h = 300;
for S=1:15E_I(S)=k*(N+S-(N+S)*p)-(h+k)*quadl(@(x)binocdf(x,N+S,p),0,S);
end
E_I

上面的算法,我们实际上把二项分布看成是连续型的分布。下面从离散分布的角 度建立赢利期望值的递推公式。

因此,我们只要计算出超订票数 S = 0,1,2,....的期望值,并比较它们的大小,就可 以计算出最优的超订票数和最大赢利的期望值。编写 LINGO 程序如下:

sets:seats/1..150/;extra/1..15/: E_T;
endsets
data:
k = 1500; h = 300; p = 0.04;
enddata
N = @size(seats);
E_T0 = k*N*(1-p);
E_T(1) = E_T0+(1-p)*(k-(k+h)*@pbn(p,N,0));
@for(extra(i)|i #gt# 1:E_T(i) = E_T(i-1)+(1-p)*(k-(k+h)*@pbn(p,N+i-1, i-1))); 

从计算结果可以看出,超订票数为9张时,航空公司获利利润最大,预期的期望值 达到223832.6。 下面我们写出递推运算的 MATLAB 程序如下:

clear,clc
k = 1500; h = 300; p = 0.04; n=150;
E_T0=k*n*(1-p)
E_T(1)=E_T0+(1-p)*(k-(k+h)*binocdf(0,n,p));
for i=2:15E_T(i)=E_T(i-1)+(1-p)*(k-(k+h)*binocdf(i-1,n+i-1,p));
end
E_T

计算结果和 LINGO 的计算结果完全一致。


习题

1.企业生产某种产品,正常生产条件下可生产 10 件/天。根据供货合同,需按 7 件/天供货。存贮费每件 0.13 元/天,缺货费每件 0.5 元/天,每次生产准备费用(装配费) 为 80 元,求最优存贮策略。

2.某大型机械需要外购 3 种零件,其有关数据见表 4。若存贮费占单件价格的 25 %,不允许缺货。又限定外购零件的总费用不超过 240000 元,仓库总面积为 250  , 试确定每种外购零件的最优订货量、订货周期和最小费用。

3.(航空公司超订票问题) 已知飞机的有效载客量为 150 人,机票价为 1500 元。 根据公司的长期统计,每个航班旅客的退票和改签发生的人数如表 5 所示。在登机旅客 多于座位数的情况下,航空公司规定:超员旅客改乘本公司下一班机,机票免费(即退 回原机票款);若改乘其它航空公司的航班,按机票的 105%退款。据统计前一类旅客 占超员旅客的 80%,后一类旅客占 20%。问航空公司多售出多少张票,使该公司的预 期损失达到最小。

4.某工厂生产某种产品必须经过两道工序,第一道工序在甲车间进行,第二道工 序在乙车间进行,甲车间生产的产品作为乙车间生产的原料,工厂计划年生产 1200 件 产品,因而乙车间的生产速度为每月 100 件,而甲车间的生产速度为每月 500 件。由于 受到乙车间生产能力的限制,甲车间要进行等周期分批的有间断的生产,同时还必须保 证乙车间不停工待料。甲车间的产品运到乙车间时要包装,平均每批的包装费为 5 元。 若运到乙车间后暂时来不及加工,则要花费存贮费,每件存贮费为 0.4 元。试研究甲车 间的最优生产周期,生产时间和生产批量。

5. 其它相关习题(无答案)见 :随机模型-豆丁网


存储论系列博文:

存贮论(一):基本概念、无约束的确定型存贮模型

存储论(二):有约束的确定型存贮模型、单周期随机库存模型

存储论(二):有约束的确定型存贮模型、单周期随机库存模型相关推荐

  1. 存贮论(一):基本概念、无约束的确定型存贮模型

    存储论系列博文: 存贮论(一):基本概念.无约束的确定型存贮模型 存储论(二):有约束的确定型存贮模型.单周期随机库存模型 目录 1 存贮模型中的基本概念 1.存贮问题的基本要素 2.存贮模型的基本费 ...

  2. 优化问题-LP,QP和QCQP(线性规划,Linear Programming; 二次规划,Quadratic Programming;二次约束二次规划)

    文章目录 线性规划(LP) LP的一些例子: Chebyshev中心 ℓ∞\ell_{\infty}ℓ∞​-norm 近似问题: ℓ1\ell_{1}ℓ1​-norm 近似问题: 二次规划(QP) Q ...

  3. 论文解读二十七:文本行识别模型的再思考

    摘要:本文研究了两个解码器(CTC[1]和 Transformer[2])和三个编码器模块(双向LSTM[3].Self-Attention[4]和GRCL[5]),通过大量实验在广泛使用的场景和手写 ...

  4. 数据挖掘-二项逻辑斯蒂回归模型算法的R实现

    本次为学生时期所写的实验报告,代码程序为课堂学习和自学,对网络程序有所参考,如有雷同,望指出出处,谢谢! 基础知识来自教材:李航的<统计学习方法> 本人小白,仍在不断学习中,有错误的地方恳 ...

  5. 逻辑斯蒂分布模型、二项逻辑斯蒂回归模型、多项逻辑斯蒂回归模型

    一.逻辑斯蒂分布/回归模型 模型描述的是一种什么样的事件或现象: 设X是连续随机变量,X服从逻辑斯蒂回归分布是指X具有下列分布函数和密度函数: 附上逻辑斯蒂分布的密度函数与分布函数,如下: 物理含义, ...

  6. OpenGL教程翻译 第二十二课 使用Assimp加载模型

    第二十二课 使用Assimp加载模型 原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载) 背景 到现在为止我们都在使用手动生成的模型.正如你所想的,指明每个顶点 ...

  7. 基于二代征信报告的信用评估模型实践

    关于二代征信报告 自 2020 年 1 月 19 日起,二代征信系统正式上线,中国人民银行征信中心向社会公众和金融机构提供二代格式信用报告查询服务.与一代征信系统相比,二代征信系统在收录数据.信息更新 ...

  8. 多约束的MPC ACC模型预测ACC设计 自适应巡航 考虑经济性,安全性,动力行等多因素的

    多约束的MPC ACC模型预测ACC设计 自适应巡航 考虑经济性,安全性,动力行等多因素的 不是单纯的速度跟踪 参考硕士biyelunwen 不是mpc工具箱 carsim与simulink联合仿真 ...

  9. 电动助力转向EPS(二)——理论公式推导及simulink模型

    电动助力转向EPS(二)--理论公式推导及simulink模型 EPS EPS系统建模 方向盘动态公式 扭矩传感器模块 电机模块 齿轮齿条模块 simulink建模 方向盘动态模块 扭矩传感器模型 电 ...

最新文章

  1. HDU 5115 Dire Wolf
  2. php图片左右滚动代码怎么写,css图片滚动代码怎么写?轮播图横向滚动展示
  3. 网页实现凭证金额分割线_一位整理过5000个网页书签的大神分享:实用的书签管理方案...
  4. 深入理解HashMap(原理,查找,扩容)
  5. pip强制更新包版本
  6. 【PostgreSQL-9.6.3】分区表
  7. JAVA: 初级项目之基于Swing界面的仿QQ(一)
  8. 算法 | golang 实现 key有序map
  9. MT7658芯片组资料,MT7658处理器参数介绍
  10. 《咏怀古迹五首·其三》.唐.杜甫
  11. 什么是创意啊?这才是创意
  12. python日常实用技能:使用python将大量数据导出到Excel中的
  13. 正式加入阿里巴巴!跟Android初学者分享几点经验,附超全教程文档
  14. android 内部存储 其他,小米MIUI系统怎么清除内部储存空间中“其他”数据?
  15. linux给红米note4x刷机,小米红米Note 4X线刷刷机教程_Note4X第三方rom系统刷机包
  16. H3C(s1850)初始化配置流程
  17. 通向Golang的捷径【Top】
  18. 【信号与系统学习笔记 3】—— 系统,以及系统的性质以及判断方法解析
  19. java.lang.IllegalArgumentException: View=DecorView not attached to window manager(Android Dialog崩溃)
  20. 移动flexe小颗粒

热门文章

  1. moran莫兰指数象限图可以编辑的图stata
  2. win10安装docker并部署mysql
  3. 【四二学堂】基于python+pygame的太空阻击游戏(python版带视频)
  4. AOD或者AOA的俯角与方位角
  5. 笔青居_Autojs学习笔记_第一章
  6. CodeJam Kickstart 初见
  7. 抖音粉丝快速增长的有效方法
  8. kali2020.2设置中文
  9. 卫生院医保计算机管理制度,「免费」最新版 医院综合管理制度 (汇编版)
  10. 百度网盘Mac版如何生成链接分享和密码?Mac版创建百度网盘分享链接的方法