优化工作岗位分配给专家,最高。每位专家的工作数量

时间:2014-01-27 12:52:14

标签: algorithm mathematical-optimization

我有一群可以处理工作的“专家”(约300人)。而且我有大量的工作需要完成,让我们说其中有500个。我也掌握了一个信息,一个专家如何“做好”能够完成某项工作。这将导致300 x 500矩阵保持权重。

我想为专家找到一份“最佳”的工作分配。但是受限制,单个专家应该只分配最多的工作数。

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

1 个答案:

答案 0 :(得分:3)

尝试将其建模为最低成本的网络流量问题。

为每个人添加一个节点。

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

根据您的矩阵,在每个人和每个作业之间添加一个容量为1且成本的边缘。

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

根据他们可以执行的工作数量,在源和每个人之间添加一个容量边缘。

解决最高成本流量(例如,将成本乘以-1并使用Networkx中的min_cost_flow

this question的答案为类似问题提供了Python代码。