Eşleştirme Algoritması: İsviçre Eşleştirmeleri Gerçekte Nasıl Çalışır

Bölüm 5 — Rehber FIDE Dutch eşleştirme algoritmasının nasıl çalıştığı: C1-C19 kriterleri basitleştirildi, puan grupları, renkler, floater'lar. FIDE 2026 kurallarına güncellendi. TRF dosya rehberi dahil.

Bir İsviçre turnuvasında «Eşleştirmeleri Oluştur» düğmesine her tıkladığınızda, perde arkasında milisaniyeler içinde sofistike bir algoritma çalışır. Nasıl çalıştığını anlamak sadece merakınızı gidermekle kalmayacak — oyunculara «olağandışı» eşleştirmeleri açıklamanıza, yaygın yapılandırma hatalarından kaçınmanıza ve eşleştirme yazılımınızdan en iyi şekilde yararlanmanıza yardımcı olacaktır. Bu bölüm, 1 Şubat 2026'dan itibaren geçerli kurallar için güncellenmiş FIDE Dutch Sistemini anlaşılır kılar.

Neden bir algoritma? Neden manuel eşleştirme yapılmıyor?

Satranç turnuvalarının ilk günlerinde hakemler oyuncuları elle eşleştirirdi — genellikle fiziksel bir tahta ve renkli jetonlarla. 5 turda 8 oyuncu için bu yönetilebilir. 9 turda 200 oyuncu için ise saatler süren ve hataya açık lojistik bir kabus.

Daha da önemlisi, elle eşleştirme önyargı getirir. Oyuncuları tanıyan bir hakem (bilinçli veya bilinçsiz olarak) «ilginç» karşılaşmalar oluşturabilir, belirli oyuncuları kayırabilir veya belirli kombinasyonlardan kaçınabilir. Bir algoritma deterministik ve şeffaftır: aynı girdiye karşı her zaman aynı çıktıyı üretir ve herkes sonucu doğrulayabilir.

FIDE Dutch Sistemi tek bir kural değildir — sıralanmış bir kriter hiyerarşisidir. Algoritma önce en yüksek öncelikli kriterleri karşılamaya çalışır ve turun eşleştirmelerini tamamlamanın başka yolu olmadığında düşük öncelikli kriterleri gevşetir.

FIDE 2026'da neler değişti

1 Şubat 2026'da FIDE, İsviçre eşleştirme kurallarının gözden geçirilmiş bir sürümünü yürürlüğe koydu (C.04.1, C.04.2, C.04.3). Değişiklikler çoğunlukla açıklamalar ve yeniden numaralandırmadır, ancak bu tarihten itibaren her FIDE dereceli etkinlik için önemlidir:

AlanŞub. 2026 öncesiŞub. 2026'dan itibaren
Kriter numaralandırması Çeşitli harf/sayı kodları (A1, B1…) Birleşik C1–C19 sırası
Renk ataması Sınır durumlarda belirsizlik Tüm sınır durumlar için açık kurallar
Oynanmamış oyunlar Renk geçmişi için tam puan galibiyet olarak değerlendirildi Hem renk hem Buchholz amaçları için ½ puan olarak değerlendirilir
Burstein sistemi C.04.4'te tanımlandı C.04.4'te kalır, küçük açıklamalar
Çift İsviçre sistemi Yeni: C.04.5 (iki paralel İsviçre grubu)
Bakü Hızlandırması C.04.5 C.04.7 olarak yeniden numaralandı
§ FIDE C.04.1 Temel Kurallar (1 Şub. 2026'dan geçerli) ve C.04.3 FIDE Dutch Sistemi (1 Şub. 2026'dan geçerli) ana referanslardır. → C.04.1'i Oku  |  → C.04.3'ü Oku

Puan grupları: İsviçre eşleştirmesinin temeli

İsviçre sisteminin temel fikri basittir: eşit puana sahip oyuncular birbirleriyle oynar. Puan grubu, turnuvanın belirli bir anında aynı sayıda puana sahip tüm oyuncuların kümesidir.

Her puan grubu içinde oyuncular sıralamalarına göre sıralanır (bu genellikle turnuva öncesi derecelendirmelerine dayanır). Grup daha sonra iki yarıya bölünür: üst yarı (daha yüksek sıralı oyuncular) ve alt yarı (daha düşük sıralı oyuncular). Üst yarıdaki 1. oyuncu alt yarıdaki 1. oyuncuyla, 2. oyuncu 2. oyuncuyla karşılaşır ve böyle devam eder.

