昨日15日が、CODE VS 5.0の予選の最終日なのに、私は突発的な用事が出来て、もう今回のCODE VSは駄目だと思いました。
CODE VS 5.0、最終日だというのに大事なアポが入ってしまった…。これを並列化+OpenMPIでクラスター化すればR200~300ぐらい上がるはずで、十分に優勝圏内だと思っていたのだが、俺はもう駄目だ…。
— やねうら王 (@yaneuraou) March 15, 2016
これ以上、言い訳がましいことを言うつもりはない。今回ランキング上位の人たち、これだけの短い期間でこれだけ優秀なAIを作れるというのには正直脱帽だ。私が天才なのは疑いようのない事実だとして(冗談だが)、この世の中には他にも天才がいっぱいいるんだな…。
— やねうら王 (@yaneuraou) March 15, 2016
ようやく上位のAIのアラが理解できてきたころだったのに、残念で仕方ありません。(14日の夜の時点でレート737、35位)
CODE VS 5.0いまこんな感じ。なんかいくつか豪快にバグっているので、何度か自滅してますが…。レーティングがある程度飽和するまで流しておきます。 pic.twitter.com/sp7ADz6QJ6
— やねうら王 (@yaneuraou) March 14, 2016
上位の人たちのAI、リプレイを見ていると、本当によく出来ています。takaptさんのAIが私はお気に入りで、このAIっぽく動くように私は自分のAIのパラメーターを手で調整しました。でも回転斬りをなかなか使ってくれないので、回転斬り専用の評価関数まで書いたというのに…。
やねうらおさん、回転斬りで犬7匹飛ばすのヤバい。
— ヘクト_クリアカラー (@osrehun) March 15, 2016
しかし、ここから私は起死回生の策に出ます。
きっかけはthunderさん(前回予選2位通過)とchokudaiさんの、以下のツイート。
ちょうど30位がやねさんなのでシルバー勢は「やねうら王に勝ったぞぉぉぉ!」って自慢できますね。
— thunder (@thun_c) March 15, 2016
CodeVSまともにやってないけど、「やねうらおさんに勝ったぞー!うおおおー!」だけはちょっと言ってみたい
— chokudai(高橋 直大) (@chokudai) March 15, 2016
さすがにそれは悔しい!うおぉぉぉぉ、こうなりゃ並列化だけして放流してやるぜ!!!
うおおおお。それはさすがに悔しいので、いまから5分で並列化して(Microsoft PLLで)、もう少し順位をあげときます。 https://t.co/zfeqXf9tve
— やねうら王 (@yaneuraou) March 15, 2016
はい、書けた!
– for (auto& state_q0 : state_q[depth])
+Concurrency::parallel_for_each(state_q[depth].begin(), state_q[depth].end(), [&](State&s)— やねうら王 (@yaneuraou) March 15, 2016
テストラン?んなもん知らんがな。動くやろ…。常識的に考えて。
いきなり実戦投入、ポチッー!
— やねうら王 (@yaneuraou) March 15, 2016
ちなみに私の(AIの)npsは10Mnpsです。
並列化のおかげでレーティング60ほど上がって、現在21位。10Mnps(1000万局面/秒)ほど出てて、今回の参加者のなかではおそらく最速。評価関数このあといじって劇的な改善があると予選突破もあるデー!(でもいまからアポがあるのだ) pic.twitter.com/3Dt94uPS5z
— やねうら王 (@yaneuraou) March 15, 2016
よっしゃ!8位!予選突破が見えてた。いま9位のkwrigさんのy_kawanoさんが動いてこない限り、休憩。 pic.twitter.com/4dY8PqIddn
— やねうら王 (@yaneuraou) March 15, 2016
レーティングの低い相手を連続で何回引けるか(そしてレーティングの高い相手を1度引いたところで終了)という、黒ひげ危機一髪の様相を呈して参りました! https://t.co/28LNvPDRQf
— やねうら王 (@yaneuraou) March 15, 2016
追いぬかれたー!またリスキーダイスを回さないといけないのか…。とほほほほ。 pic.twitter.com/fuo8XIQbOo
— やねうら王 (@yaneuraou) March 15, 2016
よっしゃ~!!大吉が出たぞー!! pic.twitter.com/2RxYvoxatY
— やねうら王 (@yaneuraou) March 15, 2016
結果、予選4位通過。
私は本戦(26日)の次の日が電王戦特番に出演(関西将棋会館)なのでスケジュール的に本戦に出るかどうかはまだわかりませんが。
それにしてもtakaptさんのAIだけ頭一つ分ぐらい抜けている上に、今回のバージョンは1スレッド動作らしく、今回のCODE VS 5.0のPonanza的な立ち位置です。そしてtakaptさんのAIの並列化が(予選期間終了直後に)終わったらしく、こんなツイートが。
10スレッド vs 1スレッド
10 – 0だった
だいぶ強くなるっぽい?— ぷち@ぷよぷよAIを作っています (@takapt0226) March 15, 2016
うわぁぁぁぁぁぁ。
これは本戦が楽しみになってきました。(私は出れないかも知れませんが)
おめでとうございます。
端から見ていて「いくらなんでもオンライン参加おそすぎだろ絶対無理だぜこんなん!」と思ってたのにやってしまうなんて…
プログラミング挫折してたけど再開しようかな
「オンライン参加時期の違いが、戦力の決定的差でないということを教えてやる!」(ガンダム名言風に)というつもりで頑張りました。
hiretsuAIの攻略と並列化がカギだったのですかね?
もしかしたらhiretsuAIそのまま出せたら50位に入ったりして…
いずれにしてもこれでやねうら王miniの完成が秒読みになったことにwktkしてます。自分のパソコンHaswell以前のものなので買い替えて正座して待ってますよ!
HiretsuAIに一発喰らわないように調整して、かつ、高速化、評価関数のチューニング、あとバグをなくすことですね。バグがあって特定の移動の生成が抜けていたりするとそれだけで不利ですので…。
あら、すでに斜陽入ってるかと思いましたが、まさかの逆転劇とはさすがに魅せますね。
こういうところが屋根さんの魅力ですよね。
そこに痺れるあこがれる~。
おめでとうございます。
ありがとうございます(`・ω・´)ゞ
おめでとうございます!
1位の方がぷよぷよプログラマーだとは。
ぷよぷよもどきは作ったことあるけど、
対戦AIは難しくて手が出ませんでした。
俺もまた何か新しいゲーム作ろ。頑張ろう。
ぷよぷよプログラマーというのはtakaptさんのことですか?ぷよAIのフレームワーク(?)が以下のところで公開されていまして、
https://github.com/puyoai/puyoai
このフォルダの
puyoai/src/cpu/
のところが各作者が作ったAIになっています。2,30行書けば最低限の動作がするように作られています。
今回のCODEVSの参加者であればtakaptさんの他にcolunさんも作られています。colunさんのソースコードは至ってシンプルなので読んでみられては。
これめっちゃ面白いですね!
コードはサッパリ分りませんが。
ただのAIではなくカメラを使って画面をみてプレイさせるって、もうホビープログラマーもそこまで来てるんやなと。
面白いです。
ありがとうございます。
画面見てって言っても、Webカメラからの画像のうち、特定の矩形内に「赤」っぽい色が何%以上あったら赤ぷよやろ、みたいな適当な判定で、ぷよぷよの場合は正確に認識できますので、画像認識の部分は(ぷよぷよでは)そんなに問題ではないと思いますよ。
このブログでcodevs知って今年初めてプログラミングコンテスト参加してみたけど38位だったよ(´・ω・`)
一時期12位くらいだったのに…
やねさんの高速移動で犬の中に入り込んでの回転斬りが頭から離れない(;゜∀゜)
分身で犬のなかに入り込んでの回転斬りもありますのよ。(本当はそのときに分身を重ねられると死ぬので、risky moveなんですけど、このrisk判定にバグがあって、やらかしていた件)
やったッ!!さすがやねさん!
おれたちにできない事を
平然とやってのけるッ!
そこにシビれる!
あこがれるゥ!
ワハハハハハ
ClangのC++はclang++じゃね?知らんぐぁなw
clang++ はインストールされてないようなのです。禿げそうです…。担当窓口の方にメールで質問中です。