我们是一群20人,我们喜欢参加2对2网球比赛。我们每个人每轮打一场比赛,总共进行5轮比赛,所以每个人都打5场比赛。匹配有两个限制:
我设法创建了一个执行上面指定的python脚本,但是根据人员的级别完成大约需要20分钟:/。我所做的就是将每个人列入清单,将其分为5个4人名单,检查条件是否满足,并重复每一轮。
我尝试使用线性编程(LP)对问题进行建模,但我不知道哪个是我的优化功能开始...有关如何使用或不使用LP的任何想法?
提前致谢!
答案 0 :(得分:1)
您可以使用虚拟目标,甚至尝试最小化级别差异的最大值。
我的MIP模型并非完全无关紧要,但它解决得非常快(大约一秒左右使用商业解算器)。
结果看起来很好看:
我假设两名球员不能在同一支球队中不止一次。即不只是在同一个游戏中。在我的情况下,你可以不止一次与另一个玩家对战。
可以找到一个更复杂的例子here。