三駒関係とは、玉1枚と他の駒2枚、あるいは王を含む3つの駒の関係を特徴量として評価関数へ取り込む考え方である。 将棋では KPPT やその周辺形式を説明するときの基礎概念になる。
将棋の局面評価では、単独の駒価値や升ごとの点数だけでは表しにくい形が多い。 たとえば、
といった要素である。
このため、Bonanza 系以後の手作り・学習型評価関数では、 三駒の組み合わせを特徴量として扱う方式が広く使われた。
二駒関係だけでは表しにくい
を、より自然に表現できるからである。
一方で、特徴量数は非常に大きくなるため、 インデックス設計や学習法が重要になる。
将棋の評価関数では、三駒関係はしばしば
などの略称と一緒に説明される。
特に KPPT では、 王位置と2つの駒の関係を大量のパラメータとして持ち、 それを学習で調整する。
概念的には、王位置と2つの駒番号から配列を引く形になる。
int scoreThreePiece(const Position& pos, Square kingSq, int p1, int p2) {
return kppt[kingSq][p1][p2];
}
実際には、
が重要になる。
現在は NNUE が主流だが、 三駒関係の考え方は、
を理解するうえで依然として重要である。