2023年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

tweet

  • tweets

« FPGAのSimulation環境 | トップページ | アッラーの御名において、Stand-Patは気持ち悪い »

Bugじゃない、Featureだ!

regressionを流して、見つかるバグを対処中です。まあ毎度のことではありますが、後から後からという感じで出てくるのを、嫌気さしながらも順次直してるところ。

探索は、当初は反復深化やら延長やらといろいろ入れてたのですが、デバッグのときややこしいので、まずは超単純に、ということで、「超基本αβ」バージョンを作って、これでデバッグしてます。探索はαβ。反復深化無し。深さ固定、延長一切なし。手生成はもちろん、全幅+静止のみ。

…いやー、何かいい感じ?余分なもの全部そぎ落とした、男のコンピュータ将棋、みたいな?

これでバグったらアホやろ、と思いつつ、しっかりバグってましたが。まあ見つけ次第直してるんですが、そのうち、悪手なんだけどよくよく調べるとバグじゃない、というのがあって困っているところ。

例をあげます。「読みの技法」第6図。

A1 F3

ye----gey
--igo-i--
f-ffff--f
------H--
---------
-------h-
F-uFFFF-F
-GI---IF-
YE-O--GEY

F2
senteban

みづらい書き方ですみませんが、私はいつもこれ使ってるもんで。
 歩香桂銀金角飛王 = FYEGIAHO
 成ると      = TSMZ UR
です。'K'ではじまる駒は多いので、それらはアルファベットの2文字め(KYO なら 'Y')。SMZはわかりづらいですが、SMはkyoSha, keiMaから。Zは全。先手大文字、後手小文字です。

全幅2手+静止6手、でやってみそ。▲3二飛成、と指してくれやがります。最初「やれやれ、またバグかよ。しょーがねぇなぁ…」とかいってデバッグ始めたのですが、実はバグでない=全幅の本質的問題、と気づき愕然。他の全幅ソフトでもおそらくこう指すと思います。

▲3二飛成、△同銀、▲7七銀(金)、▲パス、△パスと読んでいる。(2連パスで末端。)初手▲7七銀なら、△4九角!と読みます。ここで深さ2消費したので、次からは取りしか読みません。以下▲パス、△3八角成、▲同銀、△2八飛成、▲パス、△3八竜。で、「▲7七銀より▲3二飛成がマシ」と結論するわけです。つまり、△4九角の後で急に読みが狭まるため、△4九角が(実は悪手なのだが)いい手に見えている。で、それを追い出す水平線効果で無茶をする。

これって要は、「末端までには局面を収束させなきゃだめ。そのためには、全幅+静止だけじゃ不十分」と言ってる気が。全幅と静止で「段差」がありすぎるのが×。前に指した手の「応手」はひととおり指せる程度に「段階的に」手を狭めていく必要がある。(手生成の「バリアフリー化」?)言い換えると、「しょせん全幅じゃだめ」ってこと、と思えるんですが。末端に行くにしたがって前向き枝刈りはしょせん必須…というのは、考えてみれば静止が必須という時点でわかってるべきことですが。

もう1例。深さ設定は同じで、読み技第23図。

F1

ye-i----y
-og-i----
-ff--ge-f
f---fafh-
-----f---
F-FFF-Ff-
-F--G-U-F
--OIIG-H-
YE-----EY

F2
senteban

ここで▲3五歩です。歩損はしかたないと思っている。△6五歩が来ると歩損必至なので、それには▲7七桂(か▲6七金*)だとよさそうですが、すると△2五桂!とはねます。対して▲3八馬とかできればなんてことはないのですが、静止なのでそれはない。以下▲2六馬、△同角、▲同飛、で末端。馬×角交換は歩損より大きい設定になってるので、「歩損やむなし」と結論してます。

…うーん、またまた困った…全幅じゃだめ、前向き枝刈り必須、と言われても、ハードだとあまり複雑な手生成はできません。まあそこを何とか、ハードでできる範囲でどこまで手生成を絞るか、が次の課題となりそうです。

チェスでは全幅+静止で十分だったようですが、やはり将棋とは違うんでしょうか。打ちがあるのがやっぱ大きいのかな。まあ、「打ち以外のみ生成」くらいだったらハードでも何とかできそうなので、このくらいでうまく行ってくれるとありがたいのですが。でも上の23図ではこれじゃだめですけどね。

しかし、いっそバグであってくれればよかったのになぁ…直せば済むんだから。これ、根本的に考えなおさないと…

Bonaとかどうしてるんでしょうね?

« FPGAのSimulation環境 | トップページ | アッラーの御名において、Stand-Patは気持ち悪い »

将棋プロセサ」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Bugじゃない、Featureだ!:

« FPGAのSimulation環境 | トップページ | アッラーの御名において、Stand-Patは気持ち悪い »