おそらくはそれさえも平凡な日々

大相撲の対戦相手マッチングアルゴリズムとスイス式の話

ぶつかり稽古最高でした。僕の所属組織の人事の悪乗りに乗りまくって、あそこまでのものを作り上げてくださった皆様には感謝の言葉もございません。本当にすみませんでした。ありがとうございました。

さて、終わったあとの雑談で、大相撲の試合の組み合わせのアルゴリズムがスイス式に近いって話をしたんですけど、そのスイス式のご紹介。

スイス式はチェスの世界ではメジャーなトーナメント方式です。ちなむと僕は中高ではチェス部だったのです(大学でもサークル所属はしていた)。詳しくは、Wikipediaに書いてあるのでそっちを読んでもらえればと思いますが、基本的にその時の成績(勝ち数等)に応じて、次の組み合わせが決定されるものです。

相撲で言えば勝ち星が同じか近い力士同士が当たるようになっているということです。大相撲では2日先まで取り組みを決めていたりすることや千秋楽は横綱戦といった興行上の理由で、厳密なスイス式の適用は難しいかと思いますが考え方は近いと思います。と思ったら、幕下ではスイス式で取り組みを決めているという話もあるようです。一次ソースは見つけられなかったのですが、確かに下位の取り組みは機械的に決められた方が手間が省けて良さそうですね。

CPANにもモジュールがあったはずだって話もしてたので改めて調べてみたら、Games::Tournament::Swissてのが見事に有りました。想像していたよりかなりしっかりしてそうなモジュールなのでちゃんと使えそうな感じがします。同AuthorのGame::Tournament::RoundRobinは使ったことあります。

ちなみに"tournament"と言うと、我々日本人は甲子園の様な勝ち抜き戦をイメージしますが、"tournament"は競技における組み合わせ方式全般を指す言葉だったりします。日本では総当り戦のことをリーグ戦と言ったりしますが、あれは英語では"round-robin tournament"と言われています。我々が俗にいう勝ち抜き方式の「トーナメント」は英語で言うと"elimination tournament"になります。これマメな。

相撲といえば最近は「バチバチ」が最高に面白いですね。

バチバチ

created at
last modified at

2017-08-28T00:28:29+0900

comments powered by Disqus