GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

囲いの認識及びその評価方法

 以前どっかで書いた覚えがあるんですが、探しても見つからなかったので再度書きます。

 まず、「囲いの駒」の認識アルゴリズム。先手の囲いを対象としますので、後手の時は適当に先後反転してやればOKです。

  1. 先手玉が利いている先手の駒は、囲いの駒である。
  2. 先手の囲いの駒が利いている駒は、囲いの駒である。

 単にこれだけ。手元の本で色々な囲いを見てみましたが、9割がたはこのアルゴリズムで認識出来そうです。

 んで、次に評価方法。囲いの駒1枚ずつに対して、以下の要素を見て評価してはどうかと考えています。

  1. 駒の種類。
  2. その(囲いの)駒に利いている先手の駒の数。
  3. その(囲いの)駒が利いている先手の駒の数。

 利きの数に関しては、上限を設ける方がいいかな? 「囲いの金に5つの駒が利いている」って状況はあんまり出現しなさそうだし、そうなると正しい値が付かない可能性が高いですから。

 あと、後手の利きの数は無視すべきかどうか。例えば「囲いの歩に後手の飛車が利いている」って状況は「利いていない」状況と区別すべきな様な気はしますが、そうすると無駄にパラメータの数が増えるし…

 ま、とりあえずは上記3種類だけで実装してみます。