大黑蚊子
发表于 2017-7-5 00:44:43
这个题目是从哪儿来的啊?
我估计出题人的本意也就是考一下期望函数的计算而已,隔夜的面包根本不计入销售量
牛腰
发表于 2017-7-5 05:25:51
loy_20002000 发表于 2017-7-5 00:21
日进货量为100、110、120可以卖空滞销面包,130、140累积的滞销面包是正无穷。
你的假设不合理呀。新面 ...
按照这道题的题意,商家优化利润的唯一方法是决定每天的进货量,而不是选择先卖哪些面包。既然题目提到滞销的面包第二天每个3元处理掉,我的理解是滞销的面包要先卖掉以后才卖新鲜面包。这不是商家的选择。在这个前提下日进货量如果是120,滞销面包是卖不完的,理由就是我前面说的不对称性质。足够多天以后每个卖掉的面包都是滞销面包,所以每天都是负利润。
如果“第二天每个3元处理掉”意思是卖给第三方,3元是salvage value,第二天只卖新鲜的,那么我同意120是最优选择。
loy_20002000
发表于 2017-7-5 22:09:22
绿葱头 发表于 2017-7-4 13:53
对“需求没有得到满足也是亏损”这句不解,我刚写了程序用随机数模拟了下,被结果吓到了,如果按照前一天 ...
我的回复与计算有些我认为【显然】的前提,再次详细说明一下。先从以下这个回复说起。
3.盈利的分析。进货为120,根据题意60%的情况下是这个销量(120、130、140的消费者需求量都是销售总计120个面包),20%的情况是100,20%的情况是110。
E(X)=120*60%+80*20%+100*20%=72+16+20=108
我的计算基于几个前提:
1、滞销面包的保质期足够长。这是核心假设,之后的所有计算都是基于这个。只有几天保质期肯定不行,至少要有两个星期左右的保质期(假设的说法,仅仅帮助您理解。就不定量化了)。
2、商家营业的时间足够长。理想的假设是正无穷,现实不允许。总之尽量长。
3、滞销面包的处理方式。可以有两种。一(3.1)是转交给第三方处理,如贩卖给学校食堂、餐馆。二(3.2)是与新鲜面包一起销售,这就涉及几种方式。消费者的偏好如下所列。
3.2.1.堆栈式。此方法遵循先入后出原则,也就是说新鲜面包永远优先被消费者购买。
3.2.2.队列式。此方法遵循先入先出原则,也就是说降价处理面包永远优先被消费者购买。
3.2.3.数组式。此方法遵循等概率原则,也就是说消费者挑选到任意一个面包的概率相同。
我的计算可以处理3.1与3.2.1,这里说明。
---------------------
3.1)从题意知道单日有x个新鲜面包,我以x=120来说明。以日为单位显然有,利润=新鲜面包销售量(每单位+1人民币) - 滞销面包数量(每单位-1人民币),所以总利润就是所有销售日利润的累加。总利润=利润1+利润2+……+利润n。
日平均利润=日期望,故而知道了日期望就知道了日平均利润,知道了日平均利润就知道了总利润。
E(X)=120*60%+80*20%+100*20%=72+16+20=108这是怎么来的呢。
140个面包情况下仅有120个新鲜面包,所以利润=120,
130个面包同上,所以利润=120,
120个面包同上,所有利润=120,
110个面包就不同了。利润=新鲜面包销售量(每单位+1人民币) - 滞销面包数量(每单位-1人民币),所以利润=110-(120-110)=100,
100个面包同理,利润=100-(120-100)=80,
综合以上期望为108。
--------------------
3.2.1)新鲜面包优先被购买意味着可以套用3.1)的计算方式。但这里需要一个前提,剩余面包一定能全部卖出去,并且是在没有过保质期之前卖出去。
首先我来说明一定能卖出去。
面包剩余的期望=20*20%(100个面包剩余20个,其余类推)+10*20%+0*20% -10*20% -20 *20%=0,显然剩余面包在销售时间足够长时是可以卖光的。
如何保证不会过期。
假设120份面包剩下20份,这里记做d(n)。设d(k)为早购入的面包,则构建d(k)、d(k+1)、d(k+2)、……、d(n)的队列,将队列压入堆栈A,然后从堆栈A中取元素放入堆栈B。设新面包为t(n+1),将t(n+1)压入堆栈B,则从堆栈B取元素的次序为t(n+1)、d(k)、d(k+1)、d(k+2)、……、d(n)。当日剩余重复之前操作。这是我个人的一些看法,不具有多少必然性。
强调一下3.1与3.2.1计算的逻辑。你在主题楼的问题如下:
网上有种答案感觉是基于不影响第二天的销售数量计算的
3.1)情况下明显与明天的利润无关,因为滞销货都被处理掉了。
3.2.1)情况下明天的利润只与明天新鲜面包销售量与明天滞销面包数量有关。滞销面包无论销售多少都与利润无关,在计算中滞销面包已经被算作之前的损失了。
如第一天滞销20个,收益为-20,滞销货已经计入第一天的收益表中了。第二天卖出第一天的滞销面包,再计算昨日滞销面包的收益就重复计算了。
---------------------------
3.2.3)的计算问题。假设消费者等概率选择面包是比较合乎现实的。这个假设最简单的解决办法是写个程序并且找来真随机数列输出5个等概率反复跑。不做其他假设的情况下我不知道能不能解,这个先按下吧。
老马丁
发表于 2017-7-5 23:04:46
问了一下一个OR的教授。典型的newvendor problem。
答案 120. 因为最优库存是让销量低于库存的概率为1/2. 当库存为120时,销量低于库存的概率刚好为1/2.
这个1/2怎么来的呢?给定利润和库存成本,反解,直接套公式。具体解法看wiki吧。
牛腰
发表于 2017-7-5 23:05:43
loy_20002000 发表于 2017-7-5 22:09
我的回复与计算有些我认为【显然】的前提,再次详细说明一下。先从以下这个回复说起。
基本上同意你的分析,唯一的一点是如果市场需求平均120,店家每天进货120,滞销面包不仅不会卖完,而且会积累到无穷大。举个简单的例子:第一天市场需求是140,120个新鲜面包全部卖完。第二天市场需求是100,有20个滞销面包。前两天的平均需求是每天120,但是店家进货240只卖出去220。就是因为我前面提到的不对称因素。如果连续几天市场需求大于140(小概率事件,但是只要有足够多的天数还是有可能发生的)导致每天的滞销面包数量都是0,那么以后几天面包就会滞销。
所以如果市场需求的平均是120,而店家每天进货订死在120,每天的平均销售量肯定小于120。足够多的天数以后面包就会滞销,时间越长积累的滞销数量就越多。
水风
发表于 2017-7-5 23:08:36
我感觉这道题可以用两种方法去理解。一种就是用最不用动脑子的,就是求平均日销量。因为无论买多还是买少都是亏损,那么按照平均日销量来定,绝对是最大利益化。
另外一种就是按照你给出的这个列表,把所有的情况给列表然后把所有的可能都包括进去来计算,反正每种情况都是概率一样的。
这道题我觉得考察的应该是不动脑子的那点。不是让你真的去计算。
这道题因为做了简化,所以感觉要你仔细计算。实际上,正常情况下见到的是100到140的正态分布。那个你怎么算?但结果还是一样的。就是计算平均值而已。
loy_20002000
发表于 2017-7-5 23:09:25
牛腰 发表于 2017-7-5 05:25
按照这道题的题意,商家优化利润的唯一方法是决定每天的进货量,而不是选择先卖哪些面包。既然题目提到滞 ...
根据图表的计算,题目的3元处理掉应该是指销售给第三方,所以图表后两项是正确的。
既然题目提到滞销的面包第二天每个3元处理掉,我的理解是滞销的面包要先卖掉以后才卖新鲜面包
这是不符合利润最大原则的,当然原题本就有歧义。
loy_20002000
发表于 2017-7-6 01:02:06
牛腰 发表于 2017-7-5 23:05
基本上同意你的分析,唯一的一点是如果市场需求平均120,店家每天进货120,滞销面包不仅不会卖完,而且会 ...
我们不妨把问题换个形式,这样就不用考虑保质期一类的问题了。我的做法是把面包换做足球一类商品,每日进货改成每个月进货,这样显得合理一些。这里假定你接受我设置的条件了呀。
你的意思我是这么理解的。s=140连续出现的时候没有货物的积压(黑天鹅事件),之后s=100连续出现(也是黑天鹅),由于二者发生的概率极低,所以s=100造成的货物积压没法通过s=140消除。但有两点不妥。
一是有限重复实验下货物积压确实难以消化,但它是一个常数。例如s=100导致积压了200的货物,它不会减少也不会增加的,就算以后每次都是s=100,结果也一定是常量。
二是这里的重复实验次数是正无穷,无穷下有限分析方法就失效了。连续多次s=100的黑天鹅导致的货物积压,它是不可能进一步增大的,因为总会再次出现s=140的黑天鹅。除非s=100的概率大于s=140,但条件是等概率。我觉着你被自己误导了,即觉得s=140的时候一定是没有滞销货,之后s=100的时候货物累积增加。一方面货物在增加,一方面遇到s=140的情况下货物却没有滞销。
之前计算了单日剩余期望=0,根据弱大数定律均值一定是无限接近于0呀。需要澄清的是均值=0不等同于剩余货物之和=0。例如10000/正无穷=0,但总货物剩余却是10000。可是这个结果的出现一定是由于s<120的连续出现,如连续出现了500次s=100。记得加莫夫举过一个例子,两个房间中间有一个小孔相连,大部分情况下两个房间的空气是均匀的;但会出现A房间的空气统统跑到B房间去,A房间居然成为真空,这个事件不是不会发生,而是发生的概率极低。发生概率极低的事件通常被当做不可能发生的。虽然剩余货物为10000数值很大,但这么极端的情况都出现有什么理由怀疑,s=140连续发生500次甚至更多为不可能呢。
弱大数定律:
牛腰
发表于 2017-7-6 01:22:02
本帖最后由 牛腰 于 2017-7-6 01:41 编辑
loy_20002000 发表于 2017-7-6 01:02
我们不妨把问题换个形式,这样就不用考虑保质期一类的问题了。我的做法是把面包换做足球一类商品,每日进 ...
我从没考虑过保质期,一直假设面包搁置多久都能以每个3元的价格卖出去。我前面可能没有说清楚,120/130/140连续发生N次以后再发生大约N次的100/110/120导致一定数量的面包滞销,再往后滞销数量不再增加。可是在总天数是无穷的情况下N本身没有上限,而滞销数量和N有正对应的关系。其实滞销数不需要10000,只要保持在150就可以保证新鲜面包卖不出去了(条件是滞销面包的优先权高于新鲜面包)。
如果你有怀疑的话建议你自己建个Monte Carlo模型跑一下,不会花很长时间就能验证。
Dracula
发表于 2017-7-6 01:48:13
本帖最后由 Dracula 于 2017-7-6 01:51 编辑
如果按你的理解存货影响到下一期的需求,并且未来有无穷期的话,解这个题需要使用dynamic programming。但是因为这个题没给出一个discount factor,而如果你不discount 未来的利润的话,无穷期的利润加起来会是无穷大,无穷大的量的最大化问题是没有解的,因此这应该不是出题人的思路。如果discount factor小于1的话,用dynamic programming应该可以解的。
(Dynamic programming当年是我学宏观经济学的时候学的,除了当年考试以外就再也没用过,你要是真想要答案的话,给我点时间,把这些捡回来)
loy_20002000
发表于 2017-7-6 02:00:37
牛腰 发表于 2017-7-6 01:22
我从没考虑过保质期,一直假设面包搁置多久都能以每个3元的价格卖出去。我前面可能没有说清楚,120/130/1 ...
你的这句话是错误的呀。
130/140连续发生N次以后再发生大约N次的100/110导致一定数量的面包滞销,再往后滞销数量不再增加
简化点,仅考虑100、140两种情况。连续发生N次140,再发生N次100,这里滞销数是t。之后有可能发生N次同一连续事件,分两种情况讨论:
1.如果发生N次100,那么之后发生N次140的可能性增加,于是对冲滞销依然为t。这是你的看法。
2.如果发生N次140,那么积压存货被对冲,滞销为0。
另外在讨论无穷的时候,你可能忽略了它的特殊性。M*N次140也是极小概率事件,也有发生的可能。也就是说不论你的N*20多么大都有消掉的可能。你在用有限思维考虑无穷,例如大名鼎鼎的分球悖论,无穷的情况下+选择公理成立,一个球可以分成无穷多个同样大小的球。有限下维持某个足够大剩余数的思路在无穷下不成立的。在无穷的前提下货物剩余可以极大(可以大于任何一个自然数),但一定不是无穷大。除非100的概率高于140。
你的意思可能是这样的。初始条件下100的剩余是20,140理论剩余是-20可实际却是0。经过足够多重复实验这种不对称导致100的货物剩余没法消掉。可是呀,t足够大,140的负期望就发挥作用了。
牛腰
发表于 2017-7-6 02:02:43
本帖最后由 牛腰 于 2017-7-6 02:10 编辑
Dracula 发表于 2017-7-6 01:48
如果按你的理解存货影响到下一期的需求,并且未来有无穷期的话,解这个题需要使用dynamic programming。但 ...
我想每日的平均利润可能是个更好的metric。只要每日进货量固定在x,支出就是4x,最低440(4X110),最高560(4X140)。Revenue最低300(卖出100个滞销面包,每个3元),最高700(卖出140个新鲜面包,每个5元)。那么每天的利润最坏的情况是300-560=-260,最好的情况是700-560=140。无穷期的日均利润只能在-260和140之间。这样你就不需要discount factor了。
牛腰
发表于 2017-7-6 02:06:30
loy_20002000 发表于 2017-7-6 02:00
你的这句话是错误的呀。
你还是自己作个模型跑一次,拿到结果以后再来讨论吧。自己动手验证是最好的学习方法:D
loy_20002000
发表于 2017-7-6 02:11:56
牛腰 发表于 2017-7-6 02:06
你还是自己作个模型跑一次,拿到结果以后再来讨论吧。自己动手验证是最好的学习方法 ...
不止我可以做,你也可以做呀。:D
Dracula
发表于 2017-7-6 02:16:32
牛腰 发表于 2017-7-6 02:02
我想每日的平均利润可能是个更好的metric。只要每日进货量固定在x,支出就是4x,最低440(4X110),最高5 ...
首先一个无穷大的量的最大化问题是没有解的,2*\infty和3*\infty一样大。。因此这个问题要properly defined的话,必须需要一个小于1的discount factor。
第二你的解法假设商家每日的生产量是永远不变的。最优解应该不是这样,而是应该随前一日的库存量而变化。生产量应该是前一日遗留下的库存量的函数。要解这种问题需要使用dynamic programming。但是怎么用,我现在有些想不起来了,需要温习一下。
loy_20002000
发表于 2017-7-6 02:19:00
本帖最后由 loy_20002000 于 2017-7-6 02:20 编辑
Dracula 发表于 2017-7-6 02:16
首先一个无穷大的量的最大化问题是没有解的,和一样大。。因此这个问题要properly defined的话,必须需要 ...
按照你的解法就歪楼歪多了,不过我还是很想看一看。期待。。。。。。
Dracula
发表于 2017-7-6 02:25:52
loy_20002000 发表于 2017-7-6 02:19
按照你的解法就歪楼歪多了,不过我还是很想看一看。期待。。。。。。
楼主我估计不是在上dynamic programming这门课。出题人的思路肯定不是在我说的这个方向。应该就是一个1期问题,不考虑库存对第二天需求的影响。
但如果是个无穷期问题,并且库存对第二天的需求有影响的话,那这就是一个典型的dynamic programming问题。用它应该是最常规的解法。
牛腰
发表于 2017-7-6 02:31:40
本帖最后由 牛腰 于 2017-7-6 02:34 编辑
Dracula 发表于 2017-7-6 02:16
首先一个无穷大的量的最大化问题是没有解的,和一样大。。因此这个问题要properly defined的话,必须需要 ...
第一,总利润是无穷的,但是日均利润不会是无穷的,所以我觉得算日均利润有可比性。
第二,我同意最优解应该能根据库存量变化,但是选择题问的是每日应该进货多少,而不是inventory target应该是多少。如果改变的这个条件的话你就不是在解楼主那道题了。
牛腰
发表于 2017-7-6 02:39:20
loy_20002000 发表于 2017-7-6 02:11
不止我可以做,你也可以做呀。
我已经作了,结果证实了我的看法。假设滞销面包的优先权高于新鲜面包,在每日进货110时日均利润是正数,120/130/140时日均利润是负数。一般这种模型都要自己做了才能信服结果,所以我和你说了好几次要做模型。
Dracula
发表于 2017-7-6 02:47:06
Dracula 发表于 2017-7-6 02:25
楼主我估计不是在上dynamic programming这门课。出题人的思路肯定不是在我说的这个方向。应该就是一个1期 ...
我刚才在纸上写了一下这个问题,意识到那个目标函数是不可导的,因此用普通微积分的办法没法解。应该是使用数值方法。但数值方法怎么用我没学过,不清楚。