【问题标题】:Resource allocation- Matching资源分配-匹配
【发布时间】:2013-01-22 16:11:56
【问题描述】:

我有一个问题,我不确定是否可以通过线性规划解决。本质上,有两组人列出了他们对彼此的偏好,随后将进行匹配。我正在为此编写一个算法。 A组从B组中最多有4个选择,反之亦然。

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

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

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

【问题讨论】:

  • 这看起来更像是 二部图中的最大权重匹配,而不是 线性规划 或其任何变体。我不会说你不能用线性规划解决问题,但另一种方法可能更容易开始。
  • 闻起来像Stable Marriage Problem。
  • 是的,与稳定婚姻问题(SMP)有相似之处,但这个问题比这更普遍。 SMP 解决方案显示了某个属性(一对没有相互更高的首选匹配),但 OP 的问题更普遍,所需的总成本最低。
  • 我发现稳定的婚姻问题很好,因为稳定的一对的定义。此外,实施它避免了以下 LP 解决方案中概述的配对开发成本的麻烦(我已经在评论部分解释了原因)。谢谢!

标签: algorithm linear-programming


【解决方案1】:

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

这是公式: 两组人A和B

决策变量Xij

如果人 i(集合 A 中的第 i 个人)与集合 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 求解器。

希望对您有所帮助。

【讨论】:

  • 我喜欢这个解决方案,但是将成本分配给配对的问题引入了主观性。如何客观地确定人 i 对人 j 的偏好?会有各种因素需要考虑。当我们探索时,这变得更加复杂,例如,人 i 的 4 选择/人 z 的第三选择(即 4-3 对)..与 2-3 对等相比如何。这是我面临的主要障碍采用LP解决方案。感谢您的详细解释!
猜你喜欢
  • 2019-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多