Ponanzaの現在の課題 (2) 不成の問題
先日からの「電王ponanzaに勝てたらノートパソコンプレゼント! 挑戦者求む![ドスパラ大阪・なんば店]」の書き起こしをきっかけに、このblogへのアクセスが増えて、大変ありがたいです。
将棋ソフトLabyrinthusの制作者香上智さんが、居飛車筋違い角でponanzaに挑戦された際、▲2二角不成と指したことをきっかけに、ponanza開発者の山本一成さんが、コンピュータ将棋ソフト開発の苦労と、不成にまつわるルール作成と探索について語ってくれています。
---------
コンピュータを迷わせる角不成
山本「(香上智さんは)同業者の方で…去年から(コンピュータ・将棋ソフトを)作られたんですけど、あっという間に作っちゃって…コンピュータ・ソフトをちゃんと動くようにするのって、簡単そうに見えて、結構大変でですね」
斎藤「難しいと思いますよ、それは」
山本「結構阿呆なことも…王手されて、それを全部防ぐ手を列挙するのとか」
斎藤「ルールから組み込むのは結構大変なんですね」
山本「結構大変なんですよ。この駒を動かしたら、実はす抜かれてしまったなんてことが結構あったりするんですよ」
斎藤「最初の方は結構苦労されました? 開発」
山本「そうですね、合法手の生成が、まずひとつ難しいところですね。香車が後ろに走ったりしますよ」
斎藤「考えられないですね。ちゃんと動いてる、強いソフトしか見たことがないので…おっ、これは不思議なことをしましたね…しかも不成(第1図)」
山本「不成ですね」
斎藤「これ、僕、聞いたことあるんですけど、成りか不成かというので、ちょっとコンピュータを迷わすっていう…」
山本「ありますね」
斎藤「ありますか!」
山本「予想手ってあって。だいたいコンピュータの思考って、相手の手を予想して、その後、指して検討するっていうのがよくあるパターンなんですけど。成りで予想して不成とされると『違うじゃん』ってまた考え直しちゃうんですよ」
斎藤「なるほど。じゃあ、これはコンピュータ開発者ならではの角不成ですね」
山本「(挑戦者はコンピュータの特性を)よく知ってますね。わざわざ不成で」
現在のponanzaが不成を指さない局面
山本「逆に意外な手で、コンピュータが不成だったりするじゃないですか、王手絡みで。あれは成りでも不成でも同じなんですけど、サイコロ振って不成が出ちゃったみたいなことなんですね」
斎藤「どちらでも同点くらいの点数を出しているときですか」
山本「そうですね。しばしプロの方に失礼なような不成が出てしまうんで…ちょっと悩みの種ではあるんですけど」
斎藤「いやいや、まあまあ、それは気にしなくて良いでしょう。僕なんか全然…そんなことで(プロが)怒るようではまだまだじゃないですか、やっぱり。いや、でも、まぁ確かに自分はできないですね、不成は」
山本「この成りと不成が一緒だっていう判断がそんなに簡単じゃないです。つまり、有効な不成って存在する」
斎藤「ありますからね」
山本「そういうのに比べて、『これはまったく、成りでも不成でも一緒だ』っていうことの判定がどうやって良いかわからないんですよね」
斎藤「そうか、どっちかに偏ってしまっても問題が出そうですね。どっちかに決めてしまうわけにもいかないわけですね、常に成らなきゃいけないってすると、不成が最善のときを逃しますしね」
山本「でも、ちなみに今のponanzaは、王様のコビンに桂馬が成れるのに不成で入る手は生成しないようにしてますね」
斎藤「というのは、(不成を)選ばない...?」
山本「△2二玉があったときに、桂が▲1三桂不成っていう手は指せないようになっています、内部的には」(参考1図)
山本「これはちょっと危ないなと思ってて、リスクもあると思ってるんですけど」
斎藤「不成が良い手になるいことは、やや少ないと見てですか」
山本「そうです。歩の不成とか、飛車角の不成は生成してないです」
斎藤「それは、でも正しいような気がしますね。飛車角歩の不成が有効なときってほぼないですよね」
山本「あるとすれば、(反例として) 打ち歩詰がらみとか」*1
斎藤「ええ、そうですよね。基本はないから、銀桂がどうかになるんですかね」
山本「そうですね、でも、その桂馬の(不成を生成しない)ルールをいれて、良かったのかどうかわからないんですよね」
斎藤「(不成が)好手になることはなさそうですね、確かに」
山本「でも、一応ないとは言えないんですよね」
斎藤「ちょっと怖いところがあるんですか」
山本「これは、ルールでそう入っているんですけど、ちょっときわどいかなとも思ってるんですよ…」
斎藤「結構迷われているところ…」
山本「結構簡単に反例は見つけられていて、例えば▲4四角があって、序盤とかで△4一金、△6一金と残ってて、△6二玉のときに、▲4五桂を▲5三桂成ってやるよりは、多分不成の方が良い場合が多いですよね」(参考2図)
斎藤「なるほど、それはわかりますね」
山本「だから、桂不成が好手のときはあるんですよ」
斎藤「でも、今の状態だとponanzaは成りを選んでしまう」
山本「これ、特に、横歩取りがらみだと出てきそうですよね」
斎藤「横歩取りは桂不成が好手のことが多いですからね」
山本「そうなんですよね。危ないんですよね、そういうときがあるんですよね。まぁでも、リスクがあるものとして」
斎藤「全部を良くするのって結構難しいですよね」
山本「これって、結局探索の問題なんですよ…探索って枝刈りって言って、どうでもよさそうなところを読まないようにするのがひとつのテクニックなんですけど。どうでもよいかどうかの判断が難しいんですよ。そんな手はないだろうと思って、99%あっても、1%残ってるのが将棋の厄介なところで」
斎藤「そうなんですね」
山本「だから、ちゃんとルールが作りきれないんですよね」
---------
ponanzaが有効な成りと不成を判断できないとは驚きました。人間が当たり前だと思っているようなことが、コンピュータに理解をさせることが意外にも難しいということが、山本さんのお話からわかります。山本さんはこの後、「銀バサミもコンピュータが理解するのは難しい」と説明されます。そちらについては、次回に。
関連記事: