対戦数理モデル

人間に勝つコンピュータ将棋の作り方

人間に勝つコンピュータ将棋の作り方

同じ内容でも偉い先生が言うと違うんだな、と愚痴をこぼしながら、
子供が親の口まねをしていると「お前が言うなよ」とも思ったりする。
結論としては自分も偉い先生になってからモノを言ったほうが良い。
そこまで我慢出来ないので、今日の思いつきをダラダラ書く。


対戦ゲームにおける「読み」が思い込みとどう違うのか、
見えないものは信じられないという人もたくさんいるとは思う。
2月の学会で発表する将棋のプログラムを組んでいて気付いたのは、
自分のプログラムもその他多数のプログラムも、仮想敵反射型で動く。
将棋で3手読むとして、2手目、つまり相手がどう動くか読むため、
自分の対戦アルゴリズムを鏡面反射して反対に考えて意思決定する。
ここが多くのコンピュータ技術者の間違いじゃないかと思うんだ。


たとえばAという将棋プログラムがa対aの対戦結果から結論を出すとき、
もっと高スペックのコンピュータBにAをすっぽり入れてしまって、
b対Aの対戦結果から結論を出したとすると、必ず勝てるのではないか。
その論法でいくと、極論するとスペックの高いコンピュータが勝つ。
現実にソフト的な進化よりもハード面の進化でコン将の歴史は動く。
(言い訳しておくと仮想敵内包型は現状物理的に困難)


人間同士が戦う時に相手の考えがすっぽり入る、そんなの有り得るか。
子供と大人でやったときにジャンケンで必勝する、それなら起こる。
この考えを大人同士でやると、果てしないイタチごっこになる。
はたしてゲームをしながら相手の考え方が全部分かることがあるか。
この結論はまだ出そうとは思っていない。
そこまで考えるもの同士での決着は、どうしても運ではないかと思う。
人間が考える情報に対してゲームの盤面の情報量は払底して少ない。


たとえばゲーセンでストリートファイターをして遊んでいる人が、
ストリートファイターの漫画を描くためにキャラを動かして絵を見て、
背中を見たいからバックナックルを出しているということが読めるか。
勝つために動いている人の動きのほうが却って読みやすいものだ。


オチの話は冗談にしても、人の考えというのは本当に分からない。