考虑权重的目标间公平分配对象的模块。
vania的Python项目详细描述
#Vania项目-公平分发服务器
**公平分发服务器**是一个模块,它[公平](公平的含义)通过一组**目标**分发任意**对象**的列表。
此模块考虑了3个关键组件:
**object**:可以分配给某个对象的某种实体。
**target**:将一个(或多个)**对象**分配给它的实体。
**weight**:表示将给定**对象**分配给**目标**的成本。
这些组件的集合作为模块的输入。
使用线性规划,将**目标**相对于**对象**的**权重**考虑在内,并用于构建整数线性规划(ILP)模型的约束。然后使用ILP解算器,以*尽可能公平的方式将**对象**分布到**目标**,例如,此模块可用于在一组人(目标)之间根据他们的偏好公平地分布一组任务(对象),以完成每个任务(对象)任务(权重)。
*根据每个项目所需技能的技能水平(权重),开发团队(目标)之间的一组项目(对象)。
**通过**目标**的**对象应该是最小的。
这强制执行最少的共享努力。
u可选地,可以应用以下规则(默认情况下启用):
*每个**目标**的单个**权重**之间的差异最小。
这将执行最少的单个工作。
链接:
https://hackathonners.github.io/vania
克隆此存储库:
$git clone git://github.com/hackathonners/vania.git
您的问题变量,并要求解决方案。
为了更好地解释如何做到这一点,让我们考虑一个具体的例子。
假设您正在管理一个项目,该项目包含**4**任务:前端开发、后端开发、测试和文档。需要通过一组**3**团队分配这些**4**任务:_ B_和C_。
您有每个团队完成每个任务所需的预期小时数:
前端开发后端开发测试*文档
——_|在这里,我们把任务看作**对象**,作为**目标**的团队和每个单元格中表示的小时数是**权重**。
有必要为每个组件创建一个数据结构。**对象**和**目标**是列表,而**权重**是一个集合,其中包含为每个目标分配每个对象的成本,并用矩阵表示。
此示例的结构如下:
``python
`targets=['team a','team b',"C组"]
对象=['前端开发','后端开发','测试','文档']
权重=[
[1,2,3,2],A组完成每个任务的小时数
[3,1,4,2],B组完成每个任务的小时数
[3,4,1,1]#C组完成每个任务的小时数,现在,只需向**公平分发服务器**提供所有组件,并要求解决方案:
`` python
distributor=fairdistributor(targets,objects,权重)
打印(distributor.distribute())
````
`` python
output
{
‘a组’:['前端开发',` a组进行前端开发
‘c组’:['测试','文档',#B组负责测试和文档记录,C组负责前端开发,这是这个示例的最后代码:
``python
"B组"、"C组"]
对象=['front-end development'、'back-end development'、'testing'、'documentation']
权重=[
[1、2、3、2],A组完成每个任务的小时数
[3、1、4、2],B组完成每个任务的小时数
[3、4、1、1]C组完成每个任务的小时数完成每个任务
]
distributor=fairdistributor(目标、对象、权重)
print(distributor.distribute())
`````
你可以在这里这样做:https://github.com/hackathonners/vania/issues。
如果你想用错误修复为这个项目做贡献,太棒了!只需在GitHub上完成项目并提出请求。
如果您不熟悉Git或GitHub,请告诉我们,我们一定会帮助您做出贡献。
http://hackathonners.org.
**公平分发服务器**是一个模块,它[公平](公平的含义)通过一组**目标**分发任意**对象**的列表。
此模块考虑了3个关键组件:
**object**:可以分配给某个对象的某种实体。
**target**:将一个(或多个)**对象**分配给它的实体。
**weight**:表示将给定**对象**分配给**目标**的成本。
这些组件的集合作为模块的输入。
使用线性规划,将**目标**相对于**对象**的**权重**考虑在内,并用于构建整数线性规划(ILP)模型的约束。然后使用ILP解算器,以*尽可能公平的方式将**对象**分布到**目标**,例如,此模块可用于在一组人(目标)之间根据他们的偏好公平地分布一组任务(对象),以完成每个任务(对象)任务(权重)。
*根据每个项目所需技能的技能水平(权重),开发团队(目标)之间的一组项目(对象)。
**通过**目标**的**对象应该是最小的。
这强制执行最少的共享努力。
u可选地,可以应用以下规则(默认情况下启用):
*每个**目标**的单个**权重**之间的差异最小。
这将执行最少的单个工作。
链接:
https://hackathonners.github.io/vania
克隆此存储库:
$git clone git://github.com/hackathonners/vania.git
您的问题变量,并要求解决方案。
为了更好地解释如何做到这一点,让我们考虑一个具体的例子。
假设您正在管理一个项目,该项目包含**4**任务:前端开发、后端开发、测试和文档。需要通过一组**3**团队分配这些**4**任务:_ B_和C_。
您有每个团队完成每个任务所需的预期小时数:
前端开发后端开发测试*文档
——_|在这里,我们把任务看作**对象**,作为**目标**的团队和每个单元格中表示的小时数是**权重**。
有必要为每个组件创建一个数据结构。**对象**和**目标**是列表,而**权重**是一个集合,其中包含为每个目标分配每个对象的成本,并用矩阵表示。
此示例的结构如下:
``python
`targets=['team a','team b',"C组"]
对象=['前端开发','后端开发','测试','文档']
权重=[
[1,2,3,2],A组完成每个任务的小时数
[3,1,4,2],B组完成每个任务的小时数
[3,4,1,1]#C组完成每个任务的小时数,现在,只需向**公平分发服务器**提供所有组件,并要求解决方案:
`` python
distributor=fairdistributor(targets,objects,权重)
打印(distributor.distribute())
````
`` python
output
{
‘a组’:['前端开发',` a组进行前端开发
‘c组’:['测试','文档',#B组负责测试和文档记录,C组负责前端开发,这是这个示例的最后代码:
``python
"B组"、"C组"]
对象=['front-end development'、'back-end development'、'testing'、'documentation']
权重=[
[1、2、3、2],A组完成每个任务的小时数
[3、1、4、2],B组完成每个任务的小时数
[3、4、1、1]C组完成每个任务的小时数完成每个任务
]
distributor=fairdistributor(目标、对象、权重)
print(distributor.distribute())
`````
你可以在这里这样做:https://github.com/hackathonners/vania/issues。
如果你想用错误修复为这个项目做贡献,太棒了!只需在GitHub上完成项目并提出请求。
如果您不熟悉Git或GitHub,请告诉我们,我们一定会帮助您做出贡献。
http://hackathonners.org.