考虑权重的目标间公平分配对象的模块。

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.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用“Wed,01 Jul 2015 17:32:41 EDT”解析字符串   java Storm apache升级(1.0.0到2.0.0)   java类驻留在不同的目录中,而不是包指定的目录。为什么?   将Java中的图像缩放到非常小的维度   java如何通过子文档从自定义方面访问ElasticSearch parentdoc字段   java如何在RationalSoftwareArchitect中使用findbugs?   Java中的事件提升处理   java值被添加到arrayList的所有索引中,而不是在“”时添加到最后一个索引中。正在使用arraylist的add()方法   JFrame中的java JPanel派生类   java如何用循环和异步方法模拟类   java Android阻止可绘制背景超出视图范围   为客户排序Java阵列   java Apache poi如何将工作表设置为枚举位置值属性?   java Rhino在使用自定义类参数调用javascript函数时出错   java格式化日期从年月日到年月日   spring如何修复java。lang.illegalargumentexception在此特定场景中是否尝试创建具有null实体的合并事件?   java如何创建更好的对象