引言
本文介紹了一個經(jīng)典的商品采購模型(報童問題)及其解法. 該模型通過考慮需求的不確定性來最大化銷售利潤. 注: 本文的主要內(nèi)容參考Gallego[1].
1. 報童問題
這是一個關(guān)于賣報商人采購報紙的問題. 每天早上, 賣報商以批發(fā)價0.3元(每份)向報社采購當(dāng)天的報紙, 然后以零售價1元(每份)進(jìn)行售賣. 如果報紙在當(dāng)天沒有賣完, 他會把報紙以0.05元(每份)的價格賣給廢品回收站. 那么賣報商應(yīng)該如何確定報紙的采購數(shù)量?
我們先簡單分析一下這個問題的特點:
- 采購一個商品.
- 在一個采購周期內(nèi)僅采購一次.
- 采購之時不知道準(zhǔn)確的需求.
- 商品會過期.
2. 數(shù)學(xué)模型
下面我們用數(shù)學(xué)語言把這個問題再描述一下.
參數(shù)
- 單位采購成本(cost per unit):
- 零售價(sale price):
- 殘值(salvage value), 即商品過期之后的售價:
- 需求(demand): 隨機(jī)變量
服從分布
, 均值和標(biāo)準(zhǔn)差分別記為
決策變量
- 采購量:
目標(biāo)
- 最大化期望收益
不失一般性, 我們假設(shè), 否則問題的最優(yōu)解是顯而易見的.
3. 求解
記. 因此
,
. 利用
, 我們可以把
表示成如下形式:
其中
因此 . 記
,
. 則
分別代表采購過量(overage)和少量(underage)的單位成本.
令.
可以被寫成
由于是凸函數(shù), 它的線性變換
也是凸函數(shù), 當(dāng)
是連續(xù)分布時, 最優(yōu)解的一階導(dǎo)數(shù)為0. 我們可以通過交換積分號導(dǎo), 即
其中 如果
, 否則
為0.
注意到且
. 我們有
令, 我們得到
臨界分位數(shù)(Critical Fractile)
由于是隨機(jī)變量
的cdf(cumulative distribution function) (單調(diào)非遞減), 因而存在逆函數(shù). 設(shè)最優(yōu)解為
, 因此
4. 例子
本節(jié)考慮兩個具體的例子. 一個是服從正態(tài)分布(連續(xù)分布), 可以按照前文的公式計算最優(yōu)解; 另一個例子是
服從Poisson分布, 我們介紹如何把計算方法適配到離散分布的情形.
4.1 正態(tài)分布
. 令
,
且
.
由于
因此
例 服從正態(tài)分布,
,
. 設(shè)
,
,
. 我們的計算步驟如下:
-
# python >>> from scipy.stats import norm >>> norm.ppf(0.75) 0.6744897501960817
4.2 Poisson分布
Poisson分布的pmf (probability mass function)為
由于Possion分布是離散分布(對任意的,
不一定可計算), 我們令
例 服從Poisson分布,
. 設(shè)
,
,
. 我們的計算步驟如下:
- 利用二分法找到最小的整數(shù)
使得
(其中
是隨機(jī)變量
的cdf).
# python >>> from scipy.stats import poisson >>> poisson(25).cdf(27) 0.7001861449652768 >>> poisson(25).cdf(28) 0.763400741866402
5. 總結(jié)
- 報童問題是商品采購問題的一個例子. 對該問題的研究和求解可以指導(dǎo)我們在實際中優(yōu)化采購計劃, 從而提高商品的銷售利潤.
- 但在實際中制定商品的采購計劃時, 我們的目標(biāo)與約束一般會比報童問題復(fù)雜(例如考慮庫存成本), 因此需要根據(jù)實際問題進(jìn)行建模和求解, 不能盲目照搬已有的模型.
- 制定采購計劃之前可以采用需求預(yù)測(銷量預(yù)測), 但同時也要考慮銷量的隨機(jī)性(詳情見《如何在商品采購中考慮銷量的隨機(jī)性?》).
參考文獻(xiàn)
-
Guillermo Gallego. "IEOR 4000 Production Management Lecture 7". Columbia University, 2005. ?