公平的席位分配
一. 提出问题
席位分配在具体实践时常有不公平现象,怎样分配才是相对公平的?应按什么分配标准?
二. 符号释义
符号 | 释义 |
---|---|
\(i\) | 自然数列 |
\(p_i\) | 第\(i\)方的人数 |
\(n_i\) | 第\(i\)方的席位数 |
\(r\) | 相对不公平度 |
三. 建立模型
人数 | 席位 | |
---|---|---|
A方 | \(p_1\) | \(n_1\) |
B方 | \(p_2\) | \(n_2\) |
模型假设
-
席位分配以人数作为唯一影响因素进行分配
-
每一个个体对于席位分配的影响是完全等同的,即不存在群体之间的加权分配的情况
模型的建立
1. 绝对不公平度定义
想要进行公平的分配,首先本文需要定义衡量公平的指标,在本文引入经典的绝对不公平度的定义:
若\(p_1/n_1>p_2/n_2\),称为\(p_1/n_1>p_2/n_2\)对A的不公平度
2. 相对不公平度定义
鉴于现实生活中公平往往是相对的,因而绝对公平度作为分配依据会因为数据的容量改变而产生偏颇,因此本文引入相对不公平度的定义。
选取主要分数法的定义:
当\(n_j/p_j>n_i/p_i\)时,称为对\(i\)的\(r_i(n_i,n_j)=\frac{n_j}{p_j}-\frac{n_i}{p_i}\)相对不公平度。
3. 分配原则
将席位逐一分配给各方,分配方式为将每个席位分给相对不确定度最大的一方。
4. 分配方法
考虑\(r_A(n_1,n_2+1)\)与\(r_B(n_1+1,n_2)\)
当\(r_A(n_1,n_2+1)<r_B(n_1+1,n_2)\)时, \(\frac{n_2+1}{p_2}-\frac{n_1}{p_1}<\frac{n_1+1}{p_1}-\frac{n_2}{p_2}\)
\[\frac{2 n_2+1}{p_2}<\frac{2 n_1+1}{p_1}\] \[\frac{p_1}{n_1+0.5}<\frac{p_2}{n_2+0.5}\]此时应分配给\(B\)
同理,当\(r_A(n_1,n_2+1)>r_B(n_1+1,n_2)\)时, \(\frac{p_1}{n_1+0.5}>\frac{p_2}{n_2+0.5}\) 此时应分配给\(A\)
5. Q值的定义
鉴于上文推导,为了方便比较,本文定义\(Q\)值: \(Q_k=\frac{p_k}{n_k+0.5}\) \(k=1,2\)
\(Q_k\)大者得到席位。
推广到\(m\)方分配席位,计算\(Q_k=\frac{p_k}{n_k+0.5},k=1,2,3\dots,m\),该席位分给\(Q\)值大的一方。
四. 案例应用举例
任意取8个被分配方,人数分别为
被分配方 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
人数 | 42 | 45 | 33 | 12 | 35 | 80 | 67 | 34 |
将20个席位按照”主要除数法”公平分配给这个8个被分配方
下面我们写一个程序来模拟这个过程:
from numpy import argmax
# 总席位数
s = 20
# 各方人数情况
ps = [42,45,33,12,35,80,67,34]
# 初始化席位分配
ns = [0 for _ in ps]
# 定义Q函数
def Q(p,n):
return p/(n+.5)
print('下面将{}个席位分配给{}个方面'.format(s,len(ps)))
print('各方人数情况:',ps)
print('-----------------------------------------------')
for r in range(s):
print('现在进行第{}个席位的分配'.format(r+1))
qs = [Q(*x) for x in zip(ps,ns)]
print('Q值:',qs)
i = argmax(qs)
print('第{i}方的Q值最大,将席位分给第{i}方'.format(i=i+1))
ns[i] += 1
print('目前各方的席位情况:',ns)
print('-----------------------------------------------')
'''
Distribution.py
用于公平指标分配问题的模拟脚本
Copyright 2020 by Algebra-FUN(樊一飞)
ALL RIGHTS RESERVED.
'''
程序模拟的输出结果:
下面将20个席位分配给8个方面
各方人数情况: [42, 45, 33, 12, 35, 80, 67, 34]
-----------------------------------------------
现在进行第1个席位的分配
Q值: [84.0, 90.0, 66.0, 24.0, 70.0, 160.0, 134.0, 68.0]
第6方的Q值最大,将席位分给第6方
目前各方的席位情况: [0, 0, 0, 0, 0, 1, 0, 0]
-----------------------------------------------
现在进行第2个席位的分配
Q值: [84.0, 90.0, 66.0, 24.0, 70.0, 53.333333333333336, 134.0, 68.0]
第7方的Q值最大,将席位分给第7方
目前各方的席位情况: [0, 0, 0, 0, 0, 1, 1, 0]
-----------------------------------------------
现在进行第3个席位的分配
Q值: [84.0, 90.0, 66.0, 24.0, 70.0, 53.333333333333336, 44.666666666666664, 68.0]
第2方的Q值最大,将席位分给第2方
目前各方的席位情况: [0, 1, 0, 0, 0, 1, 1, 0]
-----------------------------------------------
现在进行第4个席位的分配
Q值: [84.0, 30.0, 66.0, 24.0, 70.0, 53.333333333333336, 44.666666666666664, 68.0]
第1方的Q值最大,将席位分给第1方
目前各方的席位情况: [1, 1, 0, 0, 0, 1, 1, 0]
-----------------------------------------------
现在进行第5个席位的分配
Q值: [28.0, 30.0, 66.0, 24.0, 70.0, 53.333333333333336, 44.666666666666664, 68.0]
第5方的Q值最大,将席位分给第5方
目前各方的席位情况: [1, 1, 0, 0, 1, 1, 1, 0]
-----------------------------------------------
现在进行第6个席位的分配
Q值: [28.0, 30.0, 66.0, 24.0, 23.333333333333332, 53.333333333333336, 44.666666666666664, 68.0]
第8方的Q值最大,将席位分给第8方
目前各方的席位情况: [1, 1, 0, 0, 1, 1, 1, 1]
-----------------------------------------------
现在进行第7个席位的分配
Q值: [28.0, 30.0, 66.0, 24.0, 23.333333333333332, 53.333333333333336, 44.666666666666664, 22.666666666666668]
第3方的Q值最大,将席位分给第3方
目前各方的席位情况: [1, 1, 1, 0, 1, 1, 1, 1]
-----------------------------------------------
现在进行第8个席位的分配
Q值: [28.0, 30.0, 22.0, 24.0, 23.333333333333332, 53.333333333333336, 44.666666666666664, 22.666666666666668]
第6方的Q值最大,将席位分给第6方
目前各方的席位情况: [1, 1, 1, 0, 1, 2, 1, 1]
-----------------------------------------------
现在进行第9个席位的分配
Q值: [28.0, 30.0, 22.0, 24.0, 23.333333333333332, 32.0, 44.666666666666664, 22.666666666666668]
第7方的Q值最大,将席位分给第7方
目前各方的席位情况: [1, 1, 1, 0, 1, 2, 2, 1]
-----------------------------------------------
现在进行第10个席位的分配
Q值: [28.0, 30.0, 22.0, 24.0, 23.333333333333332, 32.0, 26.8, 22.666666666666668]
第6方的Q值最大,将席位分给第6方
目前各方的席位情况: [1, 1, 1, 0, 1, 3, 2, 1]
-----------------------------------------------
现在进行第11个席位的分配
Q值: [28.0, 30.0, 22.0, 24.0, 23.333333333333332, 22.857142857142858, 26.8, 22.666666666666668]
第2方的Q值最大,将席位分给第2方
目前各方的席位情况: [1, 2, 1, 0, 1, 3, 2, 1]
-----------------------------------------------
现在进行第12个席位的分配
Q值: [28.0, 18.0, 22.0, 24.0, 23.333333333333332, 22.857142857142858, 26.8, 22.666666666666668]
第1方的Q值最大,将席位分给第1方
目前各方的席位情况: [2, 2, 1, 0, 1, 3, 2, 1]
-----------------------------------------------
现在进行第13个席位的分配
Q值: [16.8, 18.0, 22.0, 24.0, 23.333333333333332, 22.857142857142858, 26.8, 22.666666666666668]
第7方的Q值最大,将席位分给第7方
目前各方的席位情况: [2, 2, 1, 0, 1, 3, 3, 1]
-----------------------------------------------
现在进行第14个席位的分配
Q值: [16.8, 18.0, 22.0, 24.0, 23.333333333333332, 22.857142857142858, 19.142857142857142, 22.666666666666668]
第4方的Q值最大,将席位分给第4方
目前各方的席位情况: [2, 2, 1, 1, 1, 3, 3, 1]
-----------------------------------------------
现在进行第15个席位的分配
Q值: [16.8, 18.0, 22.0, 8.0, 23.333333333333332, 22.857142857142858, 19.142857142857142, 22.666666666666668]
第5方的Q值最大,将席位分给第5方
目前各方的席位情况: [2, 2, 1, 1, 2, 3, 3, 1]
-----------------------------------------------
现在进行第16个席位的分配
Q值: [16.8, 18.0, 22.0, 8.0, 14.0, 22.857142857142858, 19.142857142857142, 22.666666666666668]
第6方的Q值最大,将席位分给第6方
目前各方的席位情况: [2, 2, 1, 1, 2, 4, 3, 1]
-----------------------------------------------
现在进行第17个席位的分配
Q值: [16.8, 18.0, 22.0, 8.0, 14.0, 17.77777777777778, 19.142857142857142, 22.666666666666668]
第8方的Q值最大,将席位分给第8方
目前各方的席位情况: [2, 2, 1, 1, 2, 4, 3, 2]
-----------------------------------------------
现在进行第18个席位的分配
Q值: [16.8, 18.0, 22.0, 8.0, 14.0, 17.77777777777778, 19.142857142857142, 13.6]
第3方的Q值最大,将席位分给第3方
目前各方的席位情况: [2, 2, 2, 1, 2, 4, 3, 2]
-----------------------------------------------
现在进行第19个席位的分配
Q值: [16.8, 18.0, 13.2, 8.0, 14.0, 17.77777777777778, 19.142857142857142, 13.6]
第7方的Q值最大,将席位分给第7方
目前各方的席位情况: [2, 2, 2, 1, 2, 4, 4, 2]
-----------------------------------------------
现在进行第20个席位的分配
Q值: [16.8, 18.0, 13.2, 8.0, 14.0, 17.77777777777778, 14.88888888888889, 13.6]
第2方的Q值最大,将席位分给第2方
目前各方的席位情况: [2, 3, 2, 1, 2, 4, 4, 2]
-----------------------------------------------
最终分配结果:
被分配方 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
人数 | 42 | 45 | 33 | 12 | 35 | 80 | 67 | 34 |
分配到的席位 | 2 | 3 | 2 | 1 | 2 | 4 | 4 | 2 |
因为分配过程的公平而实现分配结果的公平,这也是除法分配法严谨过程的体现。