三駒関係

三駒関係とは、玉1枚と他の駒2枚、あるいは王を含む3つの駒の関係を特徴量として評価関数へ取り込む考え方である。 将棋では KPPT やその周辺形式を説明するときの基礎概念になる。

概要

将棋の局面評価では、単独の駒価値や升ごとの点数だけでは表しにくい形が多い。 たとえば、

  • 王と飛車と歩の位置関係
  • 王と金と相手の攻め駒の関係
  • 王の位置によって同じ駒配置の意味が変わる

といった要素である。

このため、Bonanza 系以後の手作り・学習型評価関数では、 三駒の組み合わせを特徴量として扱う方式が広く使われた。

なぜ重要か

二駒関係だけでは表しにくい

  • 囲いの固さ
  • 攻防の噛み合わせ
  • 特定の玉型でだけ有効な駒配置

を、より自然に表現できるからである。

一方で、特徴量数は非常に大きくなるため、 インデックス設計や学習法が重要になる。

KPPTとの関係

将棋の評価関数では、三駒関係はしばしば

  • KPP
  • KKP
  • KPPT

などの略称と一緒に説明される。

特に KPPT では、 王位置と2つの駒の関係を大量のパラメータとして持ち、 それを学習で調整する。

実装例

概念的には、王位置と2つの駒番号から配列を引く形になる。

int scoreThreePiece(const Position& pos, Square kingSq, int p1, int p2) {
    return kppt[kingSq][p1][p2];
}

実際には、

  • BonaPiece による駒番号体系
  • 対称性の利用
  • 配列圧縮
  • 差分更新

が重要になる。

NNUE時代との関係

現在は NNUE が主流だが、 三駒関係の考え方は、

  • 手作り特徴量の設計思想
  • 将棋らしい形をどう表現するか
  • Bonanza 系評価の歴史

を理解するうえで依然として重要である。

関連項目

参考にしたホームページ