おまいら最強の将棋プログラムしてみろよ part7at TECH
おまいら最強の将棋プログラムしてみろよ part7 - 暇つぶし2ch650:デフォルトの名無しさん
10/02/27 11:43:49
NullMoveは探索深さを減らす前向き枝狩り
Scoutは二番目以降の手はカットされるだろうと予めウインドウを狭めておく手法
失敗したら広げてやり直す

651:デフォルトの名無しさん
10/02/27 19:37:01
・・・だめだぁ・・・よくわからない・・・
Scoutの方はよくわかりました

>NullMoveは探索深さを減らす前向き枝狩り

NullMoveの場合
深さ7手くらいのところをとりあえず5手くらいで読んでみて
それでβを超えてたら「7手読んだことにしちゃう(その枝は最後の7手まで読んだことにして次の枝へ行っちゃう)」
っていう意味ですか?

652:デフォルトの名無しさん
10/02/27 21:03:10
ちょっとちがう。
NullMoveはパスをするところが肝。
将棋って相手が連続で指してくるとすれば自分は不利になるでしょ。
そこでまず自分はパスをして相手に連続で指させる。
そのハンデを負った上で浅い探索をしても自分が優勢であると判断されるようなら
パス無しだとさらに優勢である可能性が高いからカットできる。


653:デフォルトの名無しさん
10/02/28 05:32:45
>>651

順番が逆かな
目的は「パスしてもβを超えるなら枝刈り」
※手を指した側はαを超えられず採用される可能性が無いのでこれ以上探索しても無駄

「浅く探索する」は「浅く探索しても探索結果にほとんど影響が出なかった」という結果論

654:デフォルトの名無しさん
10/03/03 13:04:06
ヌルムーブは、少なくともいい手がひとつはある、って判断するためだよね
全部悪い手しかないときにヌルムーブでカットできる

655:デフォルトの名無しさん
10/03/03 13:16:25
一回パスして続けて指しても悪い手しかないから、打ちきるべきってことだよね
そこにパスする意味があるんだね
たとえば数手先で詰むとき どう読んでも負けしか見えないなら、それをなるべく
早く判断しなけりゃいけない

656:デフォルトの名無しさん
10/03/14 13:10:07
>ヌルムーブ
ガッ!


657:デフォルトの名無しさん
10/03/14 13:18:03
>>656
「めるぽ」って言ってるわけでも無いのに「ガッ!」してたらキリが無いだろう?

658:デフォルトの名無しさん
10/03/14 13:47:38
プログラムやってる女だけど何か質問ある?

659:デフォルトの名無しさん
10/03/14 13:50:54
触らぬ神に祟りなし

660:デフォルトの名無しさん
10/03/20 17:52:05
ボナンザってコンソールアプリのはずだよねぇ

Main関数の中に MessageBoxを呼ぶ個所があって、ビルドエラーが出た。
コメントアウトで対応できたけど、なんだかなぁと思った。。

661:デフォルトの名無しさん
10/03/20 18:10:40
Bonanzaの思考エンジンは自分用の小さなwindowも開くよ。

NPS値とかパラメータ表示用。

ビルドエラーが出るのはライブラリのバージョンの問題とかなんじゃ無いかな?

662:デフォルトの名無しさん
10/03/20 18:19:27
>>660
コンパイルオプションをつけ忘れていませんか。
makefileかreadmeのほうに書いてあったはずです。


663:デフォルトの名無しさん
10/04/02 22:32:03
つ URLリンク(www.ipsj.or.jp)
ついにこの日が来たか。

664:デフォルトの名無しさん
10/04/03 00:33:11
>>663
やらせっぽいけどな。

665:デフォルトの名無しさん
10/04/03 08:30:56
話題になるように努力していることは素晴らしいけど、寒い小芝居は引く。
何で握手してんの。

666:デフォルトの名無しさん
10/04/04 16:00:25
将棋連盟に勝算はあるのか?

667:デフォルトの名無しさん
10/05/01 12:16:42

 V V
(´・ω・`) うさちゃんピース



668:デフォルトの名無しさん
10/05/09 22:12:15
ちゃゆううううぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅ

669:デフォルトの名無しさん
10/05/14 09:01:28
人vsロボ
URLリンク(www.youtube.com)


670:デフォルトの名無しさん
10/05/16 02:41:08
>>669
まだ将棋はコンピュータより人の方が強いみたいだな

671:デフォルトの名無しさん
10/05/20 13:45:42
チェスソフトにあって将棋ソフトに決定的に欠けているのがこれだな
URLリンク(gs.inside-games.jp)

672:デフォルトの名無しさん
10/05/20 15:35:38
>>671
暗いと不平を言うよりも、進んで明かりをつけましょう。
だいたい将棋の方が向いてるんじゃないか? 駒を取る時は相手の上にするのもいいだろうし、馬がいたり、槍を付いてみたり。

673:デフォルトの名無しさん
10/05/20 15:52:44
将棋だと全部寝技がらみになってしまうのが難点だな。

674:デフォルトの名無しさん
10/05/20 19:09:29
で、萌キャラで作ってほしいのか?w


675:デフォルトの名無しさん
10/05/20 19:40:00
ブルゲ的脱衣将棋ディスってんのか

676:デフォルトの名無しさん
10/05/21 13:00:42
エロをつければいいなんて厨房の浅墓な発想

677:デフォルトの名無しさん
10/05/21 15:24:04
HENTAI大国でそんな意見が出てくるとは実に嘆かわしい。

678:rei
10/05/30 16:35:45
え~、bulbulの作者です、え?それ何って?wdoorの初期の頃に存在した人間用クライアントです
アップローダーがスパムに押し流された後、PCのHDDクラッシュでソースコードもろとも綺麗さっぱり無くなってしまったので
一から作り直してます。

というわけで、また駒画像を提供してくださる神はいらっしゃいませんでしょうか

もしかして、すでに需要が無いかもしれないですけど・・・・






679:デフォルトの名無しさん
10/05/30 16:37:59
バックアップすら取らない人に提供してもね


680:デフォルトの名無しさん
10/05/30 16:56:26
駒画像くらい自分で描けば
酷かろうが、公開してしまえばそのうち提供してくれる人が出てくれるでしょ

681:デフォルトの名無しさん
10/06/02 11:56:35
URLリンク(mucho.girly.jp)

682:デフォルトの名無しさん
10/06/04 20:19:22
>>679
ごもっとも

>>680
そうですね、のんびりつくってみます

>>681
サンキューです



683:rei
10/06/09 17:47:22
え~、ついでに、外部の思考エンジンへのインターフェイスを付けようかと思います。

DLLでいいやとか、EXEを蹴ってくれとか、ご要望がありましたらどんぞ

あ~、でも、この過疎り具合じゃ思考エンジンなんか作ってる人居ないかな・・・


684:デフォルトの名無しさん
10/06/09 18:55:15
USIプロトコル(将棋所やプチ将棋)、sikou.dll(CSA将棋)が
既に(コンピュータ将棋界では)メジャーな存在としてあるからねぇ...

685:デフォルトの名無しさん
10/06/09 23:09:55
USI と CSA ですか
ちょっとググッてみたところ、USIはお互いにコマンドのやりとりなどが
有って結構複雑、ここまで実装する労力あればサーバーと直接お話できちゃいます
って感じですね

CSA将棋のほうは仕様を書いてるとこが見つかりませんでした。




686:デフォルトの名無しさん
10/06/26 19:13:21
 V V
(´・ω・`) うさちゃんピース