Puan grubu eşleştirmesi — görsel örnek (8 oyuncu, Tur 1)
PUAN GRUBU: 0.0 puan (tüm oyuncular, Tur 1)
S1Fischer2200 — ÜST YARI
S2Kasparov2180 — ÜST YARI
S3Tal2150 — ÜST YARI
S4Petrosian2120 — ÜST YARI
S5Spassky2080 — alt yarı
S6Karpov2050 — alt yarı
S7Botvinnik1990 — alt yarı
S8Lasker1960 — alt yarı
↕ üst yarıyı alt yarıyla eşleştir (S1↔S5, S2↔S6, S3↔S7, S4↔S8)
Fischer (B)vsSpassky (S)
Kasparov (B)vsKarpov (S)
Tal (B)vsBotvinnik (S)
Petrosian (B)vsLasker (S)

Tur 1'den sonra puan grupları bölünür. Kazanan oyuncular (1.0 puan) üst grubu oluşturur. Berabere kalan oyuncular (0.5) orta grubu oluşturur. Kaybeden oyuncular (0.0) alt grubu oluşturur. Algoritma daha sonra her grup içinde eşleştirmeye çalışır — ancak işler hızla karmaşıklaşır, Tur 2'de göreceğimiz gibi.

Kriter hiyerarşisi: C1'den C19'a

FIDE Dutch sistemi öncelik sırasına göre düzenlenmiş 19 kriter tanımlar. Bir puan grubu için eşleştirmeler oluşturulurken, algoritma mümkün olduğunca çok yüksek öncelikli kriteri karşılayan bir eşleştirme bulmaya çalışır. C3'ü karşılamak C7'yi ihlal etmek anlamına geliyorsa, C3'ü seçer — C3'ün kendisi C1 veya C2 tarafından geçersiz kılınmadıkça.

İşte en önemli kriterler sade bir dille açıklanmış:

  • C1
    Hiçbir oyuncu birden fazla bye almaz Mutlak
    Bir bye (tek sayıda oyuncu olduğunda verilen ücretsiz puan) oyuncu başına yalnızca bir kez verilebilir ve daha önce almış bir oyuncuya asla verilmez. Bu geçersiz kılınamaz.
  • C2
    Hiçbir oyuncu aynı rakiple iki kez karşılaşmaz Mutlak
    Algoritma, aynı turnuvada daha önce birbirleriyle karşılaşmış iki oyuncuyu asla eşleştirmez. Bu mutlak bir kuraldır — son turda bile gevşetilemez. Kaçınma gerçekten imkansızsa (çok küçük turnuvalar, çok sayıda tur), hakem müdahale etmelidir.
  • C3
    Eşleştirilen oyuncular arasındaki puan farkını en aza indir Yüksek
    Aynı puan grubundaki oyuncular ideal olarak aynı puana sahiptir. Grup içi eşleştirme imkansızsa, algoritma gruplar arası eşleştirme yapabilir (floater'lar), ancak puan farkını en aza indirmeye çalışır. 3.0 puanlı bir oyuncunun 2.5 puanlı biriyle oynaması, 2.0 puanlı biriyle oynamasından iyidir.
  • C4
    Aşağı floater sayısını en aza indir Yüksek
    Aşağı floater, kendi grubu içinde eşleştirilemediği için puan grubundan bir sonraki gruba taşınan oyuncudur. Algoritma bunun ne sıklıkta gerçekleştiğini en aza indirmeye çalışır.
  • C5
    Kaçınılabilirse hiçbir oyuncu üst üste iki kez aşağı floater olmaz Yüksek
    Bir oyuncu geçen tur daha düşük bir gruba taşındıysa, algoritma bu turda tekrar yapmaktan kaçınmaya çalışır. Ardışık aşağı floatleme ağır cezalandırılır.
  • C6–C8
    Renk dengesi ve değişimi Yüksek
    Her oyuncu renkleri (beyaz, siyah, beyaz, siyah…) mümkün olduğunca değiştirmelidir. Hiçbir oyuncu aynı renkle 2'den fazla ardışık oyun oynamamalıdır. «Renk tercihi» tur 1'den itibaren izlenir ve sonraki her eşleştirme kararını etkiler.
  • C9–C12
    Renk farkı kısıtlamaları Orta
    «Renk farkı», beyaz oyun sayısı eksi siyah oyun sayısıdır. FIDE kuralları bunu mümkün olduğunca uzun süre ±1 içinde tutmayı amaçlar. Büyük renk dengesizlikleri olan oyuncular, bir sonraki turda tercih ettikleri renk için öncelik alır.
  • C13–C19
    Puan grubu içinde sıralama ve eşleştirme kalitesi Orta
    C1–C12'yi karşılayan tüm geçerli eşleştirmeler arasında, algoritma «ideal» üst yarı - alt yarı yapısına en iyi uyanı seçer. Derecelendirme/sıralama düzeninin grup içinde bir kalite ölçüsü olarak devreye girdiği yer burasıdır.
Temel içgörü

Algoritma «en iyi satranç karşılaşması» için değil — kriter hiyerarşisine uyum için optimize eder. Bazen bu, oyunculara garip görünen eşleştirmeler üretir. Bu bölümün 9. kısmı en yaygın «garip eşleştirme» senaryolarını açıklar.

Renk ataması: beyaz, siyah ve denge

Renk ataması, İsviçre eşleştirmesinin en yanlış anlaşılan kısımlarından biridir. Oyuncular genellikle çok fazla siyah aldıklarını hisseder — ve bazen haklıdırlar, ancak genellikle algoritma kuralların gerektirdiğini tam olarak yapmaktadır.

Renk tercihi vs renk hakkı

Bir oyuncunun renk geçmişi dengesizse (beyazdan fazla siyah veya tersi) renk tercihi vardır. Aynı renkle ard arda iki oyun oynamuşsa renk hakkı vardır — bu durumda, tur eşleştirmesi hiç yapılamayacaksa dışında, bir sonraki oyunda zıt rengi almalıdır.

Çatışan renk haklarına sahip iki oyuncu eşleştirildiğinde, algoritma birinin kuralını ihlal etmelidir. Daha az hakkı olan oyuncuyu seçer — genellikle renk sırası genel olarak daha az dengesiz olanı.

Tur 1'de renk

Tur 1'de tüm oyuncuların eşit renk geçmişi vardır (hiç). Renkler genel bir ilkeyle atanır: daha yüksek sıralı oyuncu (üst yarıda) beyaz alır, daha düşük sıralı oyuncu siyah alır. Bu yüzden Alekhin Anısı'nda Fischer (S1) beyazla ve Spassky (S5) siyahla oynar.

§ Renk atama kuralları FIDE C.04.3, bölüm 4–7'de belirtilmiştir (1 Şub. 2026'dan geçerli). → C.04.3'ü Oku

