忍者ブログ
コンピュータ将棋など…。
[4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ついに、まともな手順が出ました!
最初は353手の詰め手順が出てきて、求解部に最長手順選択&無駄合い除去処理を入れたところ、72手目の37桂打を無駄合いと誤判断して105手くらいの詰め手順になりました。
そこで、やむなく無駄合い除去処理を無効にしたところ、611手の詰め手順が出ました!!
でも、なんとか無駄合い除去はやりたいなぁ・・・。

詰手順(611手):
  46龍(26) 54玉(45) 55龍(46) 63玉(54) 53龍(55) 74玉(63) 73龍(53) 85玉(74) 75龍(73) 96玉(85) 
  97圭(98) 97玉(96) 77龍(75) 96玉(97) 97龍(77) 85玉(96) 86龍(97) 74玉(85) 75龍(86) 63玉(74) 
  73龍(75) 54玉(63) 53龍(73) 45玉(54) 55龍(53) 36玉(45) 46龍(55) 27玉(36) 37龍(46) 18玉(27) 
  19銀打  19玉(18) 39龍(37) 18玉(19) 19龍(39) 27玉(18) 28龍(19) 36玉(27) 37龍(28) 45玉(36) 
  46龍(37) 54玉(45) 55龍(46) 63玉(54) 53龍(55) 74玉(63) 73龍(53) 85玉(74) 75龍(73) 96玉(85) 
  97歩打  97玉(96) 77龍(75) 96玉(97) 97龍(77) 85玉(96) 86龍(97) 74玉(85) 75龍(86) 63玉(74) 
  73龍(75) 54玉(63) 53龍(73) 45玉(54) 55龍(53) 36玉(45) 46龍(55) 27玉(36) 16龍(46) 38玉(27) 
  36龍(16) 37桂打  37龍(36) 29玉(38) 39龍(37) 18玉(29) 19龍(39) 27玉(18) 28龍(19) 36玉(27) 
  37龍(28) 45玉(36) 46龍(37) 54玉(45) 55龍(46) 63玉(54) 53龍(55) 74玉(63) 73龍(53) 85玉(74) 
  75龍(73) 96玉(85) 97歩打  97玉(96) 77龍(75) 96玉(97) 97龍(77) 85玉(96) 86龍(97) 74玉(85) 
  75龍(86) 63玉(74) 73龍(75) 54玉(63) 53龍(73) 45玉(54) 55龍(53) 36玉(45) 46龍(55) 27玉(36) 
  16龍(46) 38玉(27) 36龍(16) 37桂打  37龍(36) 29玉(38) 39龍(37) 18玉(29) 19龍(39) 27玉(18) 
  28龍(19) 36玉(27) 37龍(28) 45玉(36) 46龍(37) 54玉(45) 55龍(46) 63玉(54) 53龍(55) 74玉(63) 
  73龍(53) 85玉(74) 75龍(73) 96玉(85) 97歩打  97玉(96) 77龍(75) 96玉(97) 97龍(77) 85玉(96) 
  86龍(97) 74玉(85) 75龍(86) 63玉(74) 73龍(75) 54玉(63) 53龍(73) 45玉(54) 55龍(53) 36玉(45) 
  46龍(55) 27玉(36) 16龍(46) 38玉(27) 36龍(16) 37桂打  37龍(36) 29玉(38) 39龍(37) 18玉(29) 
  19龍(39) 27玉(18) 28龍(19) 36玉(27) 37龍(28) 45玉(36) 46龍(37) 54玉(45) 55龍(46) 63玉(54) 
  53龍(55) 74玉(63) 73龍(53) 85玉(74) 75龍(73) 96玉(85) 97歩打  97玉(96) 77龍(75) 96玉(97) 
  97龍(77) 85玉(96) 86龍(97) 74玉(85) 75龍(86) 63玉(74) 73龍(75) 54玉(63) 53龍(73) 45玉(54) 
  55龍(53) 36玉(45) 46龍(55) 27玉(36) 16龍(46) 38玉(27) 36龍(16) 37桂打  37龍(36) 29玉(38) 
  39龍(37) 18玉(29) 19龍(39) 27玉(18) 28龍(19) 36玉(27) 37龍(28) 45玉(36) 46龍(37) 54玉(45) 
  55龍(46) 63玉(54) 53龍(55) 74玉(63) 73龍(53) 85玉(74) 75龍(73) 96玉(85) 97歩打  97玉(96) 
  77龍(75) 96玉(97) 97龍(77) 85玉(96) 86龍(97) 74玉(85) 75龍(86) 63玉(74) 73龍(75) 54玉(63) 
  53龍(73) 45玉(54) 55龍(53) 36玉(45) 46龍(55) 27玉(36) 16龍(46) 38玉(27) 36龍(16) 37銀打  
  37龍(36) 29玉(38) 39龍(37) 18玉(29) 19龍(39) 27玉(18) 28龍(19) 36玉(27) 37龍(28) 45玉(36) 
  46龍(37) 54玉(45) 55龍(46) 63玉(54) 53龍(55) 74玉(63) 73龍(53) 85玉(74) 77桂打  77と(78) 
  75龍(73) 96玉(85) 97銀打  97玉(96) 77龍(75) 96玉(97) 97龍(77) 85玉(96) 86龍(97) 74玉(85) 
  75龍(86) 63玉(74) 73龍(75) 54玉(63) 53龍(73) 45玉(54) 55龍(53) 36玉(45) 46龍(55) 27玉(36) 
  16龍(46) 38玉(27) 36龍(16) 37桂打  37龍(36) 29玉(38) 39龍(37) 18玉(29) 19龍(39) 27玉(18) 
  28龍(19) 36玉(27) 37龍(28) 45玉(36) 46龍(37) 54玉(45) 55龍(46) 63玉(54) 53龍(55) 74玉(63) 
  73龍(53) 85玉(74) 75龍(73) 96玉(85) 97歩打  97玉(96) 77龍(75) 96玉(97) 97龍(77) 85玉(96) 
  86龍(97) 74玉(85) 75龍(86) 63玉(74) 73龍(75) 54玉(63) 53龍(73) 45玉(54) 55龍(53) 36玉(45) 
  46龍(55) 27玉(36) 16龍(46) 38玉(27) 36龍(16) 37銀打  37龍(36) 29玉(38) 39龍(37) 18玉(29) 
  19龍(39) 27玉(18) 28龍(19) 36玉(27) 37龍(28) 45玉(36) 46龍(37) 54玉(45) 55龍(46) 63玉(54) 
  53龍(55) 74玉(63) 73龍(53) 85玉(74) 77桂打  77と(67) 75龍(73) 96玉(85) 97銀打  97玉(96) 
  77龍(75) 96玉(97) 97龍(77) 85玉(96) 86龍(97) 74玉(85) 75龍(86) 63玉(74) 73龍(75) 54玉(63) 
  53龍(73) 45玉(54) 55龍(53) 36玉(45) 46龍(55) 27玉(36) 16龍(46) 38玉(27) 36龍(16) 37桂打  
  37龍(36) 29玉(38) 39龍(37) 18玉(29) 19龍(39) 27玉(18) 28龍(19) 36玉(27) 37龍(28) 45玉(36) 
  46龍(37) 54玉(45) 55龍(46) 63玉(54) 53龍(55) 74玉(63) 73龍(53) 85玉(74) 75龍(73) 96玉(85) 
  97歩打  97玉(96) 77龍(75) 96玉(97) 97龍(77) 85玉(96) 86龍(97) 74玉(85) 75龍(86) 63玉(74) 
  73龍(75) 54玉(63) 53龍(73) 45玉(54) 55龍(53) 36玉(45) 46龍(55) 27玉(36) 16龍(46) 38玉(27) 
  36龍(16) 37銀打  37龍(36) 29玉(38) 39龍(37) 18玉(29) 19龍(39) 27玉(18) 28龍(19) 36玉(27) 
  37龍(28) 45玉(36) 46龍(37) 54玉(45) 55龍(46) 63玉(54) 53龍(55) 74玉(63) 73龍(53) 85玉(74) 
  77桂打  77と(66) 75龍(73) 96玉(85) 97銀打  97玉(96) 77龍(75) 96玉(97) 97龍(77) 85玉(96) 
  86龍(97) 74玉(85) 75龍(86) 63玉(74) 73龍(75) 54玉(63) 53龍(73) 45玉(54) 55龍(53) 36玉(45) 
  46龍(55) 27玉(36) 16龍(46) 38玉(27) 36龍(16) 37桂打  37龍(36) 29玉(38) 39龍(37) 18玉(29) 
  19龍(39) 27玉(18) 28龍(19) 36玉(27) 37龍(28) 45玉(36) 46龍(37) 54玉(45) 55龍(46) 63玉(54) 
  53龍(55) 74玉(63) 73龍(53) 85玉(74) 75龍(73) 96玉(85) 97歩打  97玉(96) 77龍(75) 96玉(97) 
  97龍(77) 85玉(96) 86龍(97) 74玉(85) 75龍(86) 63玉(74) 73龍(75) 54玉(63) 53龍(73) 45玉(54) 
  55龍(53) 36玉(45) 46龍(55) 27玉(36) 16龍(46) 38玉(27) 36龍(16) 37銀打  37龍(36) 29玉(38) 
  39龍(37) 18玉(29) 19龍(39) 27玉(18) 28龍(19) 36玉(27) 37龍(28) 45玉(36) 46龍(37) 54玉(45) 
  55龍(46) 63玉(54) 53龍(55) 74玉(63) 73龍(53) 85玉(74) 77桂打  96玉(85) 97銀打  95玉(96) 
  75龍(73) 94玉(95) 86桂打  86香(84) 85龍(75) 93玉(94) 95龍(85) 94桂打  85桂(77) 92玉(93) 
  94龍(95) 94銀(83) 84桂打  81玉(92) 93桂打  71玉(81) 72桂成(84)72玉(71) 73桂成(85)61玉(72) 
  51歩成(52)51龍(11) 51金(42) 51玉(61) 52歩打  41玉(51) 51飛打  32玉(41) 31飛成(51)43玉(32) 
  42龍(31) 54玉(43) 53龍(42) 45玉(54) 55龍(53) 36玉(45) 46龍(55) 27玉(36) 16龍(46) 38玉(27) 
  36龍(16) 37桂打  37龍(36) 29玉(38) 39龍(37) 18玉(29) 19龍(39) 27玉(18) 28龍(19) 36玉(27) 
  37龍(28) 45玉(36) 46龍(37) 54玉(45) 55龍(46) 43玉(54) 53龍(55) 32玉(43) 42龍(53) 21玉(32) 
  41龍(42) 12玉(21) 24桂打  24歩(23) 13歩成(14)13玉(12) 11龍(41) 23玉(13) 15桂打  32玉(23) 
  31龍(11) 43玉(32) 42龍(31) 54玉(43) 53龍(42) 45玉(54) 55龍(53) 36玉(45) 46龍(55) 27玉(36) 
  37龍(46) 18玉(27) 19歩打  19玉(18) 28銀(17) 18玉(19) 17龍(37) 29玉(18) 19龍(17) 38玉(29) 
  39龍(19) 
求解時間: 113.046s
  詰/不詰判明: 112.979s
  手順組み立て:   0.066s
PR
今までは「不明」と返ってきていた無双第88番が最近「不詰」と返ってくるようになって、局面の入力ミスかと思って新東大将棋無双IIで調べるときっちり詰むので、探索ログを追いながら原因を探し、ようやく原因に辿りつきました。
下の図は無双第88番の途中図でここから▲4三歩とすることで詰みますが、ログにはその手がない!
図の中に赤い丸で示しているように3二の地点に先手の角が利いていますが、4三に歩を打つと角の利きを遮ることの考慮が漏れていて、打ち歩詰めと誤判断したため、▲4三歩が生成されていませんでした。

あぁ、なんというチョンボ!

無双87a5

角と同様に飛車の横利きを遮って打ち歩詰めにならない場合も歩打ちの王手を生成していませんでした。orz
このバグを見つけた瞬間、「そんな馬鹿な!」とかなり力が抜けました…。

というか一気に疲れたので、きょうはここまで。
直すのはまた今度にしよう…。

でも、こんなバグ入れ込むの僕だけじゃないよねっ?
ねっ?
まだ、寿が解けるようになっていません…。
とはいえ、若干解ける問題も増えてきたので、調子に乗って公開しますw
ハッシュサイズは決めうちなので、GUIからの指定は反映されません。

ダウンロード(NanohaTsumeUSI120112.zip;214KB)


とりあえず、Athlon64 X2 5000+(2.6GHz)のマシンで新 東大将棋無双II(詰将棋用メモリ768MB)との比較をしてみました。単位は無双IIは秒(小数点以下1位)、なのは詰めはmsです。
速度的にはかなりのところまで来ていると思いますが、一部解けないのでなんとかしたいところ…。

問題 無双II(s) なのは詰(ms)
謎電1 0.0 
謎電2 0.0  63 
謎電3 0.2  31 
謎電4 16.9  10,156 
YSS No.2 1.1  1,032 
大道棋6 579.1  解けない
夢1 0.8  297 
夢2 9.9  1,234 
夢3 70.6  解けない
夢4 1.2  1,157 
夢5 1.1  1,062 
夢6 0.3  422 
図巧第1番 27.0  35,750 
図巧第2番 0.1  47 
図巧第3番 0.0  171 
図巧第4番 0.8  203 
図巧第5番 0.1  16 
図巧第6番 3.8  406 
図巧第7番 1.3  47 
図巧第8番 300.4  解けない
図巧第9番 3.3  625 
図巧第10番 0.3  157 
図巧第11番 0.1  15 
図巧第12番 0.2  47 
図巧第13番 0.3 
図巧第14番 0.5  829 
図巧第15番 0.1  31 
図巧第16番 0.4  62 
図巧第17番 3.5  2,813 
図巧第18番 0.0 
図巧第19番 0.5  78 
図巧第20番 3.7  1,141 
謎電は「あなたは何秒で解けますか」http://ameblo.jp/professionalhearts/entry-10005160178.html
YSSは「コンピュータ将棋用問題集 YSS編」http://www32.ocn.ne.jp/~yss/problems.html
大道棋は「詰将棋おもちゃ箱 - 大道棋6」http://www.ne.jp/asahi/tetsu/toybox/dokidoki/y006.htm
夢は将棋世界2010年6月号「コンピュータは七冠の夢を見るか?」

これはスゴイ!
2つくらいなのはのコメントがあったけど、ちょっと意味がわからない…。
エンジンのほうは標準出力と標準入力を使っているので、GUIはエンジンを子プロセスとして起動して、その入出力をGUI側から操作したい…というのをいろいろ検索して見つけました。

マイクロソフトサポートの「コンソール プロセスを生成して標準ハンドルをリダイレクトする方法」(http://support.microsoft.com/kb/190351/ja)

実に求めている内容っぽい。使っている API は Win32 だけど UNIX では普通にやってそうな感じでしょうか(こういうプログラムの経験はないけど…)。

第二歩があるかどうかは未定。
GUI作成も未定。といいながら、WCSC21のなのはは内部的なI/FはUSIライクになっていて、同一プロセス内でメッセージでエンジン部とGUI部を制御しようとして中途半端な実装になっていましたw
なのは詰めがわりと簡単にUSI対応できたのはそのおかげかな?
まずはエンジン部のUSI対応版を作ろう。


忍者ブログ [PR]
カレンダー
03 2024/04 05
S M T W T F S
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
フリーエリア
なのはの応援をしていただき、かつ協力いただける方は、アマゾンでの買い物は下のリンクからお願いします
最新CM
[04/27 とおりすがり]
[10/21 おてだま]
[10/20 おてだま]
[01/24 なのはminiふぁん]
[01/08 sakura]
最新TB
プロフィール
HN:
かず
性別:
非公開
バーコード
ブログ内検索
最古記事
カウンター
アクセス解析