Hoofdstuk 5 — Gids Hoe het FIDE Dutch koppelingsalgoritme werkt: criteria C1-C19 vereenvoudigd, scoregroepen, kleuren, floaters. Bijgewerkt voor FIDE 2026-regels. Inclusief TRF-bestandsgids.
Elke keer dat u op "Koppeling genereren" klikt in een Zwitsers toernooi, draait er in milliseconden een geavanceerd algoritme op de achtergrond. Begrijpen hoe het werkt bevredigt niet alleen uw nieuwsgierigheid — het helpt u "ongewone" koppelingen uit te leggen aan spelers, veelgemaakte configuratiefouten te vermijden en het maximale uit uw koppelingssoftware te halen. Dit hoofdstuk ontrafelt het FIDE Dutch System, bijgewerkt voor de regels van kracht sinds 1 februari 2026.
In de vroegste dagen van schaaktoernooien koppelden arbiters spelers met de hand — vaak met een fysiek bord en gekleurde fiches. Voor 8 spelers over 5 ronden is dat haalbaar. Voor 200 spelers over 9 ronden is het een logistieke nachtmerrie die uren duurt en foutgevoelig is.
Belangrijker nog, handmatig koppelen introduceert vooringenomenheid. Een arbiter die de spelers kent, kan (bewust of onbewust) "interessante" confrontaties creëren, bepaalde spelers bevoordelen of bepaalde combinaties vermijden. Een algoritme is deterministisch en transparant: bij dezelfde invoer produceert het altijd dezelfde uitvoer, en iedereen kan het resultaat verifiëren.
Het FIDE Dutch System is geen enkele regel — het is een gerangschikte hiërarchie van criteria. Het algoritme probeert eerst de criteria met de hoogste prioriteit te vervullen, en versoepelt pas criteria met lagere prioriteit wanneer er geen andere manier is om de koppelingen van de ronde te voltooien.
Op 1 februari 2026 heeft FIDE een herziene versie van de Zwitserse koppelingsregels (C.04.1, C.04.2, C.04.3) van kracht gemaakt. De wijzigingen zijn grotendeels verduidelijkingen en hernummeringen, maar ze zijn belangrijk voor elk FIDE-gewaarmerkt evenement vanaf die datum:
| Gebied | Vóór feb 2026 | Vanaf feb 2026 |
|---|---|---|
| Criterianummering | Diverse letter-/nummercodes (A1, B1…) | Uniforme C1–C19-reeks |
| Kleurverdeling | Enige dubbelzinnigheid in randgevallen | Expliciete regels voor alle randgevallen |
| Niet-gespeelde partijen | Behandeld als volledige winst voor kleurgeschiedenis | Behandeld als ½ punt voor zowel kleur- als Buchholz-doeleinden |
| Burstein-systeem | Beschreven in C.04.4 | Blijft in C.04.4, kleine verduidelijkingen |
| Dubbel-Zwitsers systeem | — | Nieuw: C.04.5 (twee parallelle Zwitserse brackets) |
| Baku-versnelling | C.04.5 | Hernummerd naar C.04.7 |
Het fundamentele idee van het Zwitserse systeem is eenvoudig: spelers met gelijke scores spelen tegen elkaar. Een scoregroep is de verzameling van alle spelers die op een bepaald moment in het toernooi hetzelfde aantal punten hebben.
Binnen elke scoregroep worden spelers gerangschikt op basis van hun plaatsing (die meestal gebaseerd is op hun rating vóór het toernooi). De groep wordt vervolgens in twee helften gesplitst: de bovenste helft (hoger geplaatste spelers) en de onderste helft (lager geplaatste spelers). Speler 1 in de bovenste helft speelt tegen speler 1 in de onderste helft, speler 2 tegen speler 2, enzovoort.
Na ronde 1 splitsen de scoregroepen zich. Spelers die wonnen (1,0 punt) vormen de bovenste groep. Spelers die remise speelden (0,5) vormen de middengroep. Spelers die verloren (0,0) vormen de onderste groep. Het algoritme probeert vervolgens binnen elke groep te koppelen — maar het wordt al snel ingewikkeld, zoals we in ronde 2 zullen zien.
Het FIDE Dutch-systeem definieert 19 criteria, gerangschikt op prioriteit. Bij het genereren van koppelingen voor een scoregroep probeert het algoritme een koppeling te vinden die zoveel mogelijk criteria met hoge prioriteit vervult. Als het vervullen van C3 betekent dat C7 geschonden wordt, kiest het voor C3 — tenzij C3 zelf wordt overschreven door C1 of C2.
Hier zijn de belangrijkste criteria in begrijpelijke taal uitgelegd:
Het algoritme optimaliseert niet voor "de beste schaakconfrontatie" — het optimaliseert voor naleving van de criteriahiërarchie. Soms levert dit koppelingen op die vreemd lijken voor spelers. Sectie 9 van dit hoofdstuk legt de meest voorkomende "vreemde koppeling"-scenario's uit.
Kleurverdeling is een van de meest misverstane onderdelen van Zwitserse koppeling. Spelers hebben vaak het gevoel dat ze te vaak zwart krijgen — en soms hebben ze gelijk, maar meestal doet het algoritme precies wat de regels vereisen.
Een speler heeft een kleurvoorkeur als zijn kleurgeschiedenis niet in balans is (meer wit- dan zwartpartijen of omgekeerd). Hij heeft een kleurrecht als hij twee opeenvolgende partijen met dezelfde kleur heeft gespeeld — in dat geval moet hij de volgende keer de tegenovergestelde kleur krijgen, tenzij het onmogelijk is de ronde überhaupt te koppelen.
Wanneer twee spelers met tegenstrijdige kleurrechten aan elkaar worden gekoppeld, moet het algoritme de regel voor één van hen doorbreken. Het kiest de speler met de zwakkere claim — meestal degene wiens kleurreeks over het geheel minder onbalans vertoont.
In ronde 1 hebben alle spelers een gelijke kleurgeschiedenis (geen). Kleuren worden toegewezen volgens een algemeen principe: de hoger geplaatste speler (in de bovenste helft) krijgt wit, de lager geplaatste speler krijgt zwart. Daarom speelt Fischer (S1) in het Aljechin Memorial met wit en Spassky (S5) met zwart.
Wanneer een scoregroep een oneven aantal spelers heeft, kan één speler niet binnen de groep worden gekoppeld en moet worden verplaatst. Deze speler wordt een floater genoemd.
Een downfloater wordt verplaatst naar de volgende lagere scoregroep (bijv. van de 3,0-puntengroep naar de 2,5-puntengroep). Een upfloater is de speler in de lagere groep die deze "gast" van boven ontvangt.
Het algoritme probeert floating te minimaliseren (criteria C4–C5). Wanneer floating onvermijdelijk is, volgt het specifieke regels over wie floatt: de laagst gerangschikte speler in de scoregroep is de voorkeursdownfloater, tenzij die speler al in de vorige ronde heeft gefloat of een bijzonder sterk kleurrecht heeft dat koppeling in de lagere groep onmogelijk maakt.
Na ronde 1: Fischer, Kasparov, Tal, Petrosian wonnen allemaal → 4 spelers op 1,0 punt (even groep, geen floater nodig).
Spassky, Karpov, Botvinnik, Lasker verloren allemaal → 4 spelers op 0,0 punten (even groep, geen floater nodig).
Ronde 2 is schoon: de 1,0-groep koppelt intern, de 0,0-groep koppelt intern.
Maar stel dat Tal remise speelde in plaats van won: dan zouden we 3 spelers op 1,0 hebben, 2 op 0,5 en 3 op 0,0. De 0,5-groep heeft slechts 2 spelers — dat is prima (één koppeling). Maar de 1,0-groep heeft 3 spelers — één moet downfloaten naar de 0,5-groep. De laagst gerangschikte speler op 1,0 (Petrosian, S4) wordt de downfloater.
Laten we de volledige koppeling van ronde 1 stap voor stap doorlopen voor ons toernooi met 8 spelers.
Invoer: 8 spelers, allemaal op 0,0 punten, gerangschikt op ratingplaatsing. Eén scoregroep: {Fischer, Kasparov, Tal, Petrosian, Spassky, Karpov, Botvinnik, Lasker}.
Stap 1 — Splits in twee helften: Bovenste helft = Fischer, Kasparov, Tal, Petrosian (S1–S4). Onderste helft = Spassky, Karpov, Botvinnik, Lasker (S5–S8).
Stap 2 — Pas criteria C1–C2 toe: Geen eerdere tegenstanders (eerste ronde), dus geen beperking. Nog geen byes.
Stap 3 — Ideale koppeling: S1↔S5, S2↔S6, S3↔S7, S4↔S8. Alle criteria vervuld. Dit is de koppeling.
Stap 4 — Kleurverdeling: De bovenste helft krijgt standaard wit in ronde 1.
Na de resultaten van ronde 1 (Fischer 1–0 Spassky, Kasparov 1–0 Karpov, Tal 1–0 Botvinnik, Petrosian 1–0 Lasker), hebben we twee scoregroepen:
Groep A (1,0 pt): Fischer, Kasparov, Tal, Petrosian — alle 4 gewonnen.
Groep B (0,0 pt): Spassky, Karpov, Botvinnik, Lasker — alle 4 verloren.
Koppeling groep A: Splits in twee helften → Fischer, Kasparov (boven) vs Tal, Petrosian (onder). Ideaal: Fischer↔Tal, Kasparov↔Petrosian. Controle C2: nog niet tegen elkaar gespeeld. ✓
Kleurstap: In ronde 1 hadden Fischer en Kasparov wit. Nu hebben ze zwart nodig. Tal en Petrosian hadden zwart, nu hebben ze wit nodig. Dus: Tal (W) vs Fischer (Z), Petrosian (W) vs Kasparov (Z). ✓
Maak een testtoernooi met 8 spelers en kijk hoe het algoritme ronde voor ronde werkt.
Spelers en organisatoren stellen vaak bepaalde koppelingen ter discussie. Hier zijn de meest voorkomende situaties en de algoritmische reden erachter.
Dit gebeurt wanneer de 3,0-puntengroep een oneven aantal spelers heeft en iemand moet downfloaten. Het algoritme heeft elke combinatie binnen de 3,0-groep geprobeerd maar ontdekte dat alle mogelijke koppelingen C1, C2 of C5 schenden (bijv. alle 3,0-puntenspelers hebben al tegen elkaar gespeeld, of hebben ernstige kleurconflicten). Eén speler downfloaten naar de 2,5-groep was de enige geldige optie.
Wanneer een speler downfloatt, moet hij vaak een kleur accepteren die hij normaal niet zou krijgen, omdat de koppeling in de lagere groep dit vereist. Dit is een bekende beperking van het Zwitserse systeem — de kleurbalansbeperking heeft lagere prioriteit dan C1–C5, dus deze kan worden overschreven.
Als beide leiders dezelfde score hebben, en het algoritme geen andere geldige koppeling binnen hun scoregroep vindt (alle andere spelers in die groep hebben al tegen hen gespeeld, of hebben tegenstrijdige kleurrechten), koppelt het algoritme de top twee aan elkaar. Dit is correct gedrag — de criteriahiërarchie vereist het.
Het Burstein-systeem is een variant van het Dutch-systeem met een andere benadering van scoregroepvorming. In plaats van strikte scoregroepen met floaters, staat het meer flexibele cross-groepkoppelingen toe terwijl de ratingnabijheid binnen paren wordt gehandhaafd. Het wordt minder vaak gebruikt in FIDE-gewaardeerde evenementen maar is erkend als alternatief.
Baku-versnelling wordt gebruikt in zeer grote Zwitserse toernooien (doorgaans 200+ spelers) om ervoor te zorgen dat de topspelers elkaar eerder tegenkomen, in plaats van pas in de laatste ronden nadat ze meerdere gemakkelijke partijen tegen zwakkere tegenstanders hebben gewonnen.
Het idee: in de eerste paar ronden krijgen de hoogst gerangschikte spelers een "virtuele" halve punt voorsprong, waardoor ze in een hogere scoregroep worden geplaatst dan hun werkelijke score. Dit creëert eerdere confrontaties tussen sterke spelers. Vanaf ronde 3 of 4 worden de virtuele punten verwijderd en wordt de normale Zwitserse koppeling hervat.
Het TRF (Tournament Report File) is het standaard uitwisselingsformaat voor schaaktoernooigegevens. ChessPairings.org exporteert zowel TRF-16 (verouderd) als TRF-25 (nieuw 2025-formaat). Zo ziet een TRF-16-bestand eruit voor ons Aljechin Memorial na ronde 1:
012 Aljechin Memorial Open 022 Club Room, Alessandria 032 2026-03-03 042 2026-03-03 052 Mikhail (Chief Arbiter) 062 5 072 1 082 Rapid 092 15+10 132 Buchholz Cut-1, Buchholz, Wins, Direct Encounter 001 No Name Rtg FID Pts R1 001 1 Fischer 2200 1234567 1.0 0000 W 5 1 001 2 Kasparov 2180 2345678 1.0 0000 W 6 1 001 3 Tal 2150 3456789 1.0 0000 W 7 1 001 4 Petrosian 2120 4567890 1.0 0000 W 8 1 001 5 Spassky 2080 5678901 0.0 0000 B 1 0 001 6 Karpov 2050 6789012 0.0 0000 B 2 0 001 7 Botvinnik 1990 7890123 0.0 0000 B 3 0 001 8 Lasker 1960 8901234 0.0 0000 B 4 0
Elke 001-regel is één speler. Van links naar rechts gelezen: spelernummer, naam, rating,
FIDE-ID, totaalscore, en vervolgens voor elke ronde: startrang (0000 = niet van toepassing), kleur (W/B),
tegenstander-nummer, resultaat (1 = winst, 0 = verlies, = = remise, H = halve-punt-bye, F = reglementaire winst).
U hoeft dit bestand nooit handmatig te bewerken — ChessPairings.org genereert het automatisch. Maar weten hoe u het moet lezen helpt bij het verifiëren van resultaten of het importeren in andere software.
ChessPairings.org gebruikt bbpPairings als Zwitserse koppelingsmotor — een open-source C++-implementatie van het FIDE Dutch-systeem, onderhouden door de schaakprogrammeergemeenschap. bbpPairings wordt gebruikt door meerdere nationale federaties en toernooibeheersystemen wereldwijd.
Voor tiebreakberekeningen gebruikt ChessPairings.org een speciale TieBreakServer-module (Python), die alle 28 ondersteunde tiebreaksystemen onafhankelijk van de koppelingsmotor implementeert. Deze scheiding zorgt ervoor dat koppelings- en tiebreaklogica elk onafhankelijk verifieerbaar zijn.
Beide motoren worden bijgewerkt wanneer FIDE zijn regels herziet — de regelwijzigingen van februari 2026 zijn volledig verwerkt in de huidige versie van ChessPairings.org.
Het Dutch-koppelingsprobleem is wiskundig equivalent aan een gewogen maximum matching-probleem in de grafentheorie. Elke potentiële koppeling is een rand met een gewicht dat aangeeft hoe goed deze voldoet aan de criteriahiërarchie. Het algoritme vindt de maximum-gewicht perfecte matching — daarom kan het zelfs voor toernooien met 500 spelers in een fractie van een seconde worden berekend.
FIDE 2026 conforme Zwitserse indeling, 28 tiebreak-systemen, volledig gratis.
Maak Gratis Account