gpt4 book ai didi

algorithm - 根据技能向 worker 公平分配任务的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:22:29 24 4
gpt4 key购买 nike

(没人问,这不是作业。)
我有一批有兴趣的工人,即:
鲍勃:Java、XML、Ruby
susan:java、html、python
弗雷德:巨蟒,鲁比
山姆:Java,鲁比
等。
(实际上,每个工人的“兴趣”范围在10-25之间,我有大约40-50个工人)
同时,我有一大堆任务需要分配给工人。每个任务必须分配给至少3个工人,并且工人必须符合至少一个任务的兴趣:
任务1:Ruby、XML
任务2:xhtml,python
等等。所以鲍勃、弗雷德或萨姆可以完成任务1;苏珊或弗雷德可以完成任务2。
所有这些都存储在数据库中,因此:

Task
id integer primary key
name varchar

TaskInterests
task_id integer
interest_id integer

Workers
id integer primary key
name varchar
max_assignments integer

WorkerInterests
worker_id
interest_id

Assignments
task_id
worker_id
date_assigned

每个工人都有最多的作业数,大约10个。一些利益比其他利益更为罕见(即只有1或2名工人将其列为利益),一些利益更为常见(即半数工人将其列为利益)。
算法必须:
将每个任务分配给3个工人(它是
假设至少有3个
工人们对
任务的兴趣)。
为每个工人分配一个或多个任务
理想情况下,算法将:
给每个工人分配与他们的最大任务和任务总数成比例的任务。例如,如果Susan说她会做20个任务,而大多数人只会做10个任务,并且有50个工人和300个任务,那么她应该被分配12个任务(20/10*(300/50))。
为每个员工分配不同的任务,因此如果Susan列出了4个兴趣,那么她会得到包含4个兴趣的任务(而不是得到10个兴趣相同的任务)
迄今为止,最困难的方面是处理这些问题:
与少数相应工人有兴趣的任务
没有兴趣的工人,特别是
有一些兴趣的工人,他们的任务相对较少

最佳答案

尝试将任务映射到stable marriage problem。任务成为未来的妻子,你的员工成为追求者。
您可能需要添加一些额外的算法来为员工分配每个任务的首选项,反之亦然-您可以为每个任务的组件分配一些理想的必要熟练程度,然后允许员工对每个任务进行排序。您可以为每个工作人员拥有的每个组件分配一个熟练度,并使用该熟练度在工作人员中获得每个任务的首选项。
一旦你有了偏好,然后运行算法,发布结果,然后允许人们成对地向你申请交换分配-毕竟这是一个人的问题,当人们有一定程度的控制时,他们会工作得更好。

关于algorithm - 根据技能向 worker 公平分配任务的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4765015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com