COM対局機能を考える

棋譜並べの機能に大きな問題がなくなり、ようやくコンピュータと対局できるようにするための検討を始めました。

移動可能な範囲(合法手)の検索は棋譜並べの機能として既にあるので、この中から適当に選んで自動で動かすだけでも一応コンピュータとの対局は成立しそうですが、さすがにランダムに動くだけでは仕方ないので、一応何かしらの基準に沿って次の一手を選びたいと思います。

そのために、いわゆる評価関数を作る必要がありますが、これが最も難しく、楽しそうな部分です。

優れた評価関数が実現できれば、それこそプロと互角に戦えるようなコンピュータ将棋が作れるわけです。

この点は、Bonanza他がどんどん先に行っている状況なので、そことは張り合わず、まったり行きたいと思っていますが。

で、総合的な評価関数に必要な機能はいろいろあるのですが、こんな感じでできれば理想というのが以下です。

①盤面上の駒と持駒に点数をつけて計算する。
②詰みの有無を判定する。
③必至の有無を判定する。
④次の一手を考える(漠然と)。
⑤プロが選びそうな手も参考にする。
⑥着手後の点数が高いものを数個選び、その中から次の一手を選択する。

さしあたり、「歩は1点、飛車は10点」のように解説している本をよく見かけるので、駒の点数に基づく形勢判断は有効なのだと思います。

まずはその辺を参考にしてとりあえず得点状況を表示させて対局(棋譜並べ)できるようにしてみます。

そして1手程度の詰み判定(場合によっては読みではなくパターンを登録?)と駒得だけを基準にとりあえず戦えるようなものを、まずは形にしたいと思っています。
関連記事
スポンサーサイト



テーマ : 将棋 - ジャンル : 趣味・実用

コメント

コメントの投稿

トラックバック


この記事にトラックバックする(FC2ブログユーザー)