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.
第5回
社内プログラミングコンテスト
結果発表会
ライフゲームGO
Copyright © Fixstars Corporation. All rights reserved.
10 Feb. 2017
問題
社内プログラミングコンテスト
問題を決めるまで
 これまでの社内プロコン
 第1回 「戸口調査データによる年収額の予測」
 第2回 「6枚とれ!」
 第3回 「ガイスター(GEISTER)」
 第4回 「コラッツリス(Collatzris)」
 今回は機械学習関...
問題: ライフゲームGO
コンウェイのライフゲームでは細胞の誕生、進化、
淘汰が表現されるが、「ライフゲームGO」では細
胞を囲碁の碁石に見立てて盤上に配置し、相手より
も多くの細胞を繁殖させて陣地を確保することを目
的とする
参加プレイヤ...
ゲームルール
ビジュアライザ
対戦フロー
それぞれのプレイヤーが生セルを20個ずつ置くまで繰り返し
制御プログラム
lifegame_go.py
対戦プログラム
(コンテスト参加者が作成)
初期情報
init 自分の名前 自分の順番 相手の名前 高さ 幅
初期情報を受け取っ...
ただしくんとあけみさん
社内プロコン恒例のサンプルコード
ただしくん
 Python
 自分のセルの周りに自分と相手のセルが1つずつ置いてある場
合にセルを置く
 最初の20個はランダムに置く
あけみさん
 C++11
 すべて...
9名の方が参加 (敬称略・アルファベット順)
 うち、社外から3名 (アルバイト・インターン含む)
 結構難しかったかも
社内
 *****
 *****
 *****
 *****
 *****
 *****
社外
 ...
賞品
ギークが喜ぶ(?)
上位賞品
2位賞品: Philips Hue スターターセット v2
優勝賞品: MESH アドバンスセット 3位賞品: NETATMO パーソナル
ウェザーステーション
4~6位賞品: MaBeee
参加賞: オリジナルTシャツ
対戦結果
対戦方法
スコア算出
 全参加者に対して総当たり戦を行う
 対戦者ごとに先攻・後攻で50対戦ずつ計100対戦を行い、そ
の勝数の合計がスコアとなる
 対戦ごとのスコアの総和を最終スコアとする
 最終スコアでランキングを行う
実行時間...
暫定ランキング結果
順位 氏名 勝数 負数 引分 勝率 言語 最終投稿日時
1***** 200 0 0 1.0000 C++ 2017-01-17 09:51
1***** 200 0 0 1.0000 C++ 2017-01-20 11:3...
最終ランキング結果
順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時
1
2
3
4
5
6
7
8
9
10
11
順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時
1
2
3
4
5
6
7
8
9
10
11tadashi 1...
対戦結果の解析
優勝者
準優勝者
コンテストを終えて
第4回社内プログラミングコンテスト
感想など
昨年より難しかった?
 あけみさんが結構手ごわいとの声
 昨年の参加人数14名から9名に減少
 一昨年の参加人数と同じ
アルゴリズムに工夫あり
 モンテカルロ木など、ちょっとAlphaGoっぽい
 intrinsicなど...
コンテストに参加していただいた皆様
運営を手伝っていただいた皆様
ありがとうございました!
来年も社内プログラミング
コンテストをやります!
是非、ご参加ください!
Upcoming SlideShare
Loading in …5
×

第5回 社内プログラミングコンテスト 結果発表会 ライフゲームGO

793 views

Published on

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

Published in: Software
  • Be the first to comment

  • Be the first to like this

