模型思维(6)--合作博弈模型
当人们在进行合作的时候,我们需要对于每个人的贡献进行分析,从而知道哪一个人对于群体的贡献最大,哪一个最小,以此可以作为分配奖励的标准。然而量化分析这个并不容易,因为当不同人组合在一起时,可能就会产生不同的结果。我们介绍几个与此相关的概念来解决这个问题。
合作博弈 合作博弈由一组博弈参与者和一个价值函数组成。价值函数是指在一项多人合作的项目中,每个可能的联盟(子集)所产生的价值。
在合作博弈中,一个参与者的”最后上车者价值“ (last-on-bus-value)是指当他最后一个加入组织所产生的价值。例如,如果一个桌子四个人才能搬动,搬动的价值是10,那么这四个人每个人的最后上车者价值就是10。如果三个人可以搬动,那个第四个人的最后上车者价值就是0。我们可以看出博弈的总价值不是所有参与者的最后上车者价值之和,如果当价值随着参与者增多递减时,最后上车者价值的总和将小于博弈的总价值。
最后上车者价值并不能很好的刻画每个人的贡献度,夏普利值(Shapley value)则可以。一个博弈参与者的夏普利值,等于他在所有可能加入的联盟的次序下对联盟边际贡献的平均值。对于一个$N$个人参与的博弈,一个有$N!$种可能加入的结果,对于某个参与者$i$, 计算在所有次序中当其加入对于整体的边际贡献的平均值。
我们可以用3个程序员合作写代码作为一例子,一个项目有500行需要写。以下是一个人单独做,两个人合作,以及三个人合作产生的结果。其中C可以看作程序员鼓励师,当一个做的时候结果不多,但是合作时可以大大提高两人的合作成果。
合作 价值 A 100 B 125 C 50 AB 270 BC 350 AC 375 ABC 500 3个人合作的话有6种可能……