专栏名称: 算法与数学之美
从生活中挖掘数学之美,在实践中体验算法之奇,魅力旅程,从此开始!
目录
相关文章推荐
九章算法  ·  这可能是码农新一次财富分配的机会…… ·  2 天前  
图灵人工智能  ·  大语言模型技术演进与启示! ·  3 天前  
图灵人工智能  ·  大语言模型技术演进与启示! ·  3 天前  
九章算法  ·  狗家L5,思路打开了 ·  6 天前  
九章算法  ·  K.O大厂“原题”的《OOD面向对象圣经》, ... ·  1 周前  
51好读  ›  专栏  ›  算法与数学之美

从数学的角度来谈公平

算法与数学之美  · 公众号  · 算法  · 2017-02-16 22:55

正文

前言

「员工拼死干活,老板毫无表示,员工创造利润,有权要求分享」这是黄凡近着,〈财阀〉长篇小说中工人向资本家要求公平待遇的口号。生动的刻划出了一些社会上的不平之鸣。「不平」,不但受害人觉得委曲,就是旁观者也愤怒难忍,仁者悲天悯人,奔走呼号,勇者路见不平,拔刀相助,而对一个求智者而言,我们能不能客观的决定怎样才是公平?是资本家剥削得太厉害,还是劳工要求过份?您也许不会相信一个简单的数学公式就可以基本上了解这个问题,而且让我们看到一幅崭新的图画,体会到人间的真理。


有人说过问题是数学的灵魂。那么我们就从问题开始吧。假定有一个资本家(厂主)、一个工程师及二个工人。资本家有工厂,但若没有工程师及工人则不能赚钱。若资本家与工程师合作,没有工人,则二人大才小用,做些工人的工作,每月可赚三万元,若加一个工人,因工人有体力技术,效率大增,三人合作每月可赚6万元,若再加一工人,则一月可赚9万元。但若只有厂主与工人没有工程师,则工厂亦不能开工。现在问这9万元的利润要如何分配方为公平合理?(请注意这九万元完全是利润,工厂保养、资金利息、股东红利均已扣除。)


厂主可能对工人说:我们二一添作五,一个月给你一万五吧。


工人可能会回答,这岂不是太黑。我们每人每月为工厂「净」赚三万。给我们一人二万有何不可?这样你们仍可以白白分到我们劳工所创的二万利润。何必贪得无厌。


厂主会说:笑话,我不给你工作,别说一万五,你一毛都赚不到,给你一万五还人心不足!于是纷争遂起,工说工有理,主说主有理。那么聪明的你会站在那一边呢?我们能用理智来解决这个分配问题吗?在往下看之前,我希望您暂时合起本文,闭眼想一想这个问题应如何着手解决。先自己想清楚再看答案是增加数学趣味及功力的重要法则。


想好了?那么我先告诉您答案,一个相当公平的分配应是厂主与工程师各得三万五,二个工人各得一万元。不公平?不,再找不到比这公平的法则了。


在谈到数学之前,我们可以看看这个问题的博大精深。几乎所有的经济问题都与这个问题有关。医院赚大钱,医生、护士、技师、警卫均不可少,他们要如何分配这笔大钱?学校中校长、教员、职员、工友在待遇上应有何差别?学生论文发表,教授的功劳应算多少?更进一步,我们身为社会一份子,应付多少税,取多少薪水,也可做如是观。一切权利的基础也应从公平上着手,我不亏待人,但我也不允许别人亏待我。



谢卜勒   (Shapley) 公平三原则

首先我们必须明白有合作才有分配公不公平的问题。否则你走你的阳关道打猎,我过我的独木桥捕鱼,在山吃山,靠水吃水,各顾自己,就谈不到分配不均的问题。今令 ω 为一个可由多人合作的工作,而 S 表示可以参与工作的人们的集合。若 US 的一个子集,则 表示 U 人合作时可得的工作利润。以前面工厂为例,则


U={厂主, 工程师} 时,(万元),若 U={厂主, 工程师, 工人甲},则 ,若 U={厂主, 工人甲},则 ,为了简便起见,令 S 中的元素以 1,2,…,n 为代号,即 。令 表示 i 成员在 ω 工作上该得的报酬。谢卜勒在1953年的论文中,订下了三个公平的原则。


原则1:报酬与名字无关,只与各人的贡献有关。即若 ij 互换而不影响 ω 时,

没有人会反对这个原则,即同工应同酬,张三若可做李四的事,则张三可拿李四的报酬,与他叫张三或李四无关。

原则2:利润属于工作者, 对所有 均成立。

这也是一个公平的原则,U 人合得的利益,自然分给 U 里的人。

原则3:若有二件工作,则对所有 i 均成立。

这也是无人反对的公理,我做二份工作,自可得二分酬劳。


稀奇的是(在谢氏原论文中,他亦称奇)。只要这三个原则,即可求出


