Paringsalgoritmen: Hvordan sveitsiske paringer virkelig fungerer

Kapittel 5 — Guide Hvordan FIDE Dutch paringsalgoritme fungerer: kriterier C1-C19 forenklet, poenggrupper, farger, floatere. Oppdatert for FIDE 2026-regler. Inkluderer TRF-filguide.

Hver gang du klikker «Generer paringer» i en sveitsisk turnering, kjører en sofistikert algoritme på millisekunder bak kulissene. Å forstå hvordan den fungerer vil ikke bare tilfredsstille nysgjerrigheten din — det vil hjelpe deg å forklare «uvanlige» paringer til spillere, unngå vanlige konfigurasjonsfeil, og få mest mulig ut av paringsprogramvaren din. Dette kapittelet avmystifiserer FIDE Dutch-systemet, oppdatert for reglene gjeldende fra 1. februar 2026.

Hvorfor en algoritme? Hvorfor ikke bare pare manuelt?

I de aller tidligste dagene av sjakkturneringer paret dommere spillere for hånd — ofte med et fysisk brett og fargede brikker. For 8 spillere over 5 runder er det overkommelig. For 200 spillere over 9 runder er det et logistisk mareritt som tar timer og er utsatt for feil.

Enda viktigere, manuell paring introduserer skjevhet. En dommer som kjenner spillerne kan (bevisst eller ubevisst) lage «interessante» oppgjør, favorisere visse spillere eller unngå visse kombinasjoner. En algoritme er deterministisk og transparent: gitt samme inndata produserer den alltid samme resultat, og hvem som helst kan verifisere resultatet.

FIDE Dutch-systemet er ikke en enkelt regel — det er et rangert hierarki av kriterier. Algoritmen forsøker å tilfredsstille kriteriene med høyest prioritet først, og slapper bare av på lavere prioriterte kriterier når det ikke er noen annen måte å fullføre rundens paringer på.

Hva endret seg i FIDE 2026

Den 1. februar 2026 satte FIDE i kraft en revidert versjon av de sveitsiske paringsreglene (C.04.1, C.04.2, C.04.3). Endringene er hovedsakelig presiseringer og omnummerering, men de er viktige for enhver FIDE-ratet turnering fra den datoen:

OmrådeFør feb. 2026Fra feb. 2026
Kriterienummerering Diverse bokstav-/tallkoder (A1, B1…) Samlet C1–C19-sekvens
Fargetildeling Noe tvetydighet i grensetilfeller Eksplisitte regler for alle grensetilfeller
Uspilte partier Behandlet som seier med fullt poeng for fargehistorikk Behandlet som ½ poeng for både farge- og Buchholz-formål
Burstein-systemet Beskrevet i C.04.4 Forblir i C.04.4, mindre presiseringer
Dobbelt-sveitsisk system Nytt: C.04.5 (to parallelle sveitsiske grupper)
Baku-akselerasjon C.04.5 Omnummerert C.04.7
§ FIDE C.04.1 Grunnregler (gjeldende fra 1. feb. 2026) og C.04.3 FIDE Dutch-systemet (gjeldende fra 1. feb. 2026) er hovedreferansene. → Les C.04.1  |  → Les C.04.3

Poenggrupper: grunnlaget for sveitsisk paring

Den grunnleggende ideen bak det sveitsiske systemet er enkel: spillere med lik poengsum spiller mot hverandre. En poenggruppe er mengden av alle spillere som har samme antall poeng på et gitt tidspunkt i turneringen.

Innenfor hver poenggruppe rangeres spillerne etter seeding (som vanligvis er basert på ratinget før turneringen). Gruppen deles deretter i to halvdeler: den øvre halvdelen (høyere seedede spillere) og den nedre halvdelen (lavere seedede spillere). Spiller 1 i øvre halvdel møter spiller 1 i nedre halvdel, spiller 2 møter spiller 2, og så videre.

Poenggruppeparing — visuelt eksempel (8 spillere, Runde 1)
POENGGRUPPE: 0.0 poeng (alle spillere, Runde 1)
S1Fischer2200 — ØVRE HALVDEL
S2Kasparov2180 — ØVRE HALVDEL
S3Tal2150 — ØVRE HALVDEL
S4Petrosian2120 — ØVRE HALVDEL
S5Spassky2080 — nedre halvdel
S6Karpov2050 — nedre halvdel
S7Botvinnik1990 — nedre halvdel
S8Lasker1960 — nedre halvdel
↕ par øvre halvdel mot nedre halvdel (S1↔S5, S2↔S6, S3↔S7, S4↔S8)
Fischer (H)vsSpassky (S)
Kasparov (H)vsKarpov (S)
Tal (H)vsBotvinnik (S)
Petrosian (H)vsLasker (S)

