最近話題のkkpとかkppとかいうやつ

オープンソースなので起こすまでもないんだが

python練習中のソースを一部晒しますね

import numpy as np
 
with open('KK_synthesized.bin', 'rb') as f:
kk = np.fromfile(f, dtype='int32').reshape(81, 81, 2)

with open('KKP_synthesized.bin', 'rb') as f:
kkp = np.fromfile(f, dtype='int32').reshape(81, 81, 1548, 2)

with open('KPP_synthesized.bin', 'rb') as f:
kpp = np.fromfile(f, dtype='int16').reshape(81, 1548, 1548, 2)

こいつらの演算は以下のようになります。

eval = e_mat # 駒得分
 
kkp_sum=[0,0]
for i in fv38f:
kkp_sum += kkp[k0][k1][i]

kpp_sum0=[0, 0]
kpp_sum1=[0, 0]
for i,j in itertools.combinations(fv38f, 2):
kpp_sum0 += kpp[k0][i][j]
for i,j in itertools.combinations(fv38e, 2):
kpp_sum1 += kpp[80-k1][i][j]
 
if turn == BLACK:
eval += (kk[k0][k1][0]+kk[k0][k1][1])/32
eval += (kkp_sum[0]+kkp_sum[1])/32
eval += (kpp_sum0[0]+kpp_sum0[1])/32
eval += (-kpp_sum1[0]+kpp_sum1[1])/32
else:
eval += (kk[k0][k1][0]-kk[k0][k1][1])/32
eval += (kkp_sum[0]-kkp_sum[1])/32
eval += (kpp_sum0[0]-kpp_sum0[1])/32
eval += (-kpp_sum1[0]-kpp_sum1[1])/32
 

 

 vscodeから貼ると間延びするみたい。

面倒だから放置する。

 

検算ツール:

局面の3駒関係