Bonjour,
ON trouve beaucoup de choses sur les appariement et l’organisation de jeux à 2 joueurs, par exemple la table de Berger. Les objectifs sont:
- Tout le monde rencontre tout le monde exactement une fois
- Les parties avec les blancs ou les matchs à domicile sont équilibrées, i.e. un joueur donné a autant de fois l’avantage qu’il ne l’a pas, et il ne joue pas plus de deux fois d’affilée dans la même configuration avantageuse ou désavantageuse
Par contre, je ne trouve absolument rien en ce qui concerne des jeux à plus de deux joueurs. Dans mon cas je n’ai pas de notion d’avantage type commencer avec les blancs ou jouer à domicile, mais sinon l’objectif de base demeure:
Étant donné un jeu à J joueurs et N participants, le but est de générer automatiquement une grille d’organisation telle que:
- Chaque joueur rencontre chaque autre joueur exactement une fois pendant le tournoi; ou à défaut de pouvoir rencontrer tout le monde on évite à tout prix que deux joueurs se retrouvent ensemble plusieurs fois.
- Tous les joueurs sont toujours occupés, i.e. pas de "tour d’attente", ou autrement dit un maximum de parties se jouent simultanément. On partira du principe que N%J=0 (pas de laissé pour compte ni de victoire par forfait)
- Combien chaque joueur jouera-t-il de parties ? OU combien au maximum sans qu’il n’y ait de double rencontre ?
- Est-ce toujours possible ?
Prenons un exemple: j’ai 9 participants qui vont jouer à un jeu qui se joue à 3. Au premier tour c’est facile, on a :
- 1, 2, 3
- 4, 5, 6
- 7, 8, 9
Au deuxième tour c’est facile, on peut intervertir les axes:
- 1, 4, 7
- 2, 5, 8
- 3, 6, 9
Au troisième tour, on prend en diagonale:
- 1, 5, 9
- 2, 6, 7
- 3, 4, 8
Au quatrième tour, on prend en diagonale dans l’autre sens:
- 1, 6, 8
- 2, 4, 9
- 3, 5, 7
Et on peut s’arrêter là car tout le monde a rencontré tout le monde. Preuve: chaque joueur a disputé 4 parties et a rencontré 2 autres joueurs à chaque fois, chacun a donc rencontré les 8 autres joueurs, CQFD.
Maintenant si on fait le même exercice avec 16 participants pour un jeu à 4 joueurs, on obtient:
Tour 1:
- 1, 2, 3, 4
- 5, 6, 7, 8
- 9, 10, 11, 12
- 13, 14, 15, 16
Tour 2:
- 1, 5, 9, 13
- 2, 6, 10, 14
- 3, 7, 11, 15
- 4, 8, 12, 16
Tour 3:
- 1, 6, 11, 16
- 2, 7, 12, 13
- 3, 8, 9, 14
- 4, 5, 10, 15
Si on continue avec l’idée des diagonales on arrive à:
- 1, 8, 11, 14
- 2, 5, 12, 15
- 3, 6, 9, 16
- 4, 7, 10, 13
Or 1 et 11 se sont déjà rencontrés, tout comme 2 et 12 et 6 et 16. Donc ça marche pas. Est-ce que mon truc est foireux ou est-ce que c’est effectivement impossible d’aller au-delà de 3 parties ? Si on voulait que tout le monde rencontre tout le monde il nous en faudrait 5.
J’ai essayé de calculer avec 25 joueurs pour un jeu à 5, et là j’ai réussi à le faire, avec le truc des diagonales puis ensuite des décalages modulo 2. IL y a 6 parties; comme 6*4=24
on sait que tout le monde a rencontré tout le monde.
Si on suit l’intuition, à 36 on serait limité à 5 tours sans avoir rencontré tout le monde, et à 49 ça marche avec 8 tours ? Ca ne marcherait pas pour 5 tours à 16 et pourtant le cas trivial de 3 tours à 4 participants lui fonctionne ?
Je me fiche de savoir s’il y a plusieurs répartitions parfaites possibles en pratique, mais c’est aussi une question intéressante. Mon intuition mathématique me dit qu’il doit y avoir un lien avec les carrés latins, les carrés magiques ou les sudoku, mais je n’entrevois qu’à moitié comment… pareil avec un petit truc dans la combinatoire qui doit me faire défaut.
Retour à mon cas réel, avec la difficulté ultime: mon jeu se joue à 4 ou à 5 (j’ai le choix), et surtout il n’y aura pas forcément ni 16 ni 25 joueurs. Les inscriptions sont encore ouvertes, la limite est à 50 mais plus probablement il y aura entre 15 et 30 participants.
Alors évidemment avec une grille non carrée l’objectif tout le monde rencontre tout le monde est clairement impossible (j’ai pas de preuve, c’est uniquement de l’intuition). Mais est-ce que si je choisis la version à 4 joueurs pour 20, 24 ou 28 participants je peux faire plus de 3 tours sans que personne ne se retrouve deux fois ? Et est-ce que pour la version à 5 joueurs, généralement perçue comme tactiquement plus intéressante, je peux faire 4 tours ou plus s’il y a 20 ou 30 participants ?
Est-ce qu’on peut généraliser tout ça avec un algorithme ?
Merci !
P.S. J’ai posté dans sciences car j’estime que le problème est plus mathématique qu’informatique, et j’ai volontairement formulé la chose de manière agnostique au langage. Mais n’hésitez pas à déplacer si nécessaire.