资源分配 - 匹配

时间:2013-01-22 16:11:56

标签: algorithm linear-programming

我遇到了一个问题,我不确定线性编程是否可以解决。基本上有两组人员彼此列出他们的偏好并且随后将被匹配。我正在为此编写算法。 A组最多有4个B组的选择,反之亦然。

在制定解决方案时,我目前正在为每对组合分配成本。例如,如果来自A组的人1将来自B组的人3作为他/她的第一选择进行排名,反之亦然,那么成本是最小的(对1-3成本:0.01)。同样地,我会为其他货币对分配成本,设计一个目标函数,该目标函数寻求具有最小化总成本的配对。

但是,我不认为这是可行的,因为我不知道如何定义我的约束和整体目标函数。在线阅读和从教科书中阅读,我发现资源分配问题与我想要做的不同。

我可以就如何进行寻求建议吗?

1 个答案:

答案 0 :(得分:0)

您的问题可以表述为Assignment Problem。”作为规范案例,分配问题是将“作业”分配给“机器”。它们可以很容易地用于匹配两组。

这是配方: 两组人A和B

决策变量Xij

如果人i(集合A中的人)与集合B中的第j个人匹配,则Xij 1 ; 0 否则

参数: 让Cij为将人i与人j

配对的费用

目标函数:最小化(和i相加)(j上的和)Cij * Xij

<强>约束:

每个人我只配对一次

Sum over j Xij = 1 (for each i)

每个人j完全配对一次

Sum over i Xij = 1 (for each j)

Xij是二元变量

Xij = (0,1)

关于分配问题的巧妙之处在于,使用相当容易理解的'Hungarian Method.'可以找到最佳配对。您也可以使用您拥有的LP / IP解算器。

希望有所帮助。