Чи відомий алгоритм планування матчів турнірів?


10

Цікаво, чи існує алгоритм планування турніру, який я можу використовувати або навіть трохи адаптувати.

Ось мої вимоги:

  • Змінна кількість опонентів, що належать до змінної кількості команд / клубів, кожна повинна поєднуватися з опонентом
  • Два опоненти не можуть бути з одного клубу
  • Якщо є непарна кількість гравців, 1 з них випадковим чином вибирається, щоб отримати бай

Будь-які алгоритми, пов'язані з таким набором вимог, будуть вдячні.

EDIT: Мені потрібно запустити це максимум один раз, створюючи матчі для першого «раунду» турніру.


Ви можете розглянути максимальну відповідність .
svick

Відповіді:


10

Як я бачу, ви хочете знайти максимальну відповідність у графіку. Насправді вузли є гравцями, вони з'єднані між собою, якщо вони не в одному клубі, тепер ви повинні знайти максимальну кількість ребер, які не мають однакової вершини. Див. Алгоритм максимальної відповідності Edmonds .


1

З мого короткого часу у Вікіпедії двадцять секунд тому виглядає, що вам потрібно спершу визначитися зі стратегією усунення. Дивіться Вікіпедію:

  1. Swiss-System
  2. Одномісний елімінаційний_турнінг
  3. Подвійний елімінаційний_турнінг

У статті про єдину елімінацію описані методи висіву (алгоритм, який ви шукаєте) досить загально, і це виглядало корисно, хоча і не зовсім алгоритм.


Я віддаю перевагу швейцарці, який дає середній рейтинг на відміну від подвійних / разових елімінацій, і знаходить перших N гравців у тій же кількості раундів, що і турнір з N-елімінації.
Mooing Duck

1

Створюючи це в процесі роботи, здається, що алгоритм початкового узгодження досить простий:

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

Якщо залишиться одна людина, це буде випадкова людина, за одним винятком. Якщо в одному клубі є більше членів, ніж усі гравці, які виступають проти, то залишки завжди будуть з цього клубу. Реально це надзвичайно рідкісна ситуація, і викуп у будь-якого іншого клубу залишив би ще більше людей.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.