有用于安排比赛对战的已知算法吗?


10

只是想知道是否已经有一个比赛调度算法可供我使用,甚至可以稍作调整。

这是我的要求:

  • 属于不定数量的球队/俱乐部的不定数量的对手必须与一个对手配对
  • 两个对手不能来自同一个俱乐部
  • 如果有奇数个玩家,则随机选择其中之一进行再见

与这种需求集相关的任何算法都将受到赞赏。

编辑:我只需要最多运行一次,为比赛的第一轮创建对战。


您可能需要研究最大匹配
svick 2011年

Answers:



1

从我20秒钟前在Wikipedia上的短暂经历来看,您似乎需要首先确定消除策略。参见维基百科:

  1. 瑞士系统
  2. 单淘汰赛
  3. 双重淘汰赛

单淘汰文章中介绍播种技术很一般(你正在寻找的算法),它看起来有帮助的,虽然不是相当的算法。


我更喜欢Swiss,Swiss的中位排名与双/单淘汰不同,并且在与N淘汰赛相同的回合中找到前N名球员。
Mooing Duck

1

在我逐步解决这个问题时,似乎初始匹配算法非常简单:

While two or more clubs have at least one member not paired  
    select the two clubs with the most unpaired members
    select a random unpaired member from each club
    pair those members

如果剩下一个人,它将是一个随机的人,只有一个例外。如果一个俱乐部的成员人数超过所有对立球员的总和,那么剩下的将永远来自该俱乐部。实际上,这是一个非常稀有的情况,而从其他任何一家俱乐部买东西都会留下更多的人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.