将棋の神様〜0と1の世界〜

「三間飛車のひとくちメモ」管理人、兼「フラ盤」&「チェスクロイド」作者がおくる、将棋コラム

神様とコンピュータ

勉強になるので、メモさせていただきます。
勝手に将棋トピックス - コンピュータは神様になれない
上記リンクを拝見して、下記コラムも知った。面白い。


スネ夫にバカにされたよー。ドラえもん囲碁が強くなる道具を出して〜」
「タイムプロ棋士〜! 未来の量子囲碁プログラム『ディープアオヤマ』が終局までの手順を全数検索してくれるから最強なんだ」
「どこが最強なの〜、スネ夫が一手目を打ったとたんいきなり投了しちゃったよ〜 ますます笑われたじゃないか!」
「さすがだ! 一手目で最後まで読み切るとは!」
『ディープアオヤマ』はすべて読みれるようになったから、初手で投了してしまったとさ、というお話。それに対しもず氏は下記のように述べている(上記リンクより引用させていただく)。

将棋に必勝法が存在すると聞いた人がときどき示す反応が「それがわかったら将棋を指す意味がなくなるんじゃ?パソコンもだいぶ速いなっているし。」というものです。しかし、その心配は全くありません。将棋で出現する可能性のある局面はあまりにも膨大なので、コンピュータの演算速度がいくら速くてもとてもすべてを計算することなど不可能です。必勝法が「存在する」ことと「見つけられる」ことの間には、天と地ほどの差があるのです。
コンピュータがすべてを読み切る時代は来ない、という話。ただし、「ノビタの碁」の議論はこれで終わり、とするわけにはいかないだろう。「すべての指し手を読み切る存在=将棋の神様」とする定義が、そもそも不十分でおかしいのかもしれない。すべてを読み切った「最強」である神様は、スネ夫に対し、初手で投了するかといったら、そんなことはしないからだ(負けてはいけない)。仮に「すべての手を読み切ったコンピュータ」の存在を定義したとしても、スネ夫に対し初手で投了するようなアルゴリズムに組むわけにはいかないだろう。
では「すべての手を読み切ったコンピュータ」と「将棋の神様」は、それぞれ不利な局面からどう指すか?例えば、
●最長手数で終局となるような終局までの負け手順を選ぶ(当ブログで「不利側の最善手順」として定義している手段)
●相手にとって「次の一手」状態となる局面(その局面で優勢を保てる手がただ1つに限られる局面)が最も多くなるような終局までの負け手順を選ぶ
●それぞれの局面において「(優勢を保てる手)/(着手可能数)」が小さい値を推移するような終局までの負け手順を選ぶ
などなど。例えば「戦線拡大」は後者において分母を大きくする戦術にあたる。ただしかし、不利側の指し手に絶対は無い。どう指しても不利なのだから。どれが逆転しやすいかは、相手による。「すべての手を読み切ったコンピュータ」の場合、どれを選ぶかは手の評価方法によるが、人間ならばどれを選んでもいつか間違ってくれるので、絶対に勝つには勝つ。
それに対し神様の場合。「神様」という最強の存在を出している以上、極論から言ってしまおう。
●相手を「診て」指し手を決める。
相手が何手目にどう指してきて、どこで間違えてくれて逆転して、最終的に最短手順で終局とする、現局面における一手がわかる。相手が神様か、「すべての手を読み切ったコンピュータ」だとわかったら、逆転し得ないので初手で投了する(終局まで指し続けなくてはならないというルールでないなら)。
「すべての手を読み切ったコンピュータ」にも持ち得ない、「相手の心理・思考もすべて見通すことができ、それを元に手を選ぶことが出来る」存在、それが「将棋の神様」であろう。ただしこの能力は、「すべての手を読み切ったコンピュータ」と比べ、対人戦でより短手数で勝てる、という利点でしかないのだが。

追記:
訂正。もず氏が考察しているのは、「ノビタの碁」に対してではなく、「妖精現実 フェアリアル - faireal.net」様で紹介されている下記コラムに対するものでした。


将棋プログラムでは「人間の(有段者の)指し手に近づいた」ということを今でこそ褒め言葉のように使っているが、そのうち、逆の意味で人間の理解を超える手を指したり、あるいはさらに進むと、「ノビタの碁」のようにすぐ投了してしまうとか。
プログラムA「私が先手です。勝ちましたね」
プログラムB「ありません。詰まされました」
人間さん「まだ一手も指してないじゃないですか…」
プログラムA「たかだか可算個の組み合わせしかないゲームじゃ退屈ですよ」
プログラムB「まったくですね。決定論的で想像力の余地がない」
人間さん「………」
なおこのプログラムは、(感想戦ではあるが)対戦相手とのコミュニケーション能力を持っている点が、単にすべての手を読みきっているだけのコンピュータよりも格段に優れているといえる。