Capítulo 5 — Guia Como funciona o algoritmo de emparelhamento FIDE Dutch: critérios C1-C19 simplificados, grupos de pontuação, cores, floaters. Atualizado para as regras FIDE 2026. Inclui guia de arquivo TRF.
Cada vez que você clica em "Gerar Emparelhamentos" em um torneio suíço, um algoritmo sofisticado é executado em milissegundos nos bastidores. Entender como ele funciona não vai apenas satisfazer sua curiosidade — vai ajudá-lo a explicar emparelhamentos "incomuns" aos jogadores, evitar erros comuns de configuração e aproveitar ao máximo seu software de emparelhamento. Este capítulo desmistifica o Sistema FIDE Dutch, atualizado para as regras em vigor desde 1 de fevereiro de 2026.
Nos primórdios dos torneios de xadrez, os árbitros emparelhavam os jogadores à mão — frequentemente com um tabuleiro físico e fichas coloridas. Para 8 jogadores em 5 rodadas, isso é administrável. Para 200 jogadores em 9 rodadas, é um pesadelo logístico que leva horas e é propenso a erros.
Mais importante, emparelhar à mão introduz parcialidade. Um árbitro que conhece os jogadores pode (consciente ou inconscientemente) criar confrontos "interessantes", favorecer certos jogadores ou evitar certas combinações. Um algoritmo é determinístico e transparente: dado o mesmo input, ele sempre produz o mesmo output, e qualquer pessoa pode verificar o resultado.
O Sistema FIDE Dutch não é uma única regra — é uma hierarquia ordenada de critérios. O algoritmo tenta satisfazer primeiro os critérios de maior prioridade, e só flexibiliza critérios de menor prioridade quando não há outra forma de completar os emparelhamentos da rodada.
Em 1 de fevereiro de 2026, a FIDE colocou em vigor uma versão revisada das regras de emparelhamento suíço (C.04.1, C.04.2, C.04.3). As mudanças são principalmente esclarecimentos e renumerações, mas são importantes para qualquer evento com rating FIDE a partir dessa data:
| Área | Antes de fev. 2026 | A partir de fev. 2026 |
|---|---|---|
| Numeração dos critérios | Vários códigos alfanuméricos (A1, B1…) | Sequência unificada C1–C19 |
| Alocação de cores | Alguma ambiguidade em casos limítrofes | Regras explícitas para todos os casos limítrofes |
| Partidas não jogadas | Tratadas como vitória completa para histórico de cores | Tratadas como ½ ponto tanto para cores quanto para Buchholz |
| Sistema Burstein | Descrito em C.04.4 | Permanece em C.04.4, pequenos esclarecimentos |
| Sistema suíço duplo | — | Novo: C.04.5 (duas chaves suíças paralelas) |
| Aceleração de Baku | C.04.5 | Renumerado para C.04.7 |
A ideia fundamental do sistema suíço é simples: jogadores com pontuações iguais jogam entre si. Um grupo de pontuação é o conjunto de todos os jogadores que têm o mesmo número de pontos em determinado momento do torneio.
Dentro de cada grupo de pontuação, os jogadores são classificados pelo seu cabeça de chave (que geralmente se baseia no rating pré-torneio). O grupo é então dividido em duas metades: a metade superior (jogadores mais bem classificados) e a metade inferior (jogadores menos bem classificados). O jogador 1 da metade superior enfrenta o jogador 1 da metade inferior, o jogador 2 enfrenta o jogador 2, e assim por diante.
Após a rodada 1, os grupos de pontuação se dividem. Os jogadores que venceram (1,0 ponto) formam o grupo superior. Os jogadores que empataram (0,5) formam o grupo intermediário. Os jogadores que perderam (0,0) formam o grupo inferior. O algoritmo então tenta emparelhar dentro de cada grupo — mas as coisas ficam complicadas rapidamente, como veremos na rodada 2.
O sistema FIDE Dutch define 19 critérios, ordenados por prioridade. Ao gerar emparelhamentos para um grupo de pontuação, o algoritmo tenta encontrar um emparelhamento que satisfaça o maior número possível de critérios de alta prioridade. Se satisfazer C3 significa violar C7, ele escolhe C3 — a menos que C3 seja ele próprio sobreposto por C1 ou C2.
Aqui estão os critérios mais importantes explicados em linguagem simples:
O algoritmo não está otimizando para "o melhor confronto de xadrez" — está otimizando para aderência à hierarquia de critérios. Às vezes, isso produz emparelhamentos que parecem estranhos para os jogadores. A seção 9 deste capítulo explica os cenários mais comuns de "emparelhamentos estranhos".
A atribuição de cores é uma das partes mais mal compreendidas do emparelhamento suíço. Os jogadores frequentemente sentem que estão recebendo muitas pretas — e às vezes estão certos, mas geralmente o algoritmo está fazendo exatamente o que as regras exigem.
Um jogador tem uma preferência de cor se seu histórico de cores estiver desequilibrado (mais brancas do que pretas ou vice-versa). Ele tem um direito de cor se teve dois jogos consecutivos com a mesma cor — nesse caso, ele deve receber a cor oposta na próxima vez, a menos que seja impossível emparelhar a rodada.
Quando dois jogadores com direitos de cor conflitantes são emparelhados, o algoritmo deve quebrar a regra para um deles. Ele escolhe o jogador com a menor reivindicação — tipicamente aquele cuja sequência de cores foi menos desequilibrada no geral.
Na rodada 1, todos os jogadores têm um histórico de cores igual (nenhum). As cores são atribuídas por um princípio geral: o jogador mais bem classificado (na metade superior) recebe brancas, o jogador menos bem classificado recebe pretas. É por isso que no Memorial Alekhine, Fischer (S1) joga de brancas e Spassky (S5) joga de pretas.
Quando um grupo de pontuação tem um número ímpar de jogadores, um jogador não pode ser emparelhado dentro do grupo e deve ser movido. Este jogador é chamado de floater.
Um downfloater é movido para o próximo grupo de pontuação inferior (por exemplo, do grupo de 3,0 pontos para o grupo de 2,5 pontos). Um upfloater é o jogador no grupo inferior que recebe este "convidado" de cima.
O algoritmo tenta minimizar o floating (critérios C4–C5). Quando o floating é inevitável, ele segue regras específicas sobre quem faz float: o jogador mais baixo na classificação do grupo de pontuação é o downfloater preferido, a menos que esse jogador já tenha feito downfloat na rodada anterior ou tenha uma reivindicação de cor particularmente forte que torne impossível o emparelhamento no grupo inferior.
Após a rodada 1: Fischer, Kasparov, Tal, Petrosian todos venceram → 4 jogadores com 1,0 ponto (grupo par, floater desnecessário).
Spassky, Karpov, Botvinnik, Lasker todos perderam → 4 jogadores com 0,0 pontos (grupo par, floater desnecessário).
A rodada 2 é limpa: o grupo de 1,0 emparelha internamente, o grupo de 0,0 emparelha internamente.
Mas imagine que Tal empatou em vez de vencer: então teríamos 3 jogadores com 1,0, 2 com 0,5 e 3 com 0,0. O grupo de 0,5 tem apenas 2 jogadores — o que é aceitável (um emparelhamento). Mas o grupo de 1,0 tem 3 jogadores — um deve fazer downfloat para o grupo de 0,5. O jogador mais baixo na classificação com 1,0 (Petrosian, S4) torna-se o downfloater.
Vamos rastrear passo a passo o emparelhamento completo da rodada 1 para nosso torneio de 8 jogadores.
Entrada: 8 jogadores, todos com 0,0 pontos, classificados por cabeça de chave de rating. Um grupo de pontuação: {Fischer, Kasparov, Tal, Petrosian, Spassky, Karpov, Botvinnik, Lasker}.
Passo 1 — Dividir ao meio: Metade superior = Fischer, Kasparov, Tal, Petrosian (S1–S4). Metade inferior = Spassky, Karpov, Botvinnik, Lasker (S5–S8).
Passo 2 — Aplicar critérios C1–C2: Sem adversários anteriores (primeira rodada), portanto sem restrição. Sem byes ainda.
Passo 3 — Emparelhamento ideal: S1↔S5, S2↔S6, S3↔S7, S4↔S8. Todos os critérios satisfeitos. Este é o emparelhamento.
Passo 4 — Atribuição de cores: A metade superior recebe brancas por padrão na rodada 1.
Após os resultados da rodada 1 (Fischer 1–0 Spassky, Kasparov 1–0 Karpov, Tal 1–0 Botvinnik, Petrosian 1–0 Lasker), temos dois grupos de pontuação:
Grupo A (1,0 pt): Fischer, Kasparov, Tal, Petrosian — todos os 4 venceram.
Grupo B (0,0 pt): Spassky, Karpov, Botvinnik, Lasker — todos os 4 perderam.
Emparelhamento do Grupo A: Dividir ao meio → Fischer, Kasparov (cima) vs Tal, Petrosian (baixo). Ideal: Fischer↔Tal, Kasparov↔Petrosian. Verificar C2: nenhum jogou contra o outro ainda. ✓
Passo das cores: Na rodada 1, Fischer e Kasparov tiveram brancas. Agora precisam de pretas. Tal e Petrosian tiveram pretas, agora precisam de brancas. Então: Tal (Br) vs Fischer (Pr), Petrosian (Br) vs Kasparov (Pr). ✓
Crie um torneio de teste com 8 jogadores e observe o algoritmo funcionar rodada a rodada.
Jogadores e organizadores frequentemente questionam certos emparelhamentos. Aqui estão as situações mais comuns e a razão algorítmica por trás de cada uma.
Isso acontece quando o grupo de 3,0 pontos tem um número ímpar de jogadores e alguém deve fazer downfloat. O algoritmo tentou todas as combinações dentro do grupo de 3,0, mas descobriu que todos os emparelhamentos possíveis violam C1, C2 ou C5 (por exemplo, todos os jogadores de 3,0 pontos já jogaram entre si, ou têm conflitos graves de cores). Fazer downfloat de um jogador para o grupo de 2,5 foi a única opção válida.
Quando um jogador faz downfloat, muitas vezes deve aceitar uma cor que normalmente não receberia, porque o emparelhamento no grupo inferior exige isso. Esta é uma limitação conhecida do sistema suíço — a restrição de equilíbrio de cores tem prioridade menor que C1–C5, portanto pode ser sobreposta.
Se ambos os líderes têm a mesma pontuação, e o algoritmo não encontra outro emparelhamento válido dentro do seu grupo de pontuação (todos os outros jogadores nesse grupo já jogaram contra eles, ou têm direitos de cor conflitantes), o algoritmo emparelha os dois melhores entre si. Este é o comportamento correto — a hierarquia de critérios exige isso.
O sistema Burstein é uma variante do sistema Dutch com uma abordagem diferente para a formação de grupos de pontuação. Em vez de grupos de pontuação rígidos com floaters, permite emparelhamentos entre grupos mais flexíveis enquanto mantém proximidade de rating dentro dos pares. É menos usado em eventos com rating FIDE, mas é reconhecido como alternativa.
A Aceleração de Baku é usada em torneios suíços muito grandes (tipicamente 200+ jogadores) para garantir que os melhores jogadores se enfrentem mais cedo, em vez de se encontrarem apenas nas rodadas finais após vencerem vários jogos fáceis contra adversários fracos.
A ideia: nas primeiras rodadas, os jogadores com maior rating recebem uma vantagem "virtual" de meio ponto, que os coloca em um grupo de pontuação mais alto do que sua pontuação real. Isso cria confrontos mais cedo entre jogadores fortes. A partir da rodada 3 ou 4, os pontos virtuais são removidos e o emparelhamento suíço normal é retomado.
O TRF (Tournament Report File) é o formato de intercâmbio padrão para dados de torneios de xadrez. O ChessPairings.org exporta tanto TRF-16 (legado) quanto TRF-25 (novo formato 2025). Veja como um arquivo TRF-16 aparece para nosso Memorial Alekhine após a rodada 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
Cada linha 001 é um jogador. Lendo da esquerda para a direita: número do jogador, nome, rating,
FIDE ID, pontuação total, e para cada rodada: classificação inicial (0000 = não aplicável), cor (W/B),
número do adversário, resultado (1 = vitória, 0 = derrota, = = empate, H = bye de meio ponto, F = vitória por WO).
Você nunca precisa editar este arquivo manualmente — o ChessPairings.org o gera automaticamente. Mas saber como lê-lo ajuda ao verificar resultados ou importar para outro software.
O ChessPairings.org usa o bbpPairings como seu motor de emparelhamento suíço — uma implementação de código aberto em C++ do sistema FIDE Dutch mantida pela comunidade de programação de xadrez. O bbpPairings é usado por múltiplas federações nacionais e sistemas de gestão de torneios em todo o mundo.
Para cálculos de desempate, o ChessPairings.org usa um módulo dedicado TieBreakServer (Python), que implementa todos os 28 sistemas de desempate suportados independentemente do motor de emparelhamento. Esta separação garante que a lógica de emparelhamento e desempate seja independentemente verificável.
Ambos os motores são atualizados sempre que a FIDE revisa suas regras — as mudanças de regras de fevereiro de 2026 estão totalmente refletidas na versão atual do ChessPairings.org.
O problema de emparelhamento Dutch é matematicamente equivalente a um problema de emparelhamento máximo ponderado na teoria dos grafos. Cada emparelhamento potencial é uma aresta com um peso representando quão bem satisfaz a hierarquia de critérios. O algoritmo encontra o emparelhamento perfeito de peso máximo — razão pela qual pode levar uma fração de segundo mesmo para torneios com 500 jogadores.
Emparelhamento suíço conforme FIDE 2026, 28 sistemas de desempate, completamente gratuito.
Criar Conta Gratuita