2

我正在尝试为我正在组织的排球锦标赛自动生成时间表。它主要是为了好玩。规则如下:

  • 报名的球队由 2 名球员组成
  • 有36个这样的团队
  • 对于一场比赛,3 支这样的球队组成一个“比赛球队”,因此一场比赛由 3 支球队对 3 支球队组成
  • 每支球队打5场比赛
  • 有 3 个球场可以同时进行
  • 因此,总共将进行 10 轮比赛(18 支队伍可以同时进行比赛,即 36/2*5 轮 = 10 轮)
  • 比赛由球队官方主办

其他限制是:

  • 每个团队官员最多一次
  • 如果可能,一支球队不应该与之前已经交手过的另一支球队一起比赛(如果有交手,那很好)
  • 每队比赛之间的休息时间不应超过 2 轮

现在我认为这听起来像是prolog是一个不错的选择的问题。不幸的是,我只有理论上的经验。如果有人能给我一个很好的起点,那就太好了,特别是关于如何满足“最多正式一次”和“每支球队打 5 次”等约束。此外,团队的表示比更紧凑

team(A).
team(B).
....

会很好。我已经尝试在 Java 中实现它,但得出的结论是它不是一种非常适合的语言。我现在想在序言中这样做。

4

0 回答 0