Système suisse pour le tournoi de tennis CSP 2015 16 juillet 2015 Résumé Ce document décrit l utilisation du système suisse pour l organisation du tournoi de tennis CSP 2015 1. On y parle de la méthode de classement, de la méthode d appariement et du logiciel choisi (OpenGotha). Ce document s adresse en premier lieu à l organisateur du tournoi mais pourra aussi intéresser un participant curieux de connaître les détails de l organisation. 1 Déroulement du tournoi L organisateur fixe un nombre de tours pour le tournoi (voir section 2). Tous les joueurs jouent à chaque tour. A la fin de chaque tour, un classement (voir section 3) est établi. A la fin de chaque tour, une méthode d appariement (voir section 4), tenant compte du classement à la fin de ce tour et de la force des joueurs (estimée avant le début du tournoi), permet de déterminer les paires de joueurs qui vont s affronter dans le tour suivant. La méthode d appariement n est pas différente pour le premier tour, on considère simplement un classement initial fictif où tous les joueurs sont ex æquo. 2 Choix du nombre de tours Il n y a pas de règle stricte pour choisir le nombre de tours. Mais, pour pouvoir dégager un classement final parlant, il faudrait que le nombre de tours soit au moins supérieur au log 2 (logarithme de base 2) du nombre de joueurs. Par exemple, pour 26 joueurs (comme en 2015), il faut au moins 5 tours (finalement un nombre plus grand, 6, a été choisi en 2015, ce qui permet d affiner d autant plus le classement final). 1. Plus précisément pendant la première phase du tournoi car à l issue de celle-ci un tournoi classique par élimination directe est également organisé entre les joueurs les mieux classés. 1
3 Méthode de classement Un classement est établi après chaque tour du tournoi. Il est calculé à partir des résultats des matchs dans tous les tours joués jusqu ici. On prend en compte 3 critères : le score, le SOS et le SOSOS (définis ci-dessous). Si le premier critère ne suffit pas à départager deux joueurs, on utilise le critère suivant et ainsi de suite. Score : Le score d un joueur, égale à 0 au début du tournoi, est augmenté d une unité par victoire remportée et de 0.5 pour un match nul. Une défaite ne rapporte rien. Le nombre exact de jeux marqués dans un match n a aucune influence sur le score. SOS : Le SOS d un joueur (de l anglais "Sum of Opponents Scores") est la somme des scores de tous les adversaires de ce joueur (qu il ait gagné ou perdu contre eux). SOSOS : Le SOSOS d un joueur (de l anglais "Sum of Opponents SOS") est la somme des SOS de tous les adversaires de ce joueur (qu il ait gagné ou perdu contre eux). Il se peut que, après l application de ces 3 critères, on n ait pas réussi à départager certains joueurs. Dans ce cas, ces joueurs partagent le même rang dans le classement. Si cela arrive pour le classement établi après le dernier tour, et que les joueurs concernés se disputent une place pour le tableau final, les organisateurs décideront d une méthode pour les départager (match supplémentaire entre eux, tirage au sort, autre). 4 Méthode d appariement Une méthode d appariement spécifie la manière dont sont choisis les joueurs qui vont s affronter au tour suivant. L objectif le plus important de la méthode d appariement est de faire en sorte que deux joueurs ne s affrontent pas plus d une fois pendant le même tournoi. La méthode d appariement du système suisse a pour but secondaire de minimiser l écart de niveau entre deux adversaires (pour rendre chaque partie plus intéressante) tout en faisant en sorte que les deux joueurs les plus forts ne s affrontent que dans les derniers tours du tournoi (pour garder tout son suspense au tournoi). Voici comment le système suisse atteint ces deux objectifs, a priori contradictoires. La détermination des rencontres pour un tour utilise deux choses : le classement du dernier tour et la force relative des joueurs (estimée par l organisateur avant le début du tournoi sur la base par exemple du classement de l édition précédente). Concernant l utilisation du classement, seul est pris en compte le score des joueurs. C està-dire que le SOS et le SOSOS, qui sont utilisés dans le classement pour départager des 2
joueurs, n interviennent pas dans l appariement. Plus précisément, on forme des groupes de joueurs ayant un score identique et on fait se jouer entre eux uniquement des joueurs d un même groupe. Cela a effectivement l effet de minimiser la différence de niveau entre deux adversaires. A l intérieur d un groupe, on applique la stratégie appelée Split and Slip en anglais. A savoir, on ordonne les joueurs suivant leur force et on crée deux sous groupes de même taille : le sous-groupe des plus forts et le sous-groupe des plus faibles. Ensuite, on fait se jouer ensemble les premiers de chaque sous-groupe, les seconds de chaque sous-groupe, etc. Cela a effectivement l effet d empêcher les deux plus forts joueurs de s affronter dans les premiers tours du tournoi. Les directives présentées ci-dessus décrivent un scénario idéal. En pratique, il se peut que la taille d un groupe de même score soit un nombre impair. Dans ce cas, ce groupe va être complété en piochant un joueur dans le groupe situé juste au-dessus ou juste en-dessous. Contrairement aux apparences, l appariement des joueurs est un problème compliqué à décrire formellement, et nécessitant un algorithme complexe si l on veut que celui-ci s exécute rapidement. Sans rentrer dans les détails, une manière de faire est d associer un coût à chaque rencontre potentielle entre deux joueurs (par exemple, de telle manière que le coût d une rencontre potentielle entre deux joueurs ayant déjà joués ensemble sera très élevé), et de rechercher un ensemble de rencontres dont le coût total (la somme des coûts de chaque rencontre retenue dans cet ensemble) soit le plus bas possible 2. 5 Le logiciel choisi : OpenGotha OpenGotha est un logiciel qui intègre les méthodes de classement et d appariement décrites précédemment. Il est à la fois complet et flexible. Il a été conçu à la base pour gérer les tournois de Go mais s adapte parfaitement à n importe quelle compétition mettant en scène des confrontations entre deux adversaires. Il permet en outre de générer les classements et les listes de rencontres aux formats PDF et HTML. Le logiciel est accompagné d une documentation fournie que le lecteur pourra consulter s il le souhaite. Dans la suite de ce document on se limite à expliquer comment configurer et utiliser ce logiciel dans le cadre particulier de notre tournoi de tennis. Téléchargement Télécharger gratuitement (merci à son auteur Luc Vannier) le programme OpenGotha (version 3.42) depuis la page web http://vannier.info/jeux/ gotournaments/opengotha.htm sous forme d un fichier d archive au format ZIP (opengothav3.42.zip). 2. Le problème mathématique sous-jacent fait partie de la Théorie des graphes et s appelle, en anglais, le minimum weight perfect matching. Le premier algorithme efficace pour résoudre ce problème a été publié par J. Edmonds en 1965. 3
Installation Désarchiver le fichier ZIP dans un dossier préalablement créé qu on appelera, par exemple, "OpenGotha". Lancement du programme Le programme se présente sous la forme du fichier opengotha.jar (archive Java) présent à la racine du dossier. Il s exécutera sur n importe quel ordinateur disposant de Java (version 6), c est-à-dire tous en pratique. On peut par exemple le lancer en exécutant la commande suivante depuis un terminal, après s être positionné dans le dossier "OpenGotha". java -jar opengotha.jar & Choisir ensuite le mode Stand-Alone (un seul utilisateur à la fois, en local). Création du tournoi Menu Tournament Sous-menu New, puis entrer les informations suivantes (exemple pour le tournoi 2015). Name : "Tournoi tennis CSP 2015" Shortname : "tournoitenniscsp2015" Location : "Dorigny" Director : "Pierre-François" Begin date : "2015-01-01" End date : "2015-12-31" System : "Swiss" Number of rounds : "6" Sauvegarde du tournoi Les tournois sont enregistrés au format XML, par défaut dans le sous-dossier "tournamentfiles" du dossier "OpenGotha". Menu Tournament Save as. Puis choisir un nom pour le fichier, par exemple "tournoitenniscsp2015.xml". Par défaut, le système utilisera comme nom de fichier le Shortname du tournoi (voir ci-dessus) suivi du suffixe ".xml". Ne pas oublier de sauver régulièrement après toute modification, en suivant la même procédure que précédemment, et en choisissant à la fin le même nom de fichier que celui initialement choisi. Importation des joueurs Nous décrivons ici la méthode la plus rapide pour ajouter un grand nombre de joueurs au tournoi, c est-à-dire en les listant tous dans un fichier texte (en suivant une syntaxe précise décrite ci-dessous) puis en les important d un coup. Mais il est également possible de les ajouter un à un, ou d ajouter un joueur après coup. Ecrire à la main (ou générer avec un script maison) un fichier texte au format LATIN- 1 (pour voir les accents correctement), appelé par exemple "importerjoueurs2015.txt", contenant une ligne par joueur. Chaque ligne est une liste de valeurs séparées par une barre verticale, de la forme 4
name firstname rank club country rating registration Par exemple Isoz Pierre-François 15k 0 f On ne renseignera que les champs name, firstname, rank, rating et registration. Les autres (club et country) resteront vide. Pour le rang (rank), on classe subjectivement les joueurs du plus fort au plus faible, en se basant sur les classements des éditions précédentes du tournoi, la connaissance qu on a des joueurs, etc. On attribue le rang "1k" (1 Kyu, comme au jeu de Go) au premier, "2k" au second, etc. Mais il ne faut pas dépasser "30k". Donc tous les joueurs au-delà du 30ème obtiennent le rang "30k". Pour le champ rating, on donne "0" à tout le monde. Pour le champ registration, on donne "f" à tout le monde, ce qui veur dire que l inscription de chaque joueur est définitive ("final" en anglais). Ensuite, Menu Tournament Sous-menu Import Sous-menu Import Players From vbar-separated File. Choisir le fichier. C est tout. Vérifier que tous les joueurs sont correctement importés avec Menu Players Players Manager. Si nécessaire, pour effacer tous les joueurs afin de recommencer l opération. Menu Players Sous-menu Players Quick check. Sélectionner tous les joueurs (par exemple avec Cmd+A sur Mac). Puis bouton Set registration status to preliminary. Puis bouton Remove all P players. Configuration générale de l outil Menu Options Sous-menu Preferences. Décocher tout afin que l outil n essaie pas de se connecter à internet. Configuration de la méthode de classement Menu Options Sous-menu Tournament Options Onglet Placement. Garder les réglages par défaut, c est-à-dire les critères suivants dans cet ordre : NBW, SOSW, SOSOSW, NULL. Menu Options Tournament Op- Configuration de l appariement automatique tions Onglet Pairing. Section Inside a group use a seeding system : décocher Add a sorting on rating (en fait cela ne change rien car on a fait en sorte que le rating de chaque joueur soit égal à "0"). Choisir Split and Slip pour Former rounds (premiers tours) et Latter rounds (derniers tours). Section When pairing players from different groups is necessary : ne rien toucher, c est-à-dire laisser cochés Compensate a previous Draw up/down by a Draw down/up, The player in the upper group : in the middle of the group et The player in the lower group : in the middle of the group. Section Base criteria : laisser coché No random (pas de hasard). Décocher Balance White and Black. 5
Section Secondary criteria : Ces critères sont inutiles dans note cas, ils servent à empêcher par exemple deux joueurs du même club de s affronter. Il faut donc les désactiver,ce qui est le cas par défaut car ils sont configurés pour ne pas s appliquer aux joueurs d un niveau supérieur ou égal à 30 Kyu (30k), c est-à-dire tout le monde. Configuration de la publication Cela permet d affiner la manière dont les documents (liste des joueurs, résultats d un tour, classement) sont publiés. Menu Publish Sous-menu Publish Onglet Contents Section Standings. Décocher : display Country column, display Club column. Section Game list : décocher show Country et show Club. Appariement manuel Il peut être nécessaire, par exemple si l on a commencé à utiliser l outil en cours de tournoi (comme en 2015), de définir à la main les rencontres des premiers tours. Menu Games Sous-menu Pair. Choisir un numéro de tour ("Round") si nécessaire. Puis répéter l opération suivante. Sélectionner deux joueurs, le premier avec un clic, le second avec Cmd+clic (sur Mac). Puis les "basculer" à droite avec le bouton Pair. Appariement automatique Menu Games Sous-menu Pair. Choisir un numéro de tour ("Round") si nécessaire. Ne sélectionner aucun joueur dans la liste de gauche et cliquer simplement sur le bouton Pair. Saisie des résultats d un tour Menu Games Sous-menu Results. Choisir un numéro de tour ("Round") si nécessaire. Pour chaque match, cliquer sur le nom du vainqueur. Remarque : il n est pas possible d indiquer le nombre de sets ni de jeux marqués. Pour annuler le résultat d une rencontre, cliquer sur le numéro de la rencontre ("Table"), tout à gauche. Publication de la liste des matchs Par exemple pour publier la liste des matchs du tour 3. Menu Publish Sous-menu Publish Onglet Publish. Choisir Round : "3". Bouton Publish games of round 3. Puis Save as PDF. Remarque : une version HTML des documents publiés est également générée dans le dossier exportfiles/html/. Publication du classement Par exemple pour publier le classement après le tour 3. Menu Publish Sous-menu Publish Onglet Publish. Choisir Round : "3". Bouton Publish standings after round 3. Puis Save as PDF. Remarque : une version HTML des documents publiés est également générée dans le dossier exportfiles/html/. 6