/elo-simulator

Simulation with Elo ratings

Primary LanguageRust

ELO シミュレータ

トーナメントや総当たり戦などで、優勝確率などをシミュレーション/厳密に計算できます。

コマンド

cargo run --release ゲーム記述ファイル名

実行例

第34期竜王戦2組のトーナメントを使って、優勝確率と本戦出場確率を計算します。レーティングは将棋連盟 棋士別成績一覧(レーティング)を参照しました。ゲームの定義ファイルは samples/ryuuou-2020-2-elimination.toml です。

$ cargo run --release samples/ryuuou-2020-2-elimination.toml 
    Finished release [optimized] target(s) in 0.07s
     Running `target/release/elo-simulator samples/ryuuou-2020-2-elimination.toml`
     Running `target/release/elo-simulator samples/ryuuou-2020-2-elimination.toml`
filename = samples/ryuuou-2020-2-elimination.toml
config = GameConfig { participants: [渡辺明名人 (1931), 杉本昌隆八段 (1589), 藤井猛九段 (1619), 郷田真隆九段 (1714), 森内俊之九段 (1609), 八代弥七段 (1715), 菅井竜也八段 (1804), 屋敷伸之九段 (1657), 松尾歩八段 (1713), 深浦康市九段 (1716), 千田翔太七段 (1818), 小林裕士七段 (1554), 阿久津主税八段 (1660), 藤井聡太二冠 (1980), 広瀬章人八段 (1812), placeholder (-1000)], kind: Elimination, decided: [], queries: [Query { name: "優勝確率", query: Within(1) }, Query { name: "本戦出場確率", query: Within(2) }, Query { name: "2回戦進出確率", query: Within(8) }] }
|参加者 |優勝確率       |優勝確率(厳密) |本戦出場確率   |本戦出場確率(厳密)     |2回戦進出確率  |2回戦進出確率(厳密)    |
|---|---|---|---|---|---|---|
|渡辺明名人 (1931)      |29.9084%       |29.8577%       |52.7890%       |52.7692%       |87.7417%       |87.7473%       |
|杉本昌隆八段 (1589)    |0.2474%        |0.2433%        |1.3949%        |1.4008%        |12.2583%       |12.2527%       |
|藤井猛九段 (1619)      |0.4758%        |0.4750%        |2.3940%        |2.3952%        |36.6923%       |36.6592%       |
|郷田真隆九段 (1714)    |2.4294%        |2.4009%        |8.2447%        |8.2245%        |63.3077%       |63.3408%       |
|森内俊之九段 (1609)    |0.4453%        |0.4359%        |2.3272%        |2.2960%        |35.1762%       |35.2017%       |
|八代弥七段 (1715)      |2.6434%        |2.6744%        |9.0869%        |9.1267%        |64.8238%       |64.7983%       |
|菅井竜也八段 (1804)    |8.0122%        |8.0277%        |20.0654%       |20.0973%       |69.8972%       |69.9769%       |
|屋敷伸之九段 (1657)    |0.8523%        |0.8597%        |3.6979%        |3.6903%        |30.1028%       |30.0231%       |
|松尾歩八段 (1713)      |1.7796%        |1.7887%        |5.2981%        |5.2771%        |49.6005%       |49.5683%       |
|深浦康市九段 (1716)    |1.8709%        |1.8784%        |5.4725%        |5.4845%        |50.3995%       |50.4317%       |
|千田翔太七段 (1818)    |9.3662%        |9.3448%        |19.9164%       |19.8553%       |82.0666%       |82.0495%       |
|小林裕士七段 (1554)    |0.1152%        |0.1157%        |0.6299%        |0.6400%        |17.9334%       |17.9505%       |
|阿久津主税八段 (1660)  |0.4109%        |0.4076%        |1.4620%        |1.4581%        |13.7383%       |13.6807%       |
|藤井聡太二冠 (1980)    |32.6841%       |32.6868%       |48.2375%       |48.2634%       |86.2617%       |86.3193%       |
|広瀬章人八段 (1812)    |8.7589%        |8.8034%        |18.9836%       |19.0216%       |100.0000%      |100.0000%      |

上の markdown の表は以下のようになります。

参加者 優勝確率 優勝確率(厳密) 本戦出場確率 本戦出場確率(厳密) 2回戦進出確率 2回戦進出確率(厳密)
渡辺明名人 (1931) 29.9084% 29.8577% 52.7890% 52.7692% 87.7417% 87.7473%
杉本昌隆八段 (1589) 0.2474% 0.2433% 1.3949% 1.4008% 12.2583% 12.2527%
藤井猛九段 (1619) 0.4758% 0.4750% 2.3940% 2.3952% 36.6923% 36.6592%
郷田真隆九段 (1714) 2.4294% 2.4009% 8.2447% 8.2245% 63.3077% 63.3408%
森内俊之九段 (1609) 0.4453% 0.4359% 2.3272% 2.2960% 35.1762% 35.2017%
八代弥七段 (1715) 2.6434% 2.6744% 9.0869% 9.1267% 64.8238% 64.7983%
菅井竜也八段 (1804) 8.0122% 8.0277% 20.0654% 20.0973% 69.8972% 69.9769%
屋敷伸之九段 (1657) 0.8523% 0.8597% 3.6979% 3.6903% 30.1028% 30.0231%
松尾歩八段 (1713) 1.7796% 1.7887% 5.2981% 5.2771% 49.6005% 49.5683%
深浦康市九段 (1716) 1.8709% 1.8784% 5.4725% 5.4845% 50.3995% 50.4317%
千田翔太七段 (1818) 9.3662% 9.3448% 19.9164% 19.8553% 82.0666% 82.0495%
小林裕士七段 (1554) 0.1152% 0.1157% 0.6299% 0.6400% 17.9334% 17.9505%
阿久津主税八段 (1660) 0.4109% 0.4076% 1.4620% 1.4581% 13.7383% 13.6807%
藤井聡太二冠 (1980) 32.6841% 32.6868% 48.2375% 48.2634% 86.2617% 86.3193%
広瀬章人八段 (1812) 8.7589% 8.8034% 18.9836% 19.0216% 100.0000% 100.0000%

優勝確率本戦出場確率2回戦進出確率はシミュレーションを 10^6 回実行して、それぞれ何回優勝したかを数えることによって得られた近似値です。実行ごとに変化します。

優勝確率(厳密)本戦出場確率(厳密)2回戦進出確率(厳密) は bitDP (勝敗の全探索) により求められた厳密な値です。何回実行しても同じ値です。