Swiss system: match distribution problem!

Tournaments organization / Organisation des tournois
User avatar
Pinovitch
Posts: 31
Joined: 06 April 2014, 21:22

Re: Swiss system: match distribution problem!

Post by Pinovitch »

If the algorithm is impossible, then why in V1 it was?
Siam Tournament : https://boardgamearena.com/tournament?id=36327
No double pairings: 20 games for 27 players (at least I don't see any)

On the other hand, in a current Gizmos tournament: https://boardgamearena.com/tournament?id=316473
14 matches for 28 participants, by the 11th day, I've already met Milou Rouge 4 times!
So don't tell me it's impossible and that it's my settings that are failing!
User avatar
BananaHarambe
Posts: 297
Joined: 19 June 2024, 17:40

Re: Swiss system: match distribution problem!

Post by BananaHarambe »

Pinovitch wrote: 04 January 2025, 20:27 If the algorithm is impossible, then why in V1 it was?
Siam Tournament : https://boardgamearena.com/tournament?id=36327
No double pairings: 20 games for 27 players (at least I don't see any)

On the other hand, in a current Gizmos tournament: https://boardgamearena.com/tournament?id=316473
14 matches for 28 participants, by the 11th day, I've already met Milou Rouge 4 times!
So don't tell me it's impossible and that it's my settings that are failing!
Hi, I looked at your in progress gizmos tournament, thank you for sharing. I can explain why you keep getting paired against the same player. It’s because the two of you have been near the bottom of the standings for enough rounds that the Swiss pairing algorithm is struggling to pair you with an opponent. Only you and your frequent opponent are having this problem, everyone else is fine. I checked 25th place and saw no repeats.

In a 2 player Swiss after a typical number of rounds, 5 to 7 round for 32 players all the players are fairly well sorted by their win records and have played opponents with the same score every single game. The distribution of number of players by score will always make a diamond pattern, few players with the high scores, many players near the average score +-1 or 2 points, and only a few players near the bottom with little to no wins. Pattern would be 1-5–10-10-5-1 for 32 players, 5 rounds.

The way Swiss pairings work in general with duplicate match prevention is that it calculates standings each round and makes the best pairings for the players one at a time starting with the 1st rated player, then 2nd, 3rd, etc. it will always to to match the same score first considering all players of the same score (7 wins for example) in duplicate prevention.

So what’s happening is all the top players are getting paired with the best possible opponent, which is basically going down the list from highest to lowest to find an opponent they haven’t played. Since you and the other player are at the bottom of the standings the algorithm will pair everyone else up top to bottom which leaves the two of you at the bottom to play each other.

This is part of the proper Swiss pairing algorithm, a feature, not a bug. To avoid the repeat matches you would need to win enough games to increase your standing. The algorithm is not pairing stronger players against you because that would be less fair overall in the matchmaking. This is the correct way to make pairings for a tournament because it will be able to better sort the top players for placement.

In real world Swiss tournaments this is never an issue because by the time this happens the tournament would be over already or the players that bottomed out would have withdrawn from the tournament already. Withdrawals are common in Swiss tournaments IRL after being out of contention for prizes/standing. BGA gives penalties for it, though minor.

I would suggest making more frequent tournaments with less matches as an alternative.
Last edited by BananaHarambe on 05 January 2025, 17:02, edited 1 time in total.
User avatar
Pinovitch
Posts: 31
Joined: 06 April 2014, 21:22

Re: Swiss system: match distribution problem!

Post by Pinovitch »

But in 2020 the system worked perfectly!
No one met twice and for the pairing we used the Swiss system...
Priority 1: we don't meet twice
Priority 2: Swiss system

And don't talk to me about "all round" either (because that's usually what I'm told as a solution) it's either we play all together, or we play a match one after the other with predefined dates. Impossible to play a day, as soon as the previous one is finished (like in the Swiss system).
Here, the interface does not respect the calendar as defined! 5 matches are played from the beginning when they were planned later
https://boardgamearena.com/tournament?id=346850

There is progress to be made... and a community to listen to..
User avatar
Rwain
Posts: 113
Joined: 14 August 2012, 08:24

Re: Swiss system: match distribution problem!

Post by Rwain »

BananaHarambe wrote: 05 January 2025, 05:45

The way Swiss pairings work in general with duplicate match prevention is that it calculates standings each round and makes the best pairings for the players one at a time starting with the 1st rated player, then 2nd, 3rd, etc. it will always to to match the same score first considering all players of the same score (7 wins for example) in duplicate prevention.

So what’s happening is all the top players are getting paired with the best possible opponent, which is basically going down the list from highest to lowest to find an opponent they haven’t played. Since you and the other player are at the bottom of the standings the algorithm will pair everyone else up top to bottom which leaves the two of you at the bottom to play each other.

This is part of the proper Swiss pairing algorithm, a feature, not a bug. To avoid the repeat matches you would need to win enough games to increase your standing. The algorithm is not pairing stronger players against you because that would be less fair overall in the matchmaking. This is the correct way to make pairings for a tournament because it will be able to better sort the top players for placement.
I totally disagree with your analysis. Having launched numerous Swiss tournaments, I can assure you that the system does not work at all, and this is not a feature of the swiss system, it's just an algorithm that does not work when tournaments have a small number of players.

Here is a perfect example of what happened in swiss system on BGA : https://boardgamearena.com/tournament?id=182877

When you choose the option "Try to prevent player to be opponents twice", the swiss system is faulty. The algorithm seems to start from the top, to find opponents suitable for the 1st player. When every player left have already played against him, it chose to make him play against the last players tried... who happen to be the player at the bottom of the standings. And that is clearly nonsense.
Player n°1 finished his tournament playing only against the "weakest players"... on and on and on...
In the Terra Mystica tournament presented above, salemome, best player of the tournament, ends with endless oppositions against Pinovitch, Acathla and lynkowsky, who had the fewest points here. This ends in an easy win of salemome, and the urge to quit for players who are bored facing always the same opponents.
There should be a way to propose a system that adpats to the number of players ! Once the best player had played against all others in a tournament, it starts as new, and he can once more be opposed to the second...
User avatar
BananaHarambe
Posts: 297
Joined: 19 June 2024, 17:40

Re: Swiss system: match distribution problem!

Post by BananaHarambe »

Rwain wrote: 05 January 2025, 15:10

I totally disagree with your analysis. Having launched numerous Swiss tournaments, I can assure you that the system does not work at all, and this is not a feature of the swiss system, it's just an algorithm that does not work when tournaments have a small number of players.

Here is a perfect example of what happened in swiss system on BGA : https://boardgamearena.com/tournament?id=182877

When you choose the option "Try to prevent player to be opponents twice", the swiss system is faulty. The algorithm seems to start from the top, to find opponents suitable for the 1st player. When every player left have already played against him, it chose to make him play against the last players tried... who happen to be the player at the bottom of the standings. And that is clearly nonsense.
Player n°1 finished his tournament playing only against the "weakest players"... on and on and on...
In the Terra Mystica tournament presented above, salemome, best player of the tournament, ends with endless oppositions against Pinovitch, Acathla and lynkowsky, who had the fewest points here. This ends in an easy win of salemome, and the urge to quit for players who are bored facing always the same opponents.
There should be a way to propose a system that adpats to the number of players ! Once the best player had played against all others in a tournament, it starts as new, and he can once more be opposed to the second...
Hi, thanks for your comments. We are all on the same side here, wanting improvements to the tournament system. I am a organizing 3+ tournaments a month for one game now and running into many roadblocks and frustrations with the tournament features. I want things fixed just like you do. All tournament formats, not just basic Swiss. They all have major issues IMO.

Your example linked is a 8 match swiss with 4/3 players that only ended up having 12 players sign up unfortunately. Starting as early as Step 4 it becomes impossible to prevent duplicate pairs for anyone and the coding for the "try to prevent" player pairing is clearly broken once everyone is paired. This is a blatant and high disruptive bug that should be patched ASAP. Pairing should put everyone together once and then pair everyone together one more time again and again until finished. This would require counting how many times each player has played each other player rather than a yes/no, which might be why the code breaks down. It's funny that the tournament creation page says "For tournaments with few players, you should disable this option" for the pairing policy, then gives no explanation for what that means. There's an incredibly vague warning provided.

For the complaints about duplicate pairings at the bottom of the brackets I have done further digging and found a common algorithm that doesn't make duplicate pairings at the bottom. I have a pairing algorithm improvement below and recommend BGA makes the explanations for each pairing option more clear to everyone. Here would be the 2 options, each listed as pairing "priority"

1) Prioritize pairing based on score -This is the current "don't try to prevent" setting. Despite the name it still tries to prevent duplicate pairings among those with the same/similar score (matching players from as few different scores as possible), but it prioritizes matching scores more than the "try to prevent" pairing policy. For long tournaments with fewer players I would highly recommend this option since it will create a "hotseat" style tournament after all the initial placement games and create overall more balanced skill level on each table rather than force stronger players to play progressively weaker and weaker players in later rounds as they struggle to find appropriate opponents they haven't played yet.

2) Prioritize unique pairings (Monrad System for Swiss Tournament Pairing) -Based on what I've observed, this is what the "try to prevent" pairing settings are based on, though there are some flaws in the coding. Pairings are always done based on standings from top to bottom and should always give everyone a unique opponent. Here's where the algorithm needs improving:
You always start with the top player on the round list and find their opponent, who should be the closest ranked player and whom the top player can face according to [[UNIQUE PAIRING]]. When two players have been set up, they are removed from the round list, and you continue to find an opponent for the player who is now at the top. This continues until the round is set up.
When a player cannot meet any of the following players on the round list, the last pair formed shall be broken up, placed in its place on the round list and considered as unable to meet. The set-up then continues in the normal way. If it is still impossible to complete the set-up, the now last pair formed shall be broken up in addition, etc.
.