Floater'lar ve aşağı floater'lar

Bir puan grubunda tek sayıda oyuncu olduğunda, bir oyuncu grup içinde eşleştirilemez ve taşınması gerekir. Bu oyuncuya floater denir.

Bir aşağı floater bir sonraki düşük puan grubuna taşınır (örneğin, 3.0 puanlık gruptan 2.5 puanlık gruba). Bir yukarı floater ise düşük gruptaki bu «misafiri» yukarıdan alan oyuncudur.

Algoritma floatingi en aza indirmeye çalışır (kriterler C4–C5). Floating kaçınılmaz olduğunda, kimin float edeceği hakkında belirli kurallar izler: puan grubundaki en düşük sıralı oyuncu tercih edilen aşağı floater'dır, o oyuncu geçen tur zaten aşağı float etmediyse veya düşük grupta eşleştirmeyi imkansız kılan özellikle güçlü bir renk talebi yoksa.

📉 Aşağı floater örneği — Alekhin Anısı Tur 2

Tur 1'den sonra: Fischer, Kasparov, Tal, Petrosian hepsi kazandı → 1.0 puanlı 4 oyuncu (çift grup, floater gerekmiyor).

Spassky, Karpov, Botvinnik, Lasker hepsi kaybetti → 0.0 puanlı 4 oyuncu (çift grup, floater gerekmiyor).

Tur 2 temiz: 1.0 grubu kendi içinde eşleşir, 0.0 grubu kendi içinde eşleşir.

Ama Tal'ın kazanmak yerine berabere kaldığını düşünün: o zaman 1.0'da 3, 0.5'te 2 ve 0.0'da 3 oyuncu olurdu. 0.5 grubunda sadece 2 oyuncu var — bu sorun değil (bir eşleştirme). Ama 1.0 grubunda 3 oyuncu var — biri 0.5 grubuna aşağı float etmeli. 1.0'daki en düşük sıralı oyuncu (Petrosian, S4) aşağı floater olur.

Tur 1 detaylı: Alekhin Anısı

