2.2 公平席位分配方案
某学院有3个系共200名学生,其中甲系100人,乙系60人,丙系40人,现要选出20名学生代表组成学生会。如果按学生人数的比例分配席位,那么甲、乙、丙系分别占10、6、4个席位,这当然没有什么问题(即公平)。
但是若按学生人数的比例分配的席位数不是整数,就会带来一些麻烦。比如甲系103人,乙系63人,丙系34人,怎么分?下表按“比例”来分配20和21个席位,你认为这样分配公平吗?
表2-1 分配方案
解题思路
按照“比例”分配20个席位:甲、乙、丙三系分别得到10.3、6.3、3.4席,舍去小数部分后分别得到10、6、3席,剩下的1席分给“损失”最大(即小数部分最大)的丙系,于是三个系仍分别占10、6、4席。按照“比例”分配21个席位:甲、乙、丙三系分别得到10.815、6.615、3.570席,舍去小数部分后分别得到10、6、3席,剩下的2席分给“损失”最大(即小数部分最大)的甲系和乙系,于是三个系分别占11、7、3席。这样的分配是不公平的,至少对丙系而言是不公平的!因为席位增加了,而丙系得到的席位反而减少了。
先就A、B两方席位分配情况加以说明。设A、B两方人数分别为p1、p2,占有席位分别为n1、n2,则p1/n1与p2/n2表示两方每个席位所代表的人数。显然只有当p1/n1=p2/n2时,席位分配才是公平的。但是,由于人数和席位都是整数,通常两者是不等的,这时席位分配不公平。
不妨p1/n1>p2/n2,即分配对A方是不公平,直观的想法是用数值p1/n1-p2/n2表示对A的绝对不公平值,但绝对不公平值往往难以区分不公平程度。所以,绝对不公平值不是一个好的衡量指标。为了改善上述绝对标准,因此引入相对标准。
若p1/n1>p2/n2,则称rA(n1, n2)=(p1/n1-p2/n2)/(p2/n2)=(p1n2)/(p2n1)-1为对A的相对不公平值;若p1/n1<p2/n2,则称rB(n1, n2)=(p2/n2-p1/n1)/(p1/n1)=(p2n1)/(p1n2)-1为对B的相对不公平值。建立了衡量分配不公平程度的数量指标后,制订席位分配方案的原则是使它们尽可能小。
假设A、B两方已分别占有n1和n2个席位,利用不公平值来确定,当总席位增加1席时,应该分配给A方还是B方。不失一般性,设p1/n1>p2/n2,即对A不公平。当再增加一个席位时,有下列三种情形:
(1)p1/(n1+1)>p2/n2,这表明即使A方再增加1席,仍对A不公平,所以这1席显然应分给A方;
(2)p1/(n1+1)<p2/n2,这表明A方增加1席时,将对B不公平,此时对B的相对不公平值为:rB(n1+1, n2)=[p2(n1+1)]/(p1n2)-1;
(3)p1/n1>p2/(n2+1),这表明B方增加1席时,将对A更不公平,此时对A的相对不公平值为:rA(n1, n2+1)=[(n2+1)p1]/(p2n1)-1。
按照公平分配席位的原则,即使得相对不公平值尽可能小。所以如果rB(n1+1, n2)<rA(n1, n2+1),则这一席应给A方;反之,则应给B方。根据上述确定的分配方案,可对其进行简化。注意到rB(n1+1, n2)<rA(n1, n2+1)等价于:。
并且不难证明,情形(1)也可推得此式。于是得到结论:当上式成立时,增加的1席应分给A方;反之,应分给B方。若记,则增加的1席应分配给Q值较大的一方。这种席位分配方法称为Q值法。上述Q值法还可以推广到m 方的情况:计算Qi=,则这一席位应分配给Q值最大的一方。
下面按照Q值法对甲、乙、丙三系的21个席位重新计算。先算比例再取整,可得n1=10, n2=6, n3=3,已占取19个席位。现讨论第20和21个席位归于何方:
表2-2 三系席位分配表
可以将这个例子进行扩展,形成更为一般的情况:某校共有m个系,第i系学生数为ni (i=1,2, …, m),校学生会共设N个席位。怎样才能公平地把这些席位分配给各系?
显然,m与ni(i=1,2, …,m)应为正整数,全校学生数记为。假设每个系至少应分得一个席位(否则把其剔除),至多分得ni(i=1,2, …, m)个席位,m≤N<n。对于全校而言,每个席位代表的学生数为a=n/N。第i系按学生数比例应分得的席位数为αi=ni/n×N=ni/a。第i系实际分得的席位数为Ni,第i系每个席位代表的学生数可以表示为ai=ni/Ni。通过分析可以认为:ai 越大的系,损失也就越大。因此,需要尽量照顾ai 越小的系或者认为各系ai 应该尽量接近。故可提出如下各种“公平性”标准:
标准 1:要求z=maxai 最小,即损失最大的系损失尽量小。
标准2:要求最小,即各系的损失应该尽量接近。
标准3:要求z=minai 最小,即损失最小的系损失尽量小。
标准4:要求最小,即各系的损失应该尽量接近。
针对不同的标准,可以建立不同的模型。下面仅针对标准1进行建模讨论。
ai取整后,每席代表的学生数为。其中,βi={αi}/[αi],称为判别数;{αi}表示αi的小数部分。βi越大的系就越吃亏,按照标准1应该被优先照顾。
分配方法的算法流程如下,其中。
当N=21、n=200时,运用标准1进行如下计算,得到席位分配表如表2-3所示:
表2-3 基于标准一的三系席位分配表
【思考题】 本节给出了两种不同方法的席位分配模型,请讨论哪种模型更加公平,是否存在其他席位分配?