Kristallweizenの成り立ち  
  
Kristallweizenは、昨年のHefeweizenの頃から継続して、一貫して以下の方針で作成されています。  
  
・探索部のMulti Ponderとオーダリング用評価関数の効果を最大限に発揮するようにする  
  
ご存知のように、Multi Ponderは相手より多くの筋を事前に読んでおくことによって、思考時間の  
効率化を目指しています。  
しかし、いくら相手より多くの筋を読むと言っても、その読み筋が相手と一致していたら、相手の  
PonderにもHitしてしまいますから、その効果は半減してしまいます。勝負の明暗を分けるのは、  
如何に相手の読み筋を外してこちらの読み筋に誘導するか、これに尽きます。  
単純に変な筋を選択するようにすればよいのかというと、それは普通に「悪手」に認定され、  
咎められて終わります。そこで、昨年のHefeweizenを作成するにあたり、評価値を直接いじることに  
よって、以下のような細工を施しました。
  
・中盤のねじり合いの局面において、あえて最善手ではなく、その他のそれほど悪くない手を  
　選択させる  
  
これは、人造棋士18号の評価値操作ツールを使い、以下の条件の変更を行うことで実現しました。  
  
・評価値が±400以上をつけている評価値に対し、5%評価値を下げる

実際は手番側のみとか、評価値レンジを細かく指定して割合を変える等の調整を行っているのですが、  
大枠の考え方は同じです。  
この操作を行うとどういうことになるかというと、数ある最善手候補の中でも、少しいいと評価  
されていた手が最善手候補群の中に埋没します。こうなると探索部は最善手候補はどれも同じくらい  
だなと判断し、次善手を示すことが多くなるのです。  
  
こんなふうに操作された評価関数が昨年のHefeweizenで、選手権でも望み通りの指し手を指して  
優勝することができました。  
  
で、今年のKristallweizenですが、評価関数の型がNNUEに変更になったために、評価値をピンポイント  
に操作することができなくなってしまいました。でも選手権で勝つためには、Hefeweizenのこの  
特徴は是が非でも引き継がなければなりません。そこで、教師局面生成は100%Hefeweizenで行い、  
その指し手のエッセンスを吐き出してもらいました。  
勝負所で（他のソフトの）次善手を指しますから、勝つのは容易ではありません。おのずと粘り強い  
指し方になります。こんな状態で勝ち切った教師が次々と生成されていきました。  
この教師で学習したKristallweizenは、Hefeweizenの根性の（？）指し回しを存分に受け継ぎ、  
非常に辛く粘り強い指し手となりました。  
相手は次善手を指されて読み直しを強要される、こちらはその次善手からの筋を存分に学習している  
ので「次善手の筋に対する最善手」を指すことができるという好循環が実現し、おかげさまで昨年同様、  
Multi Ponderの効果を最大限に発揮し、準優勝することができました。  
  
Kristallweizenと他のソフトとの対局を読み筋を交えて観戦すると、お互いの読み筋、評価値があまり  
にもかみ合わないのがわかります。上記のような作成過程を経てきているのですから、かみ合わなくて  
当然なのですが。w  
まぁ、かみ合いだしたらそれは最善手への一本道＝次善手との差が大きいということなので、最善手に  
特化して強化された評価関数にそのまま寄り切られて負けることになります。当たり前ですね。  
でも、そういう個性のある評価関数があったっていいじゃない！というのが私の思いです。(^-^)  
  
ここでひとつ、疑問が発生します。それは「Multi Ponderじゃなかったら、常に最善を指してくる相手  
には勝てないのでは？」という疑問です。私も常にこの疑問が頭の中にあり続け、「単独じゃ強くない  
はず」と思っていました。しかし、現在のSOTAを獲っているように、それほど弱いわけではないよう  
です。なぜ単体でも強いのでしょうか。  
  
私は単純に「相手がその脇道（次善手）よりも高速道路（最善手）に最適化したために、でこぼこの  
脇道の走行が苦手だっただけ」だと思っています。別に強くはないのです。  
ターフ限定のサラブレッドは確かに速いけれども、ダートでは勝てないでしょ！という話だと思って  
います。(^-^)  
  
以上  
