我有一个问题,我不确定能否通过线性规划解决。本质上,有两组人列出了他们对彼此的偏好,并将随后配对。我正在写一个算法。A组最多可从B组中选择4个,反之亦然。
在制定解决方案时,我目前正在为每一对组合分配成本。例如,如果组A中的人员1将组B中的人员3列为其1号选择,反之亦然,则成本最小(组1-3成本:0.01)类似地,我将把一个代价分配给其他对,设计一个目标函数,寻求使总代价最小的对。
但是,我不认为这是可行的,因为我不知道如何定义我的约束和总体目标函数。通过在线阅读和课本阅读,我发现资源分配问题与我试图做的不同。
我能就如何进行征求你的意见吗?
最佳答案
你的问题可以表述为“Assignment Problem”,作为一个典型的例子,赋值问题是将“作业”分配给“机器”,它们同样可以很容易地用于匹配两个集合。
以下是公式:
两组人A和B
决策变量xij
如果i人(A组第i人)与B组第j人匹配,则设Xij
为1;否则为0
参数:
设Cij
为将personi
与personj
配对的成本
目标函数:最小化(和大于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解算器。
希望能有所帮助。