报童问题(The Newsvendor Problem)
假设公司必须决定某种产品的订购数量
来能满足需求
。 订购成本为每单位
。 如果需求
大于
,则公司需要以单价
追加一个订单。如果
,则其成本等于
,如果
,则产生持有成本
。因此总成本为
其中
表达
,同时假设后追加订单的单价大于订购成本
。
公式的目的是使总成本
最小。 这里
是决策变量,需求
是参数。 如果需求已知,则相应的优化问题可以用以下形式表示:
其中的总成本函数可以改写为
这是一个分段线性函数,且最小值在
取到。也就是说如果需求已知,那么最好的决策肯定就是订购数量等于需求数量。
然而实际中往往是在需求已知前就需要决定订购数量。 在这种情况下进行处理的一种方法是将需求
视为随机变量。 用
表示当被视为随机变量时的需求,以便将其与特定实现
区分开。 我们进一步假设
的概率分布是已知的(或者说我们可以从历史数据中估计
的分布)。 此时,我们要考虑的则是期望的成本最小,即
上述优化命题通过优化(最小化)平均总成本来求解最佳的订购数量。在这个问题中这个优化命题是可以得到闭式解的。
考虑随机变量
的累计密度函数
,注意
时
,则期望
可以表示为
推导:因为且,可以得到
求导并令导数为
可得
因此最优解为:
在实际应用中,这种闭式解往往难以得到,因此可以通过近似求解。比如采用场景(Scenario)的方法。假设随机变量
为有限支撑分布,它的取值为
且对应的概率为
。则可以将期望写为加权和的形式
对应报童问题的总成本函数,我们可以转化为如下线性规划
进一步可以将平均总成本可以表示为
最差情况(Worst Case Approach)
一般在考虑鲁棒优化时会考虑最差情况。通常假设随机变量在一定范围内,比如
,则最差情况的优化命题写成
对于报童问题,上述优化命题等价于
如果除了知道未知变量的范围还知道它的均值
,则优化命题的形式还可以写成
其中
表示支撑在
且均值为
的概率测度集。
机会约束(Chance Constraints)
如果我们想要控制成本
使得其小于一定的数值对于任意需求情况均成立,可以用以下不等式来表示
当不确定集大点的时候,往往这个不等式可能就不能成立,对应的问题也就无解。在这种情况下一种更合理的方法是采用机会约束,也就是说允许成本在一定概率内大于这个阈值
或者
仅仅只要一个很小的整数
也能对原始约束有很好的松弛!