Prolog 序言:比赛日程

Prolog 序言:比赛日程,prolog,constraints,schedule,clpfd,tournament,Prolog,Constraints,Schedule,Clpfd,Tournament,我正在尝试为我正在组织的排球比赛自动生成时间表。主要是为了好玩。规则如下: 报名的球队由2名球员组成 有36支这样的队伍 在一场比赛中,3支这样的球队组成一个“游戏队”,因此一场比赛由3支球队对3支球队组成 每队打5场比赛 有3个球场可以同时进行比赛 因此,总共将进行10轮比赛(18个队可以同时进行,即36/2*5轮=10轮) 比赛由球队主持 其他制约因素包括: 每个队最多一次 如果可能的话,一支球队不应该和另一支之前已经打过的球队一起比赛(如果是和另一支球队比赛,就可以了) 每支球队在比

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

  • 报名的球队由2名球员组成
  • 有36支这样的队伍
  • 在一场比赛中,3支这样的球队组成一个“游戏队”,因此一场比赛由3支球队对3支球队组成
  • 每队打5场比赛
  • 有3个球场可以同时进行比赛
  • 因此,总共将进行10轮比赛(18个队可以同时进行,即36/2*5轮=10轮)
  • 比赛由球队主持
其他制约因素包括:

  • 每个队最多一次
  • 如果可能的话,一支球队不应该和另一支之前已经打过的球队一起比赛(如果是和另一支球队比赛,就可以了)
  • 每支球队在比赛之间的休息时间不应超过2轮
现在我认为这听起来像是一个问题,prolog是一个很好的选择。不幸的是,我只有理论经验。如果有人能给我一个很好的起点,尤其是关于如何满足“最多官方一次”和“每支球队打5次”这样的限制,那就太好了。此外,团队的代表性比

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

那太好了。我已经尝试过用Java实现它,但得出的结论是它不是一种非常适合的语言。我现在想在prolog中执行此操作。

prolog确实是此类任务的最佳选择。首先,请查看前面关于和您的Prolog系统的CLP(FD)文档和示例程序的非常类似的问题。