[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 15:39 / Filesize : 284 KB / Number-of Response : 966
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

おまいら最強の将棋プログラムしてみろよ part6



1 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 15:33:11 ]
できたらよろこんでやる。
前スレ
おまいら最強の将棋プログラムしてみろよ part5
pc11.2ch.net/test/read.cgi/tech/1109307327/

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 ]
このスレでは、コンピュータ将棋協会の対戦ルールで十分だと思われ。
他のルールはスレチ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef