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:
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.
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 .
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:
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.
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.