This is written for 2 player pairing, but should be applicable to 3+ player as well. The current BGA algorithm does not seem to properly proceed once a pair of players that cannot meet again are encountered. It appears that if the players are the last two to get paired it does not care if they are unique pairings. What it should do is break up the last pair as per the quotation (From Danish Chess Federation Monrad System Page) and try a different pairing and see if it can complete all the pairings that way. Any time a pairing cannot be made (skipping previously attempted pairings), break up the last pairing and re-pair that player.

The algorithm is fairly simple and not that difficult computation wise with a limit of 20 matches. It will always results in unique pairings like the organizer requested while keeping ideal pairings for the top players.

I wasn't around when Swiss v1 was still around, but I know it was restricted to only 2 players. Perhaps when adjusting the coding to enable 3+ players in the new Swiss tournament system they forgot to check unique pairings for the final pairing, which is causing the problems at the bottom table.

In addition to the pairing algorithm fix to backtrack properly it should also fix the bug where the pairings completely break after everyone has played once or if in 3+ player it's unable to fill a whole table with unique opponents. Simplest fix is to simply check if the first player has enough unique pairings remaining to fill the table. If they don't, then reset all the unique pairings for everybody at the start of the round and pair based on standings.

As an example, a 4 player Swiss with 20 players is able to find unique pairings for rounds 1-6, 3 opponents each round and 19 opponents total. When pairing for round 7, the top player has only 1 unique pairing available, but needs 3 players for the match so this triggers a full reset of pairings. This is easy to code and results in fair pairings from the reset.

That one unique pairing remaining for each player would never happen because of the reset, but this is more fair than the alternative here, which for example would be pairing the #1 player with the #20 player and then filling the remaining with the reset, players #2 and #3.
User avatar
Pinovitch
Posts: 31
Joined: 06 April 2014, 21:22

Re: Swiss system: match distribution problem!

Post by Pinovitch »

Ben voilà, on est d'accord ... le système peut et doit être corrigé.

Merci
Kuuchi
Posts: 6
Joined: 01 March 2025, 00:02

Re: Swiss system: match distribution problem!

Post by Kuuchi »

Bonjour Pinovitch,

Je suis récent sur BGA, et je viens de lire ton post sur le sujet du système Suisse et de son manque de pertinence dans la distribution des adversaires ainsi que de la multiplicité des rencontres répétées avec le même adversaire.

Il m'a suffi d'observer les arborescences de tournois précédents, pcq je voulais voir leur fonctionnement, pour constater ce que tu dépeins et effectivement, c'est bien dommage.

Je note aussi que ton post initial date de 2022, en 2 à 3 ans.
As-tu pu voir des améliorations sur un sujet aussi important que l'harmonisation et la répartition lors des tournois ?


Ce problème peut se rencontrer dans n'importe quel jeu ! C'est loin d'être anodin et cela devrait être une priorité et une urgence pour les développeurs du site ! En effet, les tournois perdent de leur valeur intrinsèquement, deviennent donc moins attractifs, moins compétitifs, et l'on en vient à se demander si le gagnant mérite vraiment sa place (favorisation du 1er intouchable qui rencontre les derniers... un non sens jamais observé dans encore aucun tournoi IRL).


Questions techniques bonus de ma part au passage :

1. J'ai commencé un tournoi en ronde suisse récemment et nous avons 7 jours chacun pour l'ensemble de la partie. Est-il possible d'être informé par message/mail lorsqu'un joueur joue enfin ou propose un échange afin d'interagir plus vite et de ne pas gaspiller son temps de jeu également ?
2. Par ailleurs, si je propose un échange et que je suis obligé d'attendre la réponse de mes adversaires pour savoir quoi faire ensuite, est-ce mon temps de jeu qui s'écoule ou chacun des leurs ou aucun des 2 ? Le jeu ne me donne aucune info à ce sujet, et c'est dérangeant car cela peut nous pénaliser dans un sens comme dans l'autre.

Merci à toi pour tes réponses et compléments sur le sujet principal ainsi que sur mes questions.
J'espère que ton post initial sera plus mis en avant et que les devs vont en tenir compte pour le futur.

L'as-tu proposé dans un post plus général encore qui liste les priorités des joueurs pour le fonctionnement de GBA ? Cela pourrait être un bonus fort utile ! ;)
User avatar
Pinovitch
Posts: 31
Joined: 06 April 2014, 21:22

Re: Swiss system: match distribution problem!

Post by Pinovitch »

Salut, oui le sujet est en stand by depuis le post initial, aucune amélioration.

Concernant une notification éventuelle quand c'est à ton tour de jouer, oui c'est possible dans ton profil au niveau des notifications push.
Post Reply

Return to “Tournaments / Les tournois”