8 oyunculu turnuvamız için Tur 1 eşleştirmesini adım adım takip edelim.

Girdi: 8 oyuncu, hepsi 0.0 puanda, derecelendirme sıralamasına göre sıralı. Bir puan grubu: {Fischer, Kasparov, Tal, Petrosian, Spassky, Karpov, Botvinnik, Lasker}.

Adım 1 — İkiye böl: Üst yarı = Fischer, Kasparov, Tal, Petrosian (S1–S4). Alt yarı = Spassky, Karpov, Botvinnik, Lasker (S5–S8).

Adım 2 — C1–C2 kriterlerini uygula: Önceki rakipler yok (ilk tur), kısıtlama yok. Henüz bye yok.

Adım 3 — İdeal eşleştirme: S1↔S5, S2↔S6, S3↔S7, S4↔S8. Tüm kriterler karşılandı. Bu eşleştirmedir.

Adım 4 — Renk ataması: Tur 1'de üst yarı varsayılan olarak beyaz alır.

Alekhin Anısı — Tur 1 Son Eşleştirmeler
Ms 1Fischer (B)vsSpassky (S)
Ms 2Kasparov (B)vsKarpov (S)
Ms 3Tal (B)vsBotvinnik (S)
Ms 4Petrosian (B)vsLasker (S)

Tur 2 detaylı: puan grupları oluşuyor

Tur 1 sonuçlarından sonra (Fischer 1–0 Spassky, Kasparov 1–0 Karpov, Tal 1–0 Botvinnik, Petrosian 1–0 Lasker), iki puan grubumuz var:

Grup A (1.0 p): Fischer, Kasparov, Tal, Petrosian — 4'ü de kazandı.
Grup B (0.0 p): Spassky, Karpov, Botvinnik, Lasker — 4'ü de kaybetti.

Grup A eşleştirmesi: İkiye böl → Fischer, Kasparov (üst) vs Tal, Petrosian (alt). İdeal: Fischer↔Tal, Kasparov↔Petrosian. C2 kontrolü: henüz hiçbiri birbirleriyle oynamamış. ✓

Renk adımı: Tur 1'de Fischer ve Kasparov beyaz aldı. Şimdi siyaha ihtiyaçları var. Tal ve Petrosian siyah aldı, şimdi beyaza ihtiyaçları var. Yani: Tal (B) vs Fischer (S), Petrosian (B) vs Kasparov (S). ✓

ChessPairings.org'da canlı oluşturulan eşleştirmeleri görün

8 oyunculu bir test turnuvası oluşturun ve algoritmayı tur tur çalışırken izleyin.

Şimdi dene →

«Garip» eşleştirmeler: bu neden oluyor?

Oyuncular ve organizatörler sıklıkla belirli eşleştirmeleri sorgular. İşte en yaygın durumlar ve her birinin arkasındaki algoritmik neden.

«Oyuncu X'in 3 puanı var ama sadece 2.5 puanı olan biriyle eşleştirildi»

Bu, 3.0 puanlık grupta tek sayıda oyuncu olduğunda ve birinin aşağı float etmesi gerektiğinde olur. Algoritma 3.0 grubu içindeki tüm kombinasyonları denedi ancak tüm olası eşleştirmelerin C1, C2 veya C5'i ihlal ettiğini buldu (örneğin, tüm 3.0 puanlı oyuncular zaten birbirleriyle oynamuş veya ciddi renk çatışmaları var). Bir oyuncuyu 2.5 grubuna aşağı float ettirmek tek geçerli seçenekti.

«Oyuncu X her zaman siyah alıyor»

Bir oyuncu aşağı float ettiğinde, genellikle normalde almayacağı bir rengi kabul etmek zorunda kalır, çünkü düşük gruptaki eşleştirme bunu gerektirir. Bu, İsviçre sisteminin bilinen bir sınırlamasıdır — renk dengesi kısıtlaması C1–C5'ten düşük önceliğe sahiptir, bu yüzden geçersiz kılınabilir.

«En iyi iki oyuncu neden daha 4. turda eşleştirildi?»

Her iki lider de aynı puana sahipse ve algoritma puan grupları içinde başka geçerli bir eşleştirme bulamazsa (gruptaki diğer tüm oyuncular ya onlarla zaten oynamuş ya da çatışan renk haklarına sahip), algoritma en iyi ikisini birbirleriyle eşleştirir. Bu doğru davranıştır — kriter hiyerarşisi bunu gerektirir.

Diğer onaylı sistemler: Burstein, Bakü Hızlandırması

Burstein Sistemi (C.04.4)

Burstein sistemi, puan grubu oluşumuna farklı bir yaklaşımla Dutch sisteminin bir varyantıdır. Floater'lı katı puan grupları yerine, çiftler içinde derecelendirme yakınlığını korurken daha esnek gruplar arası eşleştirmelere izin verir. FIDE dereceli etkinliklerde daha az kullanılır ancak bir alternatif olarak tanınır.

§ FIDE C.04.4 — Burstein Sistemi (1 Şub. 2026'dan geçerli). → C.04.4'ü Oku

Bakü Hızlandırması (C.04.7)

Bakü Hızlandırması, üst düzey oyuncuların zayıf rakiplere karşı birkaç kolay oyun kazandıktan sonra yalnızca son turlarda karşılaşmak yerine daha erken karşılaşmalarını sağlamak için çok büyük İsviçre turnuvalarında (genellikle 200+ oyuncu) kullanılır.

Fikir: ilk birkaç turda, en yüksek dereceli oyunculara «sanal» yarım puan avantajı verilir, bu da onları gerçek puanlarından daha yüksek bir puan grubuna yerleştirir. Bu, güçlü oyuncular arasında daha erken yüzleşmeler yaratır. Tur 3 veya 4'ten itibaren sanal puanlar kaldırılır ve normal İsviçre eşleştirmesi devam eder.

§ FIDE C.04.7 — Hızlandırılmış Sistemler: Bakü Hızlandırması (1 Şub. 2026'dan geçerli). → C.04.7'yi Oku

Bir TRF dosyasını okumak

TRF (Tournament Report File — Turnuva Rapor Dosyası), satranç turnuvası verileri için standart değişim formatıdır. ChessPairings.org hem TRF-16 (eski) hem de TRF-25 (yeni 2025 formatı) çıktısı verir. Alekhin Anısı için Tur 1'den sonra bir TRF-16 dosyası şöyle görünür:

012 Alekhin Anisi 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

Her 001 satırı bir oyuncuyu temsil eder. Soldan sağa okunduğunda: oyuncu numarası, isim, rating, FIDE ID, toplam puan, ardından her tur için: başlangıç sıralaması (0000 = geçerli değil), renk (B/S), rakip numarası, sonuç (1 = galibiyet, 0 = mağlubiyet, = = beraberlik, H = yarım puan bye, F = hükmen galibiyet).

Bu dosyayı asla elle düzenlemenize gerek yoktur — ChessPairings.org bunu otomatik olarak oluşturur. Ancak nasıl okunacağını bilmek, sonuçları doğrularken veya başka yazılımlara aktarırken yardımcı olur.

bbpPairings: ChessPairings.org’nin arkasındaki motor

ChessPairings.org, İsviçre eşleştirme motoru olarak bbpPairings’i kullanır — satranç programlama topluluğu tarafından sürdürülen, FIDE Hollanda sisteminin açık kaynaklı bir C++ uygulamasıdır. bbpPairings, dünya genelinde birden fazla ulusal federasyon ve turnuva yönetim sistemi tarafından kullanılmaktadır.

Eşitlik bozma hesaplamaları için ChessPairings.org, eşleştirme motorundan bağımsız olarak desteklenen 28 eşitlik bozma sisteminin tamamını uygulayan özel bir TieBreakServer modülü (Python) kullanır. Bu ayrım, eşleştirme ve eşitlik bozma mantığının her birinin bağımsız olarak doğrulanabilmesini sağlar.

Her iki motor da FIDE kurallarını her güncellediğinde güncellenir — Şubat 2026 kural değişiklikleri ChessPairings.org’nin mevcut sürümüne tamamen yansıtılmıştır.

Teknik olarak meraklılar için

Hollanda eşleştirme problemi, matematiksel olarak çizge teorisindeki ağırlıklı maksimum eşleşme problemine eşdeğerdir. Her potansiyel eşleştirme, kriter hiyerarşisini ne kadar iyi karşıladığını temsil eden bir ağırlığa sahip bir kenardır. Algoritma, maksimum ağırlıklı tam eşleşmeyi bulur — bu yüzden 500 oyunculu turnuvalarda bile saniyenin küçük bir bölümünde tamamlanabilir.

Turnivanizi Duzenlemeye Hazir misiniz?

FIDE 2026 uyumlu Isvicre eslestirme, 28 esitlik bozma sistemi, tamamen ucretsiz.

Ucretsiz Hesap Olustur