内藤先生からの挑戦状 (3)

テーマ:

内藤國雄という四文字を見るだけで心が躍ってしまい、殆ど反射と本能で将棋世界5月号を買ってしまった。書くまでもなく「続内藤國雄の一手必至」が目当てである。今回のはしがきには挑発的な一言がないのが残念だが、地球環境に優しく内藤先生に厳しい謎電の作者としては、この問題集を無視するわけにはいかない。毎度ながら謎電の解図・分析結果をここに記録しておく。なお、使ったマシンのスペックは、Toledo/4800+、置換表1.5GBで、シングルコア探索モード[*1]である。


【解図パラメタ{5,11}の時の結果】

     解手数___解図時間_初手解_____________詰探索回数
  1番: 1手必    0.000秒o1三香不成                 61
  2番: 1手必    0.002秒o2四角                     61
  3番* 1手必    0.002秒o1一角                     67
  4番: 1手必    0.002秒o2一飛                     75
  5番: 1手必    0.079秒o3三銀                     73
  6番: 1手必    0.001秒o3一馬                     63
  7番: 1手必    0.001秒o2二竜                     71
  8番: 1手必    0.010秒o3四歩                     69
  9番: 1手必    0.007秒o4二銀                     65
 10番: 1手必    0.016秒o3三銀                     67
 11番: 1手必    0.080秒o2四金                     73
 12番: 1手必    0.005秒o1二金                     62
 13番: 1手必    0.019秒o2二桂成                   83
 14番: 1手必    0.001秒o8四桂                     61
 15番: 1手必    0.011秒o3四金                     67
 16番: 1手必    0.002秒o2三銀                     61
 17番: 1手必    0.005秒o7四竜                     83
 18番: 1手必    0.015秒o4二馬                    101
 19番: 1手必    0.007秒o3二銀不成                 73
 20番: 1手必    0.004秒o3六桂                     61
 21番: 1手必    0.016秒o8四角成                   93
 22番: 1手必    0.039秒o2四銀                     77
 23番: 1手必    0.022秒o4二と                     66
 24番: 1手必    0.009秒o2五桂                     92
 25番: 1手必    0.002秒o2五桂                     61
 26番: 1手必    0.002秒o3三桂成                   67
 27番: 1手必    0.000秒o3四銀                     62
 28番: 1手必    0.006秒o3三飛                     69
 29番: 1手必    0.047秒o3四桂                     85
 30番: 1手必    0.012秒o3三歩成                   75
 31番: 1手必    0.067秒o1二飛                    154
 32番: 1手必    0.005秒o2三金                     69
 33番: 1手必    0.031秒o4四金                     71
 34番: 1手必    0.010秒o1四飛                     92
 35番: 1手必    0.071秒o4三香                    151
 36番: 1手必    0.013秒o3四銀                     69
 37番*15手必   55.134秒o3六桂                692,530
 38番: 1手必    0.151秒o4四桂                     72
 39番* 3手必    0.114秒o2三桂                    573
合計時間:      56.020秒    合計探索量:        695,925

正答数: 39[問] (正答率:1000[‰]) 対象数: 39[問]


前回と同様、初手は全問正解だが2問ほど1手必至にならなかった。その理由を以下に示す。


左図は第37番から。作意は▲36桂までの1手必至となっているが▽52飛で詰まない。以下、▲33桂成▽同玉▲22銀▽同飛▲同と▽同玉▲32飛▽13玉▲21飛成▽14玉▲34飛成▽15玉▲23竜引まで15手必至となる。
内藤先生は、飛車の横利きで受ける手を頻繁に読み落とされているように思う。巧い修正案とは言えないかも知れないが、53か52の枡に玉方の歩を配置してはどうだろうか。
左図は第39番から。作意は▲23桂までとなっているが▽22角で詰まず、更に▲12竜までの3手必至。私には巧い修正案が思いつかない。無理矢理成立させるなら44の枡に玉方の角を置いて持駒に角がないようにするくらいか。

因みに▽22銀と受けると、▲31桂成▽同銀▲23金▽同玉▲13竜▽34玉▲24竜までで詰むが、▽22角だと先の手順中の▲13竜に▽同角で詰まないという意味である。


参考までに{3,9}で解いた時の結果を最後に示す。
【解図パラメタ{3,9}の時の結果】

     解手数___解図時間_初手解_____________詰探索回数
  1番: 1手必    0.000秒o1三香不成                 61
  2番: 1手必    0.002秒o2四角                     61
  3番* 1手必    0.002秒o1一角                     67
  4番: 1手必    0.002秒o2一飛                     75
  5番: 1手必    0.035秒o3三銀                     73
  6番: 1手必    0.001秒o3一馬                     63
  7番: 1手必    0.001秒o2二竜                     71
  8番: 1手必    0.007秒o3四歩                     69
  9番: 1手必    0.006秒o4二銀                     65
 10番: 1手必    0.007秒o3三銀                     67
 11番: 1手必    0.042秒o2四金                     73
 12番: 1手必    0.004秒o1二金                     62
 13番: 1手必    0.016秒o2二桂成                   83
 14番: 1手必    0.001秒o8四桂                     61
 15番: 1手必    0.009秒o3四金                     67
 16番: 1手必    0.002秒o2三銀                     61
 17番: 1手必    0.004秒o7四竜                     83
 18番: 1手必    0.011秒o4二馬                    101
 19番: 1手必    0.005秒o3二銀不成                 73
 20番: 1手必    0.003秒o3六桂                     61
 21番: 1手必    0.014秒o8四角成                   93
 22番: 1手必    0.023秒o2四銀                     77
 23番: 1手必    0.022秒o4二と                     66
 24番: 1手必    0.006秒o2五桂                     92
 25番: 1手必    0.002秒o2五桂                     61
 26番: 1手必    0.002秒o3三桂成                   67
 27番: 1手必    0.000秒o3四銀                     62
 28番: 1手必    0.005秒o3三飛                     69
 29番: 1手必    0.030秒o3四桂                     85
 30番: 1手必    0.008秒o3三歩成                   75
 31番: 1手必    0.043秒o1二飛                    153
 32番: 1手必    0.004秒o2三金                     69
 33番: 1手必    0.021秒o4四金                     71
 34番: 1手必    0.008秒o1四飛                     92
 35番: 1手必    0.051秒o4三香                    151
 36番: 1手必    0.008秒o3四銀                     69
 37番*15手必   17.882秒o3六桂                495,666
 38番: 1手必    0.029秒o4四桂                     71
 39番* 3手必    0.069秒o2三桂                    570
合計時間:      18.387秒    合計探索量:        499,056

正答数: 39[問] (正答率:1000[‰]) 対象数: 39[問]


[*1] てか、マルチコア探索モードが未だ完成してない(笑)
AD

人間の読み落とし

テーマ:

本稿は少し趣向を変えて、計算機側ではなく人間側が読み落とす例を挙げる。左図は、将棋必死集の15番から引用。作意は▲15歩▽同歩▲14香▽13金▲15香までの5手必至。但し、この手順には誤りがある。


この問題は一見簡単で作意通りに見える。初手▲15歩に▽24歩は▲同歩で意味がない、と思ってしまいそうだが、そこにとてつもない落とし穴があった。寧ろ熟練者である程、▽24歩のような受けを読み落とす(全く読まない)のではないだろうか。よく読んでみれば▲24同歩が詰めろにならないので、この玉方の歩を取れず必至が掛からないのだ。初手から▲15歩▽24歩に▲14歩なら▽23玉で逃れている。結局、必至問題として成立していないのである。

このような受けの手がある例は結構珍しい気がする。であるが故に先入観があり、謎電で解けない原因に気が付くのに小一時間程かかってしまった。


(追補) 初手から▲15歩▽24歩▲14歩▽23玉に▲39香と詰めろを掛けられて、▽14香などと受けると▲33香成▽13玉▲22金▽19香成▲15歩で必至がかかる。6手目▽14香では、▽43金と受けて後が続かない。
AD

読み落とし試験図 (3)

テーマ:

左図は、ザ必死の23番から引用。作意は▲63角▽24銀▲41角成までの3手必至。この図の読み落とし確認ポイントは、初手▲63角を生成して読んでいるか否かにある。

当初、この63の位置に角を打つ手を生成しにくかった。こういう場所に角を打って詰めろになる例が少なく、結果的にこれも強いヒューリスティクスを使って解けるようにはした。


全く余談になるが、初手を正しく読めるようになったのは由として、解手順が▲63角▽52飛▲同角成▽24銀▲41馬までの5手必至になってしまうという別の問題があり、未だに解決が出来ていない。2手目▽52飛は▲54角成からの詰めろを消した手で一見有効そうに見える。しかしながら▲52同角成に▽同金とは結局取り返せない。▽52飛の受けは、感覚的には意味がないと判るが、計算機的にこれを「無駄受け」と判断させることが微妙に難しい。 単に「取り返せない場合は無駄」と判定してしまうと、他の問題で作意通りにならないことが少なからず起きるからだ。

AD

読み落とし試験図 (2)

テーマ:

左図は、ウロ覚えの3手必至問題。出典は5年くらい前の将棋世界だったと思う。 この問題を謎電で最初に解図した時、読み落としがあって解けなかったのには相当焦った。

作意は、▲28竜▽99玉▲18飛までの3手必至。よく飛車の尻に香を打つ手筋があるが、3手目▲18飛はその応用だ。ポイントは▲18飛を生成して読んでいるかどうか、という点だけのことだが、その手を実現する為に初手▲28竜と指す必要もある。このような図が実戦で有り得るかどうか微妙だが、解けない問題があるというのは納得できないので、強いヒューリスティクスを持って無理矢理解決させた。


余談だが、手順途中および必至上がり後、玉方が38~78に駒を打つ無駄受けの手を指し得るので、そのあたりの対処を行っておかないと、素速く且つ作意通りに解けない。なお、現謎電では{5,11}設定なら40ms程度(Barton/3000+)で作意通りに解ける。

読み落とし試験図 (1)

テーマ:

左図は、読み落としチェック用の試験問題の一つ。必至探索処理内の指手生成関係コードの改造を掛けた際、二段目の敵飛車を1筋~9筋に置いて各々必至探索を行い、正しく解けるか否を確認している。これらの問題は解図パラメタ{5,11}で全問解くことが出来る。解手順について妥当か否か非常に疑問だが、問題自体に余必至が含まれるので、解手順についての議論はしない。ここでは読み落としが起きるか否かを見ているだけである。


解図結果は最後に示す(Barton/3000+)。恐らく指手の優先付けがイマイチで、もっと詰探索回数を減らして速く解きたいところ。敵飛車が2筋~8筋にある図の場合、その飛車が縦に動けない(動くと1手詰がある)ことを人間なら一睨みで判る。そういった実質利きがないことを検出させた上で指手の優先付けを行うアイデアが考えられるが、実際には前処理が増えてかなり厄介である。


現謎電では、守りに効いていそうな敵駒を基準に「(たとえ只捨てであっても)王手を掛けながらの両取りの手」の生成(探索)優先度を上げるようにしている。読み落としはなくなったものの、生成の条件付けも甘いせいか満足の行く性能がなかなか出ない。


筋位置_解手数___解図時間_詰探索回数_解手順__________________________
   1筋: 5手必    2.220秒      3,969 ▲31飛▽21角▲32銀▽同飛▲同飛成
   2筋: 1手必    0.145秒         87 ▲23飛
   3筋: 3手必    0.303秒        489 ▲31飛▽21金▲32飛成
   4筋: 5手必    0.472秒      1,914 ▲41飛▽21金▲42飛成▽22銀▲32竜
   5筋: 5手必    0.484秒      2,209 ▲51飛▽21金▲52飛成▽22銀▲32竜
   6筋: 5手必    0.491秒      2,224 ▲61飛▽21金▲62飛成▽22銀▲32竜
   7筋: 5手必    0.494秒      2,257 ▲71飛▽21金▲72飛成▽22銀▲32竜
   8筋: 5手必    0.499秒      2,266 ▲81飛▽21金▲82飛成▽22銀▲32竜
   9筋: 5手必    0.479秒      2,318 ▲91飛▽21金▲92飛成▽22銀▲32竜
合計時間:        5.587秒     17,733 

内藤先生からの挑戦状 (2)'

テーマ:

「内藤國雄の一手必至」の解図は、実は{3,9}でも同様に正しく解ける。しかしながら、ちょっと嘘臭い性能が出てしまったので、ベンチで良く使う{5,11}を基準に前回は公表した。思いの他コメントが付いてしまったので、参考までに{3,9}時の結果も次に示す(Barton/3000+)。


     解手数___解図時間_初手解_____________詰探索回数
  1番: 1手必    0.015秒o2三飛                     71
  2番: 1手必    0.011秒o3三銀                     61
  3番: 1手必    0.007秒o2一角                     77
  4番: 1手必    0.012秒o2一桂成                   98
  5番: 1手必    0.013秒o4一角                     95
  6番: 1手必    0.012秒o2四飛                     67
  7番: 1手必    0.009秒o3三角成                  106
  8番: 1手必    0.033秒o5一飛                    281
  9番: 1手必    0.002秒o3三飛成                   64
 10番: 1手必    0.001秒o1二銀不成                 61
 11番: 1手必    0.010秒o4三飛成                  162
 12番: 1手必    0.002秒o3三桂成                   61
 13番: 1手必    0.002秒o1四銀                     67
 14番: 1手必    0.001秒o2四竜                     61
 15番: 1手必    0.009秒o4三銀                     81
 16番: 1手必    0.003秒o3二金                     69
 17番: 1手必    0.005秒o7三銀                     63
 18番: 1手必    0.004秒o1二角                     64
 19番: 1手必    0.002秒o6四桂                     63
 20番: 1手必    0.024秒o6三香                     97
 21番: 1手必    0.005秒o2二銀不成                 61
 22番: 1手必    0.006秒o3三銀                     62
 23番: 1手必    0.005秒o3二飛不成                 91
 24番: 1手必    0.020秒o6四銀                     72
 25番: 1手必    0.005秒o8四桂                     87
 26番: 1手必    0.014秒o2四飛                     79
 27番: 1手必    0.039秒o3三銀                    126
 28番* 9手必    2.194秒o2五桂                 30,751
 29番: 1手必    0.012秒o1二飛                    360
 30番: 1手必    0.021秒o2三角                     65
 31番: 1手必    0.005秒o4二飛                     62
 32番: 1手必    0.006秒o3四桂                     72
 33番: 1手必    0.004秒o2四金                     61
 34番: 1手必    0.001秒o3四角成                   61
 35番: 1手必    0.020秒o4一角                     85
 36番: 1手必    0.025秒o8四飛                    134
 37番* 3手必    0.212秒o2三銀                    610
 38番: 1手必    0.020秒o2三銀打                   61
 39番: 1手必    0.001秒o4七銀                     61
合計時間:       2.792秒    合計探索量:         34,730

なお、現在Single最強のAthlon64FX57を用いれば、トータルの解図時間は2秒切るものと思われる。但し、これはあくまで謎電の結果であって、特にKFEnd級のプログラムでは全解図時間が1秒切るのではないかと思われる。次回選手権までには、それくらいの性能が出せるように努力したいところ。

内藤先生からの挑戦状 (2)

テーマ:

数年振りに内藤先生から挑戦状が来た。「電脳は詰将棋を解くことにかけては神様の領域に近づいたが、必至については苦手としているのが面白い[*1]」 その挑戦状、確かに受け取った[*2]。以下に謎電の解図結果を示す。なお解図パラメタは{5,11}とし、Barton/3000+を用いた。


     解手数___解図時間_初手解_____________詰探索回数
  1番: 1手必    0.018秒o2三飛                     71
  2番: 1手必    0.015秒o3三銀                     61
  3番: 1手必    0.008秒o2一角                     77
  4番: 1手必    0.021秒o2一桂成                   98
  5番: 1手必    0.018秒o4一角                     95
  6番: 1手必    0.018秒o2四飛                     67
  7番: 1手必    0.022秒o3三角成                  109
  8番: 1手必    0.038秒o5一飛                    281
  9番: 1手必    0.002秒o3三飛成                   64
 10番: 1手必    0.001秒o1二銀不成                 61
 11番: 1手必    0.011秒o4三飛成                  162
 12番: 1手必    0.003秒o3三桂成                   61
 13番: 1手必    0.002秒o1四銀                     67
 14番: 1手必    0.002秒o2四竜                     61
 15番: 1手必    0.012秒o4三銀                     81
 16番: 1手必    0.004秒o3二金                     69
 17番: 1手必    0.008秒o7三銀                     63
 18番: 1手必    0.004秒o1二角                     64
 19番: 1手必    0.003秒o6四桂                     63
 20番: 1手必    0.033秒o6三香                     97
 21番: 1手必    0.008秒o2二銀不成                 61
 22番: 1手必    0.012秒o3三銀                     62
 23番: 1手必    0.007秒o3二飛不成                 91
 24番: 1手必    0.030秒o6四銀                     72
 25番: 1手必    0.006秒o8四桂                     87
 26番: 1手必    0.027秒o2四飛                     79
 27番: 1手必    0.057秒o3三銀                    126
 28番* 9手必   12.406秒o2五桂                 81,479
 29番: 1手必    0.013秒o1二飛                    360
 30番: 1手必    0.047秒o2三角                     65
 31番: 1手必    0.008秒o4二飛                     62
 32番: 1手必    0.009秒o3四桂                     72
 33番: 1手必    0.004秒o2四金                     61
 34番: 1手必    0.001秒o3四角成                   61
 35番: 1手必    0.026秒o4一角                     85
 36番: 1手必    0.038秒o8四飛                    136
 37番* 3手必    0.459秒o2三銀                    652
 38番: 1手必    0.031秒o2三銀打                   61
 39番: 1手必    0.001秒o4七銀                     61
合計時間:      13.433秒    合計探索量:         85,505

正答数: 39[問] (正答率:1000[‰]) 対象数: 39[問]


初手は全問正解だが、28番と37番は1手必至にならない。その理由を以下に示す。


左図は28番。解説では▲25桂までの1手必至となっているが、{5,11}で解図を行うと、以下▽63飛▲13桂成▽同玉▲14銀▽22玉▲32金▽11玉▲31馬まで9手必至となる。また、▲25桂に▽32銀と受けても詰まず、以下▲13桂成▽同玉▲24銀▽同桂▲32馬までの7手早必至となる。

私の実力では巧い修正案を見つけられなかった。
左図は37番。解説では▲23銀までの1手必至となっているが、以下▽54飛▲33銀まで3手必至となる。因みに▲23銀に▽44飛は、▲22竜▽24玉▲12銀不成▽34玉▲23竜までで受けにならない。

修正案としては、安直だが56に攻方の歩を置くことで、作意通りの一手必至になる。例えば、▲23銀に▽94飛でも▲22竜▽24玉▲12銀不成▽34玉▲23竜▽44玉▲45銀までで詰む。



[*1] 勿論、私が直接貰ったわけではない。将棋世界8月号の付録「内藤國雄の一手必至」から引用。

[*2] 自分宛というわけではないのに(というより挑戦状だと思う方がおかしいが)、もー完全にノリノリである。問題集チューニング派の悲しい業と言える。

作意が微妙な必至問題

テーマ:
左図は、必至精選(上巻)の116番。
作意は、初手から▲54角▽同角▲32歩▽同角▲27飛成▽23角▲同竜の7手必至。注目する点は6手目の▽23角である。ここで詰めろを逃れる手は、この▽23角の一手しかないし、桂馬の紐が付いているので表面的には只ではないので有効手に見える。
しかしながら▲同竜に▽同桂は詰まされるので、▽23角という受けに意味があるか否かをどう判定するかが問題だ。「盤上の駒を只ではない場所へ移動する手でも、それを取られて必至上がりなら無効な受け」と判断すると、作者の意図する手順解は得られない。
詰手順より遥かに作意が柔軟(というより、規定がない)なので、必至手順の解の組立が非常に難しい。
このあたり未だ巧い解決案がなく、選手権も近いというのに頭を悩ましている。

内藤先生からの挑戦状 (1)

テーマ:
左図は、内藤先生が出題された必至問題で、数年前にCSAの会誌でも紹介された。手数は17手で中編に入る。先生曰く「コンピュータは詰を読むのは得意だが、必至は不得意」の旨を仰られたことで話題になった。
作意は、▲24飛▽16竜▲14歩▽同竜▲同飛▽23玉▲31飛▽43角▲34飛▽32歩▲41飛成▽34銀▲35桂▽33玉▲43桂成▽同銀▲55角まで。正確に読み切るのは、人間でも相当辛いところだ。
この問題を謎電で試してみた[*1]。パラメタ{3,7}で解いた時が最もコストが少ない。指将棋で良く使うパラメタ{5,11}の約15秒のコストは、実用的と言えるかどうか未だ微妙なところ。もう少し手の絞込みと優先付け(特に玉方の応手)を巧く行うことができれば、1桁は高速化できる可能性がありそう。

[*1] 現謎電で、解図パラメタを変えながら解くと、解図コストは次の様になった(Barton/3000+、[回]は詰探索回数)。
--
{3, 5}: 3.614[s] 245,766[回]
{3, 7}: 3.314[s] 229,396[回]
{3, 9}: 4.036[s] 227,881[回]
{3,11}: 5.629[s] 228,041[回]
{5, 5}:10.225[s] 395,323[回]
{5, 7}: 8.983[s] 368,564[回]
{5, 9}:10.704[s] 366,852[回]
{5,11}:14.854[s] 366,926[回]

初心者向けの必至問題

テーマ:
左図は、初心者向けの必至問題(1手必至)。
この類のよくある図は21に玉があったり、更に11に後手の香車があるような実戦形。この問題はちょっと捻ったもので、筋が良い人が直感で解くと誤答してしまうかもしれない。
さて、21に玉がある場合は▲23銀の1手必至で受けなし。▲22金の1手詰と▲33桂からの詰を同時に受ける手がないからだ。例えば▲23銀に▽22金と受けても▲33桂▽11玉▲21金▽同金▲同桂成▽同玉▲22金まで詰んでしまう。
話を戻して。
この図の場合どうだろうか。先の必至筋を知っていれば、敵の玉頭を銀で抑える手が正解だろうという予想はつく。となると、
1.▲13銀
2.▲23銀
のどちらかの手しかないわけだが、「なんとなく▲23銀じゃないかな」と感じるのは相当筋がよいと思う。▲13銀より▲23銀の方が、玉の2手先の逃げ道まで見れば、きつく縛っているからだ。
ところが、正解は▲13銀まで1手必至なのである。▲23銀だと▽21金と受ける手があって寄らないのだ。▲13銀に▽21金なら▲23桂の1手詰があり、つまり初手▲23銀は、桂馬を打って詰ます手を自ら消してしまう悪手ということになる。
以上のことから、「詰めろをかける時は、次に複数の詰筋がある方が有力で、その手を優先して読むべし」ということになるわけだ。

さて、現在の計算機将棋では「複数の詰筋」を読んだ上で詰めろをかける手の探索優先付けは行っていないと思う(詰めろかどうかだけ確認してるだけだろう)。そのあたり巧く評価して優先付けできれば探索コストは、少なからず減らせるのではないかと考えている。