Rozdział 5 — Przewodnik Jak działa algorytm kojarzenia FIDE Dutch: kryteria C1-C19 uproszczone, grupy punktowe, kolory, floaterzy. Zaktualizowany do przepisów FIDE 2026. Zawiera przewodnik po plikach TRF.
Za każdym razem, gdy klikasz "Generuj kojarzenia" w turnieju szwajcarskim, w ułamku sekundy działa w tle zaawansowany algorytm. Zrozumienie, jak on działa, nie tylko zaspokoi Twoją ciekawość — pomoże Ci wyjaśnić "nietypowe" kojarzenia graczom, uniknąć typowych błędów konfiguracyjnych i w pełni wykorzystać oprogramowanie do kojarzeń. Ten rozdział wyjaśnia system FIDE Dutch, zaktualizowany do przepisów obowiązujących od 1 lutego 2026.
W najwcześniejszych czasach turniejów szachowych sędziowie kojarzyli graczy ręcznie — często za pomocą fizycznej tablicy i kolorowych żetonów. Dla 8 graczy w 5 rundach jest to wykonalne. Dla 200 graczy w 9 rundach to logistyczny koszmar, który trwa godzinami i jest podatny na błędy.
Co ważniejsze, ręczne kojarzenie wprowadza stronniczość. Sędzia, który zna graczy, może (świadomie lub nie) tworzyć "ciekawe" spotkania, faworyzować niektórych graczy lub unikać pewnych kombinacji. Algorytm jest deterministyczny i przejrzysty: przy tych samych danych wejściowych zawsze produkuje ten sam wynik, a każdy może zweryfikować rezultat.
System FIDE Dutch nie jest pojedynczą regułą — to uporządkowana hierarchia kryteriów. Algorytm stara się najpierw spełnić kryteria o najwyższym priorytecie, a łagodzi kryteria o niższym priorytecie dopiero wtedy, gdy nie ma innego sposobu na ukończenie kojarzeń rundy.
1 lutego 2026 FIDE wprowadziła w życie zmienioną wersję zasad kojarzenia szwajcarskiego (C.04.1, C.04.2, C.04.3). Zmiany to głównie doprecyzowania i przenumerowania, ale mają znaczenie dla każdego turnieju z ratingiem FIDE od tej daty:
| Obszar | Przed lut. 2026 | Od lut. 2026 |
|---|---|---|
| Numeracja kryteriów | Różne kody literowo-cyfrowe (A1, B1…) | Jednolita sekwencja C1–C19 |
| Przydział kolorów | Pewne niejasności w przypadkach brzegowych | Jednoznaczne reguły dla wszystkich przypadków brzegowych |
| Nierozegrane partie | Traktowane jako pełna wygrana dla historii kolorów | Traktowane jako ½ punktu zarówno dla koloru, jak i Buchholza |
| System Bursteina | Opisany w C.04.4 | Pozostaje w C.04.4, drobne doprecyzowania |
| System podwójny szwajcarski | — | Nowość: C.04.5 (dwa równoległe drabinki szwajcarskie) |
| Przyspieszenie Baku | C.04.5 | Przenumerowane na C.04.7 |
Fundamentalna idea systemu szwajcarskiego jest prosta: gracze z równą liczbą punktów grają ze sobą. Grupa punktowa to zbiór wszystkich graczy, którzy w danym momencie turnieju mają tę samą liczbę punktów.
W ramach każdej grupy punktowej gracze są uszeregowani według rozstawienia (które zwykle opiera się na ich ratingu sprzed turnieju). Następnie grupa jest dzielona na dwie połowy: górną połowę (wyżej rozstawieni gracze) i dolną połowę (niżej rozstawieni gracze). Gracz 1 z górnej połowy gra z graczem 1 z dolnej połowy, gracz 2 z graczem 2, i tak dalej.
Po rundzie 1 grupy punktowe się dzielą. Gracze, którzy wygrali (1,0 punkt), tworzą górną grupę. Gracze, którzy zremisowali (0,5), tworzą środkową grupę. Gracze, którzy przegrali (0,0), tworzą dolną grupę. Algorytm następnie próbuje kojarzyć w ramach każdej grupy — ale sprawy szybko się komplikują, jak zobaczymy w rundzie 2.
System FIDE Dutch definiuje 19 kryteriów, uporządkowanych według priorytetu. Przy generowaniu kojarzeń dla grupy punktowej algorytm stara się znaleźć kojarzenie, które spełnia jak najwięcej kryteriów o wysokim priorytecie. Jeśli spełnienie C3 oznacza naruszenie C7, wybiera C3 — chyba że C3 samo jest nadpisane przez C1 lub C2.
Oto najważniejsze kryteria wyjaśnione prostym językiem:
Algorytm nie optymalizuje pod kątem "najlepszego szachowego spotkania" — optymalizuje pod kątem zgodności z hierarchią kryteriów. Czasami produkuje to kojarzenia, które wydają się dziwne dla graczy. Sekcja 9 tego rozdziału wyjaśnia najczęstsze scenariusze "dziwnych kojarzeń".
Przydział kolorów jest jednym z najbardziej niezrozumiałych elementów kojarzenia szwajcarskiego. Gracze często czują, że dostają zbyt wiele czarnych — i czasem mają rację, ale zwykle algorytm robi dokładnie to, czego wymagają przepisy.
Gracz ma preferencję koloru, jeśli jego historia kolorów jest nierównomierna (więcej białych niż czarnych lub odwrotnie). Ma prawo do koloru, jeśli grał dwie kolejne partie tym samym kolorem — w takim przypadku musi otrzymać następnym razem przeciwny kolor, chyba że nie da się w ogóle przeprowadzić kojarzeń rundy.
Gdy dwóch graczy ze sprzecznymi prawami do koloru jest ze sobą skojarzonych, algorytm musi złamać regułę dla jednego z nich. Wybiera gracza z mniejszym roszczeniem — zazwyczaj tego, którego sekwencja kolorów była ogólnie mniej nierównomierna.
W rundzie 1 wszyscy gracze mają równą historię kolorów (brak). Kolory są przydzielane według ogólnej zasady: wyżej rozstawiony gracz (w górnej połowie) otrzymuje białe, niżej rozstawiony gracz otrzymuje czarne. Dlatego w Memoriale Alechina Fischer (S1) gra białymi, a Spassky (S5) czarnymi.
Gdy grupa punktowa ma nieparzystą liczbę graczy, jeden gracz nie może być skojarzony w ramach grupy i musi zostać przeniesiony. Ten gracz nazywany jest floaterem.
Downfloater jest przenoszony do następnej niższej grupy punktowej (np. z grupy 3,0-punktowej do grupy 2,5-punktowej). Upfloater to gracz w niższej grupie, który przyjmuje tego "gościa" z góry.
Algorytm stara się minimalizować floating (kryteria C4–C5). Gdy floating jest nieunikniony, stosuje określone reguły dotyczące tego, kto floatuje: najniżej rozstawiony gracz w grupie punktowej jest preferowanym downfloaterem, chyba że ten gracz już floatował w dół w poprzedniej rundzie lub ma szczególnie silne prawo do koloru, które uniemożliwia kojarzenie w niższej grupie.
Po rundzie 1: Fischer, Kasparov, Tal, Petrosian wszyscy wygrali → 4 graczy na 1,0 punkt (parzysta grupa, floater niepotrzebny).
Spassky, Karpov, Botvinnik, Lasker wszyscy przegrali → 4 graczy na 0,0 punktów (parzysta grupa, floater niepotrzebny).
Runda 2 jest czysta: grupa 1,0 kojarzy się wewnętrznie, grupa 0,0 kojarzy się wewnętrznie.
Ale wyobraź sobie, że Tal zremisował zamiast wygrać: wtedy mielibyśmy 3 graczy na 1,0, 2 na 0,5 i 3 na 0,0. Grupa 0,5 ma tylko 2 graczy — co jest w porządku (jedno kojarzenie). Ale grupa 1,0 ma 3 graczy — jeden musi sfloatować w dół do grupy 0,5. Najniżej rozstawiony gracz na 1,0 (Petrosian, S4) staje się downfloaterem.
Prześledźmy pełne kojarzenie rundy 1 krok po kroku dla naszego turnieju z 8 graczami.
Dane wejściowe: 8 graczy, wszyscy na 0,0 punktów, uszeregowani według rozstawienia ratingowego. Jedna grupa punktowa: {Fischer, Kasparov, Tal, Petrosian, Spassky, Karpov, Botvinnik, Lasker}.
Krok 1 — Podziel na pół: Górna połowa = Fischer, Kasparov, Tal, Petrosian (S1–S4). Dolna połowa = Spassky, Karpov, Botvinnik, Lasker (S5–S8).
Krok 2 — Zastosuj kryteria C1–C2: Brak wcześniejszych przeciwników (pierwsza runda), więc brak ograniczeń. Brak dotychczasowych pauz.
Krok 3 — Idealne kojarzenie: S1↔S5, S2↔S6, S3↔S7, S4↔S8. Wszystkie kryteria spełnione. To jest kojarzenie.
Krok 4 — Przydział kolorów: Górna połowa domyślnie otrzymuje białe w rundzie 1.
Po wynikach rundy 1 (Fischer 1–0 Spassky, Kasparov 1–0 Karpov, Tal 1–0 Botvinnik, Petrosian 1–0 Lasker), mamy dwie grupy punktowe:
Grupa A (1,0 pkt): Fischer, Kasparov, Tal, Petrosian — wszyscy 4 wygrali.
Grupa B (0,0 pkt): Spassky, Karpov, Botvinnik, Lasker — wszyscy 4 przegrali.
Kojarzenie grupy A: Podział na pół → Fischer, Kasparov (góra) vs Tal, Petrosian (dół). Ideał: Fischer↔Tal, Kasparov↔Petrosian. Sprawdź C2: jeszcze ze sobą nie grali. ✓
Krok kolorów: W rundzie 1 Fischer i Kasparov mieli białe. Teraz potrzebują czarnych. Tal i Petrosian mieli czarne, teraz potrzebują białych. Więc: Tal (B) vs Fischer (C), Petrosian (B) vs Kasparov (C). ✓
Utwórz testowy turniej z 8 graczami i obserwuj, jak algorytm działa runda po rundzie.
Gracze i organizatorzy często kwestionują pewne kojarzenia. Oto najczęstsze sytuacje i algorytmiczne przyczyny każdej z nich.
Dzieje się tak, gdy grupa 3,0-punktowa ma nieparzystą liczbę graczy i ktoś musi sfloatować w dół. Algorytm wypróbował każdą kombinację w grupie 3,0, ale stwierdził, że wszystkie możliwe kojarzenia naruszają C1, C2 lub C5 (np. wszyscy gracze z 3,0 punktami już ze sobą grali lub mają poważne konflikty kolorów). Downfloating jednego gracza do grupy 2,5 był jedyną poprawną opcją.
Gdy gracz floatuje w dół, często musi zaakceptować kolor, którego normalnie by nie otrzymał, ponieważ kojarzenie w niższej grupie tego wymaga. To znane ograniczenie systemu szwajcarskiego — ograniczenie równowagi kolorów ma niższy priorytet niż C1–C5, więc może zostać nadpisane.
Jeśli obaj liderzy mają ten sam wynik, a algorytm nie znajduje żadnego innego poprawnego kojarzenia w ich grupie punktowej (wszyscy inni gracze w tej grupie już z nimi grali lub mają sprzeczne prawa do koloru), algorytm kojarzy dwóch najlepszych ze sobą. To jest poprawne zachowanie — hierarchia kryteriów tego wymaga.
System Bursteina jest wariantem systemu Dutch z innym podejściem do tworzenia grup punktowych. Zamiast ścisłych grup punktowych z floaterami, pozwala na bardziej elastyczne kojarzenia międzygrupowe, utrzymując jednocześnie bliskość ratingową w parach. Jest rzadziej stosowany w turniejach z ratingiem FIDE, ale jest uznawany jako alternatywa.
Przyspieszenie Baku jest stosowane w bardzo dużych turniejach szwajcarskich (zazwyczaj 200+ graczy), aby zapewnić, że najlepsi gracze spotkają się wcześniej, zamiast spotykać się dopiero w ostatnich rundach po wygraniu kilku łatwych partii ze słabszą opozycją.
Idea: w pierwszych kilku rundach najwyżej oceniani gracze otrzymują "wirtualną" przewagę pół punktu, co umieszcza ich w wyższej grupie punktowej niż ich rzeczywisty wynik. Tworzy to wcześniejsze konfrontacje między silnymi graczami. Od rundy 3 lub 4 wirtualne punkty są usuwane i normalne kojarzenie szwajcarskie zostaje wznowione.
TRF (Tournament Report File) to standardowy format wymiany danych turniejów szachowych. ChessPairings.org eksportuje zarówno TRF-16 (starszy format), jak i TRF-25 (nowy format 2025). Tak wygląda plik TRF-16 dla naszego Memoriału Alechina po rundzie 1:
012 Alekhin 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
Każda linia 001 to jeden gracz. Czytając od lewej do prawej: numer gracza, imię, rating,
FIDE ID, łączny wynik, a następnie dla każdej rundy: pozycja startowa (0000 = nie dotyczy), kolor (W/B),
numer przeciwnika, wynik (1 = wygrana, 0 = przegrana, = = remis, H = pół-punktowa pauza, F = walkower).
Nigdy nie musisz edytować tego pliku ręcznie — ChessPairings.org generuje go automatycznie. Ale umiejętność jego czytania pomaga przy weryfikacji wyników lub importowaniu do innego oprogramowania.
ChessPairings.org używa bbpPairings jako silnika do kojarzeń szwajcarskich — otwartoźródłowej implementacji systemu FIDE Dutch w C++, utrzymywanej przez społeczność programistów szachowych. bbpPairings jest używany przez wiele federacji krajowych i systemy zarządzania turniejami na całym świecie.
Do obliczeń dogrywkowych ChessPairings.org używa dedykowanego modułu TieBreakServer (Python), który implementuje wszystkie 28 obsługiwanych systemów dogrywek niezależnie od silnika kojarzeń. To rozdzielenie zapewnia, że logika kojarzeń i dogrywek jest niezależnie weryfikowalna.
Oba silniki są aktualizowane za każdym razem, gdy FIDE zmienia swoje przepisy — zmiany przepisów z lutego 2026 są w pełni odzwierciedlone w aktualnej wersji ChessPairings.org.
Problem kojarzenia Dutch jest matematycznie równoważny problemowi ważonego maksymalnego skojarzenia w teorii grafów. Każde potencjalne kojarzenie jest krawędzią z wagą reprezentującą, jak dobrze spełnia hierarchię kryteriów. Algorytm znajduje skojarzenie doskonałe o maksymalnej wadze — dlatego może to zająć ułamek sekundy nawet dla turniejów z 500 graczami.
Kojarzenia szwajcarskie zgodne z FIDE 2026, 28 systemów dogrywek, całkowicie za darmo.
Utwórz darmowe konto