Etter runde 1 deler poenggruppene seg. Spillere som vant (1.0 poeng) danner toppgruppen. Spillere som spilte remis (0.5) danner mellomgruppen. Spillere som tapte (0.0) danner bunngruppen. Algoritmen forsøker deretter å pare innenfor hver gruppe — men ting blir raskt kompliserte, som vi vil se i Runde 2.

Kriteriehierarkiet: C1 til C19

FIDE Dutch-systemet definerer 19 kriterier, ordnet etter prioritet. Når paringer genereres for en poenggruppe, forsøker algoritmen å finne en paring som tilfredsstiller så mange høyprioritetskriterier som mulig. Hvis tilfredsstillelse av C3 betyr brudd på C7, velger den C3 — med mindre C3 selv overstyres av C1 eller C2.

Her er de viktigste kriteriene forklart på vanlig språk:

  • C1
    Ingen spiller får mer enn én bye Absolutt
    En bye (fripoeng når det er et oddetall spillere) kan bare tildeles én gang per spiller, og aldri til en spiller som allerede har fått en. Dette kan ikke overstyres.
  • C2
    Ingen spiller møter samme motstander to ganger Absolutt
    Algoritmen vil aldri pare to spillere som allerede har møtt hverandre i samme turnering. Dette er en absolutt regel — den kan ikke lempes på, selv i siste runde. Hvis unngåelse er virkelig umulig (svært små turneringer med mange runder), må dommeren gripe inn.
  • C3
    Minimere poengforskjellen mellom parede spillere Høy
    Spillere i samme poenggruppe har ideelt sett identisk poengsum. Hvis paring innenfor gruppen er umulig, kan algoritmen pare på tvers av poenggrupper (floatere), men forsøker å minimere poenggapet. En spiller med 3.0 poeng som spiller mot noen med 2.5 er bedre enn å spille mot noen med 2.0.
  • C4
    Minimere antall nedfloatere Høy
    En nedfloater er en spiller som flyttes fra sin poenggruppe ned til neste gruppe fordi de ikke kunne pares innenfor sin egen gruppe. Algoritmen forsøker å minimere hvor ofte dette skjer.
  • C5
    Ingen spiller nedfloater to ganger på rad hvis det kan unngås Høy
    Hvis en spiller ble flyttet ned til en lavere gruppe forrige runde, forsøker algoritmen å unngå å gjøre det igjen denne runden. Sammenhengende nedfloating straffes hardt.
  • C6–C8
    Fargebalanse og alternering Høy
    Hver spiller bør alternere farger (hvit, svart, hvit, svart…) så mye som mulig. Ingen spiller bør ha mer enn 2 påfølgende partier med samme farge. «Fargepreferansen» spores fra runde 1 og påvirker hver påfølgende paringsbeslutning.
  • C9–C12
    Begrensninger på fargeforskjell Middels
    «Fargeforskjellen» er antall partier med hvit minus antall partier med svart. FIDE-reglene har som mål å holde dette innenfor ±1 så lenge som mulig. Spillere med store fargeubalanser får prioritet for sin foretrukne farge i neste runde.
  • C13–C19
    Seeding og paringskvalitet innenfor poenggruppen Middels
    Blant alle gyldige paringer som tilfredsstiller C1–C12, velger algoritmen den som best samsvarer med den «ideelle» øvre-halvdel-mot-nedre-halvdel-strukturen. Det er her rating-/seedingordenen kommer tilbake som et kvalitetsmål innenfor gruppen.
Hovedinnsikten

Algoritmen optimaliserer ikke for «det beste sjakkoppgjøret» — den optimaliserer for overholdelse av kriteriehierarkiet. Noen ganger produserer dette paringer som ser merkelige ut for spillere. Seksjon 9 i dette kapittelet forklarer de vanligste «merkelige paring»-scenariene.

Fargetildeling: hvit, svart og balanse

Fargetildeling er en av de mest misforståtte delene av sveitsisk paring. Spillere føler ofte at de får for mange svarte — og noen ganger har de rett, men vanligvis gjør algoritmen nøyaktig det reglene krever.

Fargepreferanse vs fargerett

En spiller har en fargepreferanse hvis fargehistorikken deres er ubalansert (flere hvite enn svarte eller omvendt). De har en fargerett hvis de har hatt to påfølgende partier med samme farge — i så fall de få motsatt farge neste gang, med mindre det er umulig å pare runden i det hele tatt.

Når to spillere med motstridende fargeretter pares sammen, må algoritmen bryte regelen for én av dem. Den velger spilleren med det svakeste kravet — typisk den hvis fargesekvens har vært mindre ubalansert totalt sett.

Farge i Runde 1

I Runde 1 har alle spillere lik fargehistorikk (ingen). Farger tildeles etter et generelt prinsipp: den høyere seedede spilleren (i øvre halvdel) får hvit, den lavere seedede spilleren får svart. Derfor spiller Fischer (S1) med hvit og Spassky (S5) med svart i Alekhin Memorial.

§ Regler for fargetildeling er spesifisert i FIDE C.04.3, seksjoner 4–7 (gjeldende fra 1. feb. 2026). → Les C.04.3

Floatere og nedfloatere

Når en poenggruppe har et oddetall spillere, kan én spiller ikke pares innenfor gruppen og må flyttes. Denne spilleren kalles en floater.

En nedfloater flyttes til neste lavere poenggruppe (f.eks. fra 3.0-poenggruppen til 2.5-poenggruppen). En oppfloater er spilleren i den lavere gruppen som mottar denne «gjesten» ovenifra.

Algoritmen forsøker å minimere floating (kriteriene C4–C5). Når floating er uunngåelig, følger den spesifikke regler om hvem som floater: den lavest rangerte spilleren i poenggruppen er den foretrukne nedfloateren, med mindre den spilleren allerede nedfloatet forrige runde eller har et særlig sterkt fargekrav som gjør paring i den lavere gruppen umulig.

📉 Nedfloater-eksempel — Runde 2 av Alekhin Memorial

Etter Runde 1: Fischer, Kasparov, Tal, Petrosian vant alle → 4 spillere med 1.0 poeng (jevn gruppe, ingen floater nødvendig).

Spassky, Karpov, Botvinnik, Lasker tapte alle → 4 spillere med 0.0 poeng (jevn gruppe, ingen floater nødvendig).

Runde 2 er ryddig: 1.0-gruppen pares internt, 0.0-gruppen pares internt.

Men tenk deg at Tal spilte remis i stedet for å vinne: da ville vi hatt 3 spillere med 1.0, 2 med 0.5 og 3 med 0.0. 0.5-gruppen har bare 2 spillere — noe som er greit (én paring). Men 1.0-gruppen har 3 spillere — én må nedfloate til 0.5-gruppen. Den lavest rangerte spilleren med 1.0 (Petrosian, S4) blir nedfloateren.

Runde 1 i detalj: Alekhin Memorial

La oss følge den komplette paringen for Runde 1 steg for steg for vår turnering med 8 spillere.

Inndata: 8 spillere, alle med 0.0 poeng, rangert etter rating-seeding. Én poenggruppe: {Fischer, Kasparov, Tal, Petrosian, Spassky, Karpov, Botvinnik, Lasker}.

Steg 1 — Del i to: Øvre halvdel = Fischer, Kasparov, Tal, Petrosian (S1–S4). Nedre halvdel = Spassky, Karpov, Botvinnik, Lasker (S5–S8).

Steg 2 — Anvend kriteriene C1–C2: Ingen tidligere motstandere (første runde), så ingen begrensning. Ingen byes ennå.

Steg 3 — Ideell paring: S1↔S5, S2↔S6, S3↔S7, S4↔S8. Alle kriterier tilfredsstilt. Dette er paringen.

Steg 4 — Fargetildeling: Øvre halvdel får hvit som standard i Runde 1.

Alekhin Memorial — Endelige paringer Runde 1
Br 1Fischer (H)vsSpassky (S)
Br 2Kasparov (H)vsKarpov (S)
Br 3Tal (H)vsBotvinnik (S)
Br 4Petrosian (H)vsLasker (S)

Runde 2 i detalj: poenggruppene dannes

Etter resultatene i Runde 1 (Fischer 1–0 Spassky, Kasparov 1–0 Karpov, Tal 1–0 Botvinnik, Petrosian 1–0 Lasker) har vi to poenggrupper:

Gruppe A (1.0 p): Fischer, Kasparov, Tal, Petrosian — alle 4 vant.
Gruppe B (0.0 p): Spassky, Karpov, Botvinnik, Lasker — alle 4 tapte.

Paring av Gruppe A: Del i to → Fischer, Kasparov (øvre) vs Tal, Petrosian (nedre). Ideelt: Fischer↔Tal, Kasparov↔Petrosian. Sjekk C2: ingen har møtt hverandre ennå. ✓

Fargesteg: I Runde 1 hadde Fischer og Kasparov hvit. Nå trenger de svart. Tal og Petrosian hadde svart, nå trenger de hvit. Så: Tal (H) vs Fischer (S), Petrosian (H) vs Kasparov (S). ✓

Se paringer generert live i ChessPairings.org

Opprett en testturnering med 8 spillere og se algoritmen jobbe runde for runde.

Prøv nå →

«Merkelige» paringer: hvorfor skjer dette?

Spillere og arrangører stiller ofte spørsmål ved visse paringer. Her er de vanligste situasjonene og den algoritmiske årsaken bak hver av dem.

«Spiller X har 3 poeng men er paret mot noen med bare 2.5»

