Давайте рассмотрим разные варианты рассадки, возможные на турнирах по риичи-маджонгу.
1. Случайная
В этом случае рассадка во всех турах абсолютно случайна, именно она повсеместно использовалась до Moscow Open Riichi Tournament.
Плюсы: просто реализуется, позволяет заранее знать, с кем предстоит играть.
Минусы: не нормирует столы по силе игроков, не исключает пересечений.
Очевидно, что минусы перевешивают плюсы. Теоретически возможно, что из-за пересечений четверо игроков все сессии будут играть одним составом стола, и хотя вероятность данного исхода ничтожно мала, если коллизия возникнет, ее скорее всего не заметят... ведь вероятность ничтожно мала, чтобы ее вообще учитывать.
2. Без пересечений
Этот подход активно разрабатывался многими, но так и не был применен ни на одном крупном турнире. Желание исключить пересечения обычно мотивируется тем, что на турнир люди приезжают сыграть с новыми соперниками, поэтому нехорошо, если два человека сыграют друг с другом более одного раза.
Плюсы: отсутствие пересечений позволяет заранее знать, с кем предстоит играть.
Минусы: пересечениями можно считать и встречу за одним столом двух игроков, приехавших из одного города и хорошо знакомых — эту ситуацию нужно учитывать дополнительно, что усложняет алгоритм. Рассадка не нормирует столы по силе игроков.
В данном случае решена проблема пересечений, и это хорошо, однако отсутствие нормирования столов по силе игроков чревато коллизиями. Например, может образоваться стол, за которым играют четверо очень слабых игроков, в этом случае один из них с вероятностью в 100% займет первое место. Однако если бы столы составили так: два сильных и два слабых, то вероятность победы слабого игрока, очевидно, была бы гораздо ниже. В коротких турнирах возникновение подобных ситуаций ведет к недостоверным результатам. Таким образом, рассадка без пересечений лишь немногим выгоднее полностью случайной.
3. Нормированная
Данный подход предусматривает формирование столов на основе силы игроков. Сила игроков может быть задана заранее или вычисляться на основе результатов предыдущих сессий.
Плюсы: Данный подход не уменьшает влияния случайности на результаты турнира, но он значительно ускоряет «оседание» слабых игроков в конец списка и подъем сильных игроков в топ.
Минусы: такая рассадка не может быть создана заранее — ее нужно генерировать заново после каждой сессии, кроме того, сильные игроки будут играть со слабыми снова и снова, но чем четче по мере развития турнира будет становиться граница между ними, тем выше вероятность пересечения.
Нормированная рассадка не так сложна алгоритмически, как без пересечений, но зато очень трудна в организационном плане — необходимо перед каждой новой сессией сообщать игрокам, кто с кем играет. При большом числе участников и отсутствии в игровом зале настенных экранов сообщить рассадку можно разве что зачитывая ее в микрофон, что долго и малоэффективно. Кроме того, для коротких турниров стоит дополнительно добавить проверку на пересечения, чтобы игроки не встречались за одним столом дважды.
***
Для турнира Moscow Open Riichi Tournament был выбран комбинированный подход. В первом туре игроки рассаживались случайным образом:
Далее использовались две нормированные рассадки. Организационный вопрос был решен с помощью плазменных панелей, на которые с помощью программного обеспечения, специально разработанного для турнира, выводились имена игроков и столы, за которыми они играют. Однако алгоритм предотвращения пересечений не был реализован.
Вот алогоритм рассадки для второй сессии.
В третьей и четвертой сессии, т.е. к моменту, когда появились данные о силе игроков, использовался еще более строгий алгоритм:
Обратите внимание, нормирование выполнялось после рандомизации частей списка участников, таким образом, нормированная и случайная рассадки были совмещены между собой.
Разумеется, 4х игровых сессий недостаточно, чтобы данный подход заработал в полную силу, однако он всё равно дал очень хорошие результаты — средняя сила стола в каждой следующей сессии определялась на основе промежуточных результатов турнира, что в итоге не позволило откровенно слабым игрокам занять высокие позиции в итоговой таблице результатов.
По сути, алгоритм, использовавшийся на турнире — это сито, которое отсеивает сильных игроков вверх списка и слабых вниз. Что же до тех, кто оказался в итоге в середине, — сито стоило потрясти подольше, сыграв еще несколько сессий, и если бы эти игроки по-прежнему там остались, значит, это их действительный уровень игры, однако вполне возможно, что они осели бы на дно или поднялись вверх.
В будущем мы также планируем проводить турниры примерно по той же схеме, что и в этот раз, с единственной поправкой — они будут двухдневными, т.е. в общей сложности игроки отыграют 8 полуторачасовых сессий.