Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 优化工作分配给专家,每个专家的工作数量最大_Algorithm_Mathematical Optimization - Fatal编程技术网

Algorithm 优化工作分配给专家,每个专家的工作数量最大

Algorithm 优化工作分配给专家,每个专家的工作数量最大,algorithm,mathematical-optimization,Algorithm,Mathematical Optimization,我有一组“专家”(大约300人),他们可以胜任一项工作。我有很多工作要做,比如说500个。我也有信息,一个专家能做某项工作的“好”程度。这将导致一个300 x 500的矩阵容纳重量 我想为专家找到一个“最佳”的工作分配。但有限制的是,一名专家只能获得分配的最大数量的工作 我有优化算法的一般基础知识,但我不知道如何对这种固定离散上界建模。有人知道一类算法可以处理这类问题吗?尝试将其建模为一个最小成本的网络流问题 为每个人添加一个节点 为需求为1的每个作业添加一个节点 根据你的矩阵,在每个人和每个职

我有一组“专家”(大约300人),他们可以胜任一项工作。我有很多工作要做,比如说500个。我也有信息,一个专家能做某项工作的“好”程度。这将导致一个300 x 500的矩阵容纳重量

我想为专家找到一个“最佳”的工作分配。但有限制的是,一名专家只能获得分配的最大数量的工作


我有优化算法的一般基础知识,但我不知道如何对这种固定离散上界建模。有人知道一类算法可以处理这类问题吗?

尝试将其建模为一个最小成本的网络流问题

为每个人添加一个节点

为需求为1的每个作业添加一个节点

根据你的矩阵,在每个人和每个职位之间增加一个能力1和成本优势

添加需求等于(减去)作业数的源节点

根据员工能做的工作数量,在员工和每个有能力的员工之间增加一个优势

求解最大成本流(例如,将成本乘以-1并使用Networkx)


的答案给出了类似问题的Python代码。

一些最佳搜索算法。遗传算法应该是可行的,但可能有点过头了。可能是一个很好的候选者,因为你似乎混淆了需求和供给。。。虽然算法很好。也许我们甚至可以使用hungerian算法来获得更好的运行时。