将棋ソフトのプログラムはどのような仕組みになっているのですか?
何万通りもの手筋があるわけですよね。それでも簡単に作れちゃうんですか?
あと、思考ルーチンって何ですか?
詳しい方、教えてください。
|||
思考ルーチンというのは、その将棋ソフトが考える手順のことです。
このルーチンが違うので、将棋ソフトによって個性のある打ち筋が演出できるわけです。
さて、表題の件についてですが、将棋はご存知の通り、手数が何万通りもあります。
加えて、チェスと違い、取った駒を盤面上に加えていけるため、検索するべき手数必ず減っていくわけではありません。
基本的な手順としては、盤面に駒が多い段階では定石を使って打ちます。
駒数が減ってきたら、ルーチンのクセ(打ち筋)に従って、打つ方針を決めます。
たとえば桂馬を多用する、銀を主力としてで攻めるなどです。
あとは相手の駒を減らすようにして、2手ぐらい先まですべての駒パターンの動きを解析し、
もっとも良い手を探し出します。最終局面まで読みきれるほど駒の数が少なくなったら、投了するなり勝利宣言をするなりしてきます。
というのが大体の手順です。決して簡単に作れるわけではありません。
なにせ人間の考える姿を真似するわけですから。
また、人工知能(AI)を搭載した学習するタイプの思考ルーチンはこれとは異なり、
多くの棋譜が予め入力され、強い手順を学習しています。
そのため定石も使えば、有名なあの棋譜に似た打ち方をしてきたりもします。
加えて遺伝的アルゴリズムやニューラルネットワークといった人工知能独特の手法により、
打ちながらも学習して強くなります。当然こちらの方が作るのはさらに難しくなるわけですが、学習によってどんどん強く出来るため、チェスも囲碁も将棋も、強いソフトにはこのAIタイプが多いです。
0 件のコメント:
コメントを投稿