web-dev-qa-db-fra.com

Existe-t-il un algorithme connu pour la planification des matchs de tournois?

Je me demandais simplement s'il y a un algorithme de planification du tournoi qui, je pouvais utiliser ou même s'adapter légèrement.

Voici mes exigences:

  • Un nombre variable d'adversaires appartenant à un nombre variable d'équipes/clubs doit être associé à un adversaire
  • Deux adversaires ne peuvent pas provenir du même club
  • S'il y a un nombre impair de joueurs, 1 d'entre eux sont sélectionnés au hasard pour obtenir un bye

Tous les algorithmes liés à ce type d'exigence seraient appréciés.

Edit : Je n'ai besoin que d'exécuter cela un maximum d'une fois, créant des matchs pour le premier "tour" du tournoi.

10
barfoon

Comme je peux voir, vous voulez trouver correspondance maximale sous graphique. En fait, les nœuds sont des joueurs, ils se sont connectés les uns aux autres s'ils ne sont pas dans le même club, vous devriez maintenant trouver un nombre maximal de bords qui ne disposent pas de même sommet. Voir Algorithme de correspondance maximale EDMONDS .

10
Saeed

De mon bref temps sur Wikipedia il y a vingt secondes, il semble que vous ayez besoin de décider d'une stratégie d'élimination en premier. Voir Wikipedia:

  1. Swiss-System
  2. élimination unique_tournose
  3. double-élimination_tournose

L'article d'élimination unique décrit des techniques d'ensemencement (l'algorithme que vous recherchez) assez génériquement et il semblait serviable, bien que non un algorithme.

1
Chris Pfohl

En faisant cela comme je vais, il semble que l'algorithme de correspondance initial est assez simple:

While two or more clubs have at least one member not paired  
    select the two clubs with the most unpaired members
    select a random unpaired member from each club
    pair those members

Si une personne est laissée, ce sera une personne aléatoire, à une exception près. Si un club a plus de membres que tous les joueurs adverses mis ensemble, les restes seront toujours de ce club. De manière réaliste, c'est une situation super rare et choisir un achat de tout autre club laisserait encore plus restes de personnes.

1
Mooing Duck