序盤と終盤の評価関数をなめらかにつなげる

大槻さんの自戦記も参考に
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とか計算したくないけどそんなに遅くならなかった)