Turnuva maçlarını planlamak için bilinen bir algoritma var mı?


10

Sadece bir turnuva çizelgeleme algoritması olup olmadığını merak ediyorum.

İşte benim gereksinimleri:

  • Değişken sayıda takım / kulübe ait değişken sayıda rakip her biri bir rakiple eşleştirilmelidir
  • İki rakip aynı kulüpten olamaz
  • Tek sayıda oyuncu varsa, bunlardan 1 tanesi rastgele bir şekilde güle güle seçilir

Bu tür bir gereksinim seti ile ilgili herhangi bir algoritma takdir edilecektir.

EDIT: Turnuvanın ilk 'turu' için eşleşmeler oluşturarak, bunu yalnızca bir defa çalıştırmam gerekiyor.


Maksimum eşleşmeye bakmak isteyebilirsiniz .
svick

Yanıtlar:



1

Yirmi saniye önce Wikipedia'daki kısa zamanımdan önce bir eleme stratejisine karar vermeniz gerekecek gibi görünüyor. Wikipedia'ya bakın:

  1. Swiss-Sistem
  2. Tek elimination_tournament
  3. Çift elimination_tournament

Tek eleme makale oldukça jenerik (aradığınız algoritması) teknikleri tohumlama açıklanan ve yararlı görünüyordu olmasa oldukça bir algoritma.


Çift / tek elemenin aksine orta sıralamalar veren ve N eleme turnuvası ile aynı sayıda turda en iyi N oyuncuları bulan İsviçre'yi tercih ederim.
Mooing Duck

1

Ben giderken bunu telafi etmek, bir ilk eşleştirme algoritması oldukça basit gibi görünüyor:

While two or more clubs have at least one member not paired  
    select the two clubs with the most unpaired members
    select a random unpaired member from each club
    pair those members

Bir kişi kaldıysa, bir istisna dışında rastgele bir kişi olacaktır. Bir kulübün karşı taraftaki tüm oyunculardan daha fazla üyesi varsa, artıklar her zaman bu kulüpten olacaktır. Gerçekçi olarak, bu çok nadir bir durumdur ve başka bir kulüpten satın almak daha fazla insanın artık kalmasına neden olur .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.