Capitolo 5 — Guida Come funziona l'algoritmo di abbinamento olandese FIDE: criteri C1-C19 semplificati, gruppi di punteggio, colori, floater. Aggiornato per le regole FIDE 2026. Include guida ai file TRF.
Ogni volta che cliccate "Genera Abbinamenti" in un torneo Svizzero, un sofisticato algoritmo viene eseguito in millisecondi dietro le quinte. Capire come funziona non soddisferà solo la vostra curiosità — vi aiuterà a spiegare abbinamenti "insoliti" ai giocatori, evitare errori comuni di configurazione e ottenere il massimo dal vostro software di abbinamento. Questo capitolo demistifica il Sistema Olandese FIDE, aggiornato per le regole in vigore dal 1° febbraio 2026.
Agli albori dei tornei di scacchi, gli arbitri abbinavano i giocatori a mano — spesso con una scacchiera fisica e gettoni colorati. Per 8 giocatori in 5 turni, è gestibile. Per 200 giocatori in 9 turni, è un incubo logistico che richiede ore ed è soggetto a errori.
Più importante, l'abbinamento a mano introduce pregiudizi. Un arbitro che conosce i giocatori potrebbe (consapevolmente o meno) creare abbinamenti "interessanti", favorire certi giocatori o evitare certe combinazioni. Un algoritmo è deterministico e trasparente: dato lo stesso input, produce sempre lo stesso output, e chiunque può verificare il risultato.
Il Sistema Olandese FIDE non è una singola regola — è una gerarchia ordinata di criteri. L'algoritmo cerca di soddisfare i criteri con la priorità più alta per primi, e rilassa quelli a priorità inferiore solo quando non c'è altro modo per completare gli abbinamenti del turno.
Il 1° febbraio 2026, la FIDE ha messo in vigore una versione rivista delle regole di abbinamento Svizzero (C.04.1, C.04.2, C.04.3). Le modifiche sono per lo più chiarimenti e rinumerazioni, ma sono importanti per qualsiasi evento valutato FIDE da quella data in poi:
| Area | Prima feb 2026 | Da feb 2026 |
|---|---|---|
| Numerazione criteri | Vari codici lettera/numero (A1, B1…) | Sequenza unificata C1–C19 |
| Assegnazione colori | Qualche ambiguità nei casi limite | Regole esplicite per tutti i casi limite |
| Partite non giocate | Trattate come vittoria piena per la storia colori | Trattate come ½ punto sia per colore che per Buchholz |
| Sistema Burstein | Descritto in C.04.4 | Rimane in C.04.4, chiarimenti minori |
| Sistema Doppio Svizzero | — | Nuovo: C.04.5 (due gironi Svizzeri paralleli) |
| Accelerazione Baku | C.04.5 | Rinumerato C.04.7 |
L'idea fondamentale del Sistema Svizzero è semplice: i giocatori con punteggi uguali si affrontano tra loro. Un gruppo di punteggio è l'insieme di tutti i giocatori che hanno lo stesso numero di punti in un determinato momento del torneo.
All'interno di ogni gruppo di punteggio, i giocatori sono classificati per testa di serie (che è generalmente basata sul loro rating pre-torneo). Il gruppo viene poi diviso in due metà: la metà superiore (giocatori con testa di serie più alta) e la metà inferiore (giocatori con testa di serie più bassa). Il giocatore 1 della metà superiore affronta il giocatore 1 della metà inferiore, il giocatore 2 affronta il giocatore 2, e così via.
Dopo il turno 1, i gruppi di punteggio si dividono. I giocatori che hanno vinto (1,0 punti) formano il gruppo superiore. I giocatori che hanno pareggiato (0,5) formano il gruppo intermedio. I giocatori che hanno perso (0,0) formano il gruppo inferiore. L'algoritmo poi cerca di abbinare all'interno di ogni gruppo — ma le cose si complicano rapidamente, come vedremo nel Turno 2.
The FIDE Dutch system defines 19 criteria, ordered by priority. When generating pairings for a score group, the algorithm tries to find a pairing that satisfies as many high-priority criteria as possible. If satisfying C3 means violating C7, it chooses C3 — unless C3 is itself overridden by C1 or C2.
Ecco i criteri più importanti spiegati in linguaggio semplice:
The algorithm is not optimizing for "the best chess matchup" — it's optimizing for adherence to the criteria hierarchy. Sometimes this produces pairings that look odd to players. Section 9 of this chapter explains the most common "strange pairing" scenarios.
Color assignment is one of the most misunderstood parts of Swiss pairing. Players often feel they're getting too many Blacks — and sometimes they're right, but usually the algorithm is doing exactly what the rules require.
Un giocatore ha una preferenza colore se la sua storia colori è sbilanciata (più partite col Bianco che col Nero o viceversa). Ha un diritto al colore se ha avuto due partite consecutive con lo stesso colore — in quel caso, deve ricevere il colore opposto nel turno successivo, a meno che sia impossibile completare l'abbinamento del turno.
Quando due giocatori con diritti al colore in conflitto vengono abbinati insieme, l'algoritmo deve violare la regola per uno di loro. Sceglie il giocatore con la pretesa minore — tipicamente quello la cui sequenza di colori è stata meno sbilanciata nel complesso.
Nel Turno 1, tutti i giocatori hanno una storia colori uguale (nessuna). I colori sono assegnati secondo un principio generale: il giocatore con testa di serie più alta (nella metà superiore) riceve il Bianco, quello con testa di serie più bassa riceve il Nero. Ecco perché nell'Alekhin Memorial, Fischer (S1) gioca col Bianco e Spassky (S5) gioca col Nero.
Quando un gruppo di punteggio ha un numero dispari di giocatori, un giocatore non può essere abbinato all'interno del gruppo e deve essere spostato. Questo giocatore è chiamato floater.
Un downfloater viene spostato al gruppo di punteggio successivo inferiore (ad es., dal gruppo a 3,0 punti al gruppo a 2,5 punti). Un upfloater è il giocatore nel gruppo inferiore che riceve questo "ospite" dall'alto.
L'algoritmo cerca di minimizzare il floating (criteri C4–C5). Quando il floating è inevitabile, segue regole specifiche su chi scende: il giocatore con il ranking più basso nel gruppo di punteggio è il downfloater preferito, a meno che quel giocatore non sia già sceso nel turno precedente o abbia una pretesa colore particolarmente forte che rende impossibile l'abbinamento nel gruppo inferiore.
Dopo il Turno 1: Fischer, Kasparov, Tal, Petrosian hanno tutti vinto → 4 giocatori a 1,0 punti (gruppo pari, nessun floater necessario).
Spassky, Karpov, Botvinnik, Lasker hanno tutti perso → 4 giocatori a 0,0 punti (gruppo pari, nessun floater necessario).
Il Turno 2 è pulito: il gruppo 1,0 si abbina al suo interno, il gruppo 0,0 si abbina al suo interno.
Ma immaginate che Tal avesse pareggiato invece di vincere: allora avremmo 3 giocatori a 1,0, 2 a 0,5 e 3 a 0,0. Il gruppo 0,5 ha solo 2 giocatori — il che va bene (un abbinamento). Ma il gruppo 1,0 ha 3 giocatori — uno deve scendere al gruppo 0,5. Il giocatore con il ranking più basso a 1,0 (Petrosian, S4) diventa il downfloater.
Seguiamo l'abbinamento completo del Turno 1 passo per passo per il nostro torneo a 8 giocatori.
Input: 8 giocatori, tutti a 0,0 punti, classificati per testa di serie di rating. Un gruppo di punteggio: {Fischer, Kasparov, Tal, Petrosian, Spassky, Karpov, Botvinnik, Lasker}.
Passo 1 — Dividere a metà: Metà superiore = Fischer, Kasparov, Tal, Petrosian (S1–S4). Metà inferiore = Spassky, Karpov, Botvinnik, Lasker (S5–S8).
Passo 2 — Applicare i criteri C1–C2: Nessun avversario precedente (primo turno), quindi nessun vincolo. Nessun bye ancora.
Passo 3 — Abbinamento ideale: S1↔S5, S2↔S6, S3↔S7, S4↔S8. Tutti i criteri soddisfatti. Questo è l'abbinamento.
Passo 4 — Assegnazione colore: La metà superiore riceve il Bianco per default nel Turno 1.
Dopo i risultati del Turno 1 (Fischer 1–0 Spassky, Kasparov 1–0 Karpov, Tal 1–0 Botvinnik, Petrosian 1–0 Lasker), abbiamo due gruppi di punteggio:
Gruppo A (1,0 pt): Fischer, Kasparov, Tal, Petrosian — tutti e 4 hanno vinto.
Gruppo B (0,0 pt): Spassky, Karpov, Botvinnik, Lasker — tutti e 4 hanno perso.
Abbinamento Gruppo A: Diviso a metà → Fischer, Kasparov (sopra) vs Tal, Petrosian (sotto). Ideale: Fischer↔Tal, Kasparov↔Petrosian. Verifica C2: nessuno ha già giocato contro l'altro. ✓
Passo colore: Nel Turno 1, Fischer e Kasparov avevano il Bianco. Ora hanno bisogno del Nero. Tal e Petrosian avevano il Nero, ora hanno bisogno del Bianco. Quindi: Tal (B) vs Fischer (N), Petrosian (B) vs Kasparov (N). ✓
Crea un torneo di prova con 8 giocatori e guarda l'algoritmo lavorare turno dopo turno.
Giocatori e organizzatori spesso mettono in discussione certi abbinamenti. Ecco le situazioni più comuni e la ragione algoritmica dietro ciascuna.
Questo accade quando il gruppo a 3,0 punti ha un numero dispari di giocatori e qualcuno deve scendere. L'algoritmo ha provato ogni combinazione all'interno del gruppo 3,0 ma ha trovato che tutti gli abbinamenti possibili violano C1, C2 o C5 (ad es., tutti i giocatori a 3,0 punti si sono già affrontati, o hanno gravi conflitti di colore). Far scendere un giocatore al gruppo 2,5 era l'unica opzione valida.
Quando un giocatore scende, spesso deve accettare un colore che normalmente non riceverebbe, perché l'abbinamento nel gruppo inferiore lo richiede. Questa è una limitazione nota del Sistema Svizzero — il vincolo sull'equilibrio dei colori ha una priorità inferiore rispetto a C1–C5, quindi può essere sovrascritto.
Se entrambi i leader hanno lo stesso punteggio, e l'algoritmo non trova nessun altro abbinamento valido all'interno del loro gruppo di punteggio (tutti gli altri giocatori in quel gruppo li hanno già affrontati, o hanno diritti al colore in conflitto), l'algoritmo abbina i primi due tra loro. Questo è un comportamento corretto — la gerarchia dei criteri lo richiede.
Il sistema Burstein è una variante del sistema Olandese con un approccio diverso alla formazione dei gruppi di punteggio. Invece di gruppi di punteggio rigidi con floater, permette abbinamenti tra gruppi più flessibili mantenendo la vicinanza di rating all'interno delle coppie. È meno comunemente usato negli eventi valutati FIDE ma è riconosciuto come alternativa.
L'Accelerazione Baku è usata nei tornei Svizzeri molto grandi (tipicamente 200+ giocatori) per garantire che i giocatori di vertice si affrontino prima, invece di incontrarsi solo negli ultimi turni dopo aver vinto diverse partite facili contro avversari deboli.
L'idea: nei primi turni, ai giocatori con il rating più alto viene dato un mezzo punto "virtuale" di vantaggio, che li colloca in un gruppo di punteggio più alto del loro punteggio effettivo. Questo crea scontri anticipati tra giocatori forti. Dal turno 3 o 4 in poi, i punti virtuali vengono rimossi e l'abbinamento Svizzero normale riprende.
Il TRF (Tournament Report File) è il formato di scambio standard per i dati dei tornei di scacchi. ChessPairings.org esporta sia TRF-16 (legacy) che TRF-25 (nuovo formato 2025). Ecco come appare un file TRF-16 per il nostro Alekhin Memorial dopo il Turno 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
Ogni riga 001 è un giocatore. Leggendo da sinistra a destra: numero giocatore, nome, rating, ID FIDE, punteggio totale, poi per ogni turno: ranking iniziale (0000 = non applicabile), colore (W/B), numero avversario, risultato (1 = vittoria, 0 = sconfitta, = = patta, H = bye mezzo punto, F = vittoria a forfait).
Non avrete mai bisogno di modificare questo file manualmente — ChessPairings.org lo genera automaticamente. Ma sapere come leggerlo aiuta quando si verificano i risultati o si importa in altri software.
ChessPairings.org usa bbpPairings come motore di abbinamento Svizzero — un'implementazione open-source in C++ del sistema Olandese FIDE mantenuta dalla comunità di programmazione scacchistica. bbpPairings è usato da molteplici federazioni nazionali e sistemi di gestione tornei in tutto il mondo.
Per il calcolo degli spareggi, ChessPairings.org usa un modulo dedicato TieBreakServer (Python), che implementa tutti i 28 sistemi di spareggio supportati indipendentemente dal motore di abbinamento. Questa separazione garantisce che la logica di abbinamento e quella di spareggio siano ciascuna verificabile indipendentemente.
Entrambi i motori vengono aggiornati ogni volta che la FIDE rivede le sue regole — le modifiche alle regole di febbraio 2026 sono pienamente riflesse nella versione corrente di ChessPairings.org.
Il problema dell'abbinamento Olandese è matematicamente equivalente a un problema di matching massimo pesato nella teoria dei grafi. Ogni potenziale abbinamento è un arco con un peso che rappresenta quanto bene soddisfa la gerarchia dei criteri. L'algoritmo trova il matching perfetto di peso massimo — ecco perché può impiegare una frazione di secondo anche per tornei con 500 giocatori.
Abbinamenti Svizzeri conformi FIDE 2026, 28 sistemi di spareggio, completamente gratuito.
Crea Account Gratuito