报童问题求解最大利润_矩问题和分布式鲁棒优化:由阿里数学竞赛题说开...

(一直没怎么关注阿里的那个数学竞赛。不过今天看到一些讨论:如何看待阿里巴巴全球数学竞赛第一轮题目?,然后发现了一个有趣的问题。

a78b940d5776d4c3c0ef74bc978e4fcc.png

这个题事实上是运筹里面min-max报童模型(newsvendor model)的一个很经典的结果。这里主要是可以求出显式解的,所以可以用一个特例分析:我们这里先采用文章[1]的经典分析。


一、题解:不限制非负支撑集的情形

我们简记

(就是个期望嘛),那么优化问题为

题目中

。这里的关键是要用这样一个引理:

引理:

这个不等式是紧的。

证明:并不复杂,但更多是构造性的。首先,注意

,然后对绝对值这一项取期望并利用Cauchy-Schwarz不等式,

把这个式子带入到

就得到了要证的不等式。

至于为什么这个不等式是紧的,一个著名的结论就是对这种nesvendor cost,考虑

为一个两点分布就能取到最坏情况。具体来说,我们取一点的概率和取值为

另一点的概率和取值为

容易验证对这个分布,

当然注意这个时候分布可能会取到负值,因为题目并没有说
的取值范围,因此默认在
上(然后我写完这部分才注意到积分是从0积到无穷...那就更复杂点;后面补充)。如果有了个具体的取值范围(比如在某个闭区间里)这个就不一定紧了。

有了上述引理,我们就知道可以把优化问题里内部嵌套的max问题换成上面这个紧的上界,即我们的优化问题化为了:

到了这里就很简单了,

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
所谓报童问题是一个与需求有关,而需求是随机的问题。一位报童从报刊发行处订报后零售,每卖出一份可获利a元,若订报后卖不出去,则退回发行处,每份将要赔钱b元。那么报童如何根据以往的卖报情况(每天报纸的需求量为k份的概率为 )来推算出每天收益达到最大的订报量n? 算法解分析: ① 我利用负指数分布公式“g(u)=-lg(u)”,其中“u=1.0*u/RAND_MAX(产生[0,1]均匀分布的随机数)”。函数中“g(u)=-lg(u)”的自变量“u”是均匀产生[0,1]之间的数,可知“g(u)”的函数值也是等可能的产生的,而且这些函数值是呈一种负指数分布趋向的。我可以通过一些巧妙地方法,就是让这些函数值乘上一个数值,让其不能超过1并且把这些值累加起来(今次加上上一次的),这是一个循环,结束的条件是累加的这些和的值≥1。到循环结束的时候,我可以算一下究竟循环了多少次,而这个循环了“多少次”就是我们所需要的需求量的模拟值。 ② 因为我们都知道“-lg(u)”的值是公平地呈负指数分布出现的,为何?很明显,“u=1.0*u/RAND_MAX(产生[0,1]均匀分布的随机数)”证明其“公平性”。“公平性”很重要,因为能出现通过“-lg(u)”计算得出的值必须要公平才有“可信性”。同理,“-lg(u)”乘上一个具体的数以后也是能“g(u)”的值是公平地呈负指数分布出现的“x=-1.0/t*log(u);/*产生负指数分布的随机数(t是确定的常数)*/ ” ③ 根据负指数函数的分布规律可知,每次让这些函数值缩小某个级别的时候在累加起来,直到其值“=1”才停止,其中循环的次
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值