rewritemath's blog

rewritemath’s blog

これマシュマロ。質問も受け付ける(https://t.co/VfNWTuMqau)

将棋ソフト、詰むのに詰まさない時、バグとは限りませんよ

  • このソフト、詰みチェックしたらきちんと詰んでるのに、詰まさないやん!弱いの?
  • とか、このソフトは詰みが読みきれない時があるから弱いでござる(笑)
  • とか、これくらいの詰み、詰みチェックにかければ一瞬で詰むのに、なんで詰まさないんや?バグ?

 

とか思ったことがある人へ。

 

バグだと騒ぎ立てるのはちょっと待って!バグじゃないかもしれませんよ!

 

 

原因1:256手ルール

256手で引き分けになるルールがあるんです。そのルールによって引き分けになるのを回避するために開発者の方が工夫をされている場合があります。

 

例えば、王手ラッシュを食らうと手数が長くなって引き分けに持ち込まれかもしれません。それを回避する手順があるかも。

他にも、詰ますより必至をかける方が手数が短くなる場合は、そちらを選択するかもしれません。王手のかからない玉型であれば尚更ですね。

詰ます手順は短い方を選択するというソフトはあると思います。

王手の連続で詰まさなくても勝ちが決まっている場合は、短い方を選ぶかもしれません。

原因2:枝刈りしちゃった(*ノω・*)テヘ

枝刈り、つまり、一定以上先の局面で詰みが見つかるような場合ですね。

それまでの手順に、駒を大量に捨てる手順がある時

途中で評価値の低い局面を経由する時

 

枝刈りしちったのかもしれません

 

原因3:詰まさないようにした方が強いもん

Aperyさんとかそうですね。今はどうか分かりませんけど。

@HiraokaTakuyaさん

https://twitter.com/HiraokaTakuya/status/708682048441942016?s=09

詰むかどうかを計算する時間があったら、他の手を読んだ方が勝率があがるんじゃ〜!

ということもあるみたいなんです。

 

原因4:詰みルーチンない、搭載面倒

そのまんまです。詰みを確認するルーチンをくっつけると詰みに強くなりますが、それをしないがために読み抜けるというパターンです。

 

終わりに

どうだったでしょうか。コンピュータにとっては、全体としての勝率が大事ですし、ルールによっては最適な戦略が異なります。

開発者の考え方も反映されているでしょう。

ソフトの癖なのかもしれません。

詰みが発見できないのは、バグだけが原因とは限らないんです。

そう思うと、開発者さんの苦労に思いを馳せて、詰ます事のできない時にも、優しくソフトを見守ってあげられるんじゃないでしょうか。

それでは〜