2005-06-27
■[雑記]将棋とコンピュータ
先日アマ竜王戦で、コンピュータ将棋ソフトの「激指」が、1回戦を突破したというニュースがありました。残念ながら2回戦は突破ならなかったみたいですが、これは華々しい戦跡です。
私が小学の頃は、将棋ソフトでプロ並みのモノを作り出すのは不可能とされていました。いや、この激指でさえも、アマ二回戦の戦跡では、プロには遠く及びません。本当に、遠く及ばないんです。プロとアマの差は、それほどにまであるからです。
しかし、その昔から考えると、将棋ソフトは果てしなく強くなりました。まさかここまで強くなるとは、誰も予想だにしなかったと思います。(ファミコン時代の、いや、プレステ1の時代の将棋ソフトでも弱かった。私の思考時間1秒くらいでも、余裕で勝てました。それくらい弱かった)
最近はチェスに関しては、人間よりもコンピュータの方が強いんではないかとさえも言われています。ディープブルーの話ですけどね。恐ろしい話です。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
多くの将棋プログラムの探索アルゴリズムでは、現在の局面からある一定の深さの局面まで展開し、Min-max法により最善手と評価値を求めるという方法をとる(実際には、深くなるほど展開する手を絞ることや、部分的に探索を延長するなどの工夫がなされている)。
しかし、将棋を指す人でそのように手を読む人はいないだろう。人間の場合は、現在の局面から「ありそうな展開」だけを考えて、その中で、もっとも自分が有利な展開になる手を選ぶ。特に、上級者になればなるほど、「ありそうな展開」は非常に絞られたものになってくる。そのような思考法をコンピュータでも実現できないかと考えたのが激指のアルゴリズムの発想の大本である。
ここで、「ありそうな展開」ということをもう少し具体的に表現してみると、
「現在の局面から変化して実際に実現する確率が大きい局面」
というように考えることができる。
いま、「遷移確率(ある局面が変化して別の局面になる確率)」が与えられたとすると、局面が実現する確率は、次のように再帰的に計算することができる。
(局面の実現確率)= (直前の局面の実現確率) x (遷移確率)
そうすると、ルート局面の実現確率100%から出発して、局面の実現確率が、ある閾値以下になるまで展開すれば、「ありそうな展開」だけを読むことができそうである。
ここで問題になるのが、「遷移確率」をどのようにして求めるかであるが、プレイヤーが合理的であれば、「最善手」がわかっていれば必ずその手を指すのだから、一般に、「遷移確率」は「指し手が最善手である確率」といいかえることができる。
もちろん、多くの場合、「指し手が最善手である確率」を厳密に求めることはできない(厳密にもとめることができたら、そもそも探索をする必要すらないかもしれない)。しかし、指し手の表面的な性質によって、その指し手が最善手である確率の上限値を求めることはできる。将棋をやったことのある人なら、「直前に動いた駒を取る手」や「あたりになっている駒が逃げる手」などが、最善手の確率が高いことはなんとなく感じていることだろう。
その確率を実際に測定するために、プロの棋譜(「羽生善治実戦集」に含まれている約600局)から指し手の統計情報を抽出するということを行った。プロの指し手は、統計的にみればほとんど最善手に近いと考えられるからである。その結果、確率の高い手には、例えば、
「直前に動いた駒を駒得でとる手」.. 50 ~ 100%
「駒得をしながらの王手」 .. 43%
などがあった。
このようなアルゴリズムを用いることで、激指はより人間の上級者の思考法に近い読みが可能になり、特に、駒の激しい取り合いが続くような局面や、王手が続いて敵玉を寄せていくような局面で、コンピュータらしくない思いきりのよい手が指せるようになっているようである。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
なんかこの考え方、見た事あるなぁ……と思ったら、そう、ゴルゴ13。その中の「生存確率0.13%」というお話です。
内容は、ゴルゴ13を倒すために、ゴルゴ13についてのあらゆるデータをコンピュータに取り込み、次に行動するであろうゴルゴ13の動きを全て読み、その行動の一歩前に、ゴルゴを追い詰める罠を仕掛けていく。というお話です。その中では、ゴルゴ13が次にどのような行動をするかというのが、全て確率で表示され、その確率が高いものだけを選択していくというものでした。
なるほど、これは確かにこのコンピュータ将棋に似ているわけです。確率が高いものを選択し、あらゆるとり得る行動を確率で表し、その確率の高い行動を一歩上回る手を指す。私がコンピュータ将棋に負ける理由は、私のさし得る手をコンピュータが確率で示し、その確率の高い手を指した私を、コンピュータが迎撃しているからなわけですね。
なら、何故ゴルゴ13は、完全なデータであるはずのコンピュータに勝つ事が出来たのか?
それは、人間の閃き、感覚がもたらしているのでしょう。ゴルゴ13は、相手の仕込んだ暴発弾を放つはずの銃を捨て、別の銃で相手を撃ち殺します。そして、このようなセリフを言いました。
「……お前の目は、死にゆく者の目ではなかった……死に直面した者の目は……なんとも言えない光を帯びる。その目を俺は何度も見てきた……コンピュータも知らない、その目を……」
ゴルゴ13の強さは、10%の才能と、20%の勘、30%の臆病さ、そして40%の運である(本人談)。まー、漫画の話ですが……これにはその通りである事が示されていると思います。
A級棋士である佐藤康光は、1秒で1億手読むといわれています。もちろん、そんなのはあくまでも「まるで」の話でしょうけれども、それでも100%の勝ちはありません。いくら完璧なコンピュータといえども、いくらお金のかかったソフトでも、人間の思考能力を解析するには限界というものがあります。
それはきっと、10%の才能と、20%の勘、30%の臆病さ、そして40%の運なのかな?と思いましたね。
まーぶっちゃけ、コンピュータが完全に人間を凌駕する時代が来たら、世の中がつまんなくなっているかもしれませんね。