Jak se generují rozpisy každý s každým a playoff
Stručné představení principů, které jsou používány při generování rozpisů každý s každým a playoff pavouků. Jedná se o text z bakalářské práce z roku 2012. Dnes už používám trochu modifikovaný postup, který ale vychází z níže popsaných principů.
Každý s každým
V rámci sezóny se odehrávají kola, v nichž se utkávají jednotlivé týmy mezi sebou. V každém kole může jeden tým odehrát maximálně jeden zápas a v rámci celé sezóny se utká minimálně jednou s každým účastníkem sezóny. Počet vzájemných zápasů týmů závisí na počtu period sezóny. V následující tabulce jsou zobrazeny základní údaje, které je nutno brát v úvahu před vygenerováním samotného rozpisu sezóny. Tabulka obsahuje, jak výpočty pro konkrétní počet týmů, tak i odvozené obecné vzorce pro libovolný počet týmů N.
Počet týmů | 5 | 6 | 10 | N |
Počet zápasů v jednom kole | 2 | 3 | 5 | N / 2 * |
Počet zápasů jednoho týmu | 4 | 5 | 9 | N - 1 |
Počet kol v periodě | 5 | 5 | 9 | (N - 1) nebo N # |
Počet zápasů jedné periody | 10 | 15 | 45 | N * (N - 1) / 2 |
* – celočíselné dělení, tj. beze zbytku a se zaokrouhlením dolů
# – při sudém počtu týmů je počet kol N–1, při lichém počtu je počet kol roven počtu týmů N
Algoritmus
Generovací algoritmus je platný pro sudý i lichý počet týmů, protože v případě lichého počtu týmů by se doplnil jeden dočasný tým, který by identifikoval tým mající v daném kole volno. Algoritmus pro generování rozpisu sezóny se skládá ze šesti kroků:
- pokud je lichý počet týmů, doplň jeden dočasný tým,
- napsání týmů do dvou řad pod sebe,
- trvalé zafixování pozice jednoho týmu,
- uložení zápasů (tvořeny týmy napsanými pod sebou),
- pootočení nezafixovaných týmů o jednu pozici po směru hodinových ručiček,
- pokud nejsou vygenerována všechna kola, tak návrat na 4. krok.
Tento algoritmus nebere v potaz opakování domácích a hostujících zápasů jednotlivých týmů. K zajištění rovnoměrného rozložení domácích a venkovních zápasů slouží optimalizace 4. kroku algoritmu. U každého sudého zápasu v kole se prohodí domácí a hostující tým a jedná-li se o sudé kolo, tak dojde k prohození týmů u prvního zápasu, aby se zamezilo opakování u zafixovaného týmu.
Playoff
Playoff (vyřazovací systém) je pokročilým herním systémem, který tvoří hierarchickou strukturu. V playoff jsou v každém kole týmy spojeny do dvojic, přičemž do dalšího kola postoupí jen vítěz z dané dvojice. Každým kolem se počet aktivních účastníků snižuje o polovinu. U různých soutěží se může lišit počet zápasů, který je nutný k postupu do dalšího kola. Uspořádání týmů se odvíjí od nasazení jednotlivých účastníků. Počet kol playoff je roven log2N, kde N je počet týmů, které se zúčastnily prvního kola. Pro vygenerování úplného kola playoff musí být splněny dvě nutné podmínky:
- počet účastníků je druhou mocninou čísla 2,
- každý účastník má jedinečné číselné nasazení.
Algoritmus
V případě splnění nutných podmínek lze využít následující algoritmus pro vygenerování jednoho kola playoff:
- setřídění účastníků podle nasazení od nejvyššího k nejnižšímu nasazení,
- odebrání prvního a posledního účastníka,
- vytvoření zápasu z naposledy odebraných účastníků,
- pokud existují nepřiřazení účastníci, tak návrat na 2. krok
V podmínkách jsou zmíněni účastníci a ne přímo týmy. Při generování prvního kola jsou sice účastníky týmy se svým nasazením, ale při generování následných kol to mohou být vítězné týmy z předchozího kola nebo přímo kompletní zápasy předchozího kola.