定理(Shapley):根据上项三原则,若对所有 已给定,则 的唯一解为


s = U 所含之元素数目,

且 U-{i} 表示 U 中减去成员 {i}。


虽然本定理的证明不长(大约二页,高中代数程度),我们不在此重复,有兴趣的读者一定可以从本文的参考资料中找到。而且下文中会对(1)式做直观的分析,即使不查证明,多数人也会相信(1)是一个公平的分配方式。为了明了此公式的用法,让我们演算一下厂主的报酬,令

S={1,2,3,4}


1,2,3,4 依次代表厂主,工程师,工人甲乙。U S 的子集合,共有 24=16 个。可细列如下:


(1) 空集合及含有一个元素的集合均使


(2)含有二个元素的集合有(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)。其中只有

,其余均为0,而


(3)含有三个元素的集合有(1,2,3),(1,2,4),(1,3,4),(2,3,4),其中



(4)含有四个元素的集只有(1,2,3,4)得


因此求得


同理可得


现在如果谁要再说这种分配不公平就为时已晚了,因为一旦你承认了谢卜勒三原则,则剩下的推导全是推不倒,像 a+b=b+a 之类的数学公理。而谢卜勒原则似乎又无懈可击。因此我们不得不承认这个 3.5:3.5:1:1 是一个公平的分配法。

从另一个角度来看(1)式,我们发现


表示的是 {i} 加入 U 时所增加的(边际)利润,也就是 {i} 所带给 U 的利润。而 rn(s) 表示在所有 1,2,…,n 排列中,{i} 在 s 位置而能保持前后成员不变的或然率,因 sU 所含的元素数目,也就是 {i} 成为 U 中最后加入成员的或然率。因此(1)所表示的是 {i} 成员为 S 团体带来边际利润的期望值,这自然应是 {i} 所得到的报酬。好象不容易说得清楚,且看一个例子。因前例 4!=24 太大了一点,我们在前例中减少一个工人,看看(1)的分配是什么回事。同时也可以比较一下少一个工人时对各人收入的影响。现在 S={1,2,3} 依次代表了厂主、工程师,及工人甲。表一的左边有这三个数的全部排列法。其第二,三,四列代表的是在这种排列下,各人所带的边际利润。以第一行的排列 1 2 3 为例。厂主先到,他不能开工,因此他带来的利润是 0,工程师第二个到,他与厂主合作可得 3 万利润,因此他带来的边际利润是 3(不全是他的功劳,但算他带来的),工人最后来,他又带来了 3 万利润 因此这 3 万就记在工人名下,因此在第一行中各人所带来的利润是 0,3,3,但我们没有理由让厂主先到,这 3! 的排列应有同等的机会(很公平是不是?)因此一平均下来,各人所带来的利润,也就是他们应有的报酬是 2.5,2.5,1。表一的最后三列是代表此表与(1)式的关系,只要仔细对照一下,就可以看出(1)所表示的就是这些排列下所产生的平均值。

排列

1

2

3

含1的 U

s

123

0

3

3

{1}



132

0

6

0

{1}

1

2/6

213

3

0

3

{2,1}

2

1/6

312

0

6

0

{3,1}

2

1/6

231

6

0

0

{1,2,3}



321

6

0

0

{1,2,3}

3

2/6

15

15

6



1

平均 (和/6)

2.5

2.5

1




表一:对 {i} 而言的边际利润


若把表一的结果与先前有二个工人的结果比较,我们会发现多来的工人乙与原先的工人甲同工同酬(很合理,是不是?),都得了一万元的报酬,但他所造成的另外二万利润则又被厂与工程师吞去了 (您觉得工人很倒霉是不是?还有更倒霉的事情在后面,如果真的要公平的话。) 因此无论由三原则推导,或由(1)式直观,我们发现公平的分配并不像我们想象的那么难缠。谢卜勒能看到这一点已造成他成为一代宗师的地位,他的公式已成为数理经济学的柱石。


谢氏定理一些有趣的结果

工作不能增加利润,则他的报酬当是 0。此人称为冗员 (dummy),因对一个冗员 i 而言,

恒为 0,故


在上题中我们看到工程师与厂主的报酬相同,这似乎与事实不合,在大部分的工厂中,工程师拿不到厂主的待遇。这个原因是在一般情形下,工程师不只一个,尤其当工程师供过于求时,他们的身价就会惨跌。现设 S={厂主,工程师甲,工程师乙,工人甲} 其代号仍依次为 1,2,3,4。但只需一个工程师就够了。在这时候,若厂主请了其中的一位,他仍付他二万五?且看公式(1)中的结果。 


(1) 对空集合及含一元素之集合而言,


(2) 对二元素的集合而言,只有

不为0。


(3) 对三元素的集合而言,只有


不为 0 ( U(1,2,3)-U(1,3)=3-3=0,因另一个工程师乙捷足先登,工程师甲的工作就泡了汤。)


(4) 对四元素之集合

因此工程师甲的报酬应为


引用原则一,或再导一次可知工程师乙之公平所得亦为0.75,二者之和只有1.5万,竟然比原来一个人可得的2.5万少了一万。这说明了供过于求一个可怕的结果,多一个工程师不但不能增加工程师的收入,而且拖了同仁下水。其原因自然因为厂主有恃无恐,不怕找不到工程师而可以加以杀价的缘故。但这个事实竟能从公平三原则中反映出来,不可不谓数学的奇迹。现在看看资本家与工人可因此多获利多少。稍加计算可得



可见其中大部分的好处为厂主所得,但工人也因工程师多而身价小增。依理往前推,若工程师再多,则其身价必又再跌,原来工程师之所以可以与资本家平分秋色乃是因工程师只有一位,没有他开不了工,奇货可居之故。当然若只有一个工程师而有二个工厂,则他的身价会增加而厂主的报酬就要下跌。但在一般社会中都是资本家少,工程师多,而劳工更多,因此工人可以分得之公平工资之惨,可以想见。


公式(1)之推导固然精彩,可惜(幸好)在一般情形下,不容易计算,因为

含有 S 中全部的子集,有 2n 个。当 n 稍大时,计算量就会压死计算器。但在某些情形下,特别是成员的能力大多相同时,表一中的排列法就能减少到可以计算的地步。现举一个这样的例子。


设某鸟商请一个村子里的人为他养鸟,各家养一只。到收购的时候,他宣布他只能买成对的鸟儿,一对一千元。村人各户人家集合算了一下,发现有雄鸟110只,雌鸟90只,因此可卖九万元,为了不使养雄鸟之家抢卖打破头起见,全村一气,算大家共卖,因此得了九万元,放生了20只雄鸟。现在问题是钱要如何分配才「公平」。当养雄鸟之家主张均摊,即每只鸟值 9万/200 = 450 元,但养雌鸟人家认为物以稀为贵,雌鸟之所以活得少,必定是比较难养,理应多分一点,纷争又起,如何摆平?如果我们以谢卜勒原则看公平,则因鸟只有二种,可以求出


式中 [y] 表 y 之整数值,n1i 所属之类的鸟数,即若 i 为雄,则n1=110,i 为雌,则 n1=90,n2 另一类鸟数,n=n1+n2。用计算器算出结果是雄鸟单价值 109 元,雌鸟单价为 876 元,而全部雄鸟之值只有雌鸟的 6.5 分之一。其实稍不平衡,价差就很惊人,如果雄、雌各为 102 及 98 只,则其单价比为 1:1.82,物以稀而贵,一致于此。


记得若干年前台湾适婚年龄者男多女少,少女身价百倍。现在好象是女多男少,单身汉行情看涨。不过人间的情形很复杂,我们不能把每位少男少女像鸟儿一样看为等价。因各人条件不同,每个人的公平地位就不容易由(1)计算出来(2n子集而?),条件好的男女是不介意情敌多少的。但(1)式至少能解释一个重要的现象,稍不平衡,就产生极大的价差。 


其实人们虽不知公式(1),但这种现象早已深植于人们的心中,每个人都想改变自我环境,使得公式(1)对我有利。当供过于求的时候,人们曾经把粮食、牛奶、羊毛倒入海中以求增加价格,以鸟儿为例,若雄鸟人家先商量好,偷偷放走20只 则对养雄鸟人家都有利, (若放走30只则更有利,这时候雌鸟每只只值201元而雄鸟值773元,虽全部只剩下80对鸟儿,但对雄鸟人家而言则有利。但这要合作才行,若你自己把鸟放了,则可能一文都拿不到。)各行业防止供过于求,用执照、工会、帮会、码头等加以限制人数。而大家也都知道要进到一个行业中成为一个不可少的人。


然而也有些人虽不喜欢不平,但却想破坏公平,有人破坏第一原则,利用各种关系,使得报酬与名字有关,他是我的儿子,报酬就自然加大,有的破坏第二原则,没有做事的人也巧立名目,拿一些钱。当然,最坏的是鼓励生产力不足的人用抢,严重的破坏了公平的分配。



一点感想

从公平的原则看来,社会上才智高的人似乎反而没有拿到他份内公平的报酬,这些不可少的创业家,发明家,若照谢卜勒的公式,他们的报酬可能应是不可思议的大。因此当我们未来再为自己诉不平的时候,就该想到公式(1):从公平的观点来看,是天下人负我,还是我负天下人?

Shapley 的原文发表在 Shapley,L.S.(1953)〈A value for n-person games〉,in《Contributions to the Theory of Games》, Vol. II,Ed. by H.W. Kubn and A.W. Tucker, Princeton University Press.

一些最近的发展可看

《The Shapley Value:Essays in Honor of Lloyd S. Shapley》,1988,Ed. by A.E. Roth, Combridge University Press.

Shapley 1953年论文亦收在此书内