異をとなえん |

コンピュータ将棋で入玉に強くなるアイディア

2013.02.16 Sat

22:05:43

コンピュータ将棋は入玉模様の将棋に弱い。
これにどう対応したらいいか一つアイディアが浮かんだので書いてみる。

結論から言うと、トライルールで指すように実装して、トライが確定したら持将棋モードに移行するというものだ。
トライルールは何かと言うと、先崎棋士が提案した持将棋に替わるルールで、自玉が相手玉の位置(5一か5九)に到達すれば勝ちというものだ。
ただし、その位置に相手の駒の効きがあってはならないとする。

参考:その一 持将棋とトライルールその九 トライルール運用状況

コンピュータが入玉模様の将棋を苦手なのは、結論が長手数のかなたに飛んでいってしまって、コンピュータの有限の個数で予測できる範囲を超えてしまうからだ。
最終的な結論が出る前に形勢を判断するのが評価関数だが、持将棋と普通の将棋では全然に異なっているので両立できない。
これはプロ棋士が言う、入玉模様の将棋は将棋とゲーム性が違っている、と評することからもわかる。
だから、現在のコンピュータは入玉模様の将棋は苦手だ。
詰ましにいって自爆するのをよく見ることになる。

ではどうすればいいか。
入玉模様の将棋であることを擬似的に判断できれば、それでモードを変更して戦うことができる。
擬似的な判断方法がトライルールというわけだ。

トライと入玉はどのくらい一緒に扱えるだろうか。

まず、入玉が確定すればトライが確定するのは確実である。
玉が相手陣営に入って詰まなくなるということは、金を量産できる状態を意味する。
その金を寄せていけば絶対にトライできる。
守備側はどんなに努力しても桂香歩では守りようがない。

それでは逆にトライが確定すれば入玉が確定したと言えるだろうか。
コンピュータがトライルールで動作するとなると、トライできたはいいが詰まされる可能性もある。
トライして詰まされるというのは、たとえば相手が人間だとわざと玉の侵入を許し、トライした後詰ますような技だ。
これはトライが確定したと読み切れた時点で持将棋モードに移行すれば問題はない。
問題なのはトライが確定しているのに、本質的に入玉がはっきりしていない状況だ。
ただこの可能性はそれほど大きくはないと思う。

トライルールで中央からトライを目指そうとすれば詰まされる可能性が大きくなる。
できるだけ隅から寄っていった方がいい。
これは普通に入玉を目指す方法と変わらないだろう。
逆にトライルールでトライを阻止しようとすれば、中央を固めて待つだろう。
そして飛車や金のように横に動く駒がなければ、相手玉が最下段に到達した場合防ぐ方法がほとんどないこともわかる。
つまり、トライルールで動作しても、普通に入玉を阻止する指し方と変わらない。
コンピュータにとっては、トライルールで動作した方が普通に入玉を意識して指すよりもうまく指せるのではないだろうか。
とにかく判断が無限のかなたにいってしまうことがないのがうれしい。

入玉できたかどうかの判断は難しい。
人間にだってよくわからないのが本当の所だ。
人間は入玉模様の将棋になると、宣言勝ちを目指すのと詰ますのと両にらみで指しているのだと思う。
だから相手玉が詰みそうもない状態ならば、とにかく自分も入玉して駒をできるだけ取りにいく。
自玉が入玉できれば、相手玉の入玉を阻止できさえすれば勝利は必然だ。
コンピュータがこの両にらみの判断で動作するのが、持将棋モードになる。

コンピュータにとってトライルールで動作してうれしいのは、入玉という判断を擬似的で簡単な判定で代替できることだ。
トライの評価値を詰みと同じマックスの値にするのは簡単にできる。
そして、これだけの変更で自然と入玉を目指すようになるかもしれない。
今のコンピュータは20手ぐらい先読みできるのだから、阻止する駒がないと判断できればトライを目指しても不思議ではない。

持将棋モードに移行すればコンピュータは基本的に宣言勝ちを目指す。
駒取りが主体になるので、評価関数は持将棋モード用に作り直す。
大駒を5点、小駒を1点と評価するような単純な評価関数でも十分役に立つのではないだろうか。
後はコンピュータの力を利用して全幅検索で対応だ。
当然詰む詰まないについては、適宜判断する必要がある。

コンピュータ将棋のアイディアというのは、実際に実装してみると役に立たないことがほとんどと聞く。
このアイディアも実際に実装すると、それほどたいしたことがないのかもしれない。
しかし、入玉模様の将棋に関しては、基本的に別モードで動くのが正しいと思う。
とにかく、宣言勝ちを目指す機能は絶対に必要だろう。
それを実装していないソフトが悲惨な負け方をするのはよく見てきた。
モードの変換をどのタイミングにするかは、実装して研究する必要があるだろうけれども、トライルールが確定したら持将棋モードに変換するというのは、最初の出発点として考えられると思う。
このエントリーをはてなブックマークに追加
LINEで送る