やねうら王のほう、王手将棋に対応させた。王手をするとその時点で勝ちという変則ルールの将棋である。
そろそろ寒くなってきたので暖房機(Xeon 40コア×5台)を回したいのだが、次のうち作って欲しいものを教えて欲しい。
— やねうら王 (@yaneuraou) November 15, 2016
いま一つ前のツイートによるアンケートの結果に愕然としている。私が一番作りたかった世界最強の55将棋の人気の無さよ。55将棋でこの先20年間の不敗神話を築こうと思っていたのにここまで人気がないとは…。王手将棋に圧倒的な差で負けるとは何事だ。仕方がない。結果は結果として受け止めよう。
— やねうら王 (@yaneuraou) November 16, 2016
とりあえず、世界最強の王手将棋を作るところからだ。いま月末になんとか高校で講義するための講義資料作ったりしてて忙しいので、来月入ってからな。世界最強のぷよぷよAIのほうは当然ながら強化学習を使うつもりなんだけど、かなりfeature engineeringが難しい。
— やねうら王 (@yaneuraou) November 16, 2016
評価関数を学習させたりして世界最強の王手将棋を作るつもりであった、
ところが、真やねうら王のソースコードから、王手を詰み扱いするようにソースコードを少し変えただけのものがこれまた滅法強いのである。
たぶん普通の将棋のレーティングで言うとR3000には達していて、王手将棋のプロというのは存在しないだろうから、もしかすると、もうこの時点でこれに勝てる人類はいないのではないかという状態である。
そこでちょっと意見を募りたいので王手将棋エディションを仮公開するので遊んでみて欲しい。
https://drive.google.com/open?id=0Bzbi5rbfN85NX1V1VkhwVzFrTzg
→ 2016/11/22 やねうら王のGitHubのほうで正式公開しましたので、そちらからdownloadしてください。
※ 遊び方についてはreadmeを参照のこと。
※ 評価関数は、真やねうら王のものを使ってください。やねうら王のGitHub( https://github.com/yaneurao/YaneuraOu )からダウンロード出来ます。
※ いまのところAVX2専用。要望があれば他のCPU用の実行ファイルも用意します。
※ 定跡ファイルはまだ用意してません…が、用意する必要があるかすらよくわかりません。 → 用意しました!GitHubのほうからダウンロードしてください。
「弱すぎだろw こうすると楽勝www」みたいな攻略情報もコメント欄にお寄せください。今後の開発の参考にさせていただきます。
棚からぼたもちってやつですかね。
資料作ってるっていう何とか高校ってドワンゴのあれですか?
N校の競合校ですなー。
へぇ、N高とは違うんですね。
てっきりドワンゴがらみの仕事かと思いましたけど。主に将棋とプログラム関係の。
そしたら、どこだろう??競合って・・・。
面白そうですね。
futilityやrazoringなどの枝刈りも残したままですか?これらは評価関数が本将棋用のものである場合では探索に悪影響を及ぼすような。
評価関数自体、本将棋用のものでは足枷になる気がしますが、駒得のみ、あるいは駒得もなしの勝ち負けのみの評価関数と比べても本将棋用の評価関数を使ったほうが強かったんでしょうか?評価関数をきちんと学習させていない現状では、npsが大正義なのでは?
> 駒得のみ、あるいは駒得もなしの勝ち負けのみの評価関数と比べても本将棋用の評価関数を使ったほうが強かったんでしょうか?
コンピューター側の指し手を見るとわかると思いますが、本将棋用の評価関数が攻めや守りの上でうまく機能してます。持久戦のときに組み上げるべき形は本将棋とそれほどかけ離れてはいないのでしょうね。
futilityやrazoring自体が有効かどうかはそこまで検証してないのでわかりません。とりあえず、この王手将棋に必勝法等が発見されてからの話ですなー。
指してみましたが、1回目で勝ててしまいました。王手将棋特有の「全部捨てて金銀を得る」という筋が読みから抜けている感じです。やはり王手将棋の駒組は本将棋とは違ってかなり異質なので、本将棋用の評価関数は王手将棋には向かない気が……
先手:人間
後手:YaneuraOu Check Shogi KPPT 4.14 64AVX2
▲7六歩 △5二玉 ▲6八金 △8四歩 ▲9六歩 △6二銀
▲9七角 △5一玉 ▲7七桂 △3四歩 ▲5八金上 △5二金右
▲6五桂 △5五角 ▲4八銀 △6四歩 ▲8八角 △4二金上
▲5五角 △6五歩 ▲7一角 △4一玉 ▲6二角成 △1四歩
▲3二銀
まで25手で先手の勝ち
ほほー..。コンピュータ側は1手何秒ぐらいの設定ですか?
6スレ10秒です。
ハッシュは1GB、CPUはi7 5820Kです。
短いと言われればそうですが、本将棋だとこの設定ではまず勝てないので……
なるほど、やねうら王の王手将棋、まだまだ強くしないといけないようですなー。わるおさんの本将棋の棋力はどれくらいですか?
(´;ω;`)
ソフトが先手の時の必勝パターンを2つ発見しました。途中手順を変えてくることもありますが、大体同じ展開になります。
初手76歩の場合、42金、26歩、62銀、48銀、34歩、68金、88角成、同銀、33桂、25歩、52金右と進めて24歩には45桂、46角、57桂成、同角、95角で後手必勝。56角には74歩で95角から73桂の筋で後手必勝です。
初手26歩の場合、84歩、25歩、32金、76歩、42銀、77角、62銀、66歩、85歩、48銀、84飛、78金、14歩、68銀、54飛で後手必勝。
ソフトは54飛から13角の筋に気が付かないようです。
もう必勝パターンを見つけた…だと…!?
これはバージョンアップせねば…。来月の新バージョンにご期待ください!!
王手将棋686と対戦させたいのでSSE版かソースが欲しいです。
ソースコード整理中なので、とりあえずsse2用バイナリを置いておきます。
https://drive.google.com/open?id=0Bzbi5rbfN85NeFJCMlRDRjc1WDg
ありがとうございます!
残念ながら起動できませんでした。。。
vmovups ymm0,ymmword ptr [rax]
で落ちていてggrks だとAVX命令のようで。。
あれ…マジですか…。それは申し訳ないです(´;ω;`)
ソースコードをGitHubのほうに反映させておきましたのでお許しを…。
ありがとうございます。動作しました。
1回目で勝ってしまいましたが、後半は明らかに詰めろも受けなかったので、設定見たら時間設定を間違ってdelay2をデフォルト1120のままで1秒対戦してましたw
直したらまぁ勝てる気はしませんよね。
動いたようで何よりです(`・ω・´)b
王手将棋のShogi686との対戦させたときの勝率、良かったら教えてくださいませ。
設定間違えたままの1秒対戦でyaneuraou 全勝だったので4戦しかしてませんでしたが一応3秒対戦しても2勝でした。なので6-0-0です。(少なすぎますけど。)
(`・ω・´)ゞ