第5回 社内プログラミングコンテスト 結果発表会 ライフゲームGO

  1. 1. 第5回 社内プログラミングコンテスト 結果発表会 ライフゲームGO Copyright © Fixstars Corporation. All rights reserved. 10 Feb. 2017
  2. 2. 問題 社内プログラミングコンテスト
  3. 3. 問題を決めるまで  これまでの社内プロコン  第1回 「戸口調査データによる年収額の予測」  第2回 「6枚とれ!」  第3回 「ガイスター(GEISTER)」  第4回 「コラッツリス(Collatzris)」  今回は機械学習関連にしたい  第1回はまさにそれ  でもデータセットを用意するのが大変  考えたこと  2016年で機械学習といえばディープラーニングを使ったAlphaGoが話 題になった  そしてPok〇monGOも話題になった  合わせたら楽しいかも? データセットを用意する必要もないし!  ライフゲームGO誕生!  構想3ヶ月  実装3日
  4. 4. 問題: ライフゲームGO コンウェイのライフゲームでは細胞の誕生、進化、 淘汰が表現されるが、「ライフゲームGO」では細 胞を囲碁の碁石に見立てて盤上に配置し、相手より も多くの細胞を繁殖させて陣地を確保することを目 的とする 参加プレイヤーは、囲碁のような静的な配置とライ フゲームのような動的な世代変化の両面を考慮した 対戦プログラムを作成して、ほかの参加プレイヤー たちの対戦プログラムと競い合う
  5. 5. ゲームルール
  6. 6. ビジュアライザ
  7. 7. 対戦フロー それぞれのプレイヤーが生セルを20個ずつ置くまで繰り返し 制御プログラム lifegame_go.py 対戦プログラム (コンテスト参加者が作成) 初期情報 init 自分の名前 自分の順番 相手の名前 高さ 幅 初期情報を受け取ったレスポンスを返す 改行 フィールド内の生セルの位置情報のリスト play 生セルの位置情報のリスト 生セルを置く位置を返す 生セルの位置情報 終了 終了 終了通知 quit 初期情報を受け取ったレスポンスを返す 改行 3ステップだけ世代を進めて 陣地の数で勝敗を決定する
  8. 8. ただしくんとあけみさん 社内プロコン恒例のサンプルコード ただしくん  Python  自分のセルの周りに自分と相手のセルが1つずつ置いてある場 合にセルを置く  最初の20個はランダムに置く あけみさん  C++11  すべてのマスについてセルを置いたときに3ステップ進めて最 も自分の陣地が大きくなる置き方を選択する 今回は、あけみさんが結構強かったという声がありま した
  9. 9. 9名の方が参加 (敬称略・アルファベット順)  うち、社外から3名 (アルバイト・インターン含む)  結構難しかったかも 社内  *****  *****  *****  *****  *****  ***** 社外  *****  *****  ***** 参加者
  10. 10. 賞品 ギークが喜ぶ(?)
  11. 11. 上位賞品 2位賞品: Philips Hue スターターセット v2 優勝賞品: MESH アドバンスセット 3位賞品: NETATMO パーソナル ウェザーステーション 4~6位賞品: MaBeee
  12. 12. 参加賞: オリジナルTシャツ
  13. 13. 対戦結果
  14. 14. 対戦方法 スコア算出  全参加者に対して総当たり戦を行う  対戦者ごとに先攻・後攻で50対戦ずつ計100対戦を行い、そ の勝数の合計がスコアとなる  対戦ごとのスコアの総和を最終スコアとする  最終スコアでランキングを行う 実行時間  一回の実行の時間制限は5秒  11人(内2人はただしくんとあけみさん)の総当たり戦  5秒*1000対戦*11人=55000秒≒15時間  実際には全員が時間制限いっぱいまで実行するわけではない  実際の対戦時間: 約9時間
  15. 15. 暫定ランキング結果 順位 氏名 勝数 負数 引分 勝率 言語 最終投稿日時 1***** 200 0 0 1.0000 C++ 2017-01-17 09:51 1***** 200 0 0 1.0000 C++ 2017-01-20 11:34 3***** 198 2 0 0.9900 C++ 2017-01-11 18:57 4***** 197 0 3 0.9850 C++ 2017-01-13 10:50 5***** 195 4 1 0.9750 C++ 2017-01-13 15:01 6***** 193 7 0 0.9650 C++ 2017-01-12 13:57 7***** 185 13 2 0.9250 C++ 2017-01-11 20:49 8***** 149 45 6 0.7450 Python 2017-01-20 08:55 8***** 149 51 0 0.7450 C++ 2016-11-14 18:00 10***** 147 53 0 0.7350 Ruby 2017-01-23 15:45 11***** 57 141 2 0.2850 Python 2016-11-14 18:00
  16. 16. 最終ランキング結果 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3 4 5 6 7 8 9 10 11 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3 4 5 6 7 8 9 10 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3 4 5 6 7 8 9 10akemi 214 779 7 1000 Ruby 2016-11-14 18:00 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3 4 5 6 7 8 9satoru.horie 301 683 16 1000 C++ 2017-01-23 15:45 10akemi 214 779 7 1000 Ruby 2016-11-14 18:00 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3 4 5 6 7 8kunitaka 304 666 30 1000 Python 2017-01-20 08:55 9satoru.horie 301 683 16 1000 C++ 2017-01-23 15:45 10akemi 214 779 7 1000 Ruby 2016-11-14 18:00 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3 4 5 6 7okaduki 425 569 6 1000 C++ 2017-01-12 13:57 8kunitaka 304 666 30 1000 Python 2017-01-20 08:55 9satoru.horie 301 683 16 1000 C++ 2017-01-23 15:45 10akemi 214 779 7 1000 Ruby 2016-11-14 18:00 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3 4 5 6hiroyuki.aono 545 446 9 1000 C++ 2017-01-11 18:57 7okaduki 425 569 6 1000 C++ 2017-01-12 13:57 8kunitaka 304 666 30 1000 Python 2017-01-20 08:55 9satoru.horie 301 683 16 1000 C++ 2017-01-23 15:45 10akemi 214 779 7 1000 Ruby 2016-11-14 18:00 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3 4 5shigeki.akiyama 585 408 7 1000 C++ 2017-01-20 11:34 6hiroyuki.aono 545 446 9 1000 C++ 2017-01-11 18:57 7okaduki 425 569 6 1000 C++ 2017-01-12 13:57 8kunitaka 304 666 30 1000 Python 2017-01-20 08:55 9satoru.horie 301 683 16 1000 C++ 2017-01-23 15:45 10akemi 214 779 7 1000 Ruby 2016-11-14 18:00 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3 4yuki.matsuda 588 405 7 1000 C++ 2017-01-11 20:49 5shigeki.akiyama 585 408 7 1000 C++ 2017-01-20 11:34 6hiroyuki.aono 545 446 9 1000 C++ 2017-01-11 18:57 7okaduki 425 569 6 1000 C++ 2017-01-12 13:57 8kunitaka 304 666 30 1000 Python 2017-01-20 08:55 9satoru.horie 301 683 16 1000 C++ 2017-01-23 15:45 10akemi 214 779 7 1000 Ruby 2016-11-14 18:00 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2 3t_hiragushi 683 305 12 1000 C++ 2017-01-13 10:50 4yuki.matsuda 588 405 7 1000 C++ 2017-01-11 20:49 5shigeki.akiyama 585 408 7 1000 C++ 2017-01-20 11:34 6hiroyuki.aono 545 446 9 1000 C++ 2017-01-11 18:57 7okaduki 425 569 6 1000 C++ 2017-01-12 13:57 8kunitaka 304 666 30 1000 Python 2017-01-20 08:55 9satoru.horie 301 683 16 1000 C++ 2017-01-23 15:45 10akemi 214 779 7 1000 Ruby 2016-11-14 18:00 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1 2akihiro.takagi 836 158 6 1000 C++ 2017-01-13 15:01 3t_hiragushi 683 305 12 1000 C++ 2017-01-13 10:50 4yuki.matsuda 588 405 7 1000 C++ 2017-01-11 20:49 5shigeki.akiyama 585 408 7 1000 C++ 2017-01-20 11:34 6hiroyuki.aono 545 446 9 1000 C++ 2017-01-11 18:57 7okaduki 425 569 6 1000 C++ 2017-01-12 13:57 8kunitaka 304 666 30 1000 Python 2017-01-20 08:55 9satoru.horie 301 683 16 1000 C++ 2017-01-23 15:45 10akemi 214 779 7 1000 Ruby 2016-11-14 18:00 11tadashi 103 897 0 1000 Python 2016-11-14 18:00 順位 氏名 勝数 負数 引分 合計 言語 最終投稿日時 1(優勝者) 863 131 6 1000 C++ 2017-01-17 09:51 2(準優勝者) 836 158 6 1000 C++ 2017-01-13 15:01 3***** 683 305 12 1000 C++ 2017-01-13 10:50 4***** 588 405 7 1000 C++ 2017-01-11 20:49 5***** 585 408 7 1000 C++ 2017-01-20 11:34 6***** 545 446 9 1000 C++ 2017-01-11 18:57 7***** 425 569 6 1000 C++ 2017-01-12 13:57 8***** 304 666 30 1000 Python 2017-01-20 08:55 9***** 301 683 16 1000 C++ 2017-01-23 15:45 10***** 214 779 7 1000 Ruby 2016-11-14 18:00 11***** 103 897 0 1000 Python 2016-11-14 18:00
  17. 17. 対戦結果の解析 優勝者 準優勝者
  18. 18. コンテストを終えて 第4回社内プログラミングコンテスト
  19. 19. 感想など 昨年より難しかった?  あけみさんが結構手ごわいとの声  昨年の参加人数14名から9名に減少  一昨年の参加人数と同じ アルゴリズムに工夫あり  モンテカルロ木など、ちょっとAlphaGoっぽい  intrinsicなどを使っていてフィックスターズっぽい 思ったより勝敗にばらつきが出た  アルゴリズムがダイレクトに反映された 対戦させるのが面白かった  Webサービスにして遊べるようにしても面白いかも
  20. 20. コンテストに参加していただいた皆様 運営を手伝っていただいた皆様 ありがとうございました! 来年も社内プログラミング コンテストをやります! 是非、ご参加ください!

×