Je me demande simplement s'il existe déjà un algorithme de programmation de tournois que je pourrais utiliser ou même adapter légèrement.
Voici mes exigences:
- Un nombre variable d'adversaires appartenant à un nombre variable d'équipes / clubs chacun doit être associé à un adversaire
- Deux adversaires ne peuvent pas appartenir au même club
- S'il y a un nombre impair de joueurs, 1 d'entre eux est sélectionné au hasard pour obtenir un bye
Tout algorithme lié à ce type d'ensemble d'exigences serait apprécié.
EDIT: J'ai seulement besoin de l'exécuter au maximum une fois, créant des matchs pour le premier «round» du tournoi.
algorithms
barfoon
la source
la source
Réponses:
Comme je peux le voir, vous voulez trouver une correspondance maximale dans le graphique. En fait, les nœuds sont des joueurs, ils sont connectés les uns aux autres s'ils ne sont pas dans le même club, maintenant vous devriez trouver le nombre maximum d'arêtes qui n'ont pas le même sommet. Voir l' algorithme de correspondance maximale d'Edmonds .
la source
Depuis mon bref passage sur Wikipédia il y a vingt secondes, il semble que vous devrez d'abord décider d'une stratégie d'élimination. Voir Wikipedia:
L'article à élimination simple décrit les techniques d'amorçage (l'algorithme que vous recherchez) de manière assez générique et il semble utile, mais pas tout à fait un algorithme.
la source
En inventant au fur et à mesure, il semble qu'un algorithme de correspondance initial soit assez simple:
S'il reste une personne, ce sera une personne au hasard, à une exception près. Si un club a plus de membres que tous les joueurs adverses réunis, les restes proviendront toujours de ce club. En réalité, c'est une situation super rare, et choisir un achat dans n'importe quel autre club laisserait encore plus de gens.
la source