コンピュータは人間を追い越すのか?(1)

3二金同玉3一銀までの必死。


人工知能の研究というのは、それほど歴史は深くない。コンパイラなんかにしても、古くは人工知能の分野に分類され研究されてきたものだ。


コンピュータ将棋やコンピュータチェスに関しても、コンピュータが近い将来、人間を追い越すだろうというのが見えてきたのはごく最近であって、それまでは「計算機なんかが人間様の頭脳にかなうわけないだろ」と一笑に付されてきたのである。


それはさておき、私も何度かコンピュータ将棋を作ろうと思ったことがあるのだが、当時のマシンが遅すぎたので思っていたようなアルゴリズムを実現できなかった。ちょっと、このへんの事情に関して詳しいことを書いておきたい。


まず、終盤たとえば詰将棋のようなものに関しては、コンピュータはすでにトッププロを上回っている。これは終盤においては選択肢が少ないからである。少ない選択肢のものをゴリ押しですべて調べることに関しては、ひとつの局面を展開する(調べる)のが速いコンピュータのほうが圧倒的に有利なのである。


コンピュータが苦手とするのは、序盤〜中盤である。序盤は定跡の範疇ならばその通り指すのだが、定跡からひとたび外れると、かなりひどいことになる。それというのも、(序盤の形勢判断の難しさという問題を除いたとしても)序盤には選択肢が多すぎるのである。組み合わせを調べようと思っても、容易に組み合わせ爆発を起こしてしまう。すべての組み合わせを調べていたのでは、5手ぐらいしか読めない。5手〜9手ぐらい読んで部分的に11〜15手ぐらい読んでいるのが現状なのだが、これでは到底トッププロどころか私にすら勝てない。


しかし、いまのコンピュータは遅いので、この程度のアプローチが限界なのだ。枝刈り(選択肢を絞り込む作業)に力を入れたところで、そんなに深く読むだけのマシンパワーがないのだ。これが、いまのコンピュータが数万倍速くなってくれば話は別である。何手か先を読むとき、精緻な枝刈りによって、選択肢の数を半分にすることが出来るならば、読める深さは劇的に変わってくる。コンピュータが速くなってくればどこかでこういうアプローチに切り替わっていかなければならないのだが、現状、高度な知識データベース等で苦労して枝刈りしても、それに見合うだけの手数が読めないため、損をしてしまうのだ。遅いマシンでは特に、比較的シンプルな評価関数で数を読むほうが良かったりする。*1 そのへんが、現在のコンピュータ将棋プログラミングがつまらないと感じるところでもある。(つづく)

*1:もちろん、反復深化や、実現可能性の高い局面を優先して展開したりはするが。