解决3组而不是2组的分配问题

问题描述 投票:1回答:1

假设我们有3组人,每组有n人,我需要将它们分配给n组三胞胎,以使每个三元组由第一组的一个人,第二组的一个人和第三组的一个人组成。

每个可能的三元组也有一个成本函数,我们需要以最小化成本总和的方式将它们配对。

如果只有2组,则Assignment problem。>

我想到可能使用线性编程方法,并给每个三元组一个变量,并根据对每个人的三元组变量之和为1的约束,最小化加权变量之和(根据成本函数)。并且每个变量都在0到1之间,但是我不确定如何证明该问题有一个整数解,如果是,那么如何找到它。

假设我们有3个人,每人有n个人,我需要将他们分配给n组三胞胎,以使每个三元组由第一组中的一个人组成,第二组中的一个由……组成。 >

graph-theory linear-programming
1个回答
0
投票

此问题似乎有很多名称:three-index assigment problem3-dimensional, or in general n-partite matching。尽管问题是NP-hard,但正如上面的注释中所述,使用(M)ILP求解器可以相当有效地解决中等大小的实例。

这里是使用Python和PuLP的3维示例。此外,代码可以通过调整尺寸列表n>=2来处理其他尺寸dims。自然,问题和解决方案都可以可视化为n部分网络。

© www.soinside.com 2019 - 2024. All rights reserved.