如何解决如何选择一个有生产力的员工群体?
我有员工和具有等级的矩阵,他们彼此之间如何工作,结果从0到10。我必须选择两个人组成的小组并给予他们工作。问题是我不知道该如何选择小组来总结小组工作的最高水平。
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。由于杰克·埃德蒙兹(Jack Edmonds)的缘故,经典的多项式时间算法是Blossom algorithm。整数编程也可以轻松完成。
,您正在尝试解决Maximum Weight Matching问题。
Wikipedia链接到Vladimir Kolmogorov的论文和C ++实现:http://pub.ist.ac.at/~vnk/papers/BLOSSOM5.html
, @David和@Stef感谢您的帮助。
我使用Kolmogorov的算法解决了这个问题。
我使用了JGraphT库中的算法实现。
如果有人对这里感兴趣,请链接到该项目。
https://github.com/CGevorg/Employee_Matcher
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。