Procon29参加記録 (競技部門ソースコード公開)

"第29回 全国高等専門学校プログラミングコンテスト"お疲れさまでした。

以下しばらく私の日記です。興味がある方を除き大見出し、”競技部門ソースコード公開”まで飛ばしてください。

いつもお世話になっております。Nasatameです。
改めて、Procon29お疲れさまでした。
今年も仙台名取・競技部門チームの一員として参加させていただきました。
思い出してみると4年目です。石畳職人Z、人力パズコン、筋肉優先探索いろいろありました。
毎年思いますが、私は人に恵まれてますね。こればっかりは運があるなと思います。
去年と比べてみると少しだけいろいろできるようになったかなとも思いますが、いまだに至らないところだらけです。

早速ですが、

何と!!今年、仙台名取は競技部門優勝しました。

大躍進ですね。私もびっくりしてます。
感無量という感じです。立派な賞状も頂きました。

まあ欲を言えばですが。
ボランティアの収集方法というかを何とかしてほしい。(システムの改善などの方法で)
ルールはこれでもよかったから、前もってマップサイズとターン数を周知しておいてほしい。
当日にレギュレーション違反、遅延をやらかさないでほしい。
ぐらいですかね。

したことをつらつらと。

5月ルール発表後

基本となるGUIを一人で実装してました。
でも、かなり使いづらい代物で結局チーム開発の際に放棄。
この時、方針を機械学習に決定。まずデータ集めをすることに。

6~7月

テスト等忙しくて、ほとんど進まず何とか時間を絞り出して対戦用GUIのみを作成。

8月

私がインターンでいない間、後輩たちに対戦データを収集させる。
帰ってきてからはぼちぼち機械学習してた。
確か8月の後半から、本番用GUI制作開始。
でも結局ほとんどコピペで1,2週間ぐらいで完成。
なぜか、ビームサーチを制作。なんでだっけ?

9月

夏休み終了。
機械学習全然学習が進まず結局勝利予測6割程度。
全然進んでないやばいとか言いながらレポートに追われる。
ちょくちょくビームサーチを強化。

うちの最高傑作”千手観音高橋君完成”!!!圧倒的勝利。

確か鏡(上げた手の方向を確認するため)もこのころ作成。
抜群の安定感を生み出した。

10月

1週目:
頑張ったけど結局データが足りないことが発覚。
データを急場で増やすためにアルファベータサーチを制作。
2週目:
データを増やしすぎて今度は、ディープラーニング用のPCにデータを移せなくなる。
絶望
SVMに走るがやっぱりうまくいかない。52%。
3週目:
全てに絶望してアルファベータサーチ等の強化を始めるが結局うまくいかず、
ビームサーチ最強説が浮上。
4週目:
人力練習と部誌作成に追われる。

これ以降は、後輩と一緒だから省略。
後輩のブログのリンク張っておきます。(めんどくさくなったのは秘密だよ!)

yasaijuice-ryouta.hatenablog.com

何もないのもさみしいので、写真を貼っておきます。

うちのSourceTree(限界開発の跡が見られないのは限界過ぎてgit使ってなかったから。)
f:id:nasatame:20181103135131p:plain

行きの飛行機内からの富士山
f:id:nasatame:20181103135558j:plain

徳島ラーメン
f:id:nasatame:20181103135638j:plain

優勝して先生におごってもらった阿波尾鶏。最高!!!!!!!(写真が鳥じゃないのはバグです。おいしすぎて撮り忘れた)
f:id:nasatame:20181103135613j:plain

競技部門ソースコード公開

一番のお楽しみ競技部門ソースコード公開を行おうと思います。
部誌やレポートなどいろいろドタバタしてて2週間近く過ぎてしまいました。
大変お待たせ致しました。

以下のリンクがレポジトリです。

procon29_natori_open
実行するときの注意点として、
Procon29.hpp内の各種定数の設定を行ってください。
主要なものとして、NotLoadedQRをfalseにするとQRコードを読み取るモードになります。
trueにすると、前回読み込んだマップを開きます。(初回起動はエラー)
ランダムに生成されたマップで起動したいときは、

NotLoadedQR = true;
IsRandom = true;

にしておいてください。