动态团队锦标赛设计

时间:2013-06-12 17:16:59

标签: algorithm optimization combinatorics schedule tournament

我想为一组玩家制作比赛时间表。球员分为多个球队,每轮比赛由这些球队之间的比赛组成。

我想制作的时间表类型应符合Balanced-Tournament Design。这意味着:

  • 每个团队在每个位置播放
    • 有时,地点并不总是平等的。例如,温布尔登的中心球场。平衡的比赛应该让每个人在每个位置都玩很多次。
  • 每个团队都在扮演其他团队
    • 大多数循环赛的主要内容
  • 每支球队都是“主场”和“客场”并且数量相等
    • 在团队运动中,通常需要有一个主客场球队。例如,在棒球比赛中,主队在每局比赛中最后一次击球。这可能是一个优势,所以平衡的比赛应该让每个球队都有相同的次数。

我使用Orthogonal Latin Squares和Factored Balanced Tournament Design取得了很大的成功,并找到了一个不错的way来制作这样的锦标赛。

但是,我现在想做一些不同的事情:

  • 玩家被分组(例如,基于技能或位置)。一个团队需要每个团队中的一个玩家(例如,每个职位或技能级别的一个玩家)
  • 每轮比赛都会重建球队和比赛
    • 最小化两个人互相玩耍的次数
    • 最小化两个人相互比赛的次数

这类似于Individual-Pairs锦标赛,但在我的问题中,球队可以拥有超过2名球员,并且球员被分组,以便每支球队需要每组的球员。通过每轮更换球队,单个玩家可以通过赢得比其他任何玩家更多的游戏来“赢得”锦标赛。

更正式地说,这可以描述如下(如果有人有更好的方式来代表这个,我愿意改变这种表示法):

  • p名玩家,分为g组,每组由t=p/g名玩家组成。
  • 组标记为Gi={Pi1, Pi2, ... Pit}
    • i是组的编号(0<=i<=g
  • 玩家被标记为Pij
    • i是玩家所属的群组(0<=i<=g
    • j是群组i0<=j<=t
    • 中的玩家编号
  • 时间表将包含r=t-1轮次
  • 必须创建每轮,t个小组和m=t/2个匹配
  • 团队标记为Tij={P1a, P2b, ... Pgc}
    • i是此团队的一轮(0<=i<=r
    • j是该轮次i0<=j<=t
    • 内的团队编号
    • 每个团队只包含每个团队中的一名玩家
  • 匹配标记为Mij={Tia, Tib}其中
    • i是此匹配的回合(0<=i<=r
    • j是一轮i0<=j<=m
    • 内的匹配数
  • 尽量减少以下事项
    • 同一组中两名玩家一起玩的次数
      • 一个团队每个组只能有一个玩家,所以这必须是0
    • 不同组中的两名玩家一起玩的次数
      • 在比赛过程中,两名球员不应该多次出现在同一支球队
    • 同一组中两名玩家互相对抗的次数
      • 如果r=t-1
      • ,应该只有一个
    • 不同组中的两名玩家互相对抗的次数
      • 根据我的经验,这可能需要两次

如果这太复杂了,我非常愿意讨论更具体的案例:

  • 每个团队由4名玩家组成(g=4
  • 球队数量“低”,5到12(20到48名球员)
  • 轮次数不一定是t-1
    • 如果是t-1,则玩家可以(并且应该)与同一组中的所有其他玩家完全一次玩。这可能无法创建,因此我会接受r最大化的解决方案,以便玩家不会多次与同一组中的其他玩家对战(即一组中的某些玩家可能永远不会对抗每个玩家)其他)。

虽然通用解决方案(如果有的话)会很好,但我对这些特定情况最感兴趣,因为这些是促使我更详细地研究这个问题的动机。

谢谢!

1 个答案:

答案 0 :(得分:0)

我刚发生在您的帖子上,并认为我会将URL传递给您。这是我所知道的最适合日程安排的网站。我希望它对我有所帮助!

Round Robin Tournament Scheduling