序盤と終盤の評価関数をなめらかにつなげる
大槻さんの自戦記も参考に
http://home.q00.itscom.net/otsuki/jisenkiCSA2008-2.htm
やってみました。
それまでは
end=getShubando(); for(;;) { v+=v[end]; }
のような感じだったのを
end=getShubando(); for(;;) { v0+=v[0]; v1+=v[1]; } if(end<=6)end=0; if(end<=12)end=1; v+=end*v1+(1-end)*v0;
という感じに。中盤だけなめらかに接合する
でも、これだと
__ __/
になるので、
もっとさらに
end=getShubando(); for(;;) { v0+=v[0]; v1+=v[1]; } delta=sigmoid((end-9)/1.5); if(end<=6)delta=0; if(end<=12)delta=1; v+=delta*v1+(1-delt)*v0;
とシグモイド関数をつかってさらに滑らかにしてみた
(評価関数の中でEXPとか計算したくないけどそんなに遅くならなかった)