687:デフォルトの名無しさん
10/06/26 20:39:12
>>685
> CSA将棋のほうは仕様を書いてるとこが見つかりませんでした。

↓これでねーの?
URLリンク(www.computer-shogi.org)


688:デフォルトの名無しさん
10/06/26 20:41:42
開発始動中


【囲碁?】囲連星のAIを作ってみよう【連珠?】
スレリンク(gamedev板)

689:デフォルトの名無しさん
10/06/29 18:17:19
>>687
それは将棋サーバーのプロトコル

探してたのはCSA将棋の本体と思考プログラム間のプロトコル
CSA将棋のダウンロードファイルの中にテキストが有ったので解決しますた

なんかずっと規制中なので(永久規制に突入するかもらしい・・・)
ネットカフェからカキコ


キーボードがムニョ~ンとしてる・・・・・
誰かジュースこぼしやがったな・・・


690:デフォルトの名無しさん
10/07/03 00:30:19
こっちのキーボードはポゲムタビニョーンとしてる

691:デフォルトの名無しさん
10/07/05 10:02:21
USBポートは大抵開いているから、キーボードを持ち歩いたらどうよ。あ、マウスもか。

692:デフォルトの名無しさん
10/07/29 03:29:26
将棋棋戦でさ、「この局面は○○局あり~」とかあるけど、
ああいうのはどういう風にDBに登録してるか分かる人いる?
普通に、一手一手レコードで入れてたらかなり重くなると思うんだけど。
一局の記譜を一つのレコードにして入れてるんかな?
としたら「手順前後の同一局面は○○局」とか、「さらに端歩を突いた形は○○局」とか
検索すんの大変だと思うんだけど。
データベース板いったけど将棋スレがなかった。
スレチだったら該当板を教えてくりゃれ。

693:デフォルトの名無しさん
10/07/29 06:44:18
ふつうに1局面1レコードだと思う。
だってデータベースってのは何万レコードぐらいは扱えるの普通だし。

対人戦の話題で荒れ気味だけど、将棋チェス板のコンピュータ将棋スレで聞くといいかも。

694:デフォルトの名無しさん
10/07/29 09:14:11
>>692
常識的には普通、インデックスを張るわな。

各局面recordにunique id(連番だと思いねぇ)を振ってあるとして、
・11に先手の銀がいる局面のrecord idの集合
・11に先手の金がいる局面のrecord idの集合
・11に先手の角がいる局面のrecord idの集合
…(中略)
・99に後手の王がいる局面のrecord idの集合

みたいなものを別途持っておくってことな。

695:デフォルトの名無しさん
10/07/29 09:16:37
続き。

11に先手の銀が居て、99に後手の玉がいることがわかっているなら、上の
・11に先手の銀がいる局面のrecord idの集合
・99に後手の王がいる局面のrecord idの集合
の交差をとるわけ。局面数が少ないならそれぞれをメモリにまるごと読み込んでもいいけど、
局面数が多いなら、record idがsortされているならそれぞれの先頭から少しずつ読み込んでって
merge sortのようなことをすればいいよな。

3駒以上でも同様。もう少し手のこんだことをすれば速くなるだろうけども、プロ棋士の将棋の棋譜限定なら
record数は1000万は越えないだろうから上のようにやるぐらいでもそこそこの速度が出るんじゃね?

棋泉とかどうやってるかは知らね。誰かもう少しいい方法があるなら教えとくれ。

696:デフォルトの名無しさん
10/07/29 17:58:01
>>693-695
ありがとう。
まず一手指す
→その局面の全駒配置を1レコードにして保存。
→その局面の各駒の該当unique idをレコードに関連つけて保存。

また一手指す
→その局面の全駒配置を1レコードにして保存。
→その局面の各駒の該当unique idをレコードに関連つけて保存。

ということだろうか。
RDBに書き下すのって難しいな。
コンピュータ将棋スレも覗いて見ます。
よい方法あったらまた教えとくれ。



697:デフォルトの名無しさん
10/07/29 18:18:00
>>696
> ということだろうか。

うん。

> RDBに書き下すのって難しいな。

難しいか?

table 局面INDEX {
・盤面上の位置(11~99と手駒の位置)
・駒ID
・局面id
}
こういうtable用意して、たとえば、33に先手の桂がいて、55に後手の角がいる局面を持ってきたければ
このtableのなかから、{ 盤面上の位置=33 , 駒ID = 先手の桂 } であるレコード集合と
{ 盤面上の位置=55 , 駒ID = 後手の角 } であるレコード集合の交差をとるだけだ。

SQLならサブクエリで書けるだろ。ただ、この手のサブクエリを高速に実行できるDBエンジンはなかなか無くて
たいていはひどいパフォーマンスになるんだけどな。まあ自分で実装するならそんな心配ないよな?

698:デフォルトの名無しさん
10/07/29 18:28:46
そういうの売ってないの?
買った方が速いとか野暮なこと考えちゃった

699:デフォルトの名無しさん
10/07/29 18:38:40
>>698
「そういうの」ってなんのことだろう?

棋泉というソフト(フリーソフト)なら
「33に先手の桂がいて、55に後手の角がいる局面」を探したければ、
「33に先手の桂、55に後手の角」を配置すれば即座にDB上に何局面あるか表示してくれる。

それで事足りるならそれを使えばいいだろう。

>>692の質問者は、コンピュータ将棋の何かを自作するためにその部分のデータ構造を
どうすればいいのかという質問をしているのかと俺は思ったので、>>694-695のように俺は回答した。

また、こういうのを高速に検索できる将棋の棋譜専用のDBエンジンがあるのかという質問なら、
「ない」と俺は答える。そんなニッチで金にならない商品なんて誰も作らんだろう。

趣味か研究で作ったものを無料で公開する人ならいるかも知れないが、将棋の棋譜専用のDBエンジンは
俺は知らん。あるなら俺が教えて欲しい。

700:デフォルトの名無しさん
10/07/29 19:24:52
692に期待

701:デフォルトの名無しさん
10/07/29 22:41:22
>>692の質問者は、コンピュータ将棋の何かを自作するためにその部分のデータ構造を
>どうすればいいのかという質問をしているのかと俺は思ったので、>>694-695のように俺は回答した。

ずばりそのとおり。
将棋の棋譜の、ifの検討の部分、もしこう指してたら~・・・ってのを再生できるソフトを作りたい。
基本は、棋譜の一本道なんだけど、それぞれの手から枝葉が伸びるので、指し手のデータはツリー上になる。
これをどうDBに入れて管理するかを考えてる。
まずは一本道の棋譜をどうやって拡張性を持たせてRDBに格納するか、で思案中。

702:デフォルトの名無しさん
10/07/29 23:06:02
>>701
> まずは一本道の棋譜をどうやって拡張性を持たせてRDBに格納するか、で思案中。

俺は指し手だけでなく、局面そのものもDB上に格納しとけばいいと思うけどね。

どうせ棋譜なんて100万局分あったとしても1局面100バイト程度。平均100手として
1M局×100B×100手 = 10GBでしかない。いまどきのHDDなら余裕すぎるだろ。

DBの容量がもったいないなら前の局面からの指し手だけ保持して局面そのものが欲しい場合は、
そのtreeを根元まで辿ってそこから現局面までの指し手を順番に適用して現局面を得る方法も
あるけどな。それでもいいんじゃネーノ。

703:デフォルトの名無しさん
10/07/29 23:07:52
そんな難しいことしなくても棋譜なんかたかだか10万個程度だし、
全部ベタに保存しといて、検索時には全部再生してifで判定してるだけだよ。
同一局面のチェックだけならハッシュ関数を使えば高速。

704:デフォルトの名無しさん
10/07/29 23:32:02
>>703
> 全部ベタに保存しといて、検索時には全部再生してifで判定してるだけだよ。

将棋倶楽部24の24万局集とかマージしてると100万局にはなるだろうけどな。

100万局だと>>702に書いたように10GBあって、メモリを2GB程度しか載せてない
パソコンだとメモリに収まらないし、HDDにアクセスしに行って全部舐めてたら数分~10数分かかるだろうな。

それで使い物になると思うならそれでもいいがな。

705:デフォルトの名無しさん
10/07/30 19:00:34
棋泉のフォーマットは1手2バイトで、1棋譜512バイトしか使ってないよ。
100万棋譜としても488MB。実際は半分以下にできるだろうけど。

それに>>692のような事をやりたい人はたぶん、プロの棋譜だけで
24万局集に入ってる弱い人の棋譜はいらないだろう。

706:デフォルトの名無しさん
10/07/30 19:15:55
>>705
棋泉は初手から全部makeMoveして行く実装なのかな?
まあ、全部の棋譜をまるごとメモリに読み込むならそれでもいいだろうね。

>>692はコンピュータ将棋の思考ルーチンとか学習ルーチンとかで使う、
もう少し良好なレスポンスが必要な実装を必要としている気がしなくもないのだが。

707:デフォルトの名無しさん
10/07/30 19:35:51
>>704
>>HDDにアクセスしに行って全部舐めてたら数分~10数分かかるだろうな。

いくらなんでも端から全部なめるようなアホな実装するやつは居ないだろw


708:デフォルトの名無しさん
10/07/30 19:48:02
>>707
「居ないだろ」って言われても、>>703
「全部再生してifで判定してるだけだよ」って書いてるんだがな。

突っ込みは>>704ではなく>>703に入れろよ。

709:デフォルトの名無しさん
10/08/01 16:26:08
そんなことはどうでもいいから
Codepadの棋譜版、Kifupad作って将棋板住民が使えるようにしてくれ。

710:701
10/08/03 07:10:19
いろいろレスサンクス。
とりあえず、空き時間を利用して、RDBに登録するコード書き始めた。
RDBへの持たせ方はとりあえずいいとして、
棋譜を再現するときに、棋譜はツリー上にどんどんひろがって行くから、
初手
 →二手目その1
  →三手目その1
   →四手目その1
   →四手目その2
 →二手目その2
  →三手目その1
   →四手目その1
   →四手目その2
  →三手目その2
   →四手目その1
みたいな感じで、どんどん広がっていくんだけど、
これをどうやってデータ構造に持たせるかで思案中。


711:701
10/08/03 07:12:25
間違えて送信しちった。
データ構造とアルゴリズム、あたりでも久々に読み返してみようかなぁ。
とりあえずは、RDBに登録するコードだけ書いてる。
読み出して活用するコードはまだまだ先のお話。
いろいろ助言サンクス。
参考になったぜ。


712:デフォルトの名無しさん
10/08/03 07:47:08
そもそもRDB向きじゃないという話はありそうだな。
棋泉はともかく柿木はどうしてるんだろう。

713:デフォルトの名無しさん
10/08/03 07:54:10
>>710
> これをどうやってデータ構造に持たせるかで思案中。

どうやっても何も↓みたいなtableひとつあればいいだけだと思うんだが。

table {
(現在の)局面ID
指し手
(↑の指し手が現在の局面に適用されたあとの)局面ID
}

714:デフォルトの名無しさん
10/08/03 08:08:59
>>713
冗談で言ってるんだよな?

715:デフォルトの名無しさん
10/08/03 08:18:48

               .|  
               .|  
    ∩___∩    |  
    | ノ\   ,_ ヽ  .|  
   /  ●゛  ● |   .J  
   | ∪  ( _●_) ミ 
  彡、   |∪|   |     
 /     ∩ノ ⊃  ヽ
 (  \ / _ノ |  |
  \  "  /  | |
   \ / ̄ ̄ ̄ /
   

716:デフォルトの名無しさん
10/08/03 09:01:55
>>714-715
いや、本気だけど

RDB上は>>713のtableが一つあればいいだけだし

それをメモリ上にdeployするなら
struct 局面Node
{
局面ID id;
List<指し手> move;
}
ぐらいでいいんじゃネーノ?何か問題あるの?

717:デフォルトの名無しさん
10/08/03 09:05:05
書き間違えた。局面IDと局面Nodeとごっちゃに書いてしまった

struct 局面Node
{
List<pair<指し手,局面Node> > moves;
}

こうか?

struct 局面Node
{
局面まるごと board;
List<pair<指し手,局面Node> > moves;
}

こうなってるほうが使いやすいか?

718:デフォルトの名無しさん
10/08/21 16:25:44
動的な(要素数可変な)リストの動的なリスト、とか
動的な木構造の動的なリスト、とか、動的集合の多段や再帰はそのままの形ではRDB上で表現しないが吉
(関係演算が固定回数で済まなくなる等、一筋縄でいかなくなる。)
つかRDBに入れるといいつつstructで説明しようとするあたり大丈夫なのか、


719:デフォルトの名無しさん
10/08/21 18:25:52
>>718
> 動的集合の多段

日本語でおk

> (関係演算が固定回数で済まなくなる等、一筋縄でいかなくなる。)

棋譜に対してどんな関係演算をしたいって言うんだ?
現在の局面とぴったり一致する局面を引っ張ってこれて、それに対する定跡の指し手のリストが得られればそれでいいという話ではないのか?

部分一致している局面集合を得たいならメモリ上において全検索しろってことじゃなかったのか?

それとも部分一致している局面集合を一発でRDBから取ってこれるようなデータ構造を要求してんのか?

お前の話の前提がわからん。お前が何がしたいのか、何を目的とするのかを書かずに「~しないが吉」とか言われてもな。

720:デフォルトの名無しさん
10/08/21 19:29:10
>>719
>動的集合の多段
動的集合を要素とする動的集合の意(動的集合は一般用語でなく、Ad-Hocな造語めいたものなので>718内で説明しておいた)

>棋譜に対してどんな関係演算をしたいって言うんだ?
RDBの文脈で関係演算といえば関係代数の演算しかない(と受け取って貰えるつもりで書いた)
つまりSELECTとか、JOINとか、WHERE句による絞り込みとかいったRDBに対して行う検索操作そのもの

>現在の局面とぴったり一致する局面を引っ張ってこれて、それに対する定跡の指し手のリストが得られればそれでいいという話ではないのか
確かに、元レスの>692の目的は(リストと木構造の違いを除き)そうだと思うが、
定跡の指し手のリストをリスト構造のままRDBに格納するのは厳しい、という話

>部分一致している局面集合を得たいならメモリ上において全検索しろってことじゃなかったのか?
>それとも部分一致している局面集合を一発でRDBから取ってこれるようなデータ構造を要求してんのか?
部分一致、という話は出ていないハズ。>701において「ifの検討の部分(中略)ってのを再生できるソフトを作りたい」というのは
思うに目的は、ある対局でn手目に現れた局面p_nに対して、その対局ではp_(n+1)で指されたわけだが
他の対局ではどう指された実績があるのか?(←ifの検討)をRDBで実現したい、の意だと思う


721:720
10/08/21 19:32:14
なお部分一致している局面集合の検索ならRDBだけですみやかに実現できる。
将棋の局面は81マス+持駒の数(8種類分x2)で特定できるから、
盤の表現に81列、持駒の表現に16列、対局情報レコードへの参照に1列程度、という100列程度のレコードのテーブルを作ればいい
(Microsoft SQL Serverのようにレコードサイズに制限があり、それに収まらない場合はテーブル分割などの工夫が要るが)

たとえば、2010年に指された5五が金将である局面を全てリストアップするには、(year列、"対局ID"列とかを設けるとして)
 SEELCT * FROM (局面table) JOIN (対局table) ON (対局table).ID = (局面table)."対局ID"
 WHERE (対局table).year = 2010 AND (局面table)."5五" = 5
とかやると良い(金将のコードを5、局面テーブルに"5五"という列があり、コードが格納されているとして)

さてこれはRDBの理屈に即した演算で済むから良いのだが、問題は1つの対局内の局面を時系列順に全て得たい、というときだ
ぶっちゃけ、RDBのレコードでリンクリストを実現してリスト構造(や木構造)を作ってやっても、
それをたどるのにn回SELECTを発行する羽目になって効率が悪い
だったら、リンクリストなどやめて1回のSELECTで局面をまとめて取得→オンメモリで並べ替える(ただし、あらかじめindex列を設けておく)
というのが多分正解

structで一生懸命説明している人はここらの話(レコードのオブジェクトへのマッピングをどうするのが良いか)について説明していないし、
多分ポイントを把握もしていない


722:720
10/08/21 19:58:48
ああすまん、落ち着いて読んだら
>現在の局面とぴったり一致する局面を引っ張ってこれて、それに対する定跡の指し手のリストが得られればそれでいいという話ではないのか (>719)
これは>692の目的と違うよ!全然違う

多分こっちね↓
>ある対局でn手目に現れた局面p_nに対して、その対局ではp_(n+1)で指されたわけだが
>他の対局ではどう指された実績があるのか?(←ifの検討)をRDBで実現したい、の意だと思う (>720)

この目的での検索性のためには、検索対象データは「指し手のリスト」ではなく、「局面のリスト」として格納されていなければならない
だがRDB上ではリスト(や木構造)をストレートに表現しても良いことがない(>721に述べた理由で)
だから、この場合も、RDBは集合を得るのに使い、オンメモリでリストなり木構造に構成する、というのが多分正解
部分一致の検索をも目的とするなら>721の第2パラグラフ以下で述べた様にすればいいし、
完全一致しか興味がないなら上で誰かが言っているようにハッシュ値で格納しとけばいい


723:717=719
10/08/21 21:41:13
>>720-722
>>720-721の意見は取り消して、>>722がお前の言いたいことなのか?
俺は>>720-721に反論する必要ないのか?あるのか?
お前は>>718は、撤回するのか、しないのか?

724:717=719
10/08/22 00:24:40
>>720
> 定跡の指し手のリストをリスト構造のままRDBに格納するのは厳しい、という話

リスト構造ってどれのことを言ってるんだ?
ひょっとして>>717で俺が書いたListをリスト構造だと思ったのか?これは言語はC#風の擬似言語だ。
Listと書いてあるのは単なる配列だと思っとくれ。

「配列構造のままRDBに格納するのは厳しい」に対しては間違いだ。
C# + SQL ServerならBinaryFormatterでserializeしてvarcharに突っ込むだけだ。

次の局面に遷移するための指し手に対して条件絞ったりしないだろうから、それで問題ないだろう。


725:717=719
10/08/22 00:34:57
>>721
> Microsoft SQL Serverのようにレコードサイズに制限があり、

お前は一体いつの話をしているんだ。SQL Server 2008でvarchar(max)を使ったら
実質的にサイズ制限は無いに等しいんだが。

お前のなかではSQL Server 2008はSQL Serverでは無いのか?


726:717=719
10/08/22 00:42:14
>>722
> だがRDB上ではリスト(や木構造)をストレートに表現しても良いことがない(>721に述べた理由で)

その721だが、残念ながら
>>721
> SEELCT * FROM (局面table) JOIN (対局table) ON (対局table).ID = (局面table)."対局ID"
> WHERE (対局table).year = 2010 AND (局面table)."5五" = 5

部分一致局面を
AND (局面table)."5五" = 5 AND (局面table)."4六" = 3 AND …
のようにAND条件をいろいろ書いてqueryかけた場合のパフォーマンスは恐ろしく悪いぞ。

MySQLでもSQL ServerでもSqlLiteでも何でもいいから試してみろ。そんなもん使い物にならんわ。
普通に全局面メモリに読み込んで、メモリ上で調べたほうがまだマシというぐらいのひどさ。

だから最初からそんな馬鹿なことはせずに>>717のようにしてるというのにお前ときたら馬鹿のくせに余計な知識をひけらかしにきやがって。

727:717=719
10/08/22 00:49:28
>>722
> 完全一致しか興味がないなら上で誰かが言っているようにハッシュ値で格納しとけばいい

これも間違い。部分一致を調べたいときはメモリに丸読み(メモリに入りきらない場合は
実際は一定レコード数ごとに読み込む)して一つずつ調べるんだよ。そのときにハッシュ値しか
格納されてなかったら部分一致を調べられないじゃないか。だから>>717がベストなんだよ。

728:デフォルトの名無しさん
10/08/22 01:01:23
↑話を理解してない馬鹿

729:717=719
10/08/22 01:22:05
>>728
池沼は出てくんな

730:デフォルトの名無しさん
10/08/22 01:29:12
↑馬鹿

731:デフォルトの名無しさん
10/08/22 08:49:40
うんこすれ

732:720
10/08/28 16:39:54
1からか?1から説明しないとだめか?

>>723
撤回するのは>720の第3パラグラフのみ(>719による元問題の解釈に同意した点)

>>724
配列であっても、配列の個数と長さの両方が変わり得るのであれば同じ話(動的集合の動的集合)
RDBへの格納を考えることはできるが、そうするとRDBの検索の理屈にはなじまず検索効率が悪い(SELECT n回等を要する)
なお、可変長型というのはあるっていやーあるが、そうした可変長データを利用したところで、
内部の部分検索については線形探索、高速化手段としてはせいぜい前回検索結果をキャッシュしておくぐらいしか
RDBから見て打つ手がないからパフォーマンスの解決にならないことを>717=719には念のため言っておく

>>725
レコードサイズを超える格納は、特定の型を使えば可能だがパフォーマンスへの影響がある
レコードサイズ上限8192バイトというのは、これはSQL Server内部のBuffer Cacheのサイズから来る
パフォーマンス上本質的な上限なわけだが(2008でもこの点は変わらない)
URLリンク(www.atmarkit.co.jp)

>AND条件をいろいろ書いてqueryかけた場合のパフォーマンスは恐ろしく悪いぞ。(>726)
総レコード数Nとして、
インデックスを張らずにn列のANDをとれば、SELECTの時間計算量は 線形探索*n回=O(N*n)
インデックスを張れば、O((N*log(N))*n)ぐらいが期待できる
n列の条件演算でn倍という部分自体にはキャッシングぐらいしか向上の余地がない
オンメモリにすれば高速化し得るというのは、上記インデクシングのメカニズムまで自前で実装すればの話
ところでRDBも検索性能命であるからして検索処理をオンメモリで実行しているのを>717=719はご存じだろうか?
(上記URLから辿れ)

>>727
RDBがやるんだヨ


733:717=719
10/08/28 17:38:23
>>732
> インデックスを張らずにn列のANDをとれば、SELECTの時間計算量は 線形探索*n回=O(N*n)
> インデックスを張れば、O((N*log(N))*n)ぐらいが期待できる

で、それが速いとでも思ってんの?頭おかしいとしか言いようがない。
普通に全レコードをメモリにとってきてすべて検索するほうがよっぽど速いんだよ。

だからお前が言ってることは全くの空論。何の役にも立たないわけだよ。

734:717=719
10/08/28 17:40:15
> レコードサイズを超える格納は、特定の型を使えば可能だがパフォーマンスへの影響がある

パフォーマンスへの影響って具体的にどういう条件で影響があると思ってんの?

そもそもそのvarchar(MAX)の部分をキーにして検索するわけでもないから、
別のページに格納されてようが、そこからデータを取得するときにオーバーヘッドがあるだけだぞ。

俺はvarchar(MAX)に格納しろと言ったのは、その曲面における定跡の指し手をserializeして
格納しろって言ったわけで、指し手をキーとして検索することは無いんだから、何も遅くならんよ。

735:717=719
10/08/28 17:40:49
×曲面
○局面

typoした。ごめん。

736:720
10/08/28 18:41:10
>>733
>で、それが速いとでも思ってんの?頭おかしいとしか言いようがない。
>733が、
>n列の条件演算でn倍という部分自体にはキャッシングぐらいしか向上の余地がない (>732)
を読み落としている件について

内容が未知でソートもキャッシングもされておらずインデックスも張られていないn個のデータからの検索を
線形探索以上に速くする方法など>717=719の脳内にしか存在しないわけだが

>普通に全レコードをメモリにとってきてすべて検索するほうがよっぽど速いんだよ。(>733)
>717=719が、HDD上にあるレコード全部をメモリに持ってくるI/Oの時間をまるきり無視している件について
インデックスが張られていない列に基づく検索ならRDBも同条件(Nレコード全部をHDDから取ってくるI/O時間がNに比例)
インデックスが張られていればRDBが有利(Nレコードの中の一部をとってくるだけで済み、I/O時間がN*log(N)に比例)
なんでメモリにとってきて検索したら速くなると言い切れるの??

>>734
いやはや>717=719の発言には驚くことの連続だが、指し手のみRDBに格納、なんて言ってること一つとっても驚嘆もの
指し手のみRDBに格納しておき局面の検索条件で検索するには、レコード総数をN(これは対局総数に等しい)として、
N個レコードを、いちいち(1) HDDからメモリにロードし、(2)平手局面から指し手を順次適用し、局面を得た後に
(3)検索条件と比較、という手順になる
まさにレコードN個(その対局の指し手が書かれている)全部をメモリにロードしてきて、線形探索するという話なわけだが
さらに悪いことに、指し手の適用ステップ(2)が追加で必要だ


737:720
10/08/28 19:11:18
ちと補足(つか訂正と言った方がいいかな(汗

>n列の条件演算でn倍という部分自体にはキャッシングぐらいしか向上の余地がない (>732)
これは一般論としてはそうだが、特定条件ではそうでもない

>721で述べたクエリのように、n列のANDで検索をかける場合、メモリ上に展開されるべきレコードの集合が
列1の検索条件で絞られ、列2の検索条件でさらに絞られ…という単調減少を示すから、n倍より速くなる
また、メモリにロードされるべきレコードの総数は、列1の検索条件で絞られた件数が上限となる
故にHDDからレコードを持ってくるI/O時間についても得をする

訂正とはいいつつ、これはますます
>普通に全レコードをメモリにとってきてすべて検索するほうがよっぽど速いんだよ。 (>733)
の否定材料になるわけだが


738:717=719
10/08/28 21:48:21
>>736
> n列の条件演算でn倍という部分自体にはキャッシングぐらいしか向上の余地がない (>732)
> を読み落としている件について

読み落としてないよ。インデックスを張って、
> インデックスを張れば、O((N*log(N))*n)ぐらいが期待できる
なんだろ?その時間を実際に測定してみなよ。遅すぎると言ってんの。

> インデックスが張られていればRDBが有利(Nレコードの中の一部をとってくるだけで済み、I/O時間がN*log(N)に比例)
> なんでメモリにとってきて検索したら速くなると言い切れるの??

そもそもあんたは何故それが遅いのかわかってないだろ。
DBがどういう実装になってるかちっともわかってないじゃん。

繰り返しになるけど、そんなにDB初心者なのだったら
その時間を実際に測定してみなよ。遅すぎると言ってんの。

739:717=719
10/08/28 21:54:36
>>736
> 指し手のみRDBに格納、なんて言ってること一つとっても驚嘆もの

俺、そんなこと言ってないじゃん。俺の実装なら最初から>>717にあるじゃん。
局面まるごとがちゃんとstructの中にあるじゃん。
どこに指し手のみRDBに格納されているように見えるの?
俺は指し手は(C#の)Listで持って、これserializeしてvarchar(MAX)に突っ込んどけって言ってんの。

で、部分一致局面を高速に調べたいなら、この局面まるごとなんかRDBには保存せずに
初期局面とあとはそこからの指し手だけの集合のほうが遥かに速いだろうし、俺はそうする。

>>737
> >721で述べたクエリのように、n列のANDで検索をかける場合、メモリ上に展開されるべきレコードの集合が
> 列1の検索条件で絞られ、列2の検索条件でさらに絞られ…という単調減少を示すから

そんな馬鹿な実装になっているDBがどこにあんの?
あんたの脳内にある馬鹿な実装してあるDBの話をされてもな。

740:717=719
10/08/28 22:00:35
結局、あんたはSQL queryのANDがそれぞれのDBでどういう実装になっているのか
それすら全然理解してないじゃん。だからqueryでANDでやればあとはRDBがなんとかしてくれる
だとか妄言じみたことを言うわけじゃん。そんだけ馬鹿なんだったいちいちしゃしゃり出てこなくていいのに。
素直にDB初心者スレを10年ぐらいROMってればいいレベルなのに。本当迷惑だな。

741:デフォルトの名無しさん
10/09/15 23:45:17
おまいら最強の麻雀プログラムしてみろよ Part3
スレリンク(tech板)

742:デフォルトの名無しさん
10/09/29 01:40:28
実際にコード書いて比べてみりゃいいんじゃね

743:デフォルトの名無しさん
10/10/04 12:47:45
理屈こねるより選手権で優勝してしまうほうが楽なんじゃね?

744:森岡@GA将棋!
10/10/04 22:22:00
>>740
ここはあんたの日記帳じゃないぞ。
きっちり「実装して」成果が出てから書き込んでね。

745:偽物? ◆HxwXMuc5Pw
10/10/04 22:25:49
キターっ ってかw

746:デフォルトの名無しさん
10/10/04 23:11:57
>>744
終わってる話にSQL超初心者のくせにしゃしゃり出てきて間違いだらけのことを書いて行ったのは>>720だろ。
>>717は最初から何も間違っちゃいないよ。

747:森岡@GA将棋!
10/10/04 23:56:45
だからさ、そんなに正しくて有望な手法なら、さっさと実装すりゃいいのにっつってんだよボケが。
実装していない時点で>>720>>717も同じ。
単なる妄想癖のあるパンピーだろうが。

748:デフォルトの名無しさん
10/10/05 00:01:20
717==746必至だなw
RDBついて論破したから、自分の考えたアルゴリズムの先進性も証明されたと思ってる?
その二つは全然別ですから。

749:デフォルトの名無しさん
10/10/05 00:37:48
勝負の世界じゃあ、実際には間違ってても勝ったほうの言い分が正しいことになるのだ
だから勝て、話はそれからだ



750:デフォルトの名無しさん
10/10/05 00:38:15
必至なのはお前

751:デフォルトの名無しさん
10/10/05 00:51:27
>>747
> だからさ、そんなに正しくて有望な手法なら、さっさと実装すりゃいいのにっつってんだよボケが。

君は、よほど馬鹿なんだね。>>720がRDB超初心者だってことすらわからないんだね。

>>748
先進的なアルゴリズムなんて>>717は書いてないのにそれすらわからないんだね。
君はどうしようもない馬鹿なんだね。

752:デフォルトの名無しさん
10/10/05 00:58:00
森岡@GA将棋!って偽物だろ
本人なら、森岡@GA将!!!!!なんじゃね?

753:デフォルトの名無しさん
10/10/05 07:22:44
>>751
>普通に全レコードをメモリにとってきてすべて検索するほうがよっぽど速いんだよ。
ここら辺、>>717は従来手法より優れてるって思ってるんじゃね?
それを「先進的」って言うんだよ。
本当にそうならね。
>君は、よほど馬鹿なんだね。>>720がRDB超初心者だってことすらわからないんだね。
「720がRDB超初心者」と「717の言ってることが正しい」は全く別問題。
一方が真だと分かっても、もう一方がどうかは全く不明。
この理屈、理解できる?

754:デフォルトの名無しさん
10/10/05 07:29:13
てか、>>749が全てじゃね?
「強いソフト作った者=正しい」。シンプルでいいじゃないか。

755:デフォルトの名無しさん
10/10/05 07:47:49
いい加減実りのある議論したらどうだ、お前ら。

756:デフォルトの名無しさん
10/10/05 09:19:26
つwよwいwかwらwたwだwしwいw

757:デフォルトの名無しさん
10/10/05 09:21:11
そりゃそうだ。
一二三九段が弱かったら只の変質者だ。

758:デフォルトの名無しさん
10/10/05 10:10:46
んまい

759:デフォルトの名無しさん
10/10/05 12:14:46
>>756
弱者乙



760:デフォルトの名無しさん
10/10/05 12:27:36
>>753
>>普通に全レコードをメモリにとってきてすべて検索するほうがよっぽど速いんだよ。
> ここら辺、>>717は従来手法より優れてるって思ってるんじゃね?

RDB使うより「よっぽど速い」って書いてあるだけじゃん。
そりゃ>>720のような馬鹿な設計するよりはよっぽど速いに決まってるじゃん。

それすらわかんないの?

君は20万棋譜メモリに全部置いて部分一致検索する時間が
だいたいどれくらいになるかもわかんないの?

そりゃ重症だよ。本当にプログラマなの?そんな馬鹿で生きてて楽しいの?

761:デフォルトの名無しさん
10/10/05 12:48:20
ハイハイ717様は天才ですねー

762:ながと ◆32ZI32xxZI
10/10/05 15:12:42
置換表の話?
チェスのstockfishだと、2^nのエントリを作り、局面から作られる64ビットのキー値でアクセスする。
2^nのエントリなら、キー値の下位nビットでアクセス。1つのエントリに4つまで、局面を格納できて、
上位のキー値が一致しているものを拾ってくる。
数百メガバイトの大きな置換表のエントリを拾うのは時間がかかるが、プリフェッチ命令というのを使って、
あらかじめL1/L2キャッシュにロードしておくから速いらしい。

763:デフォルトの名無しさん
10/10/05 15:51:15
>>762
置換表の話は誰もしていないよ。
どうやれば棋譜から部分一致している局面を高速に見つけられるかという話。

例えば68飛、66歩である棋譜を高速に引っ張ってくるだとか。
棋泉だとそういうこと出来るよね。

それをRDB使えばRDBの集合演算が使えるので高速に出来るという
SQL超初心者の基地外>>720が現れて話がおかしくなったわけ。

それでその話は>>738-740でもう終わってるのに、その終わった話を内容も理解せずに
2ヶ月もしてから蒸し返す>>747のような基地外が現れたわけ。しかもこの基地外は
森岡さんの名前を騙ってやがるんだよ。

764:デフォルトの名無しさん
10/10/08 01:24:47
実装できた?

765:デフォルトの名無しさん
10/10/08 01:55:27
717君は、もうとっくに692も720もいないのにスレ違いの事に粘着して
延々喚き続けてる自分が「基地外」だと理解できないのかな?


しかし、こっちはあからの話題がまったくでてないんだな……。

766:デフォルトの名無しさん
10/10/08 03:03:20
>>765
それは違うな

明らかに>>720>>747が基地外だ
そしてそれがわからないお前は池沼


767:デフォルトの名無しさん
10/10/08 06:59:12
-------------------------ここから次の話題-------------------------

768:デフォルトの名無しさん
10/10/09 01:31:24
そりゃこれでしょ
いま将棋板ではこれでもちきり

コンピュータ将棋vs清水市代女流王将 その7
スレリンク(bgame板)

769:デフォルトの名無しさん
10/10/09 04:36:29
合議制がよほど変なふうに働かない限り、あからが史上最強の将棋マシンなのかな
その割にはfloodgateで結構負けてるけど……

770:デフォルトの名無しさん
10/10/10 01:35:41
素人目には合議制をうまく活かすのは結構難しい気がするんだが……

例えば、どれか1個の思考エンジンが巧妙な手を見つけても
他のエンジンが見つけられなければ、結局それらが提案する
(平凡な)手の中に埋もれてしまって表に出てこないよね?

思考エンジンを増やせば増やすほどそういう傾向が強まるわけで、
妙手を打てなくなる方向にしか行かない気がするんだけど……


771:デフォルトの名無しさん
10/10/10 01:54:56
いや、でもそのかわり失着もなくなる方向になるわけで

772:デフォルトの名無しさん
10/10/11 09:36:26
良く分からんが、見つけた妙手については、
他の思考エンジンに通常よりも少し深読みさせれば、
却下させる率を下げられんのかね。

773:デフォルトの名無しさん
10/10/13 16:23:48
合議制はエヴァオタの趣味だろw

774:デフォルトの名無しさん
10/10/13 16:48:02
スペースシャトルのコンピュータとか、もっと古くからある。

775:デフォルトの名無しさん
10/10/13 17:52:48
>>773
オタク死ね

776:デフォルトの名無しさん
10/10/14 11:54:54
コンピュータ同士の対戦で一番強かったからといって
プロ相手に強いとは限らない。

と、二位以下の作者がごねてWC日韓共同開催的な結論に落ち着いたのだろう。

777:デフォルトの名無しさん
10/10/14 13:58:28
URLリンク(htn.to)

778:デフォルトの名無しさん
10/10/15 20:29:24
よくわからないですけど、将棋界はコンピューターに負けるのを恐れて戦わないんですか?

779:デフォルトの名無しさん
10/10/15 20:40:16
>>778
昔、大口たたいたのが居て、引っ込みがつかなくなってるんじゃにない?

780:デフォルトの名無しさん
10/10/15 20:45:05
>>778
そう思ってる人も多いし
どうせ負けるのは時間の問題だから小出しにして
せいぜい話題を集めようとしてるんだろうと裏読みする人もいる
結局真相は外からじゃ分からないよ

なんにしろ羽生7冠以来のでかいネタであるのは間違いない

781:デフォルトの名無しさん
10/10/16 16:33:33
>なんにしろ羽生7冠以来のでかいネタであるのは間違いない
人間棋士がコンピュータに圧勝という状況が続くなら将棋連盟にとって収益的に悪い話ではないが、
やってみて実はそうでなかった、となると怖い
人間弱しということで将棋自体への世間の関心が低下すれば、タイトル戦の提供元がいなくなる
関心が高まったとしても、コンピュータが強くて将棋連盟にお金が入る道理はちょっと見あたらない


782:デフォルトの名無しさん
10/10/16 18:28:58
重量級のコンピューター構成でやっと勝てた、というくらいだから、
人間様のほうがパフォーマンスがいいと思うんですが、それでも将棋界には不利ですか‥‥‥。

783:デフォルトの名無しさん
10/10/17 01:58:43
麻雀プログラムWiki
URLリンク(www26.atwiki.jp)

麻雀シミュレータ MJSim
URLリンク(www26.atwiki.jp)


784:デフォルトの名無しさん
10/10/17 18:47:56
>>781
先行例のオセロやチェスでそのようなことが起きていますか?
将棋でだけそのようなことが起きる道理があるのですか?

785:デフォルトの名無しさん
10/10/17 18:58:09
コンピュータ将棋あから総合スレッド
スレリンク(bgame板)
コンピュータ将棋vs清水市代女流王将 その18
スレリンク(bgame板)

786:デフォルトの名無しさん
10/10/17 23:26:13
>>784
オセロやチェスで人間v.s.コンピュータの大会を開催して収益を上げる団体が存在しますか?
一流プレイヤーを育成し、雇い、それらの参戦大会を一元的に仕切る包括的な団体が将棋以外に存在しますか?


787:デフォルトの名無しさん
10/10/18 18:53:56
>>786
囲碁をわすれてもらっては困ります。

788:デフォルトの名無しさん
10/10/18 20:36:43
↑話の流れがわかってない馬鹿


789:デフォルトの名無しさん
10/10/18 20:59:01
馬鹿とオタクと田舎者はネットすんな

790:デフォルトの名無しさん
10/10/19 10:11:57
いや、それネットの主要利用者層だろ

791:デフォルトの名無しさん
10/10/19 12:39:51
田舎者にとっちゃぁネットの情報って貴重だしな。

792:デフォルトの名無しさん
10/10/19 17:54:21
そういや10年前に衝撃の話を聞いた
「田舎ではネットやってるだけでオタク扱い」
今でもそうなの?

793:デフォルトの名無しさん
10/10/19 19:54:30
20年前はパソコンやってるだけでオタク扱いだったけどな

794:デフォルトの名無しさん
10/10/19 19:57:36
しかしレヴェルの低いスレだな

795:デフォルトの名無しさん
10/10/19 19:59:02
お前らは顔見るだけでオタク扱いされるだろ

796:デフォルトの名無しさん
10/10/19 22:53:41
それはお前だけ

797:デフォルトの名無しさん
10/10/19 22:58:29
>>793
田舎って恐ろしい・・・

798:デフォルトの名無しさん
10/10/19 23:30:44
次の女流棋士との対戦は来年?

799:デフォルトの名無しさん
10/10/20 18:26:03
早くとも半年後らしいから、来年なんじゃね?

800:デフォルトの名無しさん
10/10/20 22:08:38
次は誰が対戦すんの?

801:デフォルトの名無しさん
10/10/20 22:22:27
未来の名人戦は、SFに出てくるロボット闘技場みたいなイメージなのかな

802:デフォルトの名無しさん
10/10/20 22:28:46
コマが3D化して戦う!

803:デフォルトの名無しさん
10/10/25 03:32:10
>コマが3D化して戦う!
この春に実現化するらしいぞ

URLリンク(www.ikechang.com)
URLリンク(www.ikechang.com)

804:デフォルトの名無しさん
10/10/26 09:25:18
ゆくゆくは将棋のA級棋士はみんなコンピューターになるんじゃない?
コンピューターに弟子入りする棋士もいるかもしれない。

805:デフォルトの名無しさん
10/10/26 10:00:09
いるわけない
コンピュータの手筋を解釈するのが上手い奴に弟子入りすることはありえるけど


806:デフォルトの名無しさん
10/10/26 10:02:01
ソフトの進化とスレの荒廃が両極端だな

807:デフォルトの名無しさん
10/10/26 20:18:58
私の将棋師匠は「れさぴょん」です!!

808:デフォルトの名無しさん
10/11/01 21:46:31
ボナメソを試してみたいのですがどうすればいいですか?
論文読んだけどさっぱり分かりません。

809:デフォルトの名無しさん
10/11/01 22:00:27
論文を理解すればいいよ


810:デフォルトの名無しさん
10/11/04 22:56:34
>>808
Bonanzaを使う

811:デフォルトの名無しさん
10/11/05 00:39:15
ソフトの進化とスレの荒廃が両極端だな

812:デフォルトの名無しさん
10/11/05 08:44:26
さいきんはプログラム板的に面白い話題が無いからな

813:デフォルトの名無しさん
10/11/15 10:57:45
無料RPG製作ツール「ロープレジェネレーター」
URLリンク(sekisekki.net)

特徴
直感的操作で簡単なゲームが作れます。
簡単に配布可能な状態に出力することができます。
HSP(URLリンク(hsp.tv))製のソースコード付きで、スクリプトの知識があれば
自由度の非常に高いカスタマイズができます

・要望、不満点、バグ報告、応援メッセージなどなど書き込みお願いします。
今もどんどん進化中だ。


814:デフォルトの名無しさん
10/11/15 12:25:46
>>813
それのどこが将棋?

815:デフォルトの名無しさん
10/11/18 22:08:46
羽生さんが言うには、人間は省くことで強くなって行くらしい。
コンピュータは、何手先まで計算出来るかとか膨大な累積で成り立つだろうから
根本的に違うよなぁ
チェスは定石が3~4個くらいしかないらしいから14~15手まで読めてたけどね
ディープブルーだっけ?
将棋の定石は倍以上ありそうだからかなりキツイんだと思う

816:デフォルトの名無しさん
10/11/19 09:45:04
枝刈りはコンピュータもやってたよ
局面単位のパターン認識が人の強みなんだよな

817:デフォルトの名無しさん
10/11/19 15:46:47
ディープブルーと世界チャンピオンの対戦観てたけど
途中でビショップとナイトの駒の重み変えてたりしてたよね
結構昔の話だし、今のコンピュータスペックなら20手くらい読めそうだから
もうチェスはムリポなのかもな
んでもって日本でチェス強いのも羽生さんだっけw

818:デフォルトの名無しさん
10/12/11 15:26:04
Floodgateのサーバーが送りつけてくる対局条件のうち、時間計測に関するところを見ると
 Time_Unit:1sec
 Total_Time:1500
 Byoyomi:0
 Least_Time_Per_Move:1
となってるんだけど(→例:URLリンク(shogi-server.sourceforge.jp)
Byoyomi:0ってどういう意味なんだぜ?
試行時間が0 secを超えたら時間切れ??
(1手あたりの時間制限を設けない場合はByoyomi:フィールドの省略が正しいはず→CSAサーバ プロトコル ver.1.1.3)


819:デフォルトの名無しさん
10/12/11 18:31:07
floodgateの対局条件は「15分切れ負け」ですが、「切れ負け」の部分の表現にByoyomiを使ってる…のかも。
開発者の人がCSAサーバプロトコルを誤解している可能性もあるので、一度連絡されてみては?

820:デフォルトの名無しさん
10/12/11 18:48:53
>>819
あ、おれもそう思ってたw
規定読んでみると、どういう使い方するのか明記されてないっすね

To_Move:も+しか返してこないから、途中から観戦するときに手番がこけてハマったし



821:デフォルトの名無しさん
10/12/11 22:10:38
SFICPでローカルに対局させると強弱はともかくそこそこ妥当な指し方をするのに
floodgateに投入すると自殺手を放つ(最初に見つけた手を即座に指す)原因がこれだった件について


822:デフォルトの名無しさん
10/12/13 23:35:16
Byoyomiという命名からしてTotal_Timeを使い切った後に意味を持つフィールドらしいという想像ならつくわけだが
あくまで想像

単独の'+'や'-'は多分、初期配置(一括表現や駒別単独表現)の直後に現れた場合は
それぞれ「下手が先手」、「上手が先手」と解釈すべきなのではないかという気がする

初期配置の直後以外の場所に現れた'+'や'-'の解釈は想像するだに恐ろしいが規約上は明白には禁じられていない
直前の指し手の手番やTo_Move:と矛盾してたりしたらどうすればいいいんだろ;


823:デフォルトの名無しさん
10/12/15 15:39:41
>>822

>>初期配置の直後以外の場所に現れた'+'や'-'の解釈は想像するだに恐ろしいが規約上は明白には禁じられていない
>>直前の指し手の手番やTo_Move:と矛盾してたりしたらどうすればいいいんだろ;

BEGIN PositionとEND Positionの外側で単独の+-が出てきたら無視すればよし
というか、サーバーがバグってなけりゃ,そこにしか出てこないっしょ

本来の手番と矛盾したら?
そりゃサーバーのバグだろうから直してね攻撃だw

To_Move:は現状+しか見たこと無い
観戦時にその盤面に対しての手番が入ってるのを期待したが、ちがったようだ
対局開始直後の手番ということなので仕様なんだろうけど
解釈が違うような気はする



824:デフォルトの名無しさん
10/12/19 14:43:23
>15で挙げられているコンピュータ将棋用語集のサイトが
「12月15日付けWindowsUpdate後、IEで文字化け多発中な模様」の被害を受けている模様
URLリンク(www.shogi.net)
エンコードをどう指定しても日本語部分が文字化けして読めないorz

関連ストーリー
URLリンク(slashdot.jp)


825:デフォルトの名無しさん
10/12/19 14:50:55
自己解決しますた
ようわからんが、右クリック「ソースの表示」でソースを表示したものを
拡張子.htmでローカルに保存すると、それは問題無く読める
charsetは問題になっているそのものずばり"iso-2022-jp"(本当は全部大文字であるべき)
なんでローカルに開くか否かで現象が変わるのかは不明



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch