如何选择富有成效的员工群体?
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
我有员工和矩阵,他们如何相互合作,结果从 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