Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

第6回 社内プログラミングコンテスト 結果発表会 量子リバーシ

1,431 views

Published on

2017-2018年に開催された第6回Fixstars社内プログラミングコンテストの結果発表スライドです。

Published in: Software
  • Be the first to comment

  • Be the first to like this

第6回 社内プログラミングコンテスト 結果発表会 量子リバーシ

  1. 1. 第6回 社内プログラミングコンテスト 結果発表会 量子リバーシ Copyright © Fixstars Corporation. All rights reserved. 16 Feb. 2018
  2. 2. 問題 社内プログラミングコンテスト
  3. 3. 問題を決めるまで  これまでの社内プロコン  第1回 「戸口調査データによる年収額の予測」  第2回 「6枚とれ!」  第3回 「ガイスター(GEISTER)」  第4回 「コラッツリス(Collatzris)」  第5回 「ライフゲームGO」  量子コンピュータチームが発足したのでそれに因んだテーマに!  量子の概念を取り入れたいがどのように?  考えたこと  量子関連をネットで調べまくり  量子三目並べという量子の概念を取り入れた〇×ゲームがあるようだ  それとリバーシ(オセロ)を組み合わせたら面白いかも!  量子リバーシ誕生!  構想3ヶ月  実装3日  デバッグ含めたらもっと掛かってます…💦
  4. 4. 量子リバーシのルール  通常のリバーシは裏表が白と黒になっている石を使いますが、量子リバ ーシではさらに古典石と量子石という概念が存在します。古典石は通常 のリバーシの石と同じですが、量子石は存在が確定していない状態を表 します。  量子石は2個で1組となっており、自分の手番ではこの2個の量子石を盤 上に打つことになります。この1組の量子石のどちらか一方が古典石に 変わる時、もう一方は消滅します。  6×6マスの盤上で黒白交互に量子石2個を古典石が置かれていないマスに 別々に置いていきます。同じ手番に置いた量子石同士および同じマスに ある量子石同士は繋がっているとみなし、それらが循環するように繋が れば循環エンタングルメントが発生したといいます。循環エンタングル メントが発生した量子石のあるマスでは、量子石から古典石に変化しま す。古典石に変化する際、リバーシのルールが適用され、相手の古典石 を自分の古典石で挟み込むことができたら相手の古典石が自分の古典石 に変わります。これを繰り返していき、最後は6×6=36マスすべてが黒 か白の古典石で埋まることになります。そして、より多くの古典石を得 た方が勝ちになります。 詳細は説明書を お読みください!
  5. 5. 対戦フロー
  6. 6. ただしくんとあけみさん 社内プロコン恒例のサンプルコード ただしくん  Python  戦略: 完全にランダムに2マス置く  循環エンタングルメントが発生したらランダムに選ぶ あけみさん  C++11  戦略: 外側のマスに2マス置く  循環エンタングルメントが発生したらランダムに選ぶ 今回もあけみさんが結構強かったという声がありま した
  7. 7. 20名の方が参加 (敬称略・アルファベット順)  過去最多の参加人数  ありがとうございます!  外部参加者は3名  大船組が大躍進 参加者 2000notes akemi akihiro ddsn homa logicmachine machi masakt mirai mishima-san motomi.aoki Mr.Saturday Mr.Sunday mutnauq nuip ofuna_3 panda QIX sekiguchi tadashi tsukammo yy
  8. 8. 賞品 ギークが喜ぶ(?)
  9. 9. 上位賞品 優勝賞品: Nintendo Switch 2位賞品: ソニー 電子ペーパー学習マルチリモコン 3位賞品: Google Home
  10. 10. 4~10位賞品 4~6位賞品: めざましカーテン mornin' 7~10位賞品: アイスクリームスプーン
  11. 11. 参加賞: オリジナルTシャツ 優勝者には王冠が…!
  12. 12. 対戦結果&プログラム解説
  13. 13. 対戦方法 スコア算出  全参加者に対して総当たり戦を行う  対戦者ごとに先攻・後攻で50対戦ずつ計100対戦を行い、そ の勝数の合計がスコアとなる  スコアは、勝ちで3点、引き分けで1点、負けで0点  対戦ごとのスコアの総和を最終スコアとする  最終スコアでランキングを行う 実行時間  一回の実行の時間制限は10秒  22人(内2人はただしくんとあけみさん)の総当たり戦  最大10秒×2100対戦*22人=462000秒≒128時間≒5日超  実際には全員が時間制限いっぱいまで実行するわけではない  実際の対戦時間: 約28時間
  14. 14. 中間ランキング結果 (2018/1/19 12:00) 順位 氏名 スコア 勝数 負数 引分 勝率 言語 最終投稿日時 1*** 3279 1076 73 51 0.8967 C# 2018-01-19 00:09 2*** 2991 990 189 21 0.8250 C++ 2018-01-19 11:28 3*** 2668 874 280 46 0.7283 Java 2018-01-11 22:56 4*** 2111 692 473 35 0.5767 C++ 2018-01-19 11:23 5*** 1952 588 424 188 0.4900 C++ 2018-01-17 22:26 6*** 1936 590 444 166 0.4917 Go 2017-12-20 19:44 7*** 1881 583 485 132 0.4858 Python 2018-01-19 09:52 8*** 1782 562 542 96 0.4683 C++ 2018-01-05 22:40 9*** 1502 465 628 107 0.3875 C++ 2018-01-17 17:14 10*** 1430 453 676 71 0.3775 Python 2017-12-23 21:42 11*** 835 272 909 19 0.2267 C++ 2017-11-30 19:00 12*** 349 111 1073 16 0.0925 Python 2017-11-30 19:00 13*** 208 68 1128 4 0.0567 C++ 2018-01-19 02:53 1200対戦×13名 最大スコア3600点
  15. 15. 最終ランキング結果 (2018/2/6 18:00) 順位 氏名 スコア 勝数 負数 引分 勝率 言語 最終投稿日時 1QIX 5406 1751 196 153 0.8338 C++ 2018-01-31 10:31 2tsukammo 5259 1721 283 96 0.8195 Java 2018-01-31 05:24 3logicmachine 5193 1692 291 117 0.8057 C++ 2018-01-31 11:31 4*** 5006 1618 330 152 0.7705 C# 2018-02-02 11:59 5*** 4798 1552 406 142 0.7390 C++ 2018-02-06 17:27 6*** 4373 1405 537 158 0.6690 C++ 2018-02-06 10:11 7*** 4203 1346 589 165 0.6410 Python 2018-02-06 13:37 8*** 4115 1312 609 179 0.6248 Python 2018-02-05 22:53 9*** 4102 1308 614 178 0.6229 C++ 2018-02-05 03:12 10*** 3314 1049 884 167 0.4995 Python 2018-02-06 17:49 11*** 2818 891 1064 145 0.4243 C++ 2018-01-05 22:40 12*** 2707 807 1007 286 0.3843 C++ 2018-01-31 01:09 13*** 2644 815 1086 199 0.3881 Go 2018-02-02 11:15 14*** 2321 734 1247 119 0.3495 Python 2017-12-23 21:42 15*** 2272 685 1198 217 0.3262 C++ 2018-01-26 19:00 16*** 2141 672 1303 125 0.3200 Python 2018-02-05 19:38 17*** 1985 592 1299 209 0.2819 Nim 2018-02-02 09:20 18*** 1461 417 1473 210 0.1986 C++ 2018-02-02 11:25 19*** 1442 409 1476 215 0.1948 Python 2018-02-02 07:43 20*** 1110 352 1694 54 0.1676 C++ 2017-11-30 19:00 21*** 576 178 1880 42 0.0848 Python 2018-02-06 09:45 22*** 364 104 1944 52 0.0495 Python 2017-11-30 19:00 2100対戦×22名 最大スコア6300点
  16. 16. 対戦結果の解析 勝ち 負け 引分
  17. 17. TLE (Time Limit Exceeded) Mr.Sunday vs. 2000notes : Mr.Sunday [TLE] Mr.Sunday vs. 2000notes : Mr.Sunday [TLE] akihiro vs. 2000notes : akihiro [TLE] akihiro vs. 2000notes : akihiro [TLE] ofuna_3 vs. 2000notes : ofuna_3 [TLE] tsukammo vs. nuip : nuip [TLE] tsukammo vs. nuip : nuip [TLE] 2000notes vs. tsukammo : tsukammo [TLE] 2000notes vs. Mr.Sunday : Mr.Sunday [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] 2000notes vs. logicmachine : logicmachine [TLE] logicmachine vs. yy : logicmachine [TLE] logicmachine vs. yy : logicmachine [TLE] 2000notes vs. akihiro : akihiro [TLE] 2000notes vs. akihiro : akihiro [TLE] 2000notes vs. akihiro : akihiro [TLE] logicmachine vs. 2000notes : logicmachine [TLE] logicmachine vs. 2000notes : logicmachine [TLE] logicmachine vs. 2000notes : logicmachine [TLE] logicmachine vs. 2000notes : logicmachine [TLE] Mr.Sunday vs. yy : Mr.Sunday [TLE] yy vs. tsukammo : yy [TLE] tsukammo vs. QIX : QIX [TLE] tsukammo vs. QIX : QIX [TLE] tsukammo vs. QIX : QIX [TLE] tsukammo vs. QIX : QIX [TLE] tadashi vs. yy : tadashi [TLE] QIX vs. tsukammo : QIX [TLE] akihiro vs. yy : akihiro [TLE] akihiro vs. yy : akihiro [TLE] akihiro vs. yy : akihiro [TLE] akihiro vs. yy : akihiro [TLE] tsukammo vs. yy : tsukammo [TLE] tsukammo vs. yy : tsukammo [TLE] tsukammo vs. yy : tsukammo [TLE] ddsn vs. yy : ddsn [TLE] tsukammo vs. mirai : mirai [TLE] 23100対戦中 47回発生 (約0.2%)
  18. 18. 賞品授与
  19. 19. 入賞者 優勝: QIX 2位: tsukammo 3位: logicmachine 4位: *** 5位: *** 6位: *** 7位: *** 8位: *** 9位: *** 10位: ***
  20. 20. コンテストを終えて 第6回社内プログラミングコンテスト
  21. 21. 感想など  難しかったけどやりごたえあり?  あけみさんが結構手ごわいとの声  毎年言われている  昨年の参加人数9名から20名に大幅増加  過去最大の参加数  アルゴリズムに工夫あり  モンテカルロ木探索(MCTS)  α-β法  ヒューリスティック  ビットボード  高速化  持ち時間10秒はかなり厳しかった  SIMD処理などを伝っているところはフィックスターズっぽい  思ったより勝敗にばらつきが出た  戦略がダイレクトに反映  対戦させるのが面白かった  Webサービスにして遊べるようにしても面白いかも
  22. 22. コンテストに参加していただいた皆様 運営を手伝っていただいた皆様 ありがとうございました! 来年度も社内プログラミング コンテストをやります! 是非、ご参加ください!

×