某公司计划在武汉市三环内的沃尔玛超市营销旗下某种品牌的商品(如高档电子产品), 这些超市分别是:
1.武汉宗关西汇分店(4.1)
2.南湖城市广场店(3.2)
3.武汉徐东大街分店(5.0)
5.光谷坐标城店(4.0)
6.武汉奥山店(3.7)
7.汉阳钟家村店(3.5)
8.汉阳店(2.3)
9.菱角湖万达店(2.1)
各店具体位置如上图,也可在武汉市电子地图上进行搜索给出。上述店名后所附数字是该商品每个销售周期的预估平均需求件数。
由于大量商品在各店存贮造成的库存量造成资金积压严重,而每周期如果缺货又引起销售机会的损失,并且频繁进货造成浪费,公司要求制订各店的订购策略,这种策略要求给出每周期末检查商品库存量,当库存降为0 或是少于一定件数时上报订购件数,公司在下一周期前组织从厂家调货送到各店。
如果各店每批次进货费用 100 元,每售出一件商品相对进货价收益 700元,但在一个周期内不能售出时每件贮存费用 100 元,不计当周期内已售出的商品的贮存费用。
(1)为使每一周期利润最大,各店的订购策略应当如何制订?
(2)在以上订购策略下,失去销售机会的可能性有多大?
(3)如果在以上策略下,各店允许就近调货,每次调货费用为 100 元,则公司每周期的利润会增加多少?
(4)对于该商品在武汉市三环线内各店的订购与销售策略,结合你的模型,写一篇给公司总经理的不超过 800 字的建议书。
摘 要
本文研究的内容是基于沃尔玛超市在武汉分布的8家超市进行订购策略的分析,分析的主要问题在于如何确定[s,S]策略,常规方法是假设为离散系统在进行建模,本文假设的条件是超市的销量为连续的,但是在求解的过程中由于实际的数据是一个离散的变量,所以在用MATLAB进行求解实际上是求离散值。在该问题中对于概率密度函数的积分求解,巧妙的采用了分布函数来进行求解,通过拉格朗日插值发求解泊松分布函数的的目标离散值。在求失去销售机会的问题中,没有采用传统的马氏链方法,而是采用了MATLAB进行仿真的方法,产生一系列的随机数来模拟实际过程中的销售量,这并没有违背实际的问题,在一个非线性和随机问题中,这反而更加合理,通过对随机数的分析从而得到问题的答案。对调货问题采用的是分组调货,进行最大限度的调货方法,求得符合条件的调货模式。文中最后结合模型对该公司提出了对于调货的一些建议,即浮动仓库调货模式。
关键字:MATLAB仿真;泊松分布函数;拉格朗日插值法;浮动仓库调货
一、为使每一周期利润最大,各店的订购策略应当如何制订?
1.1模型假设
(1)
每家超市每个周期内卖出的此类商品的数量为随机变量,而不同的购买者来购买商品是不受相互影响的,对于每个周期内的实际需求量服从泊松分布。设某个地方的超市一个周期的销售量为t,销售量为t时的概率密度为P(t)。则有公式:
1.是 在一段特定时间/空间内 事件发生的平均值.
2.e 是自然常数 2.71828...
3.k 是 件在这一段发生的次数
4.P是该事件在这一段时间/空间发生的概率
使用条件:
1.在两个相同大小/长度的 时间/空间内, 一个事件的发生的概率是相同的.
2.事件发生于不发生是相互的\不受其他事件的发生或者不发生影响.
假设每次各店每批次进货费用元, 每件商品售出利润为,在一个周期内不能售出时每件贮存费用元,每个周期的商品贮存量为Q。
1.2建模与求解
1.2.1库存量为0
模型假设如下:
1.如需要补货,补货可以在下一周开售前可以立刻完成;
2.每个月的随机销售量t为连续变量;
3.库存量为0
采用最大获利原则进行建模求解。
(1)当每个周期内的销售量小于贮存量时
即有,此时有
销售金额为,因为库存而损失的费用为
(2)
此时获取的销售额期望值为:
(2)当每个周期内的销售量大于贮存量时
即有,此时有:
销售金额为
此时获取的销售额期望值为:
(3)
(4)
基于以上两种情况,进货成本为,最终的总利润期望值为:
(5)
根据需求,出现最大利润时,即函数的值为最大值。函数可以变形为:
(6)
函数对Q求导有:
对于t服从泊松分布,由概率分布规律可知:
(8)
(7)
由此可得到:
由概率分布规律知:
(11)
(10)
(9)
现令
(12)
则有:
(13)
则有:
设函数的驻点为,已知时,由于为一个介于区间(0,1)之间的参数,固可以由上式确定。另外可以从关系式得到驻点与进货运费无关,因为在每一个周期内为固定值,是可以忽略的。
1.2.1库存量不为0
1.如需要补货,补货可以在下一周开售前可以立刻完成;
2.每个月的随机销售量t为连续变量;
3.库存量不为0
4.库存量为,订货量为Q
(14)
在此种模式下,采用[s,S]策略。对比1.2.1可以得到S=Q+。由1.2.1可以知道,在此种情况下,获得最大利润时的周期初的贮存量为,驻点由以下公式确定,剩下来待求的参数为s。
(1)时
订货的条件周期初始下贮存量将会达到S,同时满足
关系由图可以表示为下图:
a.当每个周期内的销售量小于贮存量时
销售金额为,因为库存而损失的费用为
(15)
此时获取的销售额期望值为:
b.当每个周期内的销售量大于贮存量时
销售金额为
此时获取的销售额期望值为:
(17)
(16)
基于以上两种情况,进货费用为,最终的总利润期望值为:
(2)时
a.当每个周期内的销售量小于贮存量时
销售金额为,因为库存而损失的费用为
(18)
此时获取的销售额期望值为:
b. 当每个周期内的销售量大于贮存量时
销售金额为
(19)
此时获取的销售额期望值为:
(20)
基于以上两种情况,最终的总利润期望值为:
(21)
根据实际意义有:
确定订货点s可以根据上述的不等式进行求解,求解时在满足条件下的s,取值时取任意值即可,一般来说取最小值。
1.2.3求解[s,S]
下表为各分店每个周期内的平均需求量
| 分店 | 平均需求量 |
| 武汉宗关西汇分店 | 4.1 |
| 南湖城市广场店 | 3.2 |
| 武汉徐东大街分店 | 5 |
| 光谷坐标城店 | 4 |
| 武汉奥山店 | 3.7 |
| 汉阳钟家村店 | 3.5 |
| 汉阳店 | 2.3 |
| 菱角湖万达店 | 2.1 |
(22)
由matlab求解,概率密度函数是分布函数的导数,所以先画出分布函数的图像,具体过程为画出各个平均值下的概率分布图,然后采用插值法进行计算。对于以下函数:
设泊松分布的分布函数为,则有。
分布函数是对密度函数进行积分,其表达式为:
(23)
连续型:
(24)
离散型:
分布函数具有以下性质:
(1)(25)
对任意的t都有:
(2)单调增
积分的一般计算方法:
(26)
对于每个周期内的销售量的分布函数:
问题的实际归为求积分:
用密度函数非常复杂或用解析方法不能积分时,我们常常使用数值积分的方法来处理。
其基本思想是,用简单的函数来代替复杂的被积函数。例如在被积函数的定义域内选一系列的点[1]。
然后求在该点处的函数值
(27)
定义插值多项式如下:
(28)
其中
(30)
(29)
这里
称为拉格朗日插值多项式,其具有以下性质:
1)= i=0,1,2,……,n
2)在上点与点之间为线性函数。
(31)
显然有以下关系式成立:
其中,是误差函数。
(32)
可以证明,当有n+1阶有界导数时,
当
(33)
即当是不高于n阶的多项式,有
(34)
两边积分有
(35)
从而我们可以得到积分的一般近似公式
其中
拉格朗日插值法的公式结构紧凑,在理论分析中十分方便,然而在计算中,但插值点增加或减少时,所对应的基本多项式就得重新计算而且图像发生很大变化。像逐次线性插值法、牛顿插值法等都是在拉格朗日插值多项式的基础上延伸出来的[2]。我们根据实际中的具体问题,为减少插值误差来选取相应的插值 法来快速的解决问题。
这样我们就将一个复杂的积分问题,近似地用代数和的形式来代替了。下图折线为拉格朗日插值多项式。
(36)
存在关系
下图为matlab作图画出的以均值为4.1为例的泊松分布累积分分布散点图。
结合分布函数可以得到如下图示关系:
通过以上方法,将已知量代入,可以得到订购策略可以为以下:
| 分店 | S | s |
| 武汉宗关西汇分店 | 6 | 5 |
| 南湖城市广场店 | 5 | 4 |
| 武汉徐东大街分店 | 7 | 6 |
| 光谷坐标城店 | 6 | 5 |
| 武汉奥山店 | 5 | 4 |
| 汉阳钟家村店 | 5 | 4 |
| 汉阳店 | 4 | 3 |
| 菱角湖万达店 | 3 | 2 |
根据上述求出的贮存策略,可以知道当库存小于s时订货,订货满足最终下周期初数贮存量为S。在稳态情况下计算失去销售机会的概率。该问题将采用的方法为用matlab进行仿真计算,在已知泊松分布参数的条件下进行仿真,产生一定数量的随机数,与前面得到的方案进行比较,即可得到失去销售机会的概率。以武汉宗关西汇分店为例。
分析超市在实际过程中的销量与贮存量的关系,失去销售机会的概率和实际的需求量的关系可以表示为如图所示关系,为失去销售机会的概率,即在销售量大于S的时候才会为非0值,图中大于S的部分的值为一个随机值。
分布函数的计算在整个信息统计分析应用中起着基础性的作用,当我们建立了某个统计模型后,会产生很多的统计量,用它们对某个假设进行检验。这时必须知道这些统计量的分布,某一点的概率、某概率的分位点。在学习概率论时我们已经知道用查表的方法进行计算。本章介绍分布函数的计算方法,以及如何用MATLAB的统计工具箱计算各种分布的概率。
实际上超市对商品的需求量为离散值,在本小结中计算订货量及需求量时采取近似计算,因为由matlab画出来的泊松分布累积分分布图为散点图,是一个离散的曲线图。基于超市的销售量是随机的,采用方法是差生一系列随机数来模拟销售量,通过得到的随机数和订购方案对比得到结果。随机变量每个周期的销售量在没有发生时我们不知到,也不能预测其结果,看似随机变量没有规律。但是我们进行大量抽样或实验时,却可以看见明显的规律,这个抽样的过程用随机数代替。
在一个时间段内事件平均发生的次数服从泊松分布,这个次数在泊松分布中用lambda表示。这个lambda在指数分布里面的意义基本是一样的,也是在一个时间段内事件平均发生的次数。泊松分布表示的是事件发生的次数,“次数”这个是离散变量,所以泊松分布是离散随机变量的分布。指数分布是两件事情发生的平均间隔时间,“时间”是连续变量,所以指数分布是一种连续随机变量的分布。
泊松分布有一个很好的性质,即如果把大区间分成若干个小区间,或者若干个小区间合并成1个大区间,则随机变量仍然服从泊松分布,其均值就变成为或,其中k为分解或合并的区间数量。泊松分布通常也用于二项分布的近似计算。当n很大,而p很小时,在没有计算机时,二项分布的计算是非常麻烦的,而用泊松分布来近似计算可以降低大量的计算量。近似时,λ=np,下表就是在n=100,p=0.02时,二项分布和泊松分布计算结果的对比,可以看出,两者差异很小。一般来讲,n≥100,np≤10近似效果较好。
在六西格玛中,我们用二项分布来分析合格率,用泊松分布来分析缺陷率,如DPU、DPMO。合格率是0~1之间的数字,而缺陷率却可以大于1,也就是说一个产品中可以有若干个缺陷,这应该很容易理解。
当λ≥20时,泊松分布可以用正态分布来近似,当λ≥50,泊松分布基本上就等于正态分布了。此时
| 二项分布 | 泊松分布 | |
| 1 | 0.13262 | 0.13534 |
| 2 | 0.27065 | 0.27067 |
| 3 | 0.27341 | 0.27067 |
| 4 | 0.18228 | 0.18045 |
| 5 | 0.09021 | 0.09022 |
| 6 | 0.03535 | 0.03609 |
| 7 | 0.01142 | 0.01203 |
| 8 | 0.00313 | 0.00344 |
| 9 | 0.00074 | 0.00086 |
| 10 | 0.00019 | 0.00024 |
Poisson过程的模拟:
(1)利用事件发生的间隔时间是同分布的随机变量序列;
(2)给定事件发生次数的条件下,事件发生的时刻与该区间上对应的均匀分布的顺序统计量相同?
泊松分布随机数生成函数为:ram=poissrnd(λ,m,n)
结果是生成参数为λ的m行n列的服从泼松分布的随机数。
程序的执行思路可以用以下流程图进行表示:
思路为首先产生一个大小为10000的随机数组,然后再在数组里找出数据大于贮存策略里的参数S,即需求量大于最大贮存量,这种需求量的情况下将会失去销售机会,最后求出这种需求量的比例。在求失去销售机会的问题中,没有采用传统的马氏链方法,而是采用了MATLAB进行仿真的方法,产生一系列的随机数来模拟实际过程中的销售量,这并没有违背实际的问题,在一个非线性和随机问题中,这反而更加合理,通过对随机数的分析从而得到问题的答案。
最终得到的各个超市失去销售机会的概率如下表
| 分店 | 失去销售机会概率 |
| 武汉宗关西汇分店 | 12% |
| 南湖城市广场店 | 10% |
| 武汉徐东大街分店 | 13% |
| 光谷坐标城店 | 11% |
| 武汉奥山店 | 17% |
| 汉阳钟家村店 | 14% |
| 汉阳店 | 8% |
| 菱角湖万达店 | 16% |
各个超市的地址在地图上已知,通过交通规划软件TransCAD,在最短路径的条件下,求得各超市之间的距离矩阵如下。
| 调货起点 | 调货终点 | 距离(Km) |
| 南湖城市广场店 | 光谷坐标城店 | 6.359374 |
| 武汉徐东大街分店 | 光谷坐标城店 | 9.968525 |
| 汉阳钟家村店 | 光谷坐标城店 | 11.097156 |
| 武汉奥山店 | 光谷坐标城店 | 11.273838 |
| 菱角湖万达店 | 光谷坐标城店 | 13.555335 |
| 汉阳店 | 光谷坐标城店 | 14.072081 |
| 武汉宗关西汇分店 | 光谷坐标城店 | 14.241243 |
| 武汉宗关西汇分店 | 汉阳店 | 1.4051 |
| 汉阳钟家村店 | 汉阳店 | 3.923506 |
| 菱角湖万达店 | 汉阳店 | 4.612692 |
| 武汉徐东大街分店 | 汉阳店 | 8.567442 |
| 南湖城市广场店 | 汉阳店 | 8.710399 |
| 武汉奥山店 | 汉阳店 | 10.429144 |
| 光谷坐标城店 | 汉阳店 | 14.072071 |
| 汉阳店 | 汉阳钟家村店 | 3.923505 |
| 武汉宗关西汇分店 | 汉阳钟家村店 | 4.15204 |
| 菱角湖万达店 | 汉阳钟家村店 | 4.45412 |
| 武汉徐东大街分店 | 汉阳钟家村店 | 5.360351 |
| 南湖城市广场店 | 汉阳钟家村店 | 5.748838 |
| 武汉奥山店 | 汉阳钟家村店 | 7.43282 |
| 光谷坐标城店 | 汉阳钟家村店 | 11.097154 |
| 武汉宗关西汇分店 | 菱角湖万达店 | 3.450076 |
| 汉阳钟家村店 | 菱角湖万达店 | 4.45412 |
| 汉阳店 | 菱角湖万达店 | 4.612692 |
| 南湖城市广场店 | 菱角湖万达店 | 8.423426 |
| 武汉徐东大街分店 | 菱角湖万达店 | 13.204708 |
| 光谷坐标城店 | 菱角湖万达店 | 13.555334 |
| 武汉奥山店 | 菱角湖万达店 | 14.469481 |
| 武汉徐东大街分店 | 南湖城市广场店 | 5.48867 |
| 汉阳钟家村店 | 南湖城市广场店 | 5.748838 |
| 光谷坐标城店 | 南湖城市广场店 | 6.359373 |
| 菱角湖万达店 | 南湖城市广场店 | 8.423429 |
| 武汉奥山店 | 南湖城市广场店 | 8.474965 |
| 汉阳店 | 南湖城市广场店 | 8.7104 |
| 武汉宗关西汇分店 | 南湖城市广场店 | 8.2929 |
| 武汉徐东大街分店 | 武汉奥山店 | 3.179536 |
| 汉阳钟家村店 | 武汉奥山店 | 7.432821 |
| 南湖城市广场店 | 武汉奥山店 | 8.474966 |
| 汉阳店 | 武汉奥山店 | 10.429143 |
| 光谷坐标城店 | 武汉奥山店 | 11.273837 |
| 菱角湖万达店 | 武汉奥山店 | 14.469483 |
| 武汉宗关西汇分店 | 武汉奥山店 | 17.442769 |
| 武汉奥山店 | 武汉徐东大街分店 | 3.179537 |
| 汉阳钟家村店 | 武汉徐东大街分店 | 5.360351 |
| 南湖城市广场店 | 武汉徐东大街分店 | 5.488672 |
| 武汉宗关西汇分店 | 武汉徐东大街分店 | 7.884728 |
| 汉阳店 | 武汉徐东大街分店 | 8.567445 |
| 光谷坐标城店 | 武汉徐东大街分店 | 9.968523 |
| 菱角湖万达店 | 武汉徐东大街分店 | 13.204708 |
| 汉阳店 | 武汉宗关西汇分店 | 1.4051 |
| 菱角湖万达店 | 武汉宗关西汇分店 | 3.450077 |
| 汉阳钟家村店 | 武汉宗关西汇分店 | 4.152041 |
| 武汉徐东大街分店 | 武汉宗关西汇分店 | 7.884727 |
| 南湖城市广场店 | 武汉宗关西汇分店 | 8.2927 |
| 光谷坐标城店 | 武汉宗关西汇分店 | 14.241238 |
| 武汉奥山店 | 武汉宗关西汇分店 | 17.44277 |
| 组别 | 超市地址 | |||
| A | 菱角湖万达店 | 汉阳店 | 武汉宗关西汇分店 | 汉阳钟家村店 |
| B | 光谷坐标城店 | 南湖城市广场店 | ||
| C | 武汉徐东大街分店 | 武汉奥山店 | ||
分析:在每个组里峰值每家超市失去销售机会的比例,调货原则是把失去销售最小的超市的所有的货物都掉到其它超市,当概率最大的超市的存货不足时,以概率仅大于最小概率的超市为调货对象。在计算利润的增加值时,不用考虑进货费用,因为调货的前后对于原始补货产生的费用是固有存在的,所以两次对比的条件下是可以忽略的。
根据产生的随机数,作数据透视表可以得到在10000个周期内的随机销售量如下表所示:
| 随机销售量(t) | 周期数(T) |
| 0 | 1222 |
| 1 | 2569 |
| 2 | 2677 |
| 3 | 1905 |
| 4 | 1036 |
| 5 | 404 |
| 6 | 133 |
| 7 | 45 |
| 8 | 7 |
| 9 | 2 |
A组:每家超市的原利润为:
(38)
新的利润值为:
现将菱角湖万达店的商品分别调往汉阳件,武汉宗关西汇分店件,汉阳钟家村店件。
(39)
经过计算可以得到10000个周期内增加的利润值为:
(40)
每个周期内增加的平均利润为:
B组: 将光谷坐标店的商品调往南湖城市广场店件
(42)
(41)
计算得到每个周期的增加的平均利润为:
C组:组内调货将不会增加利润。
调货表如下表所示:
| 组别 | 调货源 | 调货目的地 | 调货数量 |
| A | 菱角湖万达店 | 汉阳店 | 2 |
| 武汉宗关西汇分店 | 2 | ||
| 汉阳钟家村店 | 2 | ||
| B | 光谷坐标城店 | 南湖城市广场店 | 1 |
| C | 武汉徐东大街分店 | 武汉奥山店 | 0 |
首先对于分布在各地的超市来看,每家超市的平均需求量不一样。从所建模型来看,各超市会出现缺货和存货的现象,模型的建立只是一个虚拟的过程,没有考虑到实际问题。
考虑多的库存控制,且将需求受库存水平影响、物品的变质、运输成本、允许缺货等情况综合考虑。传统的库存模型一般假定需求是常数或仅考虑一个仓库,并假设它没有容量,然而在实际的库存系统中这是不现实的,市场需求 常常是变化的,并且现实生活中处于繁华地带商业区的零售商所拥有的仓库容量通 常是有限的,在市场需求旺季、缺货成本高的情况下,管理决策者的订货量通常会 超过自有仓库容量的,那么库存管理者就得考虑租用仓库或者新建另一个自有仓库,即考虑多个仓库的库存控制问题[3]。
所以应在在这些已有的超市的几何中心的地方建立一个浮动仓库,存货的成本相对于各超市低,并且进行补货不影响其他各超市的库存。
参考文献
[1]苏正君.拉格朗日插值算法浅解 [J].电子设计技术,2014(2):24.SU Zhengjun.Analysis of lagange interpolation algorithm[J].EDN China,2014(2):24.
[2]林秀梅.浅析拉格朗日插值法的原理及其应用〔J〕.吉林财贸学院学报,1990(3)49.
[3] 田立平,孙群. 需求受库存水平影响的短生命周期物品延迟订货的库存管〔J〕. 数学的实践与认识,2014,44(5):128-133.
附件:
1.泊松分布P(t)累积分分布函数
for x=1:0.1:20
y=poisscdf(x,);
stem(x,y,'o')
hold on;
end
title('泊松分布Lambda=累积分分布函数');
2. 拉格朗日插值法
function yh=lagrange(x,y,xh)
n = length(x);
m = length(xh);
x = x(:);
y = y(:);
xh = xh(:);
yh = zeros(m,1);?
c1 = ones(1,n-1);
c2 = ones(m,1);
for i=1:n,
xp = x([1:i-1 i+1:n]);
yh = yh + y(i) * prod((xh*c1-c2*xp')./(c2*(x(i)*c1-xp')),2);
end
3.泊松分布随机数产生
Lambda=[4.1,3.2,5,4,3.7,3.5,2.3,2.1];
S=[6,5,7,6,5,5,4,3];
for i=1:8
b= Lambda (1,i);
c=S(1,i);
ram=poissrnd(b,100,100);
drop=sum(sum(ram>c));
[m,n]=size(ram);
total=m*n;
P=drop/total;
Pd(1,i)=P;
End
4.距离矩阵VBA求解
Sub test()
Dim a, b, m, n, x
a = Range("A65536").End(xlUp).Row
b = Range("B65536").End(xlUp).Row
For m = 2 To a
Next
End Sub下载本文