Dette skjer når 3.0-poenggruppen har et oddetall spillere og noen må nedfloate. Algoritmen prøvde alle kombinasjoner innenfor 3.0-gruppen, men fant at alle mulige paringer bryter C1, C2 eller C5 (f.eks. alle 3.0-poengspillere har allerede møtt hverandre, eller har alvorlige fargekonflikter). Å nedfloate én spiller til 2.5-gruppen var det eneste gyldige alternativet.

«Spiller X får alltid svart»

Når en spiller nedfloater, må de ofte akseptere en farge de normalt ikke ville fått, fordi paringen i den lavere gruppen krever det. Dette er en kjent begrensning i det sveitsiske systemet — fargebalanseregelen har lavere prioritet enn C1–C5, så den kan overstyres.

«Hvorfor er de to beste spillerne paret allerede i runde 4?»

Hvis begge lederne har samme poengsum, og algoritmen ikke finner noen annen gyldig paring innenfor deres poenggruppe (alle andre spillere i gruppen har enten allerede møtt dem, eller har motstridende fargeretter), parer algoritmen de to beste mot hverandre. Dette er korrekt oppførsel — kriteriehierarkiet krever det.

Andre godkjente systemer: Burstein, Baku-akselerasjon

Burstein-systemet (C.04.4)

Burstein-systemet er en variant av Dutch-systemet med en annen tilnærming til poenggruppedannelse. I stedet for strenge poenggrupper med floatere, tillater det mer fleksible kryssgruppe-paringer samtidig som ratingnærhet innenfor par opprettholdes. Det brukes sjeldnere i FIDE-ratede turneringer, men er anerkjent som et alternativ.

§ FIDE C.04.4 — Burstein-systemet (gjeldende fra 1. feb. 2026). → Les C.04.4

Baku-akselerasjon (C.04.7)

Baku-akselerasjon brukes i svært store sveitsiske turneringer (typisk 200+ spillere) for å sikre at toppspillerne møter hverandre tidligere, i stedet for å møtes først i de siste rundene etter å ha vunnet flere enkle partier mot svak motstand.

Ideen: i de første rundene gis de høyest ratede spillerne et «virtuelt» halvpoeng forsprang, som plasserer dem i en høyere poenggruppe enn deres faktiske poengsum. Dette skaper tidligere konfrontasjoner mellom sterke spillere. Fra runde 3 eller 4 og utover fjernes de virtuelle poengene og normal sveitsisk paring gjenopptas.

§ FIDE C.04.7 — Akselererte systemer: Baku-akselerasjon (gjeldende fra 1. feb. 2026). → Les C.04.7

Lese en TRF-fil

TRF (Tournament Report File) er standard utvekslingsformat for sjakkturneringsdata. ChessPairings.org eksporterer både TRF-16 (eldre) og TRF-25 (nytt 2025-format). Slik ser en TRF-16-fil ut for vårt Alekhin Memorial etter Runde 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

Hver 001-linje er én spiller. Lest fra venstre til høyre: spillernummer, navn, rating, FIDE-ID, total poengsum, deretter for hver runde: startrangering (0000 = ikke aktuelt), farge (W/B), motstandernummer, resultat (1 = seier, 0 = tap, = = remis, H = halvpoengs bye, F = seier ved uteblivelse).

Du trenger aldri å redigere denne filen manuelt — ChessPairings.org genererer den automatisk. Men å vite hvordan du leser den hjelper når du verifiserer resultater eller importerer til annen programvare.

bbpPairings: motoren bak ChessPairings.org

ChessPairings.org bruker bbpPairings som sin sveitsiske paringsmotor — en åpen kildekode C++-implementasjon av FIDE Dutch-systemet vedlikeholdt av sjakkprogrammeringsmiljøet. bbpPairings brukes av flere nasjonale forbund og turneringsstyringssystemer verden over.

For tiebreak-beregninger bruker ChessPairings.org en dedikert TieBreakServer-modul (Python), som implementerer alle 28 støttede tiebreak-systemer uavhengig av paringsmotoren. Denne separasjonen sikrer at paring- og tiebreak-logikken er uavhengig verifiserbar.

Begge motorene oppdateres når FIDE reviderer sine regler — regelendringene fra februar 2026 er fullt reflektert i gjeldende versjon av ChessPairings.org.

For de teknisk nysgjerrige

Det nederlandske paringsproblemet er matematisk ekvivalent med et vektet maksimalt matchingproblem i grafteori. Hver potensiell paring er en kant med en vekt som representerer hvor godt den tilfredsstiller kriteriehierarkiet. Algoritmen finner den perfekte matchingen med maksimal vekt — det er derfor den kan ta en brøkdel av et sekund selv for turneringer med 500 spillere.

Klar til å arrangere din turnering?

FIDE 2026-kompatibel sveitsisk paring, 28 tiebreak-systemer, helt gratis.

Opprett gratis konto