Il y a un nombre limité de joueurs et un nombre limité de courts de tennis. À chaque tour, il peut y avoir au plus que le nombre de matches qu'il y a des tribunaux. Personne ne joue 2 tours sans une pause. Tout le monde joue un match contre tous les autres. Produire de l'annexe qui prend aussi peu de tours que possible. (En raison de la règle qu'il doit y avoir une pause entre les tours pour tout le monde, il y a peut être un tour sans les matchs.) La sortie pour 5 joueurs et 2 les tribunaux pourraient être:
| 1 2 3 4 5
-|-------------------
2| 1 -
3| 5 3 -
4| 7 9 1 -
5| 3 7 9 5 -
Dans cette sortie, les colonnes et les lignes sont les joueurs eux-mêmes chiffres, et les nombres à l'intérieur de la matrice sont les chiffres ronds, ces deux joueurs s'affrontent.
Le problème est de trouver un algorithme qui peut le faire pour les grandes instances dans un temps faisable. On nous a demandé de le faire dans le Prologue, mais (pseudo-) code dans n'importe quelle langue serait utile.
Mon premier essai a été un algorithme glouton, mais qui donne des résultats avec trop de tours. Alors j'ai proposé un approfondissement itératif depth-first search, qui un de mes amis en œuvre, mais qui a quand même pris beaucoup trop de temps sur les instances aussi petit que 7 joueurs.
(Ce est à partir d'un vieux de questions d'examen. Nul j'ai parlé a une solution.)