1 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 15:33:11 ] できたらよろこんでやる。 前スレ おまいら最強の将棋プログラムしてみろよ part5 pc11.2ch.net/test/read.cgi/tech/1109307327/
473 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 14:03:05 ] >472 無視してるのか、一応話しは通してあるのか見ただけじゃ分からんだろ?
474 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 14:28:20 ] >>473 普通話を通すと言うことは、断り書きを入れる方向で落ち着くもんだ。 断り書きもなしに無条件に許可するようならば、森田将棋に噛み付く筈も無かろう。
475 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 14:31:10 ] ゲームのルールはアイデアだから ルールの記述文をぱくらない限り問題ないよ
476 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 14:49:03 ] こんなんめっけ ttp://524.teacup.com/yss/bbs?M=ORM&CID=1088&BD=3&CH=5 マジですか?!って感じだねえ、ほんとならやばくて手が出せないっつうか出したくないw ココはひとつチャネラーで新しいミニ将棋ルールー作ろうぜ
477 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 15:45:27 ] 7七将棋とか… 駒の種類も本将棋と変わんない。けどちょっと大きいかな。 7 6 5 4 3 2 1 ┌──┬──┬──┬──┬──┬──┬──┐ │▽桂│▽飛│▽銀│▽玉│▽金│▽角│▽香│一 ├──┼──┼──┼──┼──┼──┼──┤ │▽歩│▽歩│▽歩│▽歩│▽歩│▽歩│▽歩│二 ├──┼──┼──┼──┼──┼──┼──┤ │__│__│__│__│__│__│__│三 ├──┼──┼──┼──┼──┼──┼──┤ │__│__│__│__│__│__│__│四 ├──┼──┼──┼──┼──┼──┼──┤ │__│__│__│__│__│__│__│五 ├──┼──┼──┼──┼──┼──┼──┤ │▲歩│▲歩│▲歩│▲歩│▲歩│▲歩│▲歩│六 ├──┼──┼──┼──┼──┼──┼──┤ │▲香│▲角│▲金│▲玉│▲銀│▲飛│▲桂│七 └──┴──┴──┴──┴──┴──┴──┘
478 名前:477 mailto:sage [2007/10/13(土) 17:51:08 ] 全駒総動員の方向で、一度も動かさない駒とかを無くしたいね。 で7七将棋のルール案を。 1.相手陣は「三段分」 ※桂馬の成・不成の選択を残したい 2.味方玉が相手陣の一段目に到達すれば、相手玉を詰まさなくても「勝ち」 ※参考:トライルール 3.千日手はどんな場合でも4回目の同一局面を出現させたほうが「負け」にしたいけど、 棋譜をきちんと取らないと判断しづらいから難しいかな
479 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 20:52:27 ] 4 3 2 1 ┌──┬──┬──┬──┐ │▽香│▽桂│▽王│▽銀│一 ├──┼──┼──┼──┤ │▽歩│▽歩│▽歩│▽銀│二 ├──┼──┼──┼──┤ │__│__│__│▽歩│三 ├──┼──┼──┼──┤ │▲歩│__│__│__│四 ├──┼──┼──┼──┤ │▲銀│▲歩│▲歩│▲歩│五 ├──┼──┼──┼──┤ │▲銀│▲玉│▲桂│▲香│六 └──┴──┴──┴──┘ これどうよ、評価よろしく
480 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 21:05:40 ] >>479 大駒がないのと、銀があって金がないのが気になった。
481 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 21:10:20 ] >>480 大ゴマは盤面が狭いのでこの際無くていいだろうという判断 金は、ほしけりゃ敵陣に乗り込んでひとはた揚げて帰って来いということでゲーム性を面白くするためわざと無くしました
482 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 21:57:47 ] 駒の動きは本将棋と同じじゃなくてもいい?例えば八方桂とか。
483 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 22:00:19 ] 44将棋はさすがに簡単すぎるんじゃねーか? たぶんすぐ解明されそう。
484 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 22:01:48 ] 46だった orz
485 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 22:09:27 ] >>483 解明されたら告ぎ考えるから是非解明してくれ
486 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 00:54:30 ] 将棋板から拾ってきた あっちにはこいつの対局スレがあるぞ 6 5 4 3 2 1 ┌──┬──┬──┬──┬──┬──┐ │▽飛│▽桂│▽銀│▽王│▽金│▽角│ 一 ├──┼──┼──┼──┼──┼──┤ │▽歩│▽歩│▽歩│▽歩│▽歩│▽歩│ 二 ├──┼──┼──┼──┼──┼──┤ │__│__│__│__│__│__│ 三 ├──┼──┼──┼──┼──┼──┤ │__│__│__│__│__│__| 四 ├──┼──┼──┼──┼──┼──┤ │▲歩│▲歩│▲歩│▲歩│▲歩│▲歩│ 五 ├──┼──┼──┼──┼──┼──┤ │▲角│▲金│▲玉│▲銀│▲桂│▲飛│ 六 └──┴──┴──┴──┴──┴──┘
487 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 13:57:04 ] ああ?おお?
488 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 15:25:05 ] 知障のふりで「将棋界の○○」「ああ?」という言い回しを使う奴には要注意だ。
489 名前:デフォルトの名無しさん [2007/10/16(火) 23:25:27 ] >>486 香車がいないのはさびしいな。
490 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:09:51 ] むしろ大駒がいらないんじゃね どうせ盤面は狭いんだし 代わりに酔象を入れようや 裏は太子で 6 5 4 3 2 1 ┌──┬──┬──┬──┬──┬──┐ │▽銀│▽金│▽象│▽王│▽金│▽銀│ 一 ├──┼──┼──┼──┼──┼──┤ │▽歩│▽歩│▽歩│▽歩│▽歩│▽歩│ 二 ├──┼──┼──┼──┼──┼──┤ │__│__│__│__│__│__│ 三 ├──┼──┼──┼──┼──┼──┤ │__│__│__│__│__│__| 四 ├──┼──┼──┼──┼──┼──┤ │▲歩│▲歩│▲歩│▲歩│▲歩│▲歩│ 五 ├──┼──┼──┼──┼──┼──┤ │▲銀│▲金│▲玉│▲象│▲金│▲銀│ 六 └──┴──┴──┴──┴──┴──┘
491 名前:デフォルトの名無しさん [2007/10/21(日) 23:05:06 ] 金玉象はまずいんじゃないか? エロ的な意味で。
492 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 23:25:44 ] ここも糞スレになったな
493 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 08:48:58 ] フェイクができないアルゴリズムなんて、負けるのは当たり前。 勝負というのは先の読み合いで、決定されたものではないだろ。 つまり先が読めないからこそ勝負なわけであって、 相手の行動を予測し、相手に勝つのではなく相手に負けてもらうのが筋ってものさ。 眼力の無いやつは空気読めないから計算、つまり理屈だけで勝とうとする 理屈だけな奴ほど勝つのは楽なことを知っていた方がいい。 理屈な行動は、相手からは完全に予測される行動だからだ。 勝ち手を譲れば、100%の確率で勝ち手を奪うのが理屈というもの。 それがフェイクだと気がつかなければ相手の負けは決まる。
494 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 13:52:07 ] 日本語でおk
495 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 14:20:17 ] >492 とっくの昔から糞スレだボケ。
496 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 17:20:26 ] 完全情報ゲームでフェイクとか言ってもな。
497 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:19:15 ] >>493 いや、言ってる事はよくわからんがとにかく麻雀やポーカーのスレじゃないからここ
498 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 19:34:12 ] 493じゃないが、例えば自王は放置すれば20手詰めと言う場合 1、放置すれば相手王に必死を掛けられる。 相手が詰みに気付かなければ勝ち。 2、受けると長引くがジリ貧。 こういう場合コンピューターだと2を選んだり、 持ち駒使い果たすまで王手掛けたりすることが多いわな。 com同士だと意味ないだろうけど、人間同士だと1が有効なことが有る。
499 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:31:43 ] >498 それを実現するには自分の読みと相手の読み及び評価関数を区別して扱う 「相手モデル探索」が必須だな。 で相手が人間かコンピューターか、どれくらいの棋力かに応じて使い分ける。
500 名前:デフォルトの名無しさん [2007/10/22(月) 22:38:02 ] 圧倒的に強ければ、相手は関係ない 強ければそもそも20手詰めの局面へは進まない
501 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:47:56 ] おれも>>500 と同意見。 結局、相手の思考を予測するってのは、自分の思考に自信が無い時の小手先の対策なんじゃね?
502 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:21:25 ] >>498-499 相手のアルゴリズムを読んだとしても、その相手はこっちを騙すためにわざと気付かないふりをして 弱く見せかけているのかもしれないぞ 相手を見て判断するのは対人戦での面白さを出すには重要なとこではあるけどさ
503 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:00:10 ] >500-501 人間のトッププロにはなかなか勝てない(全体的な実力では上回れない) からこそ、そういう戦略に価値があるのでは? 例えばコンピュータ将棋は詰みのある局面でそれを発見するのが やたら速いが、相手(人間)もそうだと仮定していたらその利点は あまりうまく生かせずに>498の挙げたような状況に陥るかも知れない。 詰みを正確に速く見つける能力がむしろ弱みになってしまう。 >502 特定の相手の指し方を事前にじっくり研究していたらどうかな? たとえば対渡辺竜王を想定して。 ディープブルーも実はカスパロフの指し手を事前にたっぷり研究して 相手の指し方のモデルを持ってたと言う話だし。
504 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:08:06 ] >>503 個人的には、そういう方向性が好きなのだが、 こと「プロに勝つ」という目的においては、>>500 が正しいと思う。 というか>>503 の方法でプロに勝つには、とてつもないプログラム技術と ハードウエア能力が必要になって現実的でない。 プロに勝つというのは、ほっといても100年後には達成できるけど、 楽しめる、指導してくれる、というコンピュータ将棋が今後の課題やね。
505 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:25:15 ] >504 その考えが甘いとしたら。 つまりコンピュータが人間のトッププロより圧倒的に強くなると言う事は 相手がどんな指し手で来てもそれに対して正しく応手できると言う事だが 将棋と言うゲームがそう御しやすいもので無いとしたら厄介だぞ。 その可能性は多いにある……と俺は思う。 それよりは対戦相手のモデルを持っておいて相手の思考の癖(隙)を突いて 序盤からジワジワ優位を築いて行く方がまだ望みがありそうに思える。 確かにセコイ方法だけどなw。
506 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:57:32 ] >>505 確かに俺の考えが絶対に正しいとは言えないが、 相手モデルとかでプロに勝てるなどというのは とんでもなく甘い考えだと思う。 >>505 がセコイ方法だとは全く思わない。 実現できたら本当に素晴らしいが、実現が難しすぎる。
507 名前:デフォルトの名無しさん [2007/10/23(火) 02:07:42 ] {41, 85, 45, 12, 02, 77, ・・・} (これがひとつのデータです) という可変長データが複数あるとします これらを効率よくメモリに記録するにはどうしたらいいですか?
508 名前:デフォルトの名無しさん [2007/10/23(火) 02:08:36 ] 場所まちがえました すみません
509 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 03:07:52 ] あんまりセコクない対人戦略だと、 短時間の勝負ほどコンピュータ有利であることを考えて 時間攻めがいいんじゃないかな? 極端な例だと、80台パソコンを連結して並列に先読みさせる。 可能な相手の指し手が80ある局面なら、人間の思考時間に全部考えて、 ほぼノータイムで指すこともできるはず。 そうされると持ち時間2時間でも、正味1時間位に感じるんじゃないかと。 あるいは、"少しよくなるけど局面を単純化する手"より "よくもわるくもならないけど局面を複雑化する手"を優先する方針にする。 そうすると選択肢が多くなり、人間側の読み筋から外れる率が高くなる。 人間の場合かなり前から現在の局面のことを考えているので、 先読みを空振りさせた場合の負担は、コンピュータよりずっと重いはず。 一から考え直すことになって、かなり苦しくなるじゃないかな。
510 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 10:16:44 ] 竜王と対戦したボナンザも、予測読みが当たればノータイムで指した。 また、ボナンザは人間なら早期に枝刈りしてしまう手を指すこともあったので 読みを空振りさせるという点でもそれなりにできていた。 80台のパソコンというリソースがあるなら、普通にやらせても強くなるから 下手な小細工では意味がないということになると思う。 いや、、アイデアを否定してばかりであれだが、 実際そういうアイデア自体は貴重だし、生かしていくべきだと思う。 ただ、それはすごく難しい(だからこそ素晴らしい)と言いたかった。
511 名前:デフォルトの名無しさん [2007/10/23(火) 10:27:47 ] 相手の指しやすい手から調べるのはかなり有効な手法だよ プロの棋譜、定跡を使うのはその為 個人に限定してもよい
512 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 19:25:07 ] >>510 持ち時間1時間として コンピューターが3回に1回ノータイムでも、1時間つかいきれば 人間側の思考時間は、自分の持ち時間と合わせて2時間ある コンピューターが全部ノータイムの超早指すると 人間側の思考時間は、自分の持ち時間の1時間しかない 読みを空振りさせる回数が3回位増えると 1回あたり数分位とられるから10分くらい損する ぜんぜん違うと思うんですが‥ 結局、80台を良い手を捜すためにつかっても、2割位しか 最前手が変わらないなら、時間攻めで人間が間違うのに かけた方がお得なように思うわけで 実際、複数台での並列先読みや、局面の複雑度を測ったりするのは、 相手の指し手の傾向をつかむより遥かに容易じゃない? 自分のプログラムはまだ弱いのでそんな段階ではないけど。 誰か人柱にならないかなあ。
513 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 20:42:31 ] 台数が80倍になると、一般的に思考時間を9倍にしたくらいの強さになる。 つまり、思考時間:1分、強さ:1台9分相当を選択するか、 思考時間:0分、強さ:1台1分相当を選択するかという問題になる。 (人間が常に同じ時間を消費するという前提) コンピュータよりも人間の方が持ち時間の価値が高いことを利用するわけだ。 悪い手は切り捨てて愚直に80手読まないようにするなどの工夫もできる。 そうなると普通の予測読みとの境界がぼやけてくる。 俺は、通常の予測読みがいいと思う。俺も実測してないのでこれしか言えない。
514 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:44:59 ] あの自演犬やってないと言い張ればいいと思ってるな バレてないと思ってるのは自分だけだぞw
515 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 01:22:32 ] ああ?おお?
516 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 00:48:45 ] ボナンザVS勝負脳―最強将棋ソフトは人間を超えるか www.amazon.co.jp/dp/4047101079/
517 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 04:01:56 ] 将棋のプログラム作っている人の開発環境が気になります。 VC6++っていうのは古いでしょうか?
518 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 08:18:42 ] 将棋ならコンパイラやIDEは関係ないと思うが、 VC2005EEがある今、VC6を使う理由がない。
519 名前:デフォルトの名無しさん [2007/12/04(火) 08:33:00 ] VC++6は軽い
520 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 09:39:10 ] VC++6ってインテリセンスのだいぶ貧弱だったような
521 名前:デフォルトの名無しさん mailto:誤字はわざと [2007/12/04(火) 19:52:33 ] まぁ、x64がコンパイルの出来ないでいいならVC++6でいいんじゃね。
522 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 23:33:57 ] >>518-521 みなさんどうもありがとうございます。 VC++6でもよさそうですね。
523 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 01:05:57 ] VC++6はバグが多くて嫌
524 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 11:00:20 ] つーか、>518を読んでどうしてそういう結論になるのか判らん。 まぁ、VS6の正規ユーザで尚且つ時代遅れのPCを使っているというなら止めないが。
525 名前:デフォルトの名無しさん [2007/12/07(金) 00:45:10 ] VC6は2004にバージョンアップ版が出ている 新しいVistaつかうより、バージョンアップされたXPの方がいいということもある
526 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 10:48:37 ] 仕事じゃなければ好きなのを使えばどれでもいいさ
527 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:17:57 ] VC6なぜか人気あるが自分の経験から言うとあまり印象よくないな。 特に付属のSTLかなりバグがあってひどかった。
528 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 00:17:48 ] 今となってはかなり古いコンパイラだから テンプレートのサポートが微妙だったりするけど 自分の使い方では2003よりもよかったよ インストール早いし、起動軽いし STLはSTLPORTいれて使うもんだと思ってる。 そんな私も2005に移行しましたが。
529 名前:デフォルトの名無しさん [2007/12/14(金) 14:21:23 ] VC6の怖いとこは 一見するとコンパイル通って正常に動作しているようでも トンデモな解釈をコンパイラがしている箇所があったはず。 std::cout << typeid(1.0F==1.0F).name() << std::endl; std::cout << typeid(1==1).name() << std::endl; 仕事だからVC6とかいう発想は 無責任もいいとこ。 まともなコンパイラの機能テストをしていれば Noob以外はそのような発想はしないでしょう。
530 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 18:57:57 ] ぼ、Borland C++ Builderは? いいの?
531 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:59:41 ] USIプロトコルの info コマンドって、minmax探索に偏ってるね。 MC+UCTだと info string ばっかになりそう。 もうちょっと融通利かせないとUSIプロトコル使う意味なす…
532 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 11:08:28 ] >>531 setifnomenuコマンドなんてのが必要かもね。
533 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 11:12:16 ] setinfomenuだった。
534 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 23:38:23 ] info pvで「最後のモンテカルロシミュレーションの手順」でも送ってやればいいんじゃね。 GUIがちゃんと対応出来るかどうかは知らん。
535 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 01:29:44 ] 最強じゃなくてもいいからだれか大局将棋実装しておくれw
536 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 19:45:25 ] やるからには最強を目指す! ところで大局将棋ってナニ?
537 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 20:11:06 ] ttp://taikyokushogi.hp.infoseek.co.jp/tkintro.html
538 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:05:25 ] ttp://www.chushogi-renmei.com/images2/taikyoku-s.jpg やる気しねえw
539 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:32:19 ] ごめん、やっぱムリ。 てか、駒の動かし方全部把握してるヤツ居るのか、これ?
540 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:20:09 ] 仮に把握できたとしても、動かす気になれねぇ。
541 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 03:23:18 ] ttp://taikyokushogi.hp.infoseek.co.jp/tkpieces.html >>537 のサイトに駒の説明があるけど ページなげえw
542 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 03:50:51 ] game14.2ch.net/test/read.cgi/bgame/1163033955/ 最長テンプレだと聞いた。
543 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 05:23:40 ] スレを立てるたびに貼る必要はあるのか… 最長の地位を保つための儀式なのか…
544 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 07:43:19 ] こんなのランダムに動かしてれば人間の方が飽きて投了するだろw
545 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 14:41:35 ] 大局将棋はゲーム性が低いな
546 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 19:35:41 ] ゲームと言うより占いの儀式みたいなものだったって聞いたような気がした(うろ覚え)。
547 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 11:05:39 ] >>537 テレビ番組で、プロ棋士同士が対局してたな 駒の動かし方は本を見ながら確認してたw 1日では勝負がつかず、3日くらいかけていたと思った
548 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 11:27:29 ] トリビアだな
549 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 12:28:25 ] 森羅万象棋作ろうぜ
550 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 13:31:07 ] 「バーサーカーソウル!」
551 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:43:31 ] 市販の将棋強すぎだろ。なんか将棋もプログラミングもやる気ナクナタ・・・
552 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:23:59 ] おまいが弱いだけ
553 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:01:55 ] 前回のGA見てみろ。やる気沸くぞ。
554 名前:デフォルトの名無しさん [2008/01/17(木) 07:02:17 ] もっとこのスレ盛りageようぜ
555 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 02:12:54 ] 【訃報】チェス元世界王者、ボビー・フィッシャーさん死去 64歳 mamono.2ch.net/test/read.cgi/newsplus/1200665136/
556 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 14:49:16 ] C言語でやってる人いる? C++の方がいいのかな?
557 名前:デフォルトの名無しさん [2008/01/20(日) 14:56:43 ] C++の方がいい 部分的にC言語やアセンブラも使える
558 名前:デフォルトの名無しさん [2008/01/27(日) 14:07:14 ] スレッド使ってますか?
559 名前:デフォルトの名無しさん [2008/01/28(月) 16:28:29 ] 使ってますがなにか?
560 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 17:11:16 ] もう、ブルージーンで最強のチェスプログラムできちゃったので将棋プログラムは興味ないわ
561 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 18:20:44 ] 門外漢がよーいうわ
562 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:46:33 ] 作ってる人近況報告してよ
563 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:34:23 ] 強化学習してる。死にそう。
564 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:45:55 ] いちから作り直してる。
565 名前:563 mailto:sage [2008/01/28(月) 21:01:55 ] >>564 ばかやろう、俺なんてマイナスからの出発だぞ。
566 名前:564 mailto:sage [2008/01/28(月) 21:16:24 ] >>565 なんだよ、マイナスってw 以下、マジレス。 おとといのUSIエンジンの登場でモチベーションがかなり上昇した。 弱くても、勝てなくても、笑われても、それでもいいからとにかく形にすることに決めたよ。
567 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 22:13:56 ] >>566 ランダムざしに負けるのがマイナスじゃね?
568 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:16:28 ] 俺も強化学習やってる 俺よりは強いんだが・・・
569 名前:563 mailto:sage [2008/01/28(月) 23:20:41 ] パソコンぶっ壊れたから修理するところから。 あと、部屋が汚くてどこに本があるか分からないから掃除するところから。 >>567 負けそうだから怖い。
570 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:21:31 ] >>568 出現頻度の低いパラメータって学習が遅くね? なんか対策考えないとなぁ。
571 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:32:52 ] >>570 自分は出現頻度が低いパラメータは保持したまま 別のパラメータが変わるような局面に分岐させたりしてる ちなみに効果の程は測ってないけど
572 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:45:18 ] 7五玉で投了
573 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:40:24 ] >>571 なるほど、賢いなぁ。 俺は猿だから対局数でごまかそうかなっと。
574 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:51:11 ] れさライブラリ使ってる人いる?
575 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:10:40 ] あの! Delphiで将棋作るとC++より速度遅いですか?
576 名前:デフォルトの名無しさん [2008/02/07(木) 16:07:46 ] ボーランド製品ならどう速度だろ
577 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 16:13:51 ] あの! Delphiで将棋作るとVisual C++より速度遅いですか?
578 名前:デフォルトの名無しさん [2008/02/07(木) 16:16:26 ] 最適化や個人の技術によるが同程度ならVCの勝ち
579 名前:デフォルトの名無しさん [2008/02/09(土) 21:48:35 ] あの! Delphiでインラインアセンブラだけで将棋作るとC++より速度遅いですか?
580 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:10:11 ] 並列化のことで何年か前にYSS掲示板で議論になってましたけど すごく初歩的な話なんですがrootでsplit(分割)する/しないってのは どういう意味だったんでしょうか? 最初の深さ1だけは読んで、そのそれぞれの(1手読みの)手を並列化するのが 「rootでsplitする」でいいのかな? しない、ってのはどういうことなんでしょう?
581 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:43:52 ] YSS掲示板で訊いた方がいいんじゃね?
582 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 09:44:18 ] あまりに初歩的すぎかなとおもって・・・
583 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 11:46:16 ] 真面目に質問すれば大丈夫
584 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 11:48:45 ] あ,ここより将棋板の方が人(実際に作ってる人)が多いから そっちでもいい alternative だったか,開発者用のスレがある
585 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:40:49 ] 32bitパソコンを使ってますがintでなくcharを使うと メモリの節約にはなるが速度は遅くなるのですか?
586 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:45:01 ] メモリアクセスが減るから速くなるケースもあるかもしれません。 要は、一概には言えないのでテストケースを充分絞って実験してみることです。
587 名前:デフォルトの名無しさん [2008/02/11(月) 14:21:17 ] char や floatが遅いというのはデマ キャッストに時間がかかるというのはデマ
588 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:22:39 ] へぇ〜今調べて自己解決しますたと言うところだったんですが 一概に言えないのですか。へぇ〜
589 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:06:51 ] そりゃそうだろ。メモリ2GB程度のパソコンごときで1G件のデータを扱おうとしたら charじゃないとswapしまくりで遅くてしゃぁない。
590 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:18:39 ] 将棋では1Gも使わないでしょう。 ところでYSSの人は配列は2のべき乗にすると速くなると言ってますが みなさんそうしてるのですか?
591 名前:デフォルトの名無しさん [2008/02/11(月) 15:22:57 ] それはデマ スワップが発生しないように最低限の確保が速い
592 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:05:18 ] へぇ〜デマばっかりなんですね。 今のパソコンと将棋ソフトでスワップはないと思いますが。 でもそう言うには相応の理由があると思いますが、 実際に実験してないけど理論的には速いはず、というところでしょうか。
593 名前:デフォルトの名無しさん [2008/02/11(月) 16:07:36 ] 512や1024ならスワップ起こるよ OS、ほかのプログラムが動いているとハッシュテーブルがメモリ外に出ることがある するととても弱くなる たとえばボナンザで実験するとわかる
594 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:13:57 ] >>580 rootでA,B,Cと候補手があるとして BやCの評価値の評価値を並列に探索して求める場合はrootでsplit。 Bの評価値が確定してからCを探索する場合はrootではsplitしていない。
595 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:56:25 ] >592 デマというか、ハードウェアとかコンパイラに依存するので時代によって……
596 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:41:19 ] >>594 ありがとうございます >BやCの評価値の評価値を並列に探索して求める場合はrootでsplit。 というのは直観的に理解できそうです rootでとりあえず指し手を列挙してみて おらこれとこれとこれがあるから行ってこいやぁ、みたいなw でも >Bの評価値が確定してからCを探索する場合はrootではsplitしていない。 というのがよくわかりません この場合、どこで並列処理(並列化)をしているのでしょうか?
597 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:35:35 ] Bにも子供たちが…
598 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:46:07 ] てことは…… 深さ0(? 現局面のこと)で指し手を列挙して おのおのの指し手について並列するのがrootでsplit 深さ0で指し手を列挙したあとその指し手の1つをまず取り出して そこからの指し手(深さ1以下の指し手)について並列するのがrootでないsplit ってことですか? 実際の方法論としては たとえば候補手が50個並んでいて CPU1が候補手aを、CPU2が候補手bを読んでいって 先に終わったほうが候補手cを読む……という「仕組み」自体はいっしょで それをrootでやるかそうでないかだけが違う(というかYSS議論では違ってた) ということでしょうか?
599 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 02:48:08 ] >>598 深さ0で指し手がA0、B0、C0と3つあるとすると、今のプログラムは A0の手を調べるのに全体の50%の時間を使ってしまいます。 そこで、A0の探索が終わった後に、B0、C0の2つの手を並列に探索します。 その方がA0の探索の結果を使えるので効率がいいためです。 A0の手の下にはA01、A02、A03の3つの手があるとすると、 A01の手を調べるのにこれまた50%の時間がかかります。 そこで、A01の探索が終わった後にA02、A03の探索を並列に行います。 こうやって延々続いていきます。 深さ0でも並列に探索するのが「rootでsplit」で 深さ0でのみ並列に探索しないのが「rootでsplitしない」です。 「rootでsplitしない」場合でも深さ1、深さ2、、、、ではsplitします。
600 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 10:33:34 ] 並列化ド素人の自分だが Aspiration searchの真ん中の値で二分すれば 単純に二倍速くなりそうという感じは受ける。 ちょっと試せないので分からないけど。 ボナンザも歩の交換値2つぶんでAspiration searchをやってるらしいので。。 やっぱり問題はその次からの一回の探索を分ける方法だねえ。
601 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 11:08:15 ] >>599 なるほど・・・ ありがとうございました
602 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:38:42 ] >>600 お前コンピュータ将棋もど素人だろ。 ウィンドウを2分割すれば探索ノードもキレイに2分割できると思ってる?
603 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:47:26 ] 逆に他の手法はきれいに二分割できるの?やろうとしてるの?
604 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:43:40 ] ただのPVS使ってるが少なくとも600のやり方よりは効率がいい。 ついでに書くと、MTD(f)の探索木みれば600がいかに効率悪いかわかる。 まぁ、俺は選手権の対局より強化学習の方を高速化したいから、並列探索は手抜きだがな。
605 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:49:22 ] 書き忘れてた。>>604 のPVSはPV Splittingの方。
606 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:30:13 ] あーなるほど、2つほど勘違いしてた。 600をやって他もできると思ってたら、できないねえ。 ノード数が二分できないのではなく、ノードが二分できないのか。 同じ局面を二回作ってるから二で割って一と。
607 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:44:07 ] そーゆー事だ。
608 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:48:54 ] >>599 に補足すると、「rootでsplitする」場合だと、B0とC0を並列に探索するのでB0,C0の評価値が求まるまでの時間は長くなる。 「rootでsplitしない」場合だと、B0の子ノードOR孫ノードORもっと先のノードで並列化するので、B0の評価値は「rootでsplitする」場合より速くも止まる。 んで、仮にA0の評価値<B0の評価値だと、B0の探索終了時に「B0は(最善手ではないかもしれないが)少なくともA0よりは良い」と分かる。 なんで、「rootでsplitしない」場合は、「仮の最善手」が速く決まる可能性が高い(YSSの掲示板だと「見切り発車」とか表現してた)から、思考時間に制限がある場合にちょっとお得、と。
609 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:49:53 ] すまん、二行目の「も止まる」は「求まる」だった。 死んできます。
610 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:58:06 ] まあ、そんなに簡単なら話にも出てこないか。 でも並列化ってイメージしにくいような気がする。 頭を両手で同時に洗うのは並列化?
611 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:31:48 ] もちろんそうだが,タスクの分割が自明な例だな
612 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:04:11 ] 例えばフライを揚げる時、衣付ける人と揚げる人の二人でやる事あるだろ? そういうのが並列処理。
613 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:19:45 ] その例えは誤解の元
614 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:52:42 ] >>612 それはCPUのパイプラインだ。 並列処理なら、フライパンを二つ用意しなきゃ。 もっとも、将棋の場合は揚げなくてもいいものがあるから、 二つ用意しても倍は速くならないのだ。
615 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:54:02 ] >613 どういう点が…と聞いてみようと考えたら分かった。 >612の例えは「並列処理」と言うより「パイプライン処理」だ。
616 名前:615 mailto:sage [2008/02/13(水) 19:54:54 ] あ、先に言われてしまったw。
617 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:06:09 ] パイプライン処理も並列処理みたいなもんでしょ。 依存関係があっても適用できるわけだし そういう細粒度の並列処理を ソフトウェアでうまく書く方法ってある? 手の生成→並べ替え→手を打つ 手の生成→並べ替え→手を打つ 手の生成→並べ替え→手を打つ 手を打たないと、次の手の生成ができないから無理か orz
618 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:22:52 ] >パイプライン処理も並列処理みたいなもんでしょ。 ぷぎゃー
619 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:41:25 ] いや、言いたいことはわかるよ
620 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 16:51:24 ] >617 普通のPCハードウェア(CPU)じゃ無理だね。 パイプライン処理(それも将棋専用の)が可能なCPUじゃないと。 だから「A級リーグ指し手1号」と言う名前で専用プロセッサを FPGA使って開発してる人が居るわけで。
621 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:28:27 ] パイプラインによるオーバーラップさせた処理は並列処理の一種
622 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:31:21 ] マルチコア環境ではハードでなきゃ無理ということはないと思う 例えばPS3/Cellにはそういう形(パイプライン)の並列処理の枠組みが用意されてる もちろんアルゴリズムは自分で考えるのだが
623 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:07:21 ] >622 へー、CellB.E.(SPU?)にそんな仕組みがあるの? 単なるSIMD演算器がさらに8個並列で存在するだけかと思ってた。 個々のSPU内の演算器を自分好みのパイプラインに仕立てられるのか?
624 名前:623 mailto:sage [2008/02/14(木) 19:37:44 ] >622 もしそういう機能が本当にあれば非常に興味深い(使ってみたい)ので どのドキュメントに載っていてどんな名前で呼ばれている機能か教えてくれ。 「Cell Broadband Engine アーキテクチャ」Ver1.01 (by ソニー) をざっと眺めてみたが見つけられなかった。
625 名前:623 mailto:sage [2008/02/14(木) 20:06:15 ] >622 もしかしてSIMD演算機能あるいはSPUを仮想化してマルチスレッド ソフトウェアを走らせる機能を(ハードウェア)パイプライン機能と 混同してない? 普通の(IntelやAMDのx86)CPUもある種のパイプライン(スーパースカラー) 機能はあるけどプログラマが意識的(明示的)に操れるわけじゃないし。
626 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:11:56 ] 622じゃないけど、 PS3のCellで囲碁をパイプラインってこんなの? www.geocities.jp/hideki_katoh/publications/gpw2007/gpw07-private.pdf αβ探索じゃなくて、モンテカルロならパイプライン可能かもな 要はスレッド間の同期をとるだけじゃん
627 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:20:01 ] >>625 スーパースカラーはパイプラインじゃないよ フェッチ→デコード→演算→レジスタ書き出し フェッチ→デコード→演算→レジスタ書き出し フェッチ→デコード→演算→レジスタ書き出し フェッチ→デコード→演算→レジスタ書き出し こういうのがパイプライン。 スーパースカラは複数の命令を同時に実行できる機能
628 名前:623 mailto:sage [2008/02/14(木) 21:20:17 ] スレッド間同期とパイプライン処理は違うでしょ?
629 名前:623 mailto:sage [2008/02/14(木) 21:27:37 ] >627 スーパースカラー=パイプラインじゃないけど、現在主流のCPUで言う 「スーパースカラー」はパイプライン処理が前提なんだけど。 すなわち複数命令を(同時実行できるものは)同時発行しておいて さらにそれらをパイプライン化された処理装置に叩き込む。 詳細はWiki等を参照してくれ。
630 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:30:02 ] どの命令が並列処理できないかコンパイル時点で分かるよね?
631 名前:623 mailto:sage [2008/02/14(木) 21:34:30 ] >630 ??? 何が言いたいの? コンパイラに並列化を任せて明示的に(機械語レベルで)複数命令を 並列実行するならVLIWアーキテクチャだね。Itaniumみたいな。
632 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:59:56 ] ちなみに普通の(VLIWでない)CPUはコンパイラが並列処理可能な 命令を見つけたとしてもそれをマシン(CPU)に伝える手段が無い。
633 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:37:59 ] さらにちなみにベクタープロセッサ(ベクター型CPU)はひとつの 演算処理(たいていは積和算)そのものを複数のステージに細切れに 分けてパイプライン処理する。したがって同じタイプの演算命令が 次々と間を空けずに来る事が前提。 なのでベクター(行列)の処理に向くと言うか、それにしか向かない。
634 名前:622 mailto:sage [2008/02/15(金) 02:16:07 ] およよ,思いっきり勘違いされた >マルチコア環境ではハードでなきゃ無理ということはないと思う と書いた時点でソフトの枠組みの話をしてることが分かると思ったのだが 分かり難くてスマソ
635 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:11:57 ] >634 いいたいことは分かった。 スレッド同士のバケツリレー的なことを API でサポートしてるってことね。きっとイベントキューとかメッセージボックスとか使うんでしょ。 って >622の文脈であの書き方じゃわかるわけねーよ!
636 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 19:54:51 ] 俺は使ったことがないが,API より上のレベル, フレームワークが提供されていると聞いている >じゃわかるわけねーよ! 読み直してみると確かに分かり難い.改めてすまんかった
637 名前:623 mailto:sage [2008/02/15(金) 22:45:43 ] やっぱりソフトウェア(開発ツール)レベルでパイプライン(的) 処理をサポートする枠組みがあると言う事だったのか。 >634を読んでしばらく考えてようやく意味が分かったよ。 確かにCellのSPUならマルチスレッド(マルチコア処理)で パイプライン(的)処理をする仕組みを作りやすいかも知れないな。 キャッシュなしのローカルストレージのみで動くから インストラクションの実行時間を確実に見積もれる。 そういう話を聞くと>617が書いてるようなパイプライン処理を Cell(PS3)上で実現できないか、ちょっと考えてみたくなるな。 タスクをそれぞれ均等な実行時間を持つステージに分割できるか、 通信オーバーヘッドがどれくらいあるかが問題だけど。
638 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:00:36 ] 概要レベルだが ttp://research.cesa.or.jp/pdf/shiryo6-2-2.pdf にCellの並列化のPipelineモデルとかStreamingモデル等の話が載ってる (日本IBMの東京基礎研の人の講演)
639 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 21:43:39 ] >>638 THX 勉強になった >>626 のPDFを見ても、cellってMBOXでSPUが通信できる仕組みみたいだねえ ハードのパイプラインはクロック同期と思うが、 ソフトでも負荷の無い同期方法ってないもんか? Stramingモデルってのが面白かった
640 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 00:16:34 ] >負荷の無い ってどういう意味? libspe2 には mbox と signal しか用意されてないけど 自分で作るのもあり
641 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 11:30:35 ] >>639 ハードウェアのクロック同期だって負荷があるだろ。 1クロックよりずっと短い処理だってクロック同期を待たなければならないんだから。 それでもCISCの頃よりは計算資源のアクティブ率は上がった。 ソフト側も同様にプロセッサの稼働率を上げていけばよい。
642 名前:デフォルトの名無しさん [2008/03/18(火) 10:22:07 ] 保守
643 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 00:05:55 ] 4/6(日)開催予定のオープン戦案内メールをもらった。 しかしソフトはまだ全然出来ていない。 将棋を指す骨組みと通信部分だけくらいは何とかその日までに 完成させて一回は通信対戦テストをしておきたいのだが。 このままじゃ、ぶっつけ本番になってしまいそうだ。
644 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:46:00 ] オープン戦に間に合わなければ、 wdoorでテストしておけば? CSAの対局サーバーとは細かい違いはあるようだが…… がんばれ
645 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:05:20 ] あげ
646 名前:デフォルトの名無しさん [2008/03/23(日) 13:05:40 ] てなかった
647 名前:デフォルトの名無しさん [2008/03/23(日) 15:10:42 ] ボナンザについて解説してるサイトがあったら教えてください><
648 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 15:55:11 ] >>647 作者のサイトの GPW 2006 発表資料 には目を通した? あの説明で何かわからないことある?
649 名前:647 mailto:sage [2008/03/23(日) 17:44:26 ] >>648 見てなかったです. 読んでみます. サンクスです.
650 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 23:56:08 ] >648 あれ読んでも具体的に何と何を入力パラメータとして 選んだのか今一良く分からないんだよね。 各駒種に対してその位置(升目)ごとに重み付けしていって、 それを2個以上の駒の位置関係にまで広げていったら、 あっと言う間にパラメータは1万個どころか百万個以上に なりそうだし、学習を進めると結局、棋譜に現れたもしくは 探索済みの特定の局面に評価値を与えるだけになりそうな気が。 つまり一般化能力なんか全く無さそうな気がするんだが、 私が何か勘違いしてるのかね? コンピュータ将棋に詳しくないために。
651 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 00:38:13 ] >>650 その論文読んでないけど、テレビでやってたやつ見た限りだと その発想そのままだと思う。 ボナンザの初期バージョンでは数手先まで読むように拡張してみたところ うまく読み取れない局面があることがわかった。 そこで、ある程度(?)評価の悪い枝についても読むようにしたところ かなりよくなった。 完全に総当りじゃなくて、ある程度評価がいい手の中でも 多少悪いぐらいでは枝狩をしない また、相手の手版のときに、多少悪いぐらいの手をさしてくることを 考慮して読んでおくことで、時間を有効に使う 一般的にどうこうするっていうのではなくて 特定の場合に愚直な実装して、枝狩りの閾値さげたら 割とうまくいきました っていう感じだと思う。 他の検索系のやつもそうだけど この手の総当りが必要そうなものについて、愚直に実装して 動かしてみたら案外うまくったってのが、最近の傾向じゃないかな 人間があーだこーだ考えるよりPCに考えさせたほうが 早いっていう。 だから一般化というより、ある特定のルールのときに CPU時間を有効に使えるように変えてみたら アルゴリズムは今までとほとんど同じだけど 勝率があがりました って思ってるけどこれも違うかな? あくまで素人の意見なんですが。
652 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 01:16:23 ] >>650 > それを2個以上の駒の位置関係にまで広げていったら、 広げない。 将棋は、自玉、敵玉に対する位置関係は重要だが、それ以外の2駒の相対的な位置関係は あまり重要なゲームではないからだ。 例えば以下の記事が参考になるだろう。 d.hatena.ne.jp/yaneurao/20080406 ただし、銀の退路が歩で遮られていないかだとか、歩越しになっていないかだとかは重要なので、 Bonanzaでもそこは考慮に入れていたはず。
653 名前:650 mailto:sage [2008/04/11(金) 01:30:39 ] あり? 良く考えてみると二駒の絶対位置関係の 全ての組み合わせにそれぞれ点数を付与して 行ったとしても、二駒のペアは自由に選べるわけだから 特定の局面に対して点数を付けて行くのとは違うな。 汎化能力はあるか、俺が勘違いしてたわ。 それにしてもパラメータ数が膨れ上がると言う謎は残るな。 愚直にやると駒のペア×位置(マス目)×位置(マス目)で 40×39÷2×83×83で500万以上にもなるか?
654 名前:デフォルトの名無しさん mailto:650 [2008/04/11(金) 01:38:22 ] >652 なるほど、サンクス! もうちょっと考えてみよう。
655 名前:デフォルトの名無しさん [2008/04/11(金) 01:39:58 ] >>654 教授か研究者の方?
656 名前:654 mailto:sage [2008/04/11(金) 01:52:32 ] >655 いえ、違います。 ただ単にコンピュータ将棋に関心があって (できれば自分でも作りたいと思ってる) ボナンザメソッドに興味を持った 一介のアマチュアです。
657 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 05:57:50 ] 最善手を求めるときって、引き分けがある場合はちょっと工夫が必要なのかな? 反復進化で求めると思うんだけど、その時未知の局面が現れた場合、引き分けの値との関係が難しい。 負け<引き分け<未知<勝ちという図式になると思うんだけど、未知の局面の値は相手から見ても引き分けより 大きくなければならないので、単純に符号を変えるという普通の方法が使えないわけですが 何か一般的な手法があるのかなと思って聞いて見た次第です。
658 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 06:05:36 ] >>657 未知の局面て何よ? 未探索で評価値がわからないなら探索して決めればいいじゃん。 終端ノードなら、静止評価すればいいじゃん。 そんなの反復深化とも引き分けともなんも関係ないよ。
659 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 06:26:40 ] えっと、負け<引き分け<未知<勝ちから分かる通り 未探索の局面を全て調べる必要がないわけですが、深さを制限しないで調べるのが一般的でしょうかね。
660 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 07:03:41 ] >>659 > えっと、負け<引き分け<未知<勝ちから分かる通り 何が言いたいのかさっぱりわからんよ。 基本的なことを確認するが、あんたは普通のαβや反復深化は理解していて 自分でそのプログラムぐらいはすぐに書けるんだろな? あんたの言う「未知」って何よ?置換表に登録されていないの意味か? そしてその「引き分け」っていうのは、なによ? 評価したい局面で引き分けにする指し手が見つかっているのか、 それとも「引き分け」というのが存在する将棋みたいなゲームでの 一般的な探索メソッドについて話しているのかどっちなのよ。
661 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 12:48:08 ] >>653 例えば相対位置を使ったり
662 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 01:16:32 ] 上の方にあった千日手関係の話?
663 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 10:38:11 ] で将棋に関するGHI問題の話の結論はどうなったの?
664 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:23:06 ] >>663 このスレでは >>234 の論文以上の進展はないと俺は理解している。
665 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 13:18:03 ] >663-64 結論は既に出てると思うが? GHI問題と言うのは証明アルゴリズムの不完全性などに起因するのではなくて、 千日手などのそこまでの指し手に依存して勝ち負け(引き分け含む)が決まる タイプのルールを持つゲーム(将棋、チェスなど)には必然的に生じる問題。 即ち、ある局面からの勝ち、負け、引き分けを厳密に判定するにはその局面に 至るまでの経路(指し手の履歴)も考慮する必要があると言う良く考えれば ごく当たり前の話に過ぎない。
666 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 13:19:36 ] 上のアンカーは >663-664 の書き間違い。
667 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:33:23 ] >657の言う「未知」と言うのは千日手になるかも知れないが初手からの 完全な履歴は残してないので厳密に考えると「千日手になるかどうか不明」 になると言う話なのかな? しかし「相手から見ても引き分けより大きくなければならない」と言うのが 良く分からんな。不明な局面の場合「悪くても引分け(千日手)」に持ち込める と言う保証なんか無いわけだから。不利な状況から千日手に持ち込もうとしても 出来ないかも知れない。
668 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 13:27:01 ] うさ将棋本に局面で乱数xorを用いるhash(zobrist hashのことだろう)を、乱数ではなく もう少しいい方法があるらしいことが書いてあるのだが、誰か情報求む。 与えられた数列集合の要素同士のxorを何回かとるときに なるべく衝突しないような数列を数学的に決定する方法があるのか、 それとも衝突しにくい組み合わせを事前にrandomで選んだ数列集合のうち 良いものを探してみましょう、程度の話なのかどちらなのだ?
669 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 15:46:14 ] その本のは知らないけど、以前読んだ何かのプログラムのソースでは 個々の乱数を生成したら立ってるビットの数はチェックしていたな。 うろ覚えだけど16±5くらいの範囲に収まってるかってのだったかなぁ。 この範囲に無ければ再生成。
670 名前:デフォルトの名無しさん [2008/04/13(日) 16:32:31 ] ボナンザでいくつか質問があるんだけど, ・静的評価関数はminimax探索で利用されるんだよな? ・最適化の数値的手法1のスライドの関数f(p,ν)って何? 人工知能は学部で多少勉強した程度で将棋プログラムの経験もないんでとんちんかんなこと 聞いてるかもしれないけど,教えてください
671 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:52:30 ] >>669 ああ、なるほど。1のビットの数はチェックしたほうが良さそうだね。
672 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 12:13:14 ] 他の乱数とのハミング距離が小さいのは捨てる というのもあった(時間掛かるけど最初だけだからOK)
673 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 12:42:55 ] >>672 ああ、それもいいね。
674 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:07:55 ] >670 良く嫁。同じスライドの下に式があるだろう>f()
675 名前:デフォルトの名無しさん [2008/04/17(木) 20:19:52 ] 序盤、中盤、終盤はどのように判定したらいいんですか? 50手で終盤の事もあるし、200手で中盤の事もあるので手数とは関係ないと思います 考えられるのは、玉の危険度で測るのがいいと思いますが定番のやり方ってありますか?
676 名前:デフォルトの名無しさん [2008/04/17(木) 20:23:10 ] >>668 数学的な方法って無いと思いますよ 自分でやってみた方法は、プロの 棋譜を読み込んで衝突が起こりにくい乱数を決めておくって方法です 実際に起こりえない局面で衝突が起こらなくても意味がないので
677 名前:675 [2008/04/17(木) 20:27:40 ] 読み無しで、玉が詰みそうかどうかを判定する方法がわかれば良いのですが
678 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 21:04:04 ] >>677 > 玉が詰みそうかどうかを判定 これを読みって定義するんじゃないか?
679 名前:675 [2008/04/17(木) 21:31:52 ] 危険度を数値化(危険度の評価関数)するって事ですよ 詰みそうならば詰め将棋を読んで、詰まないことが局面だけから判断できるなら詰め将棋をしなくて済みます 玉の逃げ道の多さが危険度に関係ありそうですけど、穴熊だとうごける所は0なのに堅いです どのように危険度を判定するといいですか
680 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 22:10:47 ] それこそ開発者各々の know-how の部分だろ. まずは定番の「コンピュータ将棋の進歩」シリーズを読む. 続いてゲームプログラミングワークショップの予稿集を読む. CSA に入ってトーナメントに参加し,他の開発者から色々教わる. 本格的な議論は将棋板のコンピュータ将棋関係のスレッドで
681 名前:デフォルトの名無しさん [2008/04/17(木) 22:19:20 ] 将棋板には人いません
682 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 22:40:25 ] >>675 成駒の数とか敵陣にいる駒の数、あとは王将と攻め駒の距離とかかな。 適当に考えただけだから、実装して上手くいくかどうかはわからんが。
683 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 22:42:44 ] >679 この辺で聞くと役に立つアドバイスがもらえるかも知れないよ。 GA将!!!さん運営の「コンピュータ将棋等の掲示板@入門編」 www4.rocketbbs.com/741/comsyogi.html あるいは超有名なYSSの山下さんところの 「コンピュータ将棋や囲碁の掲示板」 524.teacup.com/yss/bbs 最近、掲示板@入門偏は話題が無くて止まってるからちょうど良いかも。 ちなみにダブルポストすると注意されるから気を付けてね。
684 名前:デフォルトの名無しさん [2008/04/17(木) 23:05:52 ] サンクス
685 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 23:22:10 ] >679 ちなみに「うさぴょん本」にちょっとだけ書いてあるのを紹介すると ・玉の危険度 「玉の周囲に敵の利きがどの程度あるか、敵の駒がどの程度の距離に迫っているか」 結局、自陣(自玉周囲)にどの程度敵方の駒が利いているかが判定のキモだと思うな。 自陣に利いていても、玉ではない味方の駒で敵の駒の利きを受け止めているんなら まだ固いと判断できるし、何にも無い空間にバシバシ利いているんなら(裸玉)、 もう詰められる寸前だろうし。 固さと玉の逃げ道の広さは当然、矛盾するところがあるので難しいところだけど。
686 名前:デフォルトの名無しさん [2008/04/18(金) 00:04:17 ] しかし、玉の危険度と、通常の評価関数の二つがあると、どちらを優先したらいいのか混乱しますね 統合した評価関数が出来れば一番良いのですが
687 名前:デフォルトの名無しさん [2008/04/18(金) 00:49:07 ] プロの棋譜で、2回以上現れる局面で必然手のない局面は、互角であると思います。 これを基準にして評価関数を調整するといいと思うのですが… しかし、問題があり、2手以上出てくる中盤までしか調整が出来ません。 プロが指した手が最も得点が高くなるように調整すれば全局面に対応出来ますが 例えば、10手読みを入れた結果だとすると、評価値の値を間違えることになります。 しかし、何手読んだのか知ることは出来ず、常に一手読みとして学習したら駄目でしょうか?
688 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 00:53:31 ] >686 ??? そりゃ、両方をひとつの評価関数として統合しないと。 と言うか、玉の危険度も通常は評価関数の一部だよ。 いろんなパラメータを重み付けして足して行くわけだ。 だから手動で調整するとバランスを取るのに四苦八苦するわけだが。
689 名前:デフォルトの名無しさん [2008/04/18(金) 01:06:48 ] >>688 序盤か、終盤か、は通常の評価関数では知ることは出来ないと思います。 互角であっても終盤である事があります。 終盤であることを知るにはどちらかの玉が危険であると知ることが必要と思います。 そのため、玉の危険度と通常の評価関数がないと終盤がわかりません。
690 名前:689 [2008/04/18(金) 01:20:20 ] 先手の得点A、後手の得点Bに対して、評価関数をA/(A+B)とするならば MAX(A,B)の値によって終盤判定が行えると思います。
691 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 01:45:16 ] >689 (通常の評価関数の一部としての)玉の危険度と 局面の進行度(終盤度)を計るための玉の危険度の話が ゴッチャになっているね。(私が誤解したのかも知れない) 後者は例えば 序盤度×パラメータA+中盤度×パラメータB+終盤度×パラメータC と言うような重み付け係数として組み込む事になると思う。 玉の危険度は終盤度(進行度)と通常の(有利不利を見る) 評価関数の一部としての両方に表れて良いと思うけど、 進行度の方はあまり凝った評価はしなくて良いんじゃ無いかな? お互いの陣地に成り込んだ駒の数とか持ち駒の数くらいで。 飽くまで私見ですが。
692 名前:デフォルトの名無しさん [2008/04/18(金) 01:51:46 ] 5対5でも、8対2でも、最善手を指せば駒交換などの後、数手以内なら状勢は変わらないはずですね。 ボナンザはその前後で評価値が変わらないとして学習しているって事ですか。 何手先の局面と評価が一致するのかが重要ですが。
693 名前:デフォルトの名無しさん [2008/04/18(金) 02:15:05 ] >>691 玉の危険度を正確に評価することは重要と思います。 正確に判定できれば、終盤用の指し手がさせますし、詰め将棋を調べず高速に危険度が求まります。 >>692 の続きですが、評価値が保たれている局面を把握する方法は、既に知られているんですか? ネットで見る限りでは、駒交換だけ進める様な感じと思いますが… しかし、それでは飛車・角・香の利きが良く利いているなどの情報は失われます。
694 名前:693 [2008/04/18(金) 02:26:04 ] 例えば、銀は取られて、と金が作れて互角になったり、 桂は取られるけど、飛車がいい位置に移動できて互角になったりすると思います。 あとお互いに飛・角がいい位置に移動して互角になることもあります。 静止探索では、飛車が好位置に移動することも考慮しますか?
695 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 10:59:14 ] >>693 > 正確に判定できれば、終盤用の指し手がさせますし、 > 詰め将棋を調べず高速に危険度が求まります。 あんた、ほんとに将棋弱いんだな。 少しでも将棋が指せるなら、持ち歩の一歩の違いだけで 詰む/詰まないが変わることなんてしょっちゅうあることは わかりそうなものなのに。 結局、ここからもわかるように 単純な関数で正確に評価することは出来ない。 詰め将棋なんて、静止評価に比べれば終端ノードの評価に 計算量を要しないので、詰む可能性が高そうな局面は全部調べればいいじゃん。
696 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 11:03:09 ] >>694 > 静止探索では、飛車が好位置に移動することも考慮しますか? したければすればいいし、したくなければしなければいい。 その手の評価関数を副作用なしに書くことは非常に難しいので シンプルな評価関数にして先読みできる量を増やしたほうが 棋力は向上すると思うがな。
697 名前:デフォルトの名無しさん [2008/04/18(金) 11:05:35 ] 例えば、三手後に詰みそうな局面が出てきたとします。 先手と後手の指し手が20通りずつあって、そのうち正解手は一手だけとして その400通りの全てで詰め将棋を0.5秒つかったらそれだけで3分以上かかります。 静止探索でググると「 関連検索: bonanza 静止探索 」というのが出てきます。 みなさん bonanzaの 静止探索に注目してるんですね…
698 名前:デフォルトの名無しさん [2008/04/18(金) 11:25:43 ] >>696 評価関数を書くのではなく、評価関数を自動で調整する為に静止探索をつかうんです。 プロの指し手は最善だとすると、静止の局面から、次の静止の局面への評価値に変化はないと仮定できると思います。 2つの局面で評価値が変化しないようにパラメータを決めるんです。 そのため静止局面が正しく判定出来ないと弱くなります。
699 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 12:04:29 ] 野暮な突っ込みだけど >その400通りの全てで詰め将棋を0.5秒つかったらそれだけで3分以上かかります 0.5秒は遅すぎです。正確な時間は分からないけど1ミリ秒でも 遅いと思います。
700 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 13:20:03 ] >>697 > 例えば、三手後に詰みそうな局面が出てきたとします。 だから「三手後に詰みそう」だとどうやって正確に判定すんの? 言っとくけど王の近傍だけでは判定できないし、敵王の近傍に 自駒がたくさん利いていても、その利きによって打歩詰めになるかも 知れない。利いてりゃいいってもんでもない。 正確に判定したければ、実際に3手読むほうがよっぽど速い。 > 先手と後手の指し手が20通りずつあって、そのうち正解手は一手だけとして 即詰に関しては平均合法手は20もない。6,7ぐらい。 > その400通りの全てで詰め将棋を0.5秒つかったらそれだけで3分以上かかります。 日本語が意味不明なんだが、3手読むのに要する時間は1ms以下だと思うのだが。 一体、何の話をしてるんだ?
701 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 13:26:14 ] >>698 > 評価関数を書くのではなく、評価関数を自動で調整する為に静止探索をつかうんです。 「評価関数を自動で調整する為に静止探索をつかう」なら その「静止探索」で使うための評価関数がいるだろ。 > プロの指し手は最善だとすると、静止の局面から、 > 次の静止の局面への評価値に変化はないと仮定できると思います。 できない。少なくとも投了の数手前には形勢はどちらかに大きく傾いてる。 あんた本当にプログラム1行でも書けるのか? プログラムの書けないキチガイの戯言ならこれ以上付き合わないぞ。
702 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 13:40:38 ] >>701 > あんた本当にプログラム1行でも書けるのか? 今頃気づくなよw どう考えても最初から素人の妄言だろ
703 名前:デフォルトの名無しさん [2008/04/18(金) 13:42:36 ] >>701 中・終盤で2対8でもいいんです。 双方が最善を指したならば数手以内なら2対8が保たれるはずです。 例えば、いったん飛車がとられるけど、金と桂を取り返せて 初めの静止局面から、次の静止局面の評価はほぼ等しくなるはずです。 プロがミスをしないものとします。
704 名前:デフォルトの名無しさん [2008/04/18(金) 13:46:39 ] >>700 ルートでは詰みはないけれど、探索中の3手後に詰みそうな局面が現れたとします。 このとき、全てに対して詰め将棋を計算するのは効率は悪いって事ですよ。 だから、局面から危険度が求まれば、詰め将棋をしなくて良い場合がでてくるかもしれないってことです。
705 名前:703 [2008/04/18(金) 13:48:52 ] ボナンザの場合、基本は一手後と評価値の変化はないものとして、駒交換が起こる場合は進めた局面と比較するって事でしょう。
706 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 15:01:02 ] >>703-705 あんたがプログラムが一行も書けない 掲示板をsageることすら知らない 日本語がままならないキチガイだって ことはよくわかった。 プログラムが書けないなら、プログラムの勉強から先にやりなよ。 あんたが小・中学生ならいまからでも遅くはないだろう。
707 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 16:44:04 ] え、痴呆、知的障碍でなければプログラミングなんて いつからだって間に合うでしょう。。
708 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:50:23 ] >>707 もちろんその通りなのだが、703の場合は日本語の勉強とかインターネットを使う勉強とか たくさん他に勉強しないといけないことがあるように思ったんでな。
709 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 20:57:18 ] こいつはリバーシ1くさいな
710 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 00:30:25 ] いや30過ぎてからでは難しいと思うぞ<プログラミング
711 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 00:56:48 ] どうなんだろうな 一種の芸術技能だと考えると確かに30越えはきつそうだが…
712 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 07:07:00 ] すみません、詰め将棋のプログラムつくっているんですけれども、 無駄合いの判断でつまっています。なにかいい考え方はありますでしょうか?
713 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 10:06:31 ] >>712 「コンピュータ将棋の進歩」の1を読んだらどうだ?
714 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:04:34 ] >712 うさ親さんの「コンピュータ将棋のアルゴリズム」にも解決法が 示されているよ。「王手を掛けた駒で合い駒を取り、その合い駒を 玉方にすぐに返した時にそれでも詰むならばそれは無駄合いである」 と言う考え方らしい。 「柿木のアルゴリズム」と呼ばれるのだそうな。
715 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 13:24:07 ] 玉側の利きが無くて玉の周囲で無い駒はりは無駄合いの確率が高い。 まとめると、引きつけておいて、その駒が取れて逃れられるケース以外は無駄合いらしいということ。
716 名前:デフォルトの名無しさん [2008/05/03(土) 14:34:10 ] homepage.mac.com/junichi_takada/wcsc18/
717 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:50:00 ] アマチャンピオンがAIに負けたようだな
718 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 19:14:30 ] 山下BBSで初心者が完全スルーされててワロタ
719 名前:デフォルトの名無しさん mailto:age [2008/05/11(日) 23:19:58 ] 皆さんに教えてください。 思考部分の将棋ソフトを作ろうと考えていますが。 GUIに「CSA将棋」を使うか「将棋所」を使ったほうがいいか考えています。 他に何か良さそうな物が有れば教えてください。 行く行くはコンピュータ将棋選手権に出たいと考えています。
720 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 23:35:19 ] どちらでもいい。思考本体さえ出来れば入れ替え簡単
721 名前:デフォルトの名無しさん mailto:age [2008/05/11(日) 23:39:10 ] 了解しました。では、サービスがよい「将棋所」で作ります。ありがとうございました。
722 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 01:22:35 ] 将棋所ってはじめて知った。USI対応のGUIなんてあったんだ。 俺も将棋プログラムしてみようかな…
723 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 18:07:38 ] >>718 こいつ? 2回目以降の探索の確率は 投稿者:初心者 投稿日:2008年 5月 7日(水)03時15分22秒 編集済 2回目以降の探索の確率は、どうやって決めますか? 1回目の探索で、たとえば、王手やそれをかわす手、飛車取りやそれをかわす手などは 高い確率にするのは当然と思いますが、2回目は得点に応じて確率を割り振りますか? しかし、得点比率で割り振ると飛車が逃げる手が10通りあってどれもがほぼ同点だと 重要な手なのに、割り振る値は小さくなってしまいます。 かわす場合は特別で、一手であるかの様に扱うとかわしてすぐに取られてしまう手にも 高確率を与えてしまう事になります。 あと初期の確率は、完全に無視して、得点だけにするかどうかもはっきりしません。 かわす手はその時点で、一番高い一手のみを採用して、あとは無いものとして扱って 確率を分配すれば良さそうですね。その手を使って不利にならなければそのままで良いし 無視したほかの手より得点が下がればそちらを採用すればいいので。
724 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 18:46:41 ] 将棋所のLaramieとか序盤がめっちゃくちゃで萎える・・・ そのくせ駒がぶつかると強くなる 将棋の勉強にちっともならない
725 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 19:26:59 ] CPUで勉強しようとする頭がオカシイんだよ^^たまには外でなよ><
726 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 01:06:52 ] 逆に考えるんだ。 序盤なんてどうでもいいんだと
727 名前:デフォルトの名無しさん mailto:SAGE [2008/05/20(火) 13:34:56 ] yaneuraoの宣伝ブログの裏側はこうなっています。 www.pressblog.jp/static/pressblog.aspx yaneuraoのブログを訪問したり、コメントしたりすると、原稿料がアップする仕組みです。
728 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:16:25 ] 原稿料の算定基準が掲載されていないな
729 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:30:15 ] >>727 キチガイ帰れ
730 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:31:21 ] 727は d.hatena.ne.jp/yaneurao/20080510 弓月とか言うキチガイの模様。
731 名前:デフォルトの名無しさん mailto:SAGE [2008/05/20(火) 14:46:03 ] 集客力のあるブロガーほど報酬が高いのは当たり前
732 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 14:53:37 ] 731は弓月とか言う知能障害者っぽいな d.hatena.ne.jp/yaneurao/20080509
733 名前:デフォルトの名無しさん mailto:SAGE [2008/05/20(火) 14:57:35 ] ここのところ屋根裏は毎朝宣伝こいてるな
734 名前:デフォルトの名無しさん mailto:SAGE [2008/05/20(火) 14:59:45 ] 集団ストーカー激指&やねうらおはもはや有名
735 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:02:56 ] 弓月とか言うキチガイは、あの天下のやねうらお様に遊んでもらえて幸せだな。
736 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:04:16 ] >>733-734 お前はお前用のキチガイスレに帰れ love6.2ch.net/test/read.cgi/sf/1177547691/
737 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 15:05:50 ] >>736 この弓月とか言う精神障害者用のスレは、こっちじゃね? science6.2ch.net/test/read.cgi/sci/1165122111/
738 名前:デフォルトの名無しさん mailto:SAGE [2008/05/20(火) 17:54:45 ] 以上、集団ストーカーの実演でした。
739 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 18:30:36 ] >>738 お前は、半角入力すら出来ない知能障害者
740 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 18:34:00 ] なるほど。 -- 727 名前:デフォルトの名無しさん[SAGE] 投稿日:2008/05/20(火) 13:34:56 yaneuraoの宣伝ブログの裏側はこうなっています。 www.pressblog.jp/static/pressblog.aspx yaneuraoのブログを訪問したり、コメントしたりすると、原稿料がアップする仕組みです。 731 名前:デフォルトの名無しさん[SAGE] 投稿日:2008/05/20(火) 14:46:03 集客力のあるブロガーほど報酬が高いのは当たり前 733 名前:デフォルトの名無しさん[SAGE] 投稿日:2008/05/20(火) 14:57:35 ここのところ屋根裏は毎朝宣伝こいてるな 734 名前:デフォルトの名無しさん[SAGE] 投稿日:2008/05/20(火) 14:59:45 集団ストーカー激指&やねうらおはもはや有名 738 名前:デフォルトの名無しさん[SAGE] 投稿日:2008/05/20(火) 17:54:45 以上、集団ストーカーの実演でした。 -- 判りやすいと言うかなんと言うか……
741 名前:デフォルトの名無しさん [2008/05/20(火) 19:11:12 ] やねうらおは明日も宣伝をこく。きっとこく。
742 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 19:26:30 ] 全角の人以外に空欄はいないので(略)
743 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:23:39 ] >>741 お前激しくスレ違いだから以下の精神病患者スレに移動願う。。 love6.2ch.net/test/read.cgi/sf/1177547691/ science6.2ch.net/test/read.cgi/sci/1165122111/
744 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:27:46 ] なんだこいつ・・・きめえ・・・
745 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 14:35:45 ] 詰め将棋を研究して数学的になぜ詰めるのかが分かればその延長線上に最強プログラムがあると思うよー あとチェスでいうオープニングの研究もしたほうがいいと思うよー
746 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 14:43:47 ] 詰め将棋は既に十分に強いんです
747 名前:デフォルトの名無しさん mailto:age [2008/05/22(木) 15:13:43 ] ki2 書式の質問です。 ▲7六歩 △3四歩 ▲2六歩 △4四歩 ▲2五歩 △3三角 ▲4八銀 △4二飛 ▲6八玉 △3二銀 ▲7八玉 △7二銀 ▲5六歩 △4三銀 ▲5八金右 △9四歩 ▲9六歩 △6二玉 ▲5七銀 △6四歩 ▲3六歩 △7一玉 ▲8六歩 △5二金左 ▲8七玉 △7四歩 ▲7八銀 △8四歩 ▲3八飛 △3二飛 ▲6六歩 △5四歩 ▲6七金 △6三金 ▲6八銀 △8二玉 ▲7七銀右 △4五歩 ▲7九角 △5五歩 ▲3七桂 △5四銀 ▲5五歩 △同 角 ▲5六金 △4四角 ▲5八飛 △2六角 ▲4五金 △5三歩 ▲5四金 △同 歩 ▲4三銀 △3三飛 ▲5四銀成 △同 金 ▲同 飛 △3七角成 ▲4六角 △3六馬 ▲4四飛 △4三歩 ▲6四角 △7三銀打 ▲4六飛 △6三馬 ▲4二角成 △5二金打 ▲3三馬 △同 桂 ▲3一飛 △2五桂 ▲3四飛成 △3七角 ▲5四金 △6二馬 ▲2五龍 △5三歩 ▲5五金 △1九角成 ▲6五桂 △4六馬 ▲同 歩 △5七飛 ▲5八歩 △1七飛成 ▲3三角 △6七香 ▲5九金 △6八歩 ▲1八歩 △3七龍 ▲1五角成 △3九龍 ▲4八馬 △1九龍 ▲3七馬 △3九龍 ▲4八馬 △同 龍 ▲同 金 △6九歩成 ▲6七銀 △7九と ▲2九龍 △8九と ▲同 龍 △5四歩 ▲7三桂成 △同 馬 ▲6五金 △5三桂 ▲5四金 △5五桂 ▲7八銀 △2七角 ▲5三金 △同 金 ▲6五桂 △5四角成 ▲5七金 △6四馬上 ▲5六香 △6三金 ▲8八玉 △7三桂打 ▲2一飛 △6五桂 ▲同 歩 △同馬右 ▲6六銀打 △6四桂 この棋譜において最後の行の△同馬右です。これは△同馬直と書くのが正しいと思うのですが。 柿崎将棋では正しく処理されています。何故なのでしょう? 右と書いて右に無ければすぐ下を探すというのが正しいのですか? ちなみに直と書き直しても正しく処理されました。
748 名前:747 mailto:age [2008/05/22(木) 16:01:10 ] 自己レス。同じような記述を複数見つけ、これが正しいと理解しました。 お騒がせしました。
749 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:06:45 ] >>745 色々考えた結果、最強はデータベースっぽいアプローチなのかなと思った。
750 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:12:38 ] chessは序盤と終盤がデータベースで済むんだが…… 将棋は中盤に入ると毎回、一度も過去に出ていない局面が毎回大量に出てくるので、 100TBぐらいでは全然歯が立たないみたいなんだよな データベースに全部収まるとカッコイイんだが 要は、ある局面を評価できればいいだけなので、 データベースとしてデータを持っておくことに意味があるわけではない……
751 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:24:13 ] チェスの終盤は、ポーン2個vsポーン2個くらいの状況でも 普通のコンピュータで完全に読みきることは出来ないくらい難しい。 データベースがあると終盤をかなり上手く指すようになるけど 思考力は人間の半分以下
752 名前:デフォルトの名無しさん mailto:age [2008/05/26(月) 03:00:37 ] ネタ提供? 2ch棋譜の内40433件の分析したデータ *:先手の勝ち数:後手の勝ち数:*:*:戦型 1:739:626:0:0:その他の戦型 2:1282:1131:0:0:横歩取り 3:1994:1785:0:0:中飛車 4:4975:4259:0:0:矢倉 5:4208:3825:0:0:四間飛車 6:1647:1608:0:0:相掛かり 7:516:378:0:0:角交換腰掛銀 8:37:33:0:0:袖飛車 9:928:749:0:0:向飛車 10:1699:1679:0:0:三間飛車 11:646:617:0:0:相振飛車 12:114:121:0:0:右四間飛車 13:847:754:0:0:角換わり 14:737:822:0:0:ひねり飛車 15:40:43:0:0:筋違角 16:123:81:0:0:右玉 17:297:227:0:0:陽動振飛車 18:56:38:0:0:5筋位取り 19:139:144:0:0:角交換その他 20:50:60:0:0:角換わり棒銀 21:34:17:0:0:角換わり拒否 22:18:13:0:0:風車 23:38:20:0:0:棒銀 24:29:23:0:0:タテ歩取り 25:93:98:0:0:雁木
753 名前:デフォルトの名無しさん mailto:age [2008/05/26(月) 03:04:33 ] *:先手の勝ち数:後手の勝ち数:*:*:棋戦 1:968:881:0:0:王位戦 2:5715:5183:0:0:順位戦 3:837:764:0:0:NHK杯 4:1525:1229:0:0:竜王戦 5:146:128:0:0:日本シリーズ 6:228:196:0:0:朝日オープン 7:1438:1385:0:0:その他の棋戦 8:788:680:0:0:棋王戦 9:71:65:0:0:達人戦 10:1503:1308:0:0:棋聖戦 11:741:745:0:0:銀河戦 12:133:107:0:0:レディースオープン 13:865:820:0:0:王座戦 14:653:540:0:0:新人王戦 15:269:212:0:0:名人戦 16:40:43:0:0:朝日アマ名人戦 17:249:230:0:0:勝ち抜き戦 18:127:125:0:0:女流王将戦 19:102:99:0:0:倉敷藤花 20:490:434:0:0:早指戦 21:1122:943:0:0:王将戦 22:116:108:0:0:女流王位戦 23:212:203:0:0:女流名人戦 24:73:80:0:0:近将カップ 25:130:96:0:0:三段リーグ 26:101:104:0:0:早指新鋭戦 27:10:9:0:0:中学生名人戦 28:20:28:0:0:アマ王将戦 29:10:21:0:0:赤旗名人戦 30:59:53:0:0:全日アマ名人戦
754 名前:デフォルトの名無しさん mailto:age [2008/05/26(月) 03:06:15 ] 30:59:53:0:0:全日アマ名人戦 31:13:22:0:0:平成最強戦 32:31:25:0:0:グランドチャンピオン 33:55:63:0:0:鹿島杯 34:25:30:0:0:アマ竜王戦 35:604:538:0:0:全日プロ 36:28:22:0:0:レーティング選手権 37:2:4:0:0:学生王将戦 38:12:20:0:0:小学生名人戦 39:19:15:0:0:学生名人戦 40:11:13:0:0:女流アマ名人戦 41:13:25:0:0:IBM杯 42:177:170:0:0:天王戦 43:95:84:0:0:若獅子戦 44:411:333:0:0:名将戦 45:430:309:0:0:十段戦 46:48:41:0:0:若駒戦 47:76:94:0:0:連盟杯戦 48:19:16:0:0:名棋戦 49:100:100:0:0:奨励会 50:43:53:0:0:最強者決定戦 51:27:16:0:0:古豪新鋭戦 52:82:87:0:0:九段戦 53:19:44:0:0:東京新聞杯 54:36:40:0:0:支部対抗戦 55:4:1:0:0:学生女流名人戦
755 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 03:07:24 ] 56:1:0:0:0:新春お好み対局 57:1:0:0:0:細:九段設定戦 58:8:10:0:0:アマ女王戦 59:10:7:0:0:育成会 60:47:61:0:0:都名人戦 61:8:4:0:0:高校竜王戦 62:1:3:0:0:その他の棋戦 63:28:18:0:0:大和証券杯 64:1:0:0:0:NHK杯 65:0:2:0:0:順位戦 66:38:30:0:0:朝日杯 67:22:31:0:0:マイナビ 68:0:1:0:0:倉敷藤花戦
756 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 03:09:33 ] *:先手で勝ち数:先手で負け数:後手で勝ち数:後手で負け数:名前 1:585:178:491:253:羽生善治 2:644:304:539:378:谷川浩司 3:187:180:155:208:島 朗 4:119:87:122:108:三浦弘行 5:105:88:83:95:畠山成幸 6:258:130:229:176:郷田真隆 7:216:163:203:206:南 芳一 8:90:62:82:77:真田圭一 9:128:92:132:105:中田宏樹 10:341:156:272:202:森内俊之 11:260:103:237:180:丸山忠久 12:208:125:180:150:藤井 猛 13:533:332:468:370:中原 誠 14:363:173:307:224:佐藤康光 15:57:41:62:44:松尾 歩 16:102:83:93:105:日浦市郎 17:97:96:98:69:畠山 鎮 18:179:121:150:143:阿部 隆 19:108:57:115:56:渡辺 明 20:155:104:155:115:中川大輔 21:39:57:29:59:伊藤博文 22:226:205:189:243:桐山清澄 23:169:110:153:130:先崎 学 24:84:58:69:82:北浜健介 25:94:44:96:55:山崎隆之 26:67:85:56:100:前田祐司 27:184:206:145:204:青野照市 28:68:52:58:61:石橋幸緒 29:49:52:53:55:矢内理絵子 30:59:39:53:46:近藤正和 以下省略
757 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 02:43:54 ] >>752 みて思ったんだけど将棋の戦型って曖昧だよな 四間飛車だけだと先後どちらが振ったか分からないし、角換わりだけやたらと分類されてたり もっとスマートに記述する方法はないの?
758 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 23:12:53 ] 定跡データベースの樹形図で葉の数が均等になるようにすればよい
759 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 03:58:58 ] DNAの解析を各自のコンピュータで分析した結果をあつめて 実現しようっていうのがあったとおもうけど それと似たように分散している計算力をあつめて全ての局面を評価するってできない?
760 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 04:53:19 ] 分散処理は既に行われてるが全ては無理
761 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:53:06 ] 将棋も囲碁もその場が今どちらが有利かなんて人によって考えが違うに決まってる だから色んな人工頭脳をもった将棋プログラムを作ればいいと思う 俺には無理だけど
762 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:57:37 ] ログも読まず低レベルながらに頑張って口出ししては消えていく そういう輩が時々現れるよね
763 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 04:05:53 ] 9x9の盤面に8種類のコマが自分と相手の分あって、あとは空だから 81**(8*2+1) で、ルールの制約があるからこれよりもっと少ないと思う www.google.co.jp/search?hl=ja&rlz=1T4GFRD_ja___JP238&q=81**%288*2%2B1%29&btnG=%E6%A4%9C%E7%B4%A2&lr= それまでの手がどうであってもルール上許される配置のどれかになる でルール上許される全ての局面に評価値をつける 勝敗が微妙な局面もあるけど、そこから 自分の勝ちの局面に少ない手で到達できるとか 相手の打ち方によらず確実に勝ち局面に到達できる手とか があるほど評価値を高くするって案はどう?
764 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 04:24:12 ] >>763 成りがあるから81**29か www.google.co.jp/search?hl=ja&rlz=1T4GFRD_ja___JP238&q=81**29&lr= で特定局面から持ち駒も含めて別の局面へ遷移する手を考える つまり各局面間の遷移に分割して解析する
765 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 04:43:55 ] >>764 ちがうわ 29**81かw 81C40 * 29**40 でもいいか?
766 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 04:47:39 ] 81C40 * 29^40 = 6.65363027 × 10^81 www.google.co.jp/search?hl=ja&q=%2881+choose+40%29*29%5E40&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
767 名前:デフォルトの名無しさん mailto:age [2008/06/01(日) 10:47:51 ] このスレの過去スレを読みたいのです。どこかで見れますか? 又は、持っている方UPお願いいたします。
768 名前:デフォルトの名無しさん [2008/06/01(日) 12:29:25 ] つ usapyon.dip.jp/shogi/computer/index.htm
769 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 15:21:19 ] ありがとうございます。
770 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 15:27:02 ] どういたしまして
771 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:14:07 ] 仮にすべての局面を評価できるとしたら、投了直前の局面をすべて生成して勝ち負けつけて 開始局面に向かって戻っていくだけだから、連続的な評価値なんて不要
772 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:16:13 ] >>771 戻して行く? どこで手駒を使ったかまで遡れるのか?
773 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:24:15 ] >764 (現在の)局面状態だけを見て各局面への遷移を分類するのは難しい。 あちこちにループが発生する。詳しくはこのスレを頭から良く読んでね。
774 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:31:23 ] >771と>772が想定している「全ての局面」の意味が違うようだな。 つまり、その局面に至る経路情報を含めて分類してるのか、 経路情報は捨てているのか?
775 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:57:50 ] 将棋でこういうデータ調べてる人っているの? www9.atwiki.jp/othello/pages/27.html
776 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 20:11:20 ] >775 居ないんじゃないかな? オセロや囲碁と違って将棋は終盤がなかなか収束しない。 終局図が何通りあるのかも良く分からんし。
777 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 20:26:01 ] >>771 投了局面から「詰めろ?」を遡ることで 投了局面より前の局面の勝敗を決定できるのは確かだと思う だけど更に遡ると、遡ったのとは違う経路で将棋が進んで 違う結果の局面になることがあると思う 一手で形勢逆転するような手があると思う >>773 ループは枝刈りするとか対策は考えられるんじゃないかな 目標の中間局面に到達するまでの手の経路は 手数が多くても少なくても勝敗には関係ないよね 最短でなくて遠回りしてもいい さしてるうちに、最初目標としていた中間局面じゃなくて 自分に有利な別の中間局面に変えてもいいし
778 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 20:36:36 ] ・ルール上可能な局面(駒の配置図)はそれぞれがネットワーク状に「手」で繋がる ・局面のサブセットにだけ勝敗の評価が決まっているものがある ・局面の遷移がかなり限定されていれば(詰めろみたいに)勝敗の評価を決められる ・そのほかの局面は手によって評価が変わる って感じのイメージを持ってる
779 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 21:47:41 ] 上の方で議論になっているけど 将棋の「局面」を見て形勢を判断するためには 単なる盤上や駒台の様子だけではなく その局面に至るまでの経緯も必要 極端な話、たとえば指しかけを引き継いだとして 「この盤面は敵玉に詰みがあるぞ!」と思っても それは千日手の4回目かもしれないとかそういうこと
780 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 21:49:46 ] >777-778 末端局面から遡って勝ち、負け、引き分け(千日手)で 確定的にラベル付けするだけじゃなく、 途中局面に中間的な評価値を付けようって事? おもしろい考え方だが、一体どうやって?
781 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 21:54:38 ] 末端局面からさかのぼるのなら途中も当然 「勝ち」か「負け」か「引き分け」になるだろうって
782 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:01:06 ] >>779 > それは千日手の4回目かもしれないとかそういうこと (現在の技術で可能かどうかは知らんが)データベースを引くのだから、現在の局面に 至るまでに詰みがある局面を逃しているはずはないと仮定できるだろう。 だから、連続王手の千日手のことは考慮しなくて良いと思う。
783 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:03:41 ] >>779 ソフトが「この盤面は敵玉に詰みがあるぞ!」と思って指したら。 システムから千日手で引き分けと言われるだけで。その事にソフトは何の関係が無いわけ。 それを操作した人間が、あちゃ〜〜前に勝ってたのか、と思うだけ。 それに何の問題があるのか?
784 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:05:15 ] 引き継ぐ前の事を意識する必要は無い。
785 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:05:59 ] >781 もちろん、そうなんだが >777-778が何か面白いアイデア持ってないかな?と。 例えば勝ちに至る経路の広さや近さで評価値を付けるとか。
786 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:06:55 ] なんかminmax法も分かってない奴がいるな
787 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:16:22 ] >>786 いや、「神ならぬ人間がその盤面を引き継いだとして どれほど勝ちやすいか」っていう評価値じゃね?
788 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:21:04 ] >>782 自分についてはそういう仮定を置くのもアリかもしれないけど 少なくとも相手のことについてはまずいだろう 「うむ、俺が勝つにはこの手しかない! でも相手にこう王手されるとまずいな… しかたない。勝ちはあきらめて千日手に持ち込むか…」 というようなケースってあるじゃんか ところがこの相手の王手が千日手の4回目かもしれない
789 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:27:28 ] >>788 与えられた局面が勝ちか負けかを判定するデータベースを構築する話をしているんだろ? 相手がポカして相手が勝てる局面を(その勝ちのための指し手を連続王手の千日手で)負けの状態に してようが、それはデータベース構築には何の関係もないことだろ。
790 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:27:50 ] 引き継いだ前の人間の意識を、引き継いだソフトは考慮する必要は無い。 もし考慮して欲しいなら、その旨のインターフェースを作るべき。 しかしその人間の目的を読み取る機能は、最強の将棋ソフト作るより遥かに 困難な人工知能が必要。
791 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:34:58 ] いや、なんかおまいら話が変な方向へ ひとまず>>165-395 あたりは読んでくれ
792 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:37:17 ] >789 実はそのデータベースを構築する事そのものが、その局面に至る経路を考慮する事を要請する。 さもないと探索あるいは末端局面からの遡りが止まらなくなる。 良く考えてみないと分かりにくい事だが、なぜ千日手のルールがあるのかを考えてみよう。
793 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:37:36 ] >>789 「それは関係ないことだから関係ないのである。」 では説明になってないぽ
794 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:38:32 ] だからさ、一連の流れのある局面が、他の流れのある局面と同じと言う事は無いのかと、言う事だろ。
795 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:44:14 ] 流れとか「局面」とか、意味のあいまいな言葉を無定義で使うなよ
796 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:48:07 ] 隣の将棋盤の駒の配置と持ち駒の数や種類が、その隣の違う対局の数時間前のときの全く同じ将棋盤の駒の配置と持ち駒の数や種類がある手において、同一だったと言う事は無いのかと言ってる。
797 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:55:09 ] >795 「流れ」と言うのはある局面から別の局面に至る経路の事だよ、多分。 >794じゃないけど。 で、違う経路から見かけ上同一の局面に至る事は それこそ幾らでもあるし、ループする事もある。
798 名前:デフォルトの名無しさん [2008/06/01(日) 23:03:43 ] 評価値として 勝ち、負け、千日手、勝ちか千日手、負けか千日手 を定義すれば局面評価DBを作る点では問題無くない?
799 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:11:41 ] >>798 問題ないかどうかは、どういう目的で作るのかによるけど そもそもそのような評価が、駒配置だけを見て可能か ということに対して懐疑的なんだと思うよ
800 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:14:47 ] 今の指し将棋プログラムは現状の局面状態(駒割と駒の配置)だけで持って、 盤面を評価してるように見えるから >789のように勘違いする人も居るんだよね。 ところがその評価はかなり荒い近似に過ぎないから通用するのであって、 厳密に確定局面から遡って評価しようとするとそこに至る経路情報が必須になる。 詰め将棋プログラムは確実に経路情報を考慮してるし、しないと答えを間違う。 いわゆるGHI問題。
801 名前:デフォルトの名無しさん [2008/06/01(日) 23:29:54 ] 経路情報は局面間を結ぶ有向線として持てると思う 勝ち負けの決まる局面は確かに存在する これらの情報で中間局面をどう評価するかだけど 相手の手が何であっても勝ち局面に遷移できる局面は勝ちたが 相手の手によって勝ち千日手負けのいずれも有りうる局面もあると思う そんな局面は勝ちやすさで評価する 勝ちやすさは例えば勝ち評価値の局面への距離とかで決める そんな単純じゃないと思うけどね
802 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:19:51 ] >>800 俺はコンピュータ将棋の開発者で、GHI問題はもちろん知っている。 GHI問題を正しく理解していないのはお前のほうだろ。 詰みのあるすべての局面の集合から逆算してんだぜ? GHI問題なんか起こるわけないだろ。 ただしそこに至るまでに同一局面が3回以上出てきていないという条件が必要だが。 (連続王手の千日手を発生させないため)
803 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:21:54 ] >>802 >ただしそこに至るまでに同一局面が3回以上出てきていないという条件が必要だが。 おいおいw
804 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:24:48 ] >>803 お前、頭おかしいんじゃねーの?
805 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:28:27 ] > 俺はコンピュータ将棋の開発者で、 権威づけか
806 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:29:35 ] >>805 実際に作ってもない/作れない/作ったことがない奴に言われたくないね。
807 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:32:17 ] 作ってるのに理屈がわかってないんだとしたら そっちの方がよっぽど問題のような… そんなに俺様の言うことを聞けって言いたいなら コードの断片でもうpしてからにしろよ できないならおとなしく名無しに戻っとけ
808 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:35:10 ] >>807 理屈がわかってないのはお前。 お前はGHI問題が何故発生するのかわかっていない。
809 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:37:14 ] >俺はコンピュータ将棋の開発者 イタイ奴が来たなwww 頭おかしんじゃね?
810 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:38:47 ] >807 詰め将棋解法プログラムのような答えが 厳密に求められる問題に取り組まないと 開発者と言えども勘違いする可能性はあるな。
811 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:39:57 ] >>810 お前もGHI問題が何故発生するのか理解できていない。
812 名前:807 mailto:sage [2008/06/02(月) 00:40:44 ] >>808 いや俺は横から茶々を入れてるだけで 何も言ってないんだけどな 自分以外(正確には自分に異論をいう奴)を全部 一人の人間だと思っちゃうっていうのは ありがちなことなんだけどかっこよくはないよ GHI問題については>>191 あたりから始まって >>234 とかの議論でさんざんがいしゅつなんだけど もちろんそのへんはログ読んだ上でのレスだよな? しかも「お前はわかっていない」とかじゃなくてさ、 だったらちょっと簡単にでいいから説明してみろよ ほら
813 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:43:39 ] 経路君のソフト楽しみにしてます^^
814 名前:789 mailto:sage [2008/06/02(月) 00:44:07 ] >>812 詰み局面から逆算するんだぜ。GHI問題なんか起こらないよ。 GHI問題が起きるのは、探索中の循環を即、不詰めと判定するからだ。 GHI問題でよく話題になる図を勝ちの局面であるIから逆算して行くとわかる。
815 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:45:06 ] お前ら、シャープの亀山工場で液晶を組み立ててる工員が みんな液晶の仕組みを理解してるだなんて思ってないだろ? そういうことだよ
816 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:48:23 ] >814 どのように逆算するの? つまりその逆算する時に経路情報を考慮するの?しないの?
817 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:49:31 ] >>814 あー詰み局面から逆算していく話が続いてたのか その場合で、局面というのは駒配置だけじゃなくて 局面の出現回数も持たなきゃいけないよな そうしないと、千日手になるはずの手順は 永遠に「勝ち」とも「負け」とも塗られないことになる ような気がするんだが
818 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:52:52 ] ○→○→○→○→○ ↑ ↓ ○←○←○ こういうループだけじゃなくて ○→○→○→○→○ ↑ ↓ ○←○←○ こういうループもあるよな
819 名前:789 mailto:sage [2008/06/02(月) 00:53:08 ] >>816 経路情報を考慮しないし、する必要はない。 ただし循環は検出する必要がある。 具体的に書くと Iが勝ちとわかっている局面。よって、直前のGも勝ち。その直前のEも勝ち。 Eに至る手順はB,K。Bは相手の手番なのでDを選択されて負け。よってBは負け。(勝ち局面の集合にBは含めない。) Kは勝ち。たどって、Jも勝ち。Hも勝ち。Hに至るのはE,F。 Eは自分の手番だし、勝ちだとわかっている局面。よって、Eのほうの探索はここで打ち切り。 残るはF。Fは勝ち。その直前のCも勝ち。その直前のAの局面は自分の手番なのでCを選んで勝ち。 よってAは勝ちの局面。GHI問題なんか発生していないし正しくAの局面の勝ちを判定できている。
820 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:55:09 ] ちなみに>>789 は意地悪だから図を書いてくれないけど >>234 のPDFを参照な
821 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:56:26 ] >>818 ./ニYニヽ r、r.rヽ. / (0)(0)ヽ r |_,|_,|_,|/ ⌒`´⌒ \ で?っていう |_,|_,|_,|_,| , -) (-、.| |_,|_,|_人 (^ iヽ__ ノ l | | ) ヽノ | `ー'´ / | `".`´ ノ 入_ノ \_/ / /
822 名前:789 mailto:sage [2008/06/02(月) 00:56:33 ] >>817 > あー詰み局面から逆算していく話が続いてたのか 続いているも何も、最初から最後まで、詰み局面をデータベース化しよう、という話なのだが。 具体的には、これだ。 d.hatena.ne.jp/KZR/20080531/p1
823 名前:789 mailto:sage [2008/06/02(月) 00:57:20 ] >>820 すまない。俺は意地悪なんじゃなくて図とか苦手なんだ。ほら…わかるだろ。
824 名前:789 mailto:sage [2008/06/02(月) 01:02:58 ] >>817 > その場合で、局面というのは駒配置だけじゃなくて > 局面の出現回数も持たなきゃいけないよな 「局面の出現回数」は持たなくてもいい。 >802で書いたが 「ただしそこ(判定したい局面)に至るまでに同一局面が3回以上出てきていないという条件が必要」だが、 これを前提条件とできるなら「局面の出現回数」のデータベースへの記録は不要。 ただし、勝ち/負け/引き分けとラベリングされた局面はすべて記録(データベース上に保持)していることが前提。
825 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:03:49 ] >>882 あれ、与えられた局面が勝ちか負けかを判定するデータベース つまり必勝定跡を構築する話をしているんだと思ってたんだが そして、その「局面」というのが駒配置だけでよいのか、それとも 駒配置の出現回数も持っていなきゃならないのかだと思ったが 経路という言い方をするからGHI問題と絡んでいるように見えて いろいろみんな混乱したるんじゃないかな それで、仮に、駒配置だけで勝ち負けが決まるのだとしたら もちろん「この局面は千日手」というラベルを貼られる 局面(駒配置)もあると思うのだけど、 詰み局面(駒配置)からたどっていったとき 千日手のラベルを貼る機会というのはどういうとき?
826 名前:789 mailto:sage [2008/06/02(月) 01:04:53 ] あと、終盤のデータベース化については >822 以外にも d.hatena.ne.jp/mkomiya/20080601/1212289142 d.hatena.ne.jp/yaneurao/20080602 このへんも参考にしてくれ。
827 名前:789 mailto:sage [2008/06/02(月) 01:06:49 ] >>825 > あれ、与えられた局面が勝ちか負けかを判定するデータベース > つまり必勝定跡を構築する話をしているんだと思ってたんだが その過程で引き分けデータベースも出来るだろ。 > そして、その「局面」というのが駒配置だけでよいのか、それとも > 駒配置の出現回数も持っていなきゃならないのかだと思ったが 俺の言う 局面 とは 盤上の駒配置・手番。その局面の出現回数は関係ない。
828 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:17:58 ] >>824 あー、その条件があればたぶんそうだよな でも前に進むなら、ループしたら「千日手」、でいいと思うけど 後ろに戻っているのだから難しい気が まあ、どうせ局面(駒配置)の数は有限なのだから 全部調べて「勝ち」にも「負け」にもならなかったものは千日手 でいいのかもしれないけど
829 名前:789 mailto:sage [2008/06/02(月) 01:20:12 ] >>825 > 詰み局面(駒配置)からたどっていったとき > 千日手のラベルを貼る機会というのはどういうとき? いま、 A,Bが未ラベルとする。Aは自分の手番、Bは相手の手番とする。 このとき A→B→A のような循環を発見した。 AからB以外に行く手は負けとする。 BからA以外に行く手は勝ち(=相手の負け)とする。 このとき自分にとっても相手にとっても千日手を選択するのが最善だからA,Bの局面の最善は引き分け。 このように未ラベルの局面同士の循環を発見して、この循環がお互いの最善であるときこれらの局面を 引き分けのリストに追加する。 825はどうも勘違いしているようだが、このA,Bの局面の「出現回数」を記録しておいてもこの循環の検出の役には立たない。
830 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:21:27 ] >>818 下の図は「双方最善を尽くしたら出現しないはずの詰み形」かな つまりループからしか到達できない詰み形 でもそれを排除してしまったら次の一手解答マシンとは言えないよ
831 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:27:55 ] >>829 あー、うんそれならいいよ ようするに>>828 の後半と同じことだな 神ならぬ人間から盤面を引き継ぐことはない、という前提なら たぶんそれでいいんじゃないかと思う 「勝ち筋があるけど、引継ぎ元が棋譜汚しをしてくれたせいで 千日手になるからそれは指せない」とかは考慮しないということで
832 名前:789 mailto:sage [2008/06/02(月) 01:28:14 ] 829の続き。 引き分けの検出のために、局面の循環を発見する方法は別の方法が必要だ。 例えば、次の例を考える。 A,B,Cが未ラベルで、Aは自分の手番、B,Cは相手の手番とする。 ・AからB,Cに遷移でき、それ以外は負け ・B,CからAに遷移でき、それ以外は勝ち(=相手の負け) この場合も双方、千日手にするのが最善である。 この循環を検出するためには、AはポインタでありB,Cをポイントしており、 B,CもそれぞれAをポイントしていると考え、JavaVMなどで見られる garbage collectorのようなものを実装する必要がある。(この説明でわかってもらえるだろうか?)
833 名前:789 mailto:sage [2008/06/02(月) 01:31:04 ] 832に書き忘れた。 garbageが起きて回収されるなら、それは循環参照がされていたということだ。 garbage collectorの実装はいろいろあるから、詳しくはその手の本を見てくれ。
834 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:31:38 ] >>832 あー、GCが循環参照を発見する方法か でも、現実的な時間にリアルタイムで計算するのではなくて 巨大な次の一手解答集を用意するイメージなのであれば 勝ちでも負けでもないものは引き分け、でいいような
835 名前:789 mailto:sage [2008/06/02(月) 01:33:45 ] >>834 おまい、なかなか頭がいいな。 コンピュータ将棋の開発者だな?大会で待ってるぜ!(`ω´) 名無しに戻る。長々と失礼した。
836 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:36:56 ] いや、俺は松原先生の本を昔図書館で何冊か読んだ程度で ゲームの数学は全然わからない素人だからあれだが 寝るぽ 乙
837 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:39:22 ] >830 そうだよな。 >829の話は尤もらしいのでつい信用しそうになったが、 先手後手双方、最善を尽くした場合の局面だけでなく、 任意の局面にラベリングしようと思ったら 扱えない局面が出て来そうな気がする。 詰み局面から逆算してデータベース化するだけであって、 そんなもの知らないってんなら、それはそれで良いけど。
838 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:41:33 ] ループ内に王手が存在するかどうか吟味しなきゃならないから >>834 の方法はそのままでは駄目だな
839 名前:789 mailto:sage [2008/06/02(月) 01:45:11 ] >>837 > 任意の局面にラベリングしようと思ったら 「1手詰みの局面」のすべてを表す集合から逆算するって話なんだぜ? 任意の局面にラベリングできるよ。 将棋の初期陣形とは何の関係もない。 詰みに至ることが出来る局面の解は(無限のメモリと無限の計算時間があれば) すべて求めるに決まってるじゃないか。
840 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:47:59 ] 盤面が有限だから有限でいいけどな
841 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:52:00 ] 「どうやっても連続王手の千日手に持ち込まれてしまい負け」が処理できない
842 名前:789 mailto:sage [2008/06/02(月) 01:52:19 ] >>838 それはその通り。 検出された循環(DCG)内で、連続王手にならないループが一つもなければないほうの負け。 双方が王手しあうループしかない場合、互いに逆王手を繰り返すことになるのだが、これは よく知らないが、将棋のルールでは引き分けなんじゃないかと思う。
843 名前:789 mailto:sage [2008/06/02(月) 01:53:07 ] >>841 >>842
844 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 01:56:21 ] 千日手になるときに手を変えなきゃならないだから その4回目に登場する局面を指す方が負けか すると、「どの地点からループに合流したか」が 重要になってくるような気も…。
845 名前:789 mailto:sage [2008/06/02(月) 01:57:15 ] >>844 >>824
846 名前:789 mailto:sage [2008/06/02(月) 01:58:32 ] あっ。844は842の双方連続王手のことか。 いま検討していたのだが、双方連続王手は普通の将棋の駒では実現できないようだ。
847 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 02:02:19 ] いや、だから A→B→A が連続逆王手のループだとして A は自分の手番、B は相手の手番だとして C → B → A → B → A → B → A と進めば次で B を指せないからこれは自分の負け D → A → B → A → B → A → B と進めば次で A を指せないからこれは自分の勝ち だったら A とか B は自分の勝ちなのか負けなのか
848 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 02:05:39 ] >>846 んーそれはほんとなのかな
849 名前:789 mailto:sage [2008/06/02(月) 02:07:46 ] >>848 本当だ。俺には証明はスマートには出来ないが。
850 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 02:21:39 ] >>849 出来る気がする。考えてみよう
851 名前:789 mailto:sage [2008/06/02(月) 02:26:14 ] >>850 俺が1分も考えて出来ないと結論を出した。間違いなく出来ない。
852 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 02:29:56 ] >>849 スマートでなくてもいいから証明してくれ
853 名前:789 mailto:sage [2008/06/02(月) 02:46:56 ] >>852 王手の種類を (A) 王の移動による王手 (B)駒を打つ・移動させることによる王手とにわける。 Aは、大駒の利きが王によって遮断されて敵玉をにらんでいる状態でなければならない。 しかし、…(中略)で、そのように配置することは不可能である。 Bは、その駒を打つ・移動させることが直前の王手を防ぐ手になっていなければならない。 しかし、直前の王手を、(A)、(B)それぞれの場合について場合分けして考えると …(中略)でこれまた不可能である。 よって、双方連続王手は不可能である。
854 名前:789 mailto:sage [2008/06/02(月) 02:57:31 ] 853補足。大駒には、複数マス進める駒で香も含む、としてくれ。 > しかし、…(中略)で、そのように配置することは不可能である。 この部分は、王の影になっていたのが直進できる駒かそうでないかで場合分けするんだ。 もっとスマートに証明出来るかどうかは知らん。
855 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 03:02:13 ] あらゆる局面(駒配置)にラベルを付けられると仮定して 一手目の局面もラベルがつくのかな?
856 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 03:14:04 ] 人が居るみたいだから質問。 最近ブックを実装したんだけどブックにはどんな情報を保持すればいい? 今のところ自分はハッシュ値と評価値とそれを算出した読みの深さと勝ち負けなんかのフラグ。
857 名前:855 mailto:sage [2008/06/02(月) 03:17:02 ] >>856 ごめんよワシには判らんし明日仕事だからもう寝る
858 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 03:18:48 ] 了解 お休み
859 名前:789 mailto:sage [2008/06/02(月) 03:24:02 ] >>855 > 一手目の局面もラベルがつくのかな? 839の話をしていて、「一手目の局面」が初期陣形のことを指しているなら、 初期陣形にも勝ち/負け/引き分けのいずれかのラベルが付く。
860 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 03:26:26 ] 局面の出現確率がないと古い定跡やマイナーな変化に進んでいきそうではある
861 名前:デフォルトの名無しさん [2008/06/02(月) 03:39:08 ] 4649 おまいら最強のシストレFXプログラムをしてみろよ pc11.2ch.net/test/read.cgi/tech/1211790540/
862 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 10:06:32 ] >>861 理詰めゲームとサイコロ賭博は全く違う話ですから食いつかないかと
863 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:53:42 ] 未来の名人戦は振り駒というランダム要素を 4回取った方が勝ちというゲームですが何か
864 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:28:09 ] 未来将棋は同時指しでしょ
865 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:55:47 ] 戦争シミュレーションにターンとかわけワカランよな。 リアルタイムだろどれもこれも。
866 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 02:26:47 ] 局面の遷移履歴によって持駒が変わると思う そうすると次に遷移可能な局面の集合が変わる 局面の履歴か持駒のバリエーションを考慮する必要がある
867 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:16:32 ] 今頃読んだけど、 >>819 データベースを作ったとして、実際に使う時には経路があるにこしたことはないよね。 例えば、データベースには負けと書いてあっても、実際に指し続けて、もし証 明木のどこかで今までに3回あらわれた局面を通過すれば引き分けになるから。 反対意見ではなくて、経路の活用の余地について関連コメント。
868 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:22:40 ] >>867 そんなデータベースは現実的に作れる規模ではないというのはおいとくとして・・・ 一体、おまいは何の経路をデータベースに保存しとこうと思うんだ? 与えられた局面から勝ちまでの手順か?勝ちまでの手順は木になってるわけで、 そんなものは全部保存しておけるわけないだろ。 しかし、仮にストレージが無限にあって保存できるとしよう。 では、初期局面から勝ちまでの手順をデータベースから取得しようと思うと、 それこそ終局までのありとあらゆる変化を含んだ木が得られるわけだよな。 これがメモリに入るか?宇宙に存在する原子の数より多いんだぞ。
869 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:25:47 ] 868の続き。 でも、仮に、無限にデータの入る秘密の箱があって、メモリに読み込まなくてもいいとしよう。 この木のなかに、その局面に至るまでに3回現れた局面があるかどうか調べるのに どれだけのコストが必要になる?仮に現れていることがわかったとして、ではその局面を 回避して勝ちに行く経路があるかどうかをどうやって調べるんだ? それってこのAND/OR木を探索しているのと同じだけコストがかからないか? うまくすれば探索しなくてすむとは思うが、1つの局面に対して莫大なindexを貼る必要があるだろ。 宇宙に存在する原子の数の2乗や3乗で済まないと思うぞ。
870 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:36:23 ] まあ、そんな完璧なデータベースがあれば、コンピュータは神様と同じ棋力があるわけで、 人間みたいな間違いだらけの棋力の低い将棋を神様に指継いでもらうということ自体が失礼ってもんだ。 でも、もうちょっと建設的な意見を。 勝ち/負け/引き分けをラベリングするときに、勝ち/負けなら「何手で詰む」というのを記録しておけば、 与えられた局面から終局への距離がわかるから、与えられた局面から終局に近くなるほうに向かって、 「3回あらわれた局面を通過」しないように勝ちを探して探索すればいい。 そうすれば、その探索の深さの範囲内では「3回あらわれた局面を通過」しない勝ちを探すことは出来るだろ。 このときの「探索の深さ」が深ければ深いほど正解に近くなる。この手法のほうが経路なんかをデータベースに 保存するよりよっぽどいい。
871 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 23:41:19 ] >>870 チェスのエンディングデータベースですな 3回あらわれた局面を通過しないように、なんて考える必要はないですよ
872 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 03:15:23 ] 局面を遷移するときの線に条件が必要だな 例えば桂馬を持っているとか香車が5マス勧めるとか
873 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 06:23:31 ] >>871 俺も「3回あらわれた局面を通過しないように、なんて考える必要はない」派だが、 867が考えたそうだったので、考えてみた。
874 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:37:53 ] 867では相手が勝を逃した時に千日手で逃れるには経路が必要になると言ったが、 そんな状況を考える必要はないという立場ならそれでいいよ。 現実的には局面だけのデータベースもストレージに載らないので初めから架空 の議論だと思っていたが、俺が何か前提を見逃しているのかな。 気分を害したなら謝るよ。
875 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:46:21 ] データベースを一つのPCで全て持っておく必要はないので 分散格納して連携するとか解決策は考えられる 利用するときはデータベースそのものじゃなくて それを使って調べた結果が判ればいいので 通信手段があれば良い 分析も分割して調べた結果を統合するとか方法はいろいろあるんじゃね?
876 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:55:40 ] >>874 867は、データベース上に詰みまでの経路を保存する話に見えたので 868-870のような反応になったのではないかな。 どのみち「経路」(勝ち/負け/引き分けを調べたい局面にいたるまでに3回出現した局面のリスト?) 情報があったとしても、それを用いて引き分けに持ち込むにはデータベース上のラベリングされた節点に 対して、AND/OR木を探索するような処理は必要になるけど。 >>875 分散格納しようにも、格納すべきデータ量が宇宙に存在する原子の数を超えるので、 1つの原子に1bitのデータを書き込めるとしても宇宙すべての物質にデータを書き込んでも足りない という状況になるのだけど。1つの原子に、もっとたくさんの情報を記録できるような技術があれば また違ってくるのかも知れないけど。
877 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:36:29 ] 歩とか同種類の駒は区別しないとか いろいろ工夫する余地はあると思うけどな 全局面がむりなら必要度の高い局面とそれに関係する局面を抽出するとか
878 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:01:17 ] >>877 筋違い角とか角換り腰掛け銀とか変化が狭い戦法/すぐに終盤になる戦法は 詰みまで調べてデータベース化する価値は十分あるだろうね。 詰みまで調べられないとしても事前に十分時間をかけて探索して、懸案の局面付近の 最善手(だと思われる手)だけでも持っていればずいぶん違うだろうね。 20年後ぐらいには角換り腰掛け銀なんかはコンピュータによって結論が出てるんじゃないかな。
879 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:16:28 ] >874 >876 将棋データベースの問題を考える時は (特に断らなくても)記憶容量と計算量が 実用的限界に納まらない事は当然の前提 として良いと思う。 それでも将棋の局面データベースを (特に現在の局面状態だけに基づいて 最善手を与えるデータベースを) 本当に作れるのか? と言うのは理論的に面白い問題だと思う。
880 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 01:55:46 ] どれだけ圧縮できるかというのも気になる 主成分分析/判別分析の固有ベクトルが分かったら評価関数に使えるし
881 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:51:27 ] >880 主成分分析か、大学の時にちょっとだけやったなぁ。 将棋の評価に必要な次元がそんなに落とせるのかどうか?
882 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:17:05 ] そういう特徴(ベクトル)を探すのに使えそうだから 今は完全に試行錯誤だから,それよりはマシになるかな,と
883 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:02:06 ] 9x9の将棋(本将棋)だとデータベースがでかくなりすぎて 実現できないのは分かりきっててモチベーションが下がるので まずは5x5将棋辺りからできないかなって考察するのが良いのかも。 もしできたら、それの性質を見ながら本将棋への類推と応用を考えると。
884 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:47:09 ] チェスですら終局までの完全なデータベースって無いのね。 将棋なんてまだまだ遙か彼方だな
885 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:05:59 ] チェスなら駒が減る一方だから終盤のデータベースは作れたけど、 将棋は駒減らんからな。5五将棋ですら無理じゃね?
886 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 08:28:00 ] んー、でも昨今のCPUの性能を考えると、どこぞのスーパーコンピュータを借り切ったら、 谷川九段を光速でやっつけることができそうな気がするのですが。
887 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 08:44:46 ] >>886 それが出来るのはスーパーコンピュータの性能のおかげではなくて 最近の谷川の性能のおかげなんじゃないだろうか
888 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 08:45:21 ] 時とは残酷だな・・・
889 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 09:03:05 ] スーパーコンピュータの性能をなんだと思っているのだろう。 1台辺りの性能で言えば、高々補助単位一個分の違いでしかないのだが。 # それが充分大きいのは事実だとしても。 手の数の爆発はそんな規模ではないからね。
890 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 16:24:12 ] 今だったら並列処理の方が単体のスパコンより、 処理速度が上げられる事実。
891 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:45:31 ] 単体のスパコンって何だ? 今時、スパコンはスカラー型でもベクトル型でも大抵クラスターだぞ。
892 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:09:40 ] NECのSXシリーズのCPUなんて2GHzしかない。 ベクトル演算がどんなに速くても将棋じゃ使わない。 COM将棋で必要な整数演算で比較したらSXシリーズは、 個人で買えるCore2Duo3GHzより遅い ちなみにクラスタ構成にしても将棋は速くならない (選手権にクラスタで参加しているチームはない)
893 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:29:42 ] >>323 まで読んだ。あとは流し読み。 将棋の完全解析プログラム検証向けの「最小セット」を考えてみた。 駒種全部再現のために自陣、敵陣の概念と全駒種を用意。 桂馬成らずや、角、飛、香の全種類の動きを再現するために横3列*縦5行は必要。 両者に玉がないといけない。 打ち歩詰めと二歩の再現のために盤上に歩が2個以上ないといけない。 するとこうなった。 ┌──┬──┬──┐ │▽香│▽王│▽角│ ├──┼──┼──┤ │▽金│▽歩│__│ ├──┼──┼──┤ │__│__│__│ ├──┼──┼──┤ │▲銀│▲歩│__│ ├──┼──┼──┤ │▲飛│▲玉│▲桂│ └──┴──┴──┘ 自陣、敵陣が3行づつだから中央は自陣でもあり敵陣でもある。 ただし、歩は敵陣の2段目まで入り込まないと成ることはできないものとする。 駒割りが異なるが飛側が先手、角側が後手とする。 これが先手必勝、後手必勝、引き分けのどれなのか完全解析頼む。 先手必勝か後手必勝になった場合は、あえて最善手より少しだけ悪い手を指したときに陥る引き分けのパターンの解析もよろ。 *千日手手順のアルゴリズム入れる必要があるので重要* これで将棋の完全解析のためのアルゴリズムは全部入れられると思う。 やりにくかったら駒の配置は適当に並べ替えても可。 俺ど素人なんで変なこと言ってたら咎めておくれ。
894 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:50:41 ] 先手から突っかけざるを得ず、 それに乗じて3三から玉頭を攻めて後手勝ち のような気がする
895 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 05:50:44 ] かくしてこのスレは 「おまいら最強の将棋解析理論提案してみろよ」 スレとなりました。
896 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:30:48 ] 局面の評価値を格納するデータベースのことだけど 局面を識別する番号とかと、その評価値が判ればいいので 同じ評価値のものをまとめて記録すればいい 例えば、先手勝ちは、100,000番〜4290,000番って感じ 上手く識別番号を付けることが必要になるかも知れないけど あと仮に評価値が(先手勝ち、引き分け、先手負け)の場合 一番頻度の高いものは記録せずに、見つからなかった場合の規定値にするとかで容量を減らせると思う
897 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:48:08 ] >上手く識別番号を付けることが必要になるかも知れないけど 無理
898 名前:デフォルトの名無しさん mailto:age [2008/06/19(木) 15:33:04 ] age
899 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 20:14:10 ] >>896 つかさ、先手勝ち・引き分け・先手負けの3つの領域を作って、評価値に応じた領域に保存すりゃよくね? まぁ、そーゆー事して多少容量減らしても焼石に水なんだが。
900 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 20:18:27 ] >上手く識別番号を付ける これを行う関数は評価関数と等価
901 名前:デフォルトの名無しさん [2008/06/19(木) 21:23:35 ] >>897-900 なんで?
902 名前:デフォルトの名無しさん [2008/06/20(金) 07:00:02 ] ボナンザなどのSIKOU.DLLを補助するDLLを作れば簡単に強くできそう。 たとえば定跡手はボナンザに考えさせなくていいし、 一手目の候補手だけは ボナンザより良い生成が出来るなら、一手進めた局面をボナンザに考えさせる。
903 名前:デフォルトの名無しさん [2008/06/20(金) 07:08:11 ] フリーで、棋譜ファイルから指し手の登録が出来て、激指やAIやボナンザに変換出来るか、 それらの思考ルーチンを乗っ取って、定跡ならそのまま指し手を返すように出来ない?
904 名前:デフォルトの名無しさん [2008/06/20(金) 08:39:06 ] 定跡だけ指すプログラムとその定跡ファイルはこちらで作りますから コンバートまたはSikou.dllに対応させる部分を作ってもらえないですかね?
905 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 08:53:33 ] >>902-904 既存のDLLをソースもないのにどうやって修正するんだ。 直接patchを当てるのか?誰がそんなことすると思うんだ? 902-904は本当にプログラムが一行でも書けるのか? 俺には902の意味自体よくわからないのだがボナンザにしても定跡DBにあるものは 思考していないが、それと何が違うんだ?
906 名前:デフォルトの名無しさん [2008/06/20(金) 08:57:03 ] >>905 定跡フォーマットが公開されていなくて、個人が追加することが難しい。 あと、共通の定跡ファイルが使えるようにすること。 Sikou.dllの仕様は決まっているので、 定跡用のSikou.dll → (リネームなどして)思考用のSikou.dll と呼び出せば、様々な思考に対応出来る
907 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:07:07 ] >>906 >>905
908 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:11:01 ] >>906 ああ、そういう意味か。 定跡を別途用意するんだな? そしてそれは「柿木将棋」の定跡形式か何かと考えていいんだな? 定跡の指し手を返す部分は、>904によると用意してくれるんたな? 定跡手なら、それをそのまま指して、そうでないならボナンザのSikou.dllを呼び出せばいいんだな? 904のプログラム(定跡だけ指すプログラム)が書けるのに、これの何が難しいんだ?20行ぐらい書くだけじゃないか。 本当に、904のプログラムを用意してもらえるのか。そこんとこどうなの。
909 名前:デフォルトの名無しさん [2008/06/20(金) 09:16:32 ] 不可能か、難しい点。 製品版の思考の乗っ取り(仲介) (あとbonanza.exeの制御も) 製品版の定跡ファイルへのコンバート GUIインターフェースで棋譜などを追加するツール作成
910 名前:デフォルトの名無しさん [2008/06/20(金) 09:21:06 ] 可能なこと。 指し手確率のある定跡ファイルフォーマットを定めて、 それに将棋倶楽部24 、将棋祭り、2ちゃんなどネットのプロ棋譜 を登録すること。
911 名前:905 mailto:sage [2008/06/20(金) 09:22:28 ] 俺、905 = 908ね。 >>909 > 製品版の思考の乗っ取り(仲介) (あとbonanza.exeの制御も) これは製品版でもボナンザは、Sikou.dllを用いていて、このインターフェース自体は CSAで標準化(?)されているものと同じだろうから、自前でSikou.dllを用意すればいいということなのでは。 > 製品版の定跡ファイルへのコンバート それはしないでいいのだろう。 > GUIインターフェースで棋譜などを追加するツール作成 902は、たぶん、柿木将棋か何かでやるのだろう。 柿木将棋用の定跡フォーマットなら優秀な定跡を公開している人は結構いるのでそれをそのまま使うのかは知らないが。
912 名前:デフォルトの名無しさん [2008/06/20(金) 09:24:55 ] 将棋倶楽部24で50万局、プロの棋譜で5万局 ほどありますから柿木だと処理しきれないと思います
913 名前:905 mailto:sage [2008/06/20(金) 09:34:58 ] >>912 定跡部分なんだから、序盤はほとんど重複してるし、将棋倶楽部24のも ボナンザより弱い人が指してるようなの入力しても仕方でしょうに。 せいぜい入力するのは5万局ぐらいでしょ。それなら柿木で十分処理できるよ。 そもそも、1局処理するのに1分としても1日8時間かけて480局しか処理できないよ。 そんなペースで100日やり続けても48000局。これ、誰がやるの?自動で処理するプログラム書くの?
914 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 07:12:12 ] ボナの定跡ファイルはいじれるんだからコンバートプログラム書けば終了だろ
915 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 17:42:26 ] 提案ですが、現在は激指や東大将棋などはプロの実践譜を解析して 適当に定跡ファイルを作成していますが、それだとどうしても優劣のつく局面まで 登録されてしまいますが、プロの実践譜をコンピュータで形勢判断させて コンピュータが互角と評価できるところまで自動抽出できるようにすれば、 形勢互角と思われる定跡ファイルを作れるのではないでしょうか? ソフトによって形勢判断に違いがあるので個性が出そう
916 名前:デフォルトの名無しさん mailto:age [2008/06/21(土) 19:22:50 ] >激指や東大将棋などはプロの実践譜を解析して適当に定跡ファイルを作成しています 開発者が怒りそうな分だなw
917 名前:デフォルトの名無しさん [2008/06/21(土) 20:30:18 ] >>916 あなたは激指や東大さらにボナの定跡ファイルを見て何も思わないですか? これは1局じゃないだろ?って思わないですか?
918 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 22:21:18 ] 経路君の次は定跡君かよw
919 名前:デフォルトの名無しさん [2008/06/22(日) 02:44:04 ] データ記録形式だけど XMLを特定領域のデータを記述できるようにスキーマを作ることが多いと思う こんな感じ ja.wikipedia.org/wiki/Office_Open_XML ja.wikipedia.org/wiki/OpenDocument これの棋譜版を定義できれば、各アプリ等でデータ交換が容易になると思う
920 名前:905 mailto:sage [2008/06/22(日) 03:15:51 ] >>919 xmlのparserを書くのが嫌。ファイルが肥大化するのが嫌。ベタテキストで十分。
921 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 07:22:57 ] >>902-904 何か、誰が何を言ってるのかいまいち良く分からんのでアレだが フリー版で公開されてるボナンザVer2.1ならsikou.dllのソースも 定跡のフォーマットも公開されてるじゃマイか? sikou.dllは思考部本体ではなくCSA将棋から呼び出されて 本体(bonanza.exe)を呼び出すだけの中継用DLLだけど bonanza.exeを呼び出す際のインターフェースも公開されて いるのでかなり好き勝手に操れるはず。 (CSA将棋->sikou.dll:CSA将棋がインターフェースを定義、DLL呼び出し) (sikou.dll->bonanza.exe:Bonanzaの独自定義、anonymous pipe経由) 実際にbonanza.exeを自在に操るソフト(GUI?)を書いて みたわけでは無いけれどhackフォルダー以下を見るとそう思える。 商用版(Ver2.1や3.0)では呼び出し方など仕様がちがうのかね? ボナンザ以外(激指やAIなど)と言うか何にでも共通に使える 定跡ファイルの仕様を定めようとか言うんなら、それぞれの 仕様がどこまで公開されてるのか知らないので良く分からん。
922 名前:デフォルトの名無しさん [2008/06/22(日) 08:12:05 ] >>920 parserは既存のを使えばいい データ属性の変更や他のXMLベースのユーティリティを使えない
923 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 09:33:26 ] >>922 C++から使えてportableでfreeで商用利用可能で省メモリでファイルをシステムメモリに丸読みしないような xml parserの実装があるなら是非教えて欲しい。
924 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 09:44:51 ] ワラタ
925 名前:デフォルトの名無しさん mailto:age [2008/06/22(日) 13:04:43 ] それぞれの思考に未着した定跡ファイルを一般化して統一し。 無理に使用したところで思考部分が弱くなるだけで意味が無い。
926 名前:デフォルトの名無しさん [2008/06/22(日) 18:53:51 ] >>923 DOMとかない?
927 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 09:33:47 ] >>926 DOMなら、通常DOMツリーとして扱うだろ。あれはファイル全体をメモリ上に丸読みする必要がある。 そもそも、923で書いたような軽量なXML parserの実装はこの世に存在しないんだよ。 XMLは大きなデータを扱うのに適していない。 将棋の定跡なんてたいしたデータ構造ではないし拡張するわけでもないし、 parseが難しいわけでもないから、そんなところにXMLを採用するのは XMLのことを知らない馬鹿のすることだとしか言いようがない。
928 名前:デフォルトの名無しさん mailto:age [2008/06/24(火) 21:56:41 ] 他人のふんどしで、楽がしたいだけだろ。
929 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:36:46 ] つーか、現状をどう認識していてその上で何がしたいのか もうちょっとハッキリさせてもらわないと賛成も反対も 協力もできそうにないわ。
930 名前:デフォルトの名無しさん [2008/06/25(水) 02:13:04 ] >>927 SAXは?
931 名前:デフォルトの名無しさん [2008/06/25(水) 02:19:09 ] >>928 parserを作るとか、データ交換の仕組みを作るとかそういうのが目的なら 自分で作ってもいいけど 目的は違うんじゃないの? だったら目的と違う部分は既存のものを使ってもいいんじゃないかな 他の用途で作られた機能を利用することもできるんだし それで足りなくて必要になったらその部分を作ればいいだけ 全て自分で作ることにこだわる必要はないと思うけど?
932 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 05:49:19 ] >>930 SAXはinterfaceの規定だけ。どの実装のことを言ってるんだ? 923で書いたような実装があるなら是非教えて欲しい。 あと文字コードもUnicodeとShift_JISが扱えるやつな。 だいたいな、部分的に読んで行こうが、10MBぐらいで済むはずの定跡ファイルが XMLで書くと200MBぐらいになるんだよ。それでいてparserが書きやすいわけでもない。 読み込み時間も書き出し時間も長くなる。 自分の作る将棋ソフトからそんなファイルを実行時に読み込むわけにもいかず、 別途自分のソフト用の定跡フォーマットを用意しなければならない。 これではメリットがどこにもない。 最初から標準化された小柄な定跡データフォーマットがあれば、自分のソフト用の 定跡フォーマットもそれを使えばいい。parserを二つも書く必要がなくなる。
933 名前:デフォルトの名無しさん [2008/06/25(水) 12:52:09 ] 評価の観点はいろいろあるから932が示した要件を満たさなくても利点は有ると思うけど 使いたくなければそれでいいと思う 時代に取り残されるかも知れないけど
934 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:56:52 ] >>933 本当にあんた、一行でもプログラムが書けるのか?寝言はいい加減にしてくれ。
935 名前:デフォルトの名無しさん [2008/06/25(水) 18:54:04 ] 未知なものへの拒絶反応だな
936 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 18:58:03 ] モノも論理も出さずよく言うわ
937 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:47:39 ] つーかさ、定跡って本当に必要なのか? いっさい使ってなくても別にこまらんのだが。
938 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:08:19 ] 喪前の思考アルゴリズムが定跡を活かせないタイプのものだからじゃね? 一般に強いとされるゲーム用AIは相当数の棋譜を記憶しているもんだが
939 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:16:33 ] 定跡を暗記させているわけでもないのに、 どんな状況でも、自動的に定跡を導いちゃうアルゴリズムは凄い 是非公開してくれ
940 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:49:22 ] チェスでは普通にコンピュータvsコンピュータから 新しい定跡ラインが登場したりもする。
941 名前:デフォルトの名無しさん [2008/06/26(木) 00:02:33 ] www.google.com/search?num=30&hl=ja&rls=com.microsoft:*:IE-SearchBox&rlz=1I7GFRD&q=XML+SAX+C%2B%2B&revid=1306684249&sa=X&oi=revisions_inline&resnum=1&ct=broad-revision&cd=7
942 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:11:43 ] 将棋の存在しうる盤の状態は10^150通りらしいぞ 囲碁は10^365な オセロは6x6までなら完全に解明されている チェスを完全に解明したという論文があったけど、続報を聞かないし嘘かいな
943 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:14:47 ] 解明されたのはチェッカーじゃなくて? チェスは聞いたことない。
944 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 07:00:25 ] >>941 プログラムが一行も書けなくて自分で検証する能力もないくせに わけもわからず検索して貼り付けなくていいよ。
945 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 21:18:53 ] >>902-904 マイボナの作者がu2bというUSIとBonanzaのsikou.dllの橋渡しをする プログラムのソースを公開している そのソースを改造すれば、オリジナルの定跡を指させたり、 Bonaがやってないルートで詰め将棋ルーチンを呼ぶといった改造はできる。
946 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 12:53:46 ] だから将棋はなぜ詰めるのかを数学的に解ければその結果を利用して最強になれるんだって、 だれか本気で詰め将棋を研究すれば人間では勝てなくなるようなプログラムが作れるはず。
947 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 13:21:32 ] 既にほとんどの人間は勝てないけど。。。 それよりも一般的に効率よくゲームが強くなる方法があればいい。 まぁ「唯一の確かな基準である勝敗」が調べやすい局面を研究するというのは分かるが。
948 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 01:50:36 ] >>946 詰め将棋は既に本気で研究されてますよ dfpnでググってみて
949 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:56:29 ] いくら読んでも詰みがみつからない序盤から中盤はどうすんだよ 序盤で劣勢になったらプロレベルは挽回不可能
950 名前:デフォルトの名無しさん [2008/07/04(金) 03:52:20 ] そこで定跡の登場たい
951 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 10:35:14 ] >>946 > だから将棋はなぜ詰めるのかを数学的に解ければ 二人零和有限確定完全情報ゲームだから?
952 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 12:15:20 ] 千日手があるから詰めない状況もあるんじゃ?
953 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:25:33 ] >>952 千日手は攻めてる側が手をかえなきゃならない....と思ってたんだが、 念のためwikipediaを見てみたら >手番が全く同じ状態が1局中に4回現れると千日手になる。 >千日手になった場合はその勝負をなかったことにする。 ってなってた。そうか、ノーゲームにできるのか。
954 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:41:51 ] 手を変えなきゃいけないのは連続王手の千日手だろー
955 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 14:54:29 ] 攻めてる側が手を変えるというルールはずっと昔のものだ。
956 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 15:38:28 ] つか明文化されたルールってないよね<将棋
957 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:12:09 ] >>956 d.hatena.ne.jp/yaneurao/20080405 > 私 「将棋の公式ルールを明文化したものはどこかにありますか?」 > 神吉「将棋のルールは、日本将棋連盟発行の将棋ガイドブックにあります。」
958 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:25:41 ] どんなゲームにだって、ローカルルールがあるのさw 将棋における日本のローカルルールは 日本将棋連盟が明文化しているらしい。
959 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:30:53 ] >>958 明文化しているけれど非公開らしいね ガイドブックのやつは一般向けのルールってことで 穴を指摘されても修正しません、ということらしい。実際穴はたくさんある。
960 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:43:37 ] 日本将棋連盟によるルールと、俺んちのルールはちげーんだよ! って言う方ですね?
961 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 12:01:49 ] >959 ルールにはっきりした穴があると思うなら日本将棋連盟にメールか何かで指摘してあげたら? 俺が認識してるルールの多少なりとも曖昧な点は双方入玉時の持将棋宣言くらいだが。
962 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 17:52:26 ] 持将棋のルールの不備はここが詳しいよな kofu.cool.ne.jp/mozuyama/mozuiro/moromoro/ 禁手の定義も不備があるね。 詰め将棋くらいにしか影響が無いとはいえ、 言葉で修正がきく部分なんだから弁護士でも入れて修正すればいいのに。
963 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 22:09:31 ] >>962 ゲームのルールを改訂すると、過去の棋符に影響するんじゃないの? その辺どうなのかな? まあ、過去は過去ってルールーにしちゃえばいいんだけどねw
964 名前:デフォルトの名無しさん [2008/07/07(月) 14:54:48 ] ルールーwww
965 名前:デフォルトの名無しさん mailto:age [2008/07/07(月) 17:19:21 ] このスレでは、コンピュータ将棋協会の対戦ルールで十分だと思われ。 他のルールはスレチ