将棋の最強の人工知能はなぜ作れないのでしょうか?すべては無理にしても150手分くらいをコンピューターに網羅させることはできないのでしょうか?
将棋の一局の手数は10の220乗程度で天文学的だと聞きましたが、何百台ものコンピューターを使っても無理ですか?
何手程度までなら大丈夫そうなのですか?
なぜ無理かを知りたいというよりは、より詳しく知りたいとう云う意味合いの質問です。
お願いします。
|||
私は将棋ソフト作成の経験はないのですが、将棋好きのIT技術者としてなんとなく思ったことを書きます。
質問主様は事前に結構調べていると思いますので将棋は「二人零和有限確定完全情報ゲーム」と言われているのはご存知でしょう。
つまり勝負に置ける手のパターンが有限であり無限ではないゲームが将棋です。
一方コンピューターは王もしくは玉がどこにも動けなくなった「詰み」の状態を判定する事は可能ですから全てのパターンを、仮にランダムだったとしても網羅すれば最強の人工知能が出来ると考えているのかも知れません。
おそらく理屈としてはそうなのだと思います、最後の最後まで全てのパターンを解析すればおそらくコンピューターが必勝だと私も思います。
将棋は取った駒を使えるのでパターンが飛躍的に多くなるのですが、それでも打てるマスは最大81マスですし、有限には違いないのです。
それが出来ないのはやはり手数のパターンの多さが現在のコンピューターの処理を上回っているからでしょう。
例えば、
純粋に計算速度の問題で応答が現実的な時間内に帰ってこない。
全ての手数を記憶するにはメモリが足らないか、外部の記憶装置にいったん逃がすにしても速度の問題にぶち当たる。
等があるんじゃないでしょうか?
一方質問主様の○○手まで大丈夫でしょうか?と言う疑問は至極当然で【途中まで】なら読めるんじゃねーの?とか、【途中から】なら読めるんじゃないの?、、と言うのはあると思います。
【途中から】、、と言う場合には詰め将棋になりますが、こちらはコンピューターはかなり正確に出来るそうです。
詰め将棋は長いのでもせいぜい30~40手前後ですから残りその程度の手数で詰む事が確定している戦況であればキッチリ寄せてくるでしょう。
ただし相手が最善を尽くせば詰まないという状況であれば10の220乗地獄行きということになります。
実際の将棋の手数は130手前後ですから先に行けば行くほどパターンが指数的に枝分かれしていく状況では数十手読めたところで全然足りないのではないでしょうか?
逆に【途中まで読む】となると数十手進んだ先の状況の評価が難しくなります、有利なのか?不利なのか?人間ならばある程度感覚で全体をみて把握できる作業がコンピューターは苦手です。
その結果まだまだ将棋においてはプロを打倒するコンピューターがまだ出てこない理由だと思います。
個人的にはいずれにしても「時間の問題」だと思っており、いずれプロを負かす将棋ソフトが出てくることは間違いないと思います。
|||
チェスと違って駒のリサイクルできるので、将棋はプログラムが難しいのです。
でもそのうち、名人に勝てるのが出てくるのは時間の問題かと思います。
|||
「最強の人工知能」の定義がよくわかりませんが、
プロのトップに勝つということなら、時間の問題でしょう。(数十年後くらい?)
オセロやチェスは、もうコンピュータの方が強いですし。
ただ現状は無理です。
手数に関して、かなり大雑把に説明すると・・・
仮定として、例えばある局面で平均して30種類くらいの手があるとします。
すると1手先の局面をすべて網羅するのには30通り調べる必要があります。
2手先ならば、30×30で900通り調べる必要があります。
3手先なら30の3乗で27000通り・・・
となり、150手先だとだいたい30の150乗 = 10の220乗くらいになります。
このように指数関数的に増えていくので、単純にコンピュータの台数を増やしても、大して変わりません。
単純計算で
コンピュータを30倍にしても、同じ時間で1手分先が読めるだけ。
同様に、
同じ時間で5手先を網羅するには、30の5乗 = 2430万台
同じ時間で10手先を網羅するには、30の10乗 = 約600兆台
となり、台数を増やしてもたかが知れています。
あとは、よっぽど画期的なアルゴリズムが発見されるとかすれば別ですが、そんなことはおそらくないでしょう。
0 件のコメント:
コメントを投稿