ゲーム木探索で「延長」の対義語は?

昨日の記事で「王手延長」と言う用語が出てきた。「延長(extension)」とは、残り探索深さに値を加算することだ。じゃあ減算することもあるのか?

もちろん、ある。

この「extension」の対義語を「reduction」と言う。日本語としては「縮小」とか「短縮」とかなのだと思うが、将棋ソフト開発者に「縮小はどれくらいやってますか?」とか聞いても間違いなく通じやしねぇ。闇のコンピューター将棋用語だ。

そこで開発者を相手にするときは「リダクション」と呼ぶことをお勧めする。

さて、このreductionとは、extensionの反対であるから、感触の悪い指し手などの残り探索深さを縮めることを言う。

感触の悪い指し手というのは、色々な定義が考えられるが、例えば、過去、その升にその駒を移動させても良いことがなかった(という統計に基づく)指し手である。

これをhistoryに基づくreductionと呼ぶ。

まあ、他にも応手(countermoves)に基づくreductionとか、継続手(follow up moves)に基づくreductionとか、色々な種類のreductionが考えられる。

こうして考えると、extensionの対象とすべきは王手ぐらいだが、reductionのほうはバリエーションが豊富だ。実際、探索の改良でかなり力を入れるべきところは、このreductionなのである。

それから、指し手生成のあと、その局面の指し手をよさげな順に並び替えて順番に試行していくんだけど、順番が後ろのほうにある指し手は、悪い指し手なので、こいつらの読みの深さも浅くしておkみたいな理屈が成り立つ。

これを特に

Late Move Reductions(あとのほうの指し手に関するリダクション)

と呼ぶ。LMRと略される。LMRも、将棋の探索でかなり重要な位置を占める。

(; ・д・´) ナ、ナンダッテー !! (・д´・ (`・д´・ ; )

おっと、これはMMRか。

LMRについて詳しいことはまたの機会に。

まあ、以上のような指し手の性質に基づくリダクションを細かく(0.5手とか0.3手とか)制御しようと思ったときにONE_PLY=1だと計算精度が足りないわけであるな。だから技巧ではONE_PLY=64にしてると言うのが昨日の記事でした。(昨日の記事に書ききれなかったのでここで補足しました。)

ゲーム木探索で「延長」の対義語は?」への5件のフィードバック

  1. なるほど。これ関係で調整がききそうな現象をひとつ報告。
    振り飛車が美濃囲いをしたときに、美濃囲い側が角+桂のコビンについて評価値150程度過小評価していて簡単に食らう。
    そしてその流れが進み、最終的に300~400悪くなる。
    私の勘ですが、コビンが歩で止まっているときに発生しますので、玉が避ければコビンを開けるために打つ駒が後で取れるから駒割のぶん得になるみたいな評価計算が行われている気がします。
    そしてコビンが狙える時期は探索に負担がかかってくる終盤付近なので、先が読めずに刹那的な判断を選択している感じです。
    まあソフト同士の対局で、ソフトが振り飛車美濃囲いをして、さらに角+桂のコビンが発生する確率は0.1%以下でしょうから、そんなところを修正するのは労力の無駄なのかな?

    さて、uuunuuunさんの所で新評価0917の500局、結果出てましたね。
    5秒でR+142でしたね。時間を延ばしても+20~40といったところでしょうか。

    興味深かったのは、電王T設定の対SMだと158局でR+78でしたね。
    158局と500局だと統計的に差が出ますが、内容が気になったので軽く見たところ、序盤からお互いの悪い所をツツキ合って面白かったです。

    特に目立ったのが、先手技巧の矢倉の出だしをSMが桂馬を跳ねて狙っていましたね。
    私はアレやったらダメって習いましたけど、ソフトは普通にやっちゃうんですね。

    だいぶ昔の記憶なので間違っていたら申し訳ないですが、先手が7七銀入れて後手が8五歩を決めたり、7四歩を速攻であげたときは2五歩まで決めてしまうと習いました。
    要は相手に角で受けるんですか?銀で受けるんですか?それとも受けないんですか?と催促する流れになります。
    例をあげると、第1期電王戦二番勝負 第2局 山崎隆之叡王 対 Ponanza で
    9手目の4八銀が今の自然の一手ですが、Ponanzaが8五歩を決めているので2六歩とあげて行く感じです。
    それで催促するとだいたい3三角と受け、2二銀、4一玉、5一角、3三銀とかの相矢倉になって、先手は5六歩、7九角、4六角と桂馬と飛車のラインを牽制して行く流れになったと思います。
    何がダメかというと、超序盤でお互いの選択肢が潰れて千日手っぽくなるからです。
    こういう将棋を指す相手は最初からまともに将棋をする気が無いと思われるからダメだと習いました。

    まあやってる側は将棋ソフトなのでどうなんでしょうね?
    ただこういった将棋を強いソフトが指してるから有効だ!とかマネする人が出ると、ちょっと悲しい気持ちになります。

    • > ソフトが振り飛車美濃囲いをして、さらに角+桂のコビン

      それは3駒関係で表現できる範囲ではないような気がしますね。

      「美濃側の玉 × コビンの歩 × 攻め方の角 × 攻め方の持ち駒の桂」この組み合わせを認識しないといけないとしたら少なくとも4駒関係でないと…。

      • 技巧を例にすると、相振り飛車をやったときに先手側が6六角、8五桂馬、といった9筋を狙う端攻めをやった場合、元々の盤面にある駒を動かして狙う場合と、持ち駒を使って狙う場合とでは評価値が150程度差があったり、他のソフトと比べると持ち駒の使い方をやたら細かく見ている挙動をとることがあったので、この辺のチューニングの差かなと思ったのですが。

        それが終盤の持ち駒が多いときにより顕著に現れ、終盤力の差になっている一因だと思い、改良することで強くなるのかなと思いましたが、評価関数の表現力の問題でしたか。

    • 将棋電王戦FINALで、AWAKEが21手で投了したあれと似たようなことがおきているのかな?

      • 感触的には似ているかもしれません。SMを例にすると、

        相掛かりとかでも、将棋ソフトが横歩をやったとき後手で52玉、23銀、72銀とすると新評価は38金ではなく、39金のアヒルみたいな囲いにするので、
        94歩から(ここで56飛なら立石流っぽい型が狙える)の24飛ぶつけで飛車交換すると36歩としてきますので27飛打、28歩打で25飛成から中央でデカイ顔しその後角交換で飛車角を持つと、
        ソフトは角を82に打ってくるし、93香で逃げて馬作って71金で92馬に74角打ちから同馬、同歩で手損させておいて、香車があがった92の地点を飛車打ちを狙ってくるのが一連の流れ作業みたいになるので対応は簡単ですし、
        77桂から93の香車を狙ってくる場合は、同馬、同歩のときの74歩を有効活用して7筋を攻めればだいたい優勢になります。
        昔同様に持ち駒の使い方が下手クソで、改良の余地がかなりありそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です