2010-03-27

_ 第7回詰将棋解答選手権チャンピオン戦

詰将棋メモで「みなさんのプログラムではどうですか」とお誘いがあったので、GPS将棋に詰みの有無を探させてみました。ハードウェアは昨年のCSA選手権で使ったものです。競技ルール, 解答

  1. 10点 (0.023秒)
  2. 10点 (0.044秒)
  3. 10点 (0.077秒)
  4. 1点 (0.026秒) 6手目を同銀成以下11手かかると主張
  5. 1点 (0.342秒) 6手目34玉以下35手かかると主張
  6. 3点 (0.239秒) 16手目57歩以下25手かかると主張
  7. 1点 (0.092秒) 6手目45玉以下19手かかると主張
  8. 0点 (2.678秒) 初手38飛車以下45手かかると主張
  9. 0点 (7.127秒) 2手目15玉以下29手かかると主張
  10. 1点 (0.219秒) 8手目74歩以下41手かかると主張

GPS将棋は今のところ無駄合いや駒余りを認識しないので、残念ながら詰将棋としては鑑賞できていません。従って、点が取れたのは偶然と言えます。また、4番で作意より短い手順を出力しているので、最長手順の出力にも問題があるようです。

詰みの有無を見つけるという観点では、9問目は8並列で解かせても1.4秒程度はかかるので、コンピュータ将棋にとって比較的難しい問題かもしれません。(実戦では詰められなさそうです)

追記: 8問目はひょっとすると部分点がもらえるのでしょうか?

追記2: 山田さんのコメントへの返答で少し考えてみましたが、最長手数を発見するためには攻め方で最短手数の発見が必要になるのでかなり難しい問題だと思います。df-pnでは解けても幅優先探索では解けない問題があるように、詰みの有無は分かっても作意手順を(現在の計算機環境では)答えられないという問題のクラスがあるのではないでしょうか。

追記3: GPS将棋の8問目の回答が何点に相当するかお知らせを読んでも分からなかったので手順を載せておきます。変な手があったらご指摘ください。 1 +0038HI 2 -2938UM 3 +0047GI 4 -3637OU 5 +4738GI 6 -3728OU 7 +0029GI 8 -2817OU 9 +2918GI 10 -1716OU 11 +3827GI 12 -2627NY 13 +1827GI 14 -1615OU 15 +0017KY 16 -0016FU 17 +0024GI 18 -1524OU 19 +0042KA 20 -2423OU 21 +4233UM 22 -2333OU 23 +5544TO 24 -3344OU 25 +6545RY 26 -4453OU 27 +0054KI 28 -5362OU 29 +4542RY 30 -0052HI 31 +4252RY 32 -6252OU 33 +5674KA 34 -5242OU 35 +0043HI 36 -4232OU 37 +0023KI 38 -3221OU 39 +0022FU 40 -2111OU 41 +4341RY 42 -0031KY 43 +4131RY 44 -0021FU 45 +2221TO

本日のツッコミ(全4件) [ツッコミを入れる]
_ 山田 剛@CSA (2010-03-28 17:27)

4で67同銀成とやってしまうのは不思議ですね。もしかしてその次の移動合で不成を生成していない、とかも考えられるような…。<br><br>最長手数発見や無駄合除去は、本質的には単に再探索で枝刈りと証明駒の最小化を進めるだけだと思うんですが、コンピュータ将棋開発者にはあまり関心を持たれないみたいですね。岸本さんが発表した長手数詰将棋の解はものすごく長いものばかり(明日香は作意より300手以上長い手順を答えている)ですし。

_ kaneko (2010-03-28 19:07)

調べて見ましたが、作意手順は局面表に記録が残らず手数を正しく計算できていないことが分かりました。具体的には、最後の58銀不成以下を詰み部分木の再利用+末端の高速3手詰で詰めてしまっていて、0手扱いになっていました。正しい手順を返すためには、色々と努力が必要のようです。

_ 山田 剛@CSA (2010-03-29 23:33)

玉方最長、攻方最短はつまり手数のミニマックスなので、アルファベータである程度効率が出せると思うんですが、普通に探索するとかなり遠回りに詰めるような手順が出ますね。確かに数百手以上だと枝刈りを検出しにくくなって最長手順を求めるのは至難かもしれませんが、枝刈りがなければ並列効果が出しやすいはずだし、長手数詰将棋を解くコンピュータはもう少し作意に近い手順を答えてほしいです。

_ kaneko (2010-03-30 00:58)

現有技術を尽くした時にどこまでできるかどうかは知りたいですね。

[]