如何选择富有成效的员工群体?

How to choose a productive group of employees?

我有员工和矩阵,他们如何相互合作,结果从 0 到 10。我必须 select 两个人分组并给他们工作。问题是我不知道应该怎么选组,总结出来的组作品最高。

   A  B  C  D
A  -  3  10 3
B  3  -  0  3
C  10 0  -  3 
D  3  3  3  -

对于给定的示例,它将是 , _ 10 + 3 = 13

这是 maximum weight matching in a non-bipartite graph. The classical polynomial-time algorithm is the Blossom algorithm Jack Edmonds 的功劳。整数规划也将在紧要关头工作。

您正在尝试解决 Maximum Weight Matching 问题。

维基百科链接到 Vladimir Kolmogorov 的论文和 C++ 实现:http://pub.ist.ac.at/~vnk/papers/BLOSSOM5.html

@David 和@Stef 感谢您的帮助。 我用 Kolmogorov 算法解决了这个问题。
我使用了 JGraphT 库中的算法实现。 如果有人感兴趣,这里是项目的 link。 https://github.com/CGevorg/Employee_Matcher