KPPTについてふと考えた

ある休日に珈琲を飲みながらふと気が付いた。

イデアが浮かぶのはオフィスでも会議室でもないのだが,これは一般的だろうか。

 

コンピュータ将棋でKPPの三駒関係の評価関数が作られた経緯をざっくり学んだ後,少し検証してみた。あれの一番の利点は差分計算が高速に行われることにある。

KPPTになったときも手番分を加え二倍の計算をして最後に和か差を取ることになる。手番と非手番を独立させると差分計算がうまくできないからだ。さらにSIMD命令で計算時間は二倍にはならない。

 

で,KPPは先手後手のKと任意のPの組み合わせなので2*38*37/2と回数ループを回す。手番分評価も同様である。

 

しかし,考えてみて欲しい。一回で動かす駒はひとつだ。手番分の評価値が多すぎないか?動かさない駒の分も手番ペナルティがあるのは妙な気がした。

ってことで,「ある駒を含むKPPの手番分評価」が最大(非手番では最小)となる駒の分だけ評価するのが筋ではないだろうか。

 

これはネタだけで未実装である。差分高速化を放棄する上に比較コストまで払うことになるからねぇ。