在零售业的供应链管理中, 我们经常会遇到一些资源分配问题, 例如商品的供需平衡, 销售利润分摊, 运输成本分摊等. 常见的分配方式有平均分和按权重(比例)分. 在某些应用场景下, 我们需要体现分配方案的"公平性", 那么如何科学地定义公平性, 又如何计算公平的分配方案? 本文从合作博弈论的角度思考如何解决这些实际问题.
1. 合作博弈
考虑某个自营电商的销售场景: 电商平台(例如网易严选)从供应商采购商品, 顾客在线下单之后, 商品会通过承运商(例如顺丰)把商品送达顾客手中. 在这个销售过程中, 供应商, 电商平台和承运商三方合作从而获得销售利润. 那么我们如何"公平地"把利润分配给三方?
合作博弈论关注的核心问题就是如何对合作产生的利润(或成本)用科学的方式进行分配. 我们用二元组表示合作博弈(Cooperative Game), 其中记号的解释如下:
- -- 参与博弈的局中人(Player)的集合
- -- 局中人集合的任意子集称为联盟(Coalition)
- -- 联盟的效用函数. 可以及理解为联盟合作产生的总收益.
问题. 给定, 如何把总收益公平地分配给每个局中人?
不同应用场景对公平性的定义可能是不同的, 因此研究合作博弈论的一个核心问题就是研究不同分配策略的性质.
2. 分配策略
为方面描述, 我们先引入如下记号:
- -- 分配向量(Allocation Vector), 局中人得到的收益为
- -- 联盟分配到的收益之和, 即
下面我们介绍一些分配策略.
2.1 The Core
Core是分配向量的集合. core必须满足如下条件:
- .
说明
- 条件1保证所有的收益都被分配了. (没人贪污)
- 如果任意一个联盟想要独立门户, 即, 不跟其他人()合作, 那么条件2保证得到的总收益不会超过他们当前分配到的收益之和. 换句话说, 条件2保证联盟没有动机独立门户. (不合作不会赚得更多)
- core有可能是空集. 如果非空, 它包含的分配向量一般不是唯一的.
2.2 The Kernel[1]
Kernel也是分配向量的集合, 它从谈判的角度来定义公平性. 考虑两个局中人, , 给定分配向量, 定义
站在局中人的角度来看, 如果他不愿意跟合作, 最多能额外获得的收益即为. 因此, 我们可以把理解为对的谈判能力. 如果, 则说明相对有可能在谈判上有优势.
kernel必须满足如下条件:
- ,
- 如果, 那么,
说明
- 条件2确保局中人分配到的收益比自己"单干"不会少.
- 把满足条件1和条件2的分配向量称为imputation.
- 条件3说如果对谈判有优势, 那么对的谈判是免疫的(因为分配到的收益等于自己单干的收益, 即使不合作也没有损失). 简而言之, 条件3确保任意两个不同的局中人和在谈判地位上是平等的.
- Kernel非空.
2.3 The Nucleolus[2]
Nucleolus与前面的概念有所区别, 它是分配向量(不是集合). 我们先给出一些记号:
- , -- 代表联盟不合作能额外获得的收益
- -- 是构成的向量. 设的分量按照从大到小的顺序排列
考虑两个分配向量, , 我们说按词典序(lexicographically)比小, 当存在下标使得 且 , .
Nucleolus 是按字典序最小的imputation(满足kernel的条件1和条件2).
说明
- Nucleolus的定义比较抽象. 我们用比较浅显的话来解释: nucleolus分配的思想是为了使最贫穷的局中人分配到的财富最大化, 其中"财富的多少"可以理解为公平性, 越贫穷则越不公平.
- nucleolus kernel
- 如果core非空, 则nucleolus core
2.4 The Shapley Value[3]
它的计算公式为:
说明
- 给定联盟, 局中人相对的边际贡献为.
- 如果随机分配联盟, 那么是落入集合的概率.
- 综上所述, 为局中人边际贡献的期望.
3. 应用案例
下面我们列举几个在电商业务中可能应用的案例.
3.1 需求分配
假设有个仓库, 它们对同一个商品的需求分别为. 当前该商品的采购入库总量为. 当时, 我们该如何分配需求?
为什么不建议按比例分配?
如果按比例分配, 当其中某个仓库的需求非常大时, 它分到大量商品, 而另外的仓库B可能只分到极少商品. 这样一来仓库可以销售较长时间, 相反仓库可能很快就发生缺货. 长此以往, 仓库B由于需求总量少, 可能长期无法满足, 因而一直缺货状态.
考虑什么分配方式?
详情可以参考 《破产问题 (The Bankruptcy Problem)》
3.2 车辆装车
考虑把种商品运输到一个仓库中, 每种商品的单位体积分别是, 商品的运输量分别是. 当前车辆可运输的总体积为. 当时, 我们该如何分配商品的运输量?
(令, 这个问题是不是就转化成上面的需求分配问题了?)
3.3 成本分摊
设客户购买了三件商品, 其售价如下表所示,
商品名称 | 售价 |
---|---|
毛巾 | 20 |
手套 | 60 |
帽子 | 120 |
并使用了一张满150减20的优惠券, 因此他实际支付的订单费用是180元(不考虑运费). 那么平摊到每个商品的购买成本是多少?
为什么不建议按比例分配?
为了凑够优惠券的条件, 实际上只需要购买帽子和手套即可, 所以毛巾对凑单的实际贡献是0. 从这个角度来看, 毛巾不应该享受优惠, 它的购买成本应该按原价20计算比较合理.
考虑什么分配方式?
试试Shapley Value?
3.4 促销活动评估
考虑如下的场景: 某电商在同一天上线多个促销活动. 促销活动的集合记为. 每个促销活动对应了一些商品(同一个商品允许参加多个活动). 对任意活动的组合, 我们可以计算其参加活动商品的总销量. 因此, 表示当天所有活动商品的总销量. 请问如何计算每个活动带来的销量?
考虑什么分配方式?
留给读者思考.
参考文献
-
M. Davis and M. Maschler. "The kernel of a cooperative game", Naval Research Logistics Quarterly, 12 (3): 223–259, 1965. ↩
-
D. Schmeidler. "The nucleolus of a characteristic function game", SIAM Journal on Applied Mathematics, 17 (6): 1163–1170, 1969. ↩
-
Lloyd S. Shapley. "A Value for n-person Games". In Kuhn, H. W.; Tucker, A. W. Contributions to the Theory of Games. Annals of Mathematical Studies. 28. Princeton University Press. pp. 307–317, 1953. ↩
网友评论