- Особенности риичи с точки зрения турнирных рассадок
1.1. Круговая система
1.2. Швейцарская система
1.3. Нокаут-системы (Knockout) - Когда какую рассадку применять
- Примеры
- Рассадки и Pantheon
В этой статье я расскажу о том, какие бывают системы турнирных рассадок, какие из них применимы для турниров по риичи, и в каких случаях имеет смысл предпочесть ту или иную систему рассадки. Статья в первую очередь ориентирована на организаторов турниров, но, я надеюсь, будет интересна всем игрокам. Если вам не хочется вникать в подробности, и статья интересует вас исключительно с практической точки зрения — «какую же рассадку мне сделать на турнире?», то можете сразу переходить к разделу 2 «Когда какую рассадку применять».
1. Особенности риичи с точки зрения турнирных рассадок
Для начала посмотрим, какие особенности есть у риичи с точки зрения турнирной игры, и какие ограничения они накладывают на возможные рассадки. Особенности довольно очевидные, но тем не менее проговорим.
Во-первых, элемент случайности в риичи достаточно высок, и на дистанции в один ханчан результат может быть абсолютно любым, даже если некоторые игроки по силе значительно превосходят других.
Во-вторых, в партии участвуют 4 игрока, а не 2.
Держа в голове эти две особенности, рассмотрим рассадки, которые широко используются в других спортивных и интеллектуальных играх.
Далее во всех формулах я буду использовать для обозначения числа игроков турнира, для обозначения числа туров и для обозначения общего числа игр.
1.1. Круговая система (Round-robin)
Основная идея данной рассадки состоит в том, что каждая пара участников турнира сыграет друг с другом ровно один раз. При этом таких «раундов» круговой рассадки за турнир может быть несколько, в таком случае каждая пара сыграет друг с другом 2, 3 или более раз.
В случае игр, где в одной партии соревнуются друг с другом 2 игрока или 2 команды, круговая рассадка может быть сформирована при абсолютно любом числе участников. Число игр при этом будет равно , где — число участников турнира. А число туров соответственно .
Например, если друг с другом соревнуются 4 шахматиста A, B, C и D, то рассадка будет следующей:
1 тур: AB CD
2 тур: AC BD
3 тур: AD BC
Как можно видеть, число игр получается равным 6: .
А число туров — равным 3: .
В случае риичи идеальная круговая рассадка может быть сформирована не всегда. Помимо очевидного условия, что число игроков должно быть кратно четырем (что необходимо для любой рассадки), для существования идеальной круговой рассадки необходимое условие следующее — число участников турнира минус один должно делиться нацело на 3. Смысл этого условия очень простой — у каждого игрока в каждой партии (ханчане) ровно 3 соперника. Таким образом, за турнир он сыграет с противниками. Отсюда и требование кратности (на самом деле требование может не соблюдаться, если у нас несколько «раундов» круговой рассадки, и нам не критично, чтобы игроки не пересекались друг с другом в течение одного «раунда», но в подробности я вдаваться не буду).
Число туров при этом вычисляется как .
Какие числа от 0 до 100 удовлетворяют этому условию и сколько туров необходимо в таком случае сыграть для идеальной круговой рассадки:
Количество участников | Количество туров |
---|---|
4 | 1 |
16 | 5 |
28 | 9 |
40 | 13 |
52 | 17 |
64 | 21 |
76 | 25 |
88 | 29 |
Для некоторых вариантов числа участников круговая рассадка может быть пусть не идеальной, но все же достаточно хорошей, и несколько таких вариантов я тоже приведу:
Количество участников | Количество туров | Комментарий |
---|---|---|
24 | 6 | игрок сыграет по одному разу со всеми соперниками, кроме двух (с двумя не сыграет ни разу) |
32 | 10 | игрок сыграет по одному разу со всеми соперниками, кроме одного (с одним не сыграет ни разу) |
36 | 11 | игрок сыграет по одному разу со всеми соперниками, кроме двух (с двумя не сыграет ни разу) |
Обычный российский турнир по риичи длится 8-10 ханчанов (по крайней мере на момент написания этой статьи, т.е. 2018 год), а значит круговые рассадки нас будут интересовать в первую очередь для турниров, в которых меньше 40 участников.
В этот момент у многих может возникнуть следующий вопрос: «а как же уникальный состав стола?». Действительно, даже если каждый игрок сыграет с каждым по одному разу, это еще не будет означать, что он сыграл все возможные варианты состава в ханчане.
Число игр, которое нужно сыграть игрокам, чтобы перебрать все уникальные составы столов, определяется по формуле числа сочетаний.
И соответственно число туров:
Количество участников | Количество туров |
---|---|
4 | 1 |
8 | 35 |
16 | 455 |
Дальше можно не продолжать. Уже для восьми участников нужно 35 туров, чтобы перебрать все варианты комбинаций столов. В общем случае идея перебирать уникальные составы стола получается не слишком реалистичной. Если мы еще и хотим рассадить всех по уникальным ветрам — то нужна уже формула числа размещений. Как можно догадаться, число туров для такой рассадки будет еще больше. Например, для 8 игроков число туров — 840.
Так или иначе, в реальных турнирах даже с круговой рассадкой придется вводить некоторые упрощения, чтобы турнир длился разумное время.
Тем, кому интересно поподробнее углубиться в тему круговых рассадок для игр на 4 человека, я рекомендую почитать статью "Social Golfer Problems", ну а ссылки на дальнейшие материалы найдете в ней же.
1.2. Швейцарская система
Швейцарская система появилась как решение проблемы резкого увеличения числа необходимых партий по мере увеличения числа участников турнира в круговой системе рассадки. Соперники в каждом туре определяются исходя из их текущей турнирной позиции, т.е. играют друг с другом игроки с максимально близкими текущими турнирными очками. При этом не допускается, чтобы любая пара игроков играла друг с другом более одной игры. Таким образом, швейцарская система позволяет значительно сократить число туров, необходимое для определения победителя турнира.
Однако в ее оригинальном виде швейцарская система для риичи неприменима: во-первых, из-за того, что по результатам ханчана в риичи игроки получают не фиксированные очки (1, 0.5, 0), как, например, в шахматах, а, строго говоря, могут получить произвольное число очков, а во-вторых, из-за того, что в партии принимают участие 4 игрока, а не 2. Поэтому для риичи применяется алгоритм, основанный на похожих принципах (формирование столов из игроков, близких по турнирных очкам, и минимизация пересечений), однако имеющий другую реализацию.
Описание алгоритма:
- задается начальное разрешенное число пересечений — 0;
- определяется наивысший незаполненный на данный момент стол (начиная с 1);
- если стол пустой, то игрок с наибольшими турнирными очками (из тех, кому еще не назначен никакой стол) назначается на этот стол;
- если за столом уже есть игроки, то на него назначается еще нерассаженный игрок с наибольшими турнирными очками, но так, чтобы текущее число пересечений было не больше разрешенного;
- алгоритм вызывается рекурсивно до тех пор, пока всем игрокам не будет назначен стол;
- в случае, если сделать рассадку, не превышая разрешенное число пересечений, не удалось, алгоритм возвращается на уровень выше и пробует заменить последнего выбранного игрока следующим игроком по количеству турнирных очков;
- если сделать рассадку не удалось ни для одной из комбинаций игроков, разрешенное число пересечений увеличивается на 1 и алгоритм запускается заново.
Этот алгоритм в том числе применяется в системе Pantheon (с некоторым дополнительным ограничением глубины поиска).
Таким образом, говоря «швейцарская система» в контексте турниров по риичи, мы всегда подразумеваем именно этот алгоритм. Такая швейцарская система обеспечивает более-менее сбалансированную рассадку, т.е. игроку чаще достаются соперники приблизительно его уровня (конечно, в риичи это очень условно), и позволяет избежать пересечений, насколько это возможно. Тем не менее наиболее эффективно швейцарская система работает именно в том случае, когда число туров значительно меньше, чем необходимо для использования круговой рассадки для заданного числа игроков. В противном случае по мере продвижения турнира столы начинают формироваться из игроков, далеких друг от друга по турнирной таблице, либо начинаются пересечения (либо и то, и другое).
1.3. Нокаут-системы (Knockout)
Нокаут-системы подразумевают игру на выбывание, однако в каждом туре может играться не одна партия, а несколько. Основная цель нокаут-систем — сократить общее число игр и сделать турнир более зрелищным.
Нокаут-системы вряд ли могут быть применимы для обычных российских турниров по риичи, однако они используются на Чемпионате Мира (WRC). Основная проблема такого подхода состоит в том, что в каждом туре дистанция получается не очень большой, и это увеличивает влияние случайности на результат. Однако, если число участников турнира небольшое, а, кроме того, есть возможность обеспечить хорошую дистанцию в каждом туре на выбывание и хочется сделать зрелищный финал, то такая система вполне может быть применена. Например, одна из вариаций нокаут-системы — double ellimination — была успешно применена на закрытом турнире на 16 человек, который прошел в Москве в 2019 году.
2. Когда какую рассадку применять
Мы разобрали с вами немного теории, теперь давайте приступим к практике. В этом разделе я не претендую на абсолютную истину, а скорее рассказываю, какие я могу сделать выводы на основании личного опыта и информации из прошлого раздела. В этом разделе под «фиксированной круговой рассадкой» я всегда подразумеваю рассадку, наиболее близкую к идеальной круговой рассадке для данного числа участников. Как правило, это будет ее часть, т.е. как бы недоигранная до конца круговая рассадка.
Для маленького локального турнира на 16-28 человек и 4-5 ханчанов совсем хорошего решения, на мой взгляд, нет, я бы порекомендовал использовать просто фиксированную круговую рассадку.
Для среднего турнира на 24-36 человек и 8-10 ханчанов фиксированная круговая рассадка подходит очень хорошо. Игроки смогут сыграть почти со всеми оппонентами, а для зрелищности или создания дополнительной интриги можно в последних одном-двух ханчанах сделать «финалы», т.е. игнорируя пересечения рассадить игроков с небольшим фиксированным шагом. Для турниров на 10 ханчанов мне лично импонирует шаг 3 для 9 тура и шаг 2 для 10 тура, но, на мой взгляд, это во многом дело вкуса (чтобы в будущем не было путаницы: под шагом 3 я подразумеваю рассадку 1-4-7-10, а под шагом 2 соответственно 1-3-5-7 — в такой нотации минимальный шаг это 1, а шага 0 не существует). В принципе, обойтись без «финалов» совсем — тоже хорошее решение.
Конкретные решения по круговым рассадкам можно найти в статье "Social Golfer Problem", на которую я уже ссылался ранее.
Так как отношение числа участников к числу туров получается довольно большим, то (как я уже упоминал в разделе 1.2), швейцарская система для таких турниров будет работать плохо, к последним турам начнутся пересечения и будут формироваться столы из совсем далеких друг от друга по турнирным очкам игроков.
Для крупного турнира на 60+ человек и 8-10 ханчанов лучше использовать швейцарскую рассадку. При этом на самый первый тур игроков имеет смысл рассадить случайным образом. Так как рассадка в таком турнире от идеальной круговой будет совсем далека, то «финалы» начинают выглядеть еще более привлекательно, чем для средних турниров.
Все эти рекомендации можно свести в единую табличку:
Количество игроков | 4-5 ханчанов | 8-10 ханчанов | 16-20+ ханчанов |
---|---|---|---|
12-24 | круговая | круговая (несколько раундов) + опциональный финал | круговая (несколько раундов) + опциональный финал |
28-36 | круговая | круговая | круговая (несколько раундов) + опциональный финал |
40-56 | лучше так не делать | швейцарская/круговая | круговая + опциональный финал |
60+ | лучше так не делать | швейцарская | швейцарская/круговая |
3. Примеры
Рассмотрим в качестве примеров несколько реальных турниров и их рассадки.
I. VII чемпионат России по риичи-маджонгу “Осенний Шантен” (Пермь, 2018)
Это крупный турнир на 90+ человек и 10 ханчанов. Для такого турнира оптимально использовать швейцарскую систему:
1 тур — случайная рассадка
2-8 туры — швейцарская рассадка
9-10 туры — «финалы», т.е. интервальная рассадка с фиксированным шагом, допускающая пересечения.
Организаторы решили сделать шаг 3 в 9 ханчане и шаг 2 в 10 ханчане — мне лично такой формат очень нравится. Но, как вариант, на 9 тур можно было и оставить швейцарскую рассадку.
II. Spanish Riichi Open (Валенсия, 2018)
Турнир на 48 человек и 8 ханчанов, прошедший в 2018 году в Испании.
Организаторы решили использовать фиксированную круговую рассадку. В итоге каждый из участников сыграл с 24 оппонентами из 48. Вполне приемлемый подход. Альтернативно можно было бы использовать швейцарскую систему, тоже было бы хорошо.
III. А-Лига (Москва, 2018)
Турнир на 28 человек и 20 ханчанов.
Так как соотношение числа ханчанов к числу участников достаточно велико, то использовалось 2 раунда круговой рассадки, а последние два тура стали «финалами».
Как видно из раздела 1.1, для 28 человек идеальная круговая рассадка требует 9 ханчанов, так что рассадка в турнире была следующей:
1-9 туры — круговая рассадка (раунд 1)
10-18 туры — круговая рассадка (раунд 2)
19-20 туры — финалы с шагом 3 и 2 соответственно
Важно отметить, что второй раунд круговой рассадки отличался от первого по составу столов — то есть за все 18 туров составы столов не повторялись.
IV. Снежный дракон, грозно ступающий по замороженной столице (Новосибирск, 2019)
Грядущий турнир на 8 ханчанов. Финальное число игроков неизвестно, на данный момент зарегистрировано 30 участников, однако организаторы готовы принять 100 участников.
В таком турнире выбор рассадки будет в значительной степени зависеть от итогового числа участников. Если наберется хотя бы 40 участников, то, на мой взгляд, турниру лучше подойдет швейцарская рассадка с финалом в последнем туре. Если не наберется — то фиксированная круговая рассадка.
Как быть в такой ситуации? Я бы порекомендовал организаторам быть готовым к обоим сценариям и сгенерировать фиксированные рассадки для 24-28-32-36 участников. А когда до турнира останется мало времени и новые регистрации уже вряд ли появятся — выбрать подходящую.
4. Рассадки и Pantheon
Pantheon (Пантеон) — это система автоматизации турниров по риичи, которая в том числе предлагает организаторам некоторый набор рассадок.
Пантеон поддерживает два типа турниров: «с фиксированной рассадкой» и «с другими рассадками». Тип турнира задается при его создании и не может быть изменен.
Для турниров с фиксированной рассадкой всем игрокам присваиваются временные локальные ID, которые используются для описания рассадки. Для таких турниров организаторы должны сгенерировать рассадку сами.
Если в турнире с фиксированной рассадкой необходимо сделать «финалы», т.е. рассадить игроков по их текущему месту в турнирной таблице, то нужно вручную создать описание такой рассадки и добавить ее в Пантеон. В частности, таким образом генерировалась рассадка последних двух туров турнира «А-Лига». Генерация такой рассадки для «финалов» занимает не более 5 минут с использованием Excel или его аналогов, так что перерыва между ханчанами организаторам вполне хватит.
Для турниров с другими рассадками перед началом каждого тура доступно три опции: «случайная рассадка», «швейцарская рассадка» и «интервальная рассадка».
***
На этом все, надеюсь, информация в статье показалась вам полезной или интересной. Я не рассматривал тут рассадки для командных турниров, так как это отдельная большая тема, но так или иначе она почти всегда сводится к круговым рассадкам. Спасибо за внимание!
Огромная благодарность Даше Ильиной и Владиславу Плясунову за предварительное ревью статьи, а также Олегу Клименко за консультацию по вопросам, связанным с Пантеоном.
Павел Богачев
***
Полезные ссылки
- http://www.mathpuzzle.com/MAA/54-Golf%20Tournaments/mathgames_08_14_07.html — cтатья «Social Golfer Problem» с примерами круговых рассадок и их обоснованиями.
- http://golfsoftware.com/tools/schedule/playall.html — онлайн-генератор круговых рассадок, поддерживает рассадки до 100 участников.
- https://github.com/bogachev-pa/mahjong_team_tournament_seating — программа на Python для генерации рассадок для командных турниров.