おまいら最強の将棋プログラムしてみろよ part7
* * * 無理です + n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
前スレ終盤の話題の要約: 少量のめちゃくちゃ強い棋譜に大量のそこそこ強い棋譜を加えて学習しても効果は無いのではないか? むしろ弱くなるのではないか?
floodgateに5五将棋を実装してくれないかな… 参加する人少ないか…
55将棋ってやったことないけどつまんなそう、 いかにも先に仕掛けたほうが負けそうで、じっと相手の攻めを待ちつづけるしかできなさそう
新スレ乙
>5 8月の学会誌の棚瀬の記事では、 「エキスパートの深い読みの入った手は学習に適さない」みたいなこと書いてあるな。 あとBonanzaの使った6万局にしても、半分はアマチュアの入玉の棋譜。 書いてないけど、レーティングとかは無視しないと3万局も無いと思う。 それでも収束してない例として入玉関係のパラメータが載ってるくらいだから、 こんなのをこのままにしておくよりは、 弱い棋譜でも使ってそれなりの値にした方がいいだろ。 収束してない値の弊害についても棚瀬の記事とかにあるとおり。 例えば入玉時に、初期位置の香車が取られそうだとして、 死守するか否かってのならプロでもアマでもほとんど変わらんでしょ。
10 :
デフォルトの名無しさん :2008/08/28(木) 15:16:22
8月の学会誌に影響されて将棋プログラム開発始めたんだけど、 早速、盤面・持ち駒をあらわす変数名を何にするかでつまずいた ban はなんとなく嫌なので英語の board にした。 そうすると 持ち駒は英語で何というんだ?
>>10 pieces in hand
持ち駒の枚数管理に hand[] を使っても誤解されることはない思う。
ふとした疑問なんだけど将棋プログラム作ってる奴らって、当人は将棋強いもんなの?
13 :
デフォルトの名無しさん :2008/08/28(木) 17:09:54
>>11 ありがと hand にするよ
んで、先手と後手の持ち駒の2つがいるんだが
int hand[2][SIZE];
とするか、先手と後手の2つの配列にするかで悩んでいる
先手、後手って first, second でいいの?
int firstHand[Size], secondHand[SIZE];
>>12 ピンキリ。保木氏(Bonanzaの作者)が強くないのは有名。
>>15 おおっ、いいサイト教えてくれてありがとう
んで、今度は 盤面+持ち駒 情報を保持する 局面クラスの名前で悩んでる。
さっきのサイトを見ると 局面=position って書いてある
CPosition
{
char m_board[BD_SIZE];
uchar m_hand[2][HAND_SIZE];
.....
};
でおk?
>>16 英語表記を多用するのならチェスのプログラムソースを見るのがいいと思う。
Crafty、Fruit、Glaurung 辺りがお薦め。
いろいろあんがと>みんな おかげさまで、局面クラスを宣言・実装して、初期化、盤面表示、すべての着手の生成ができるようになったよ (初期状態での可能着手数は 30であってる?) まだまだ先は長いな
着手の実行・戻し、局面の先後反転も実装し、三手先の局面をすべて生成できるようになった(ぽい) (同一局面を考慮しない)三手先の局面数は 25,380 だったけど、合ってるのかな?
初期値での可能着手数が 30 だったら、三手先の局面は 30^3 = 27,000 以上あるような気がしたんだけど、 飛車の横ききを止める手がたくさんあるので、それより少なくなるのかもしれない
まぁ合法手が30個程度なら読めるだろうけど、もっと多くなると大変 それに3手読みじゃ浅過ぎてダメな手しか見つからない どうやって計算量を減らすか、ムダな手を捨てるかの壁にぶつかるだろう
22 :
デフォルトの名無しさん :2008/08/29(金) 10:04:49
将棋ソフト同士の対局をしてくれるツールってありますか? 例えば、ボナンザと激指を起動して、手動でしているのですが、結構たいへんなので・・・。
>16 わたしは駒をSFU〜EHIでenumで定義しておいて、 持ち駒はhand[SFU〜EHI]と一次元配列にしてます。 boardも単純に9x9にする案もあるし、16x9にする方法もありますね わたしは16x13にしてます (垂直方向でx16で済むのと、縦は桂馬の利き考えて10)
24 :
デフォルトの名無しさん :2008/09/03(水) 10:01:33
先手の桂馬は1段目に置けないんだから、16x11 でよくね?
>>24 「桂馬だから」という条件式をできるだけ省きたいから。
>>20 次はNULLMOVE枝狩りを入れてみたら?
ハッシュもうまく動くまでは時間かかる
27 :
デフォルトの名無しさん :2008/09/04(木) 09:25:35
囲碁やオセロだったら、評価関数が返す値は双方最善に打った場合の石数差と定義できるけど、 将棋だと 勝ち・負け・引き分け しかない 将棋の評価関数って厳密には何を意味しているんでしょうか? 有利さを(たとえば +10000〜-10000の)数字にしたもの、って言う人もいるけど 有利さの定義が厳密でない気がする。 手番側が勝つ確率っていう人もいるけど、ある局面から手番側が勝つ確率は (先後の棋力が同じでも)プレイヤーの棋力で異なってくると思うんだよね
>>27 囲碁やオセロでも勝ち・負け・引き分けしかないじゃん。
それを言うなら将棋だって、詰むまでの手数とか、詰んだときの駒割などで評価関数にできる。
将棋に関してはあなたの考えてる通りだと思うよ。
実際のところ、将棋の神様にとっては勝ち・負け・引き分けしかない。
あと意味があるとすれば、
その評価関数を採用したソフトが(トップ棋士に対して)最も強くなるようなものが、
理想的な評価関数だね。
余談だが、最近俺は自分で将棋を指すときの評価関数を、
「プロが勝つ確率」から「自分が勝つ確率」に改めるよう心がけている。
いくらカッコつけて勝ちのある局面にしても、自分が勝てなきゃ意味ないんですよw
> 将棋の評価関数って厳密には何を意味しているんでしょうか? 何か新しいことを思いついたつもりなのかもしれないが いくつもある将棋ソフトは実質的にはまさにそれを競っているんだし 調べればそれなりに分かることを 一から十までこのスレで相談するだけで簡単に作ろうとしている奴がいるな
オセロの試合は通常スイストーナメントで、勝ち数が同じならば石差の合計で順位が決まる。 したがって、オセロは 勝ち・負け・引き分 じゃなくて、双方最善に指した場合の 石数差を評価関数の値にするのが普通
>27 そのソフト(あるいは人間)が想定しうる(真似できる)限りの 強いプレーヤー集団(集団内メンバーの棋力は揃っていると仮定)の メンバー同士が対局した際に先手あるいは後手がそれぞれ勝つ確率。 当然、真似する対象が強ければ強いほど正確(一般性がある)。 >29 意味不明。 と言うか >27の疑問を曲解しとるな。 彼は純粋に理論的あるいは原理的な疑問を口にしてるんだよ。 多分、コンピュータ将棋スレでの最近のやりとりに触発されて。
32 :
27 :2008/09/04(木) 16:26:05
>>31 やはりそうだよね。>(たくさん略)先手あるいは後手がそれぞれ勝つ確率
(勝つ確率は 0〜1.0 の範囲なので、それを単純に ±10000 とかに線形変換したものじゃなくて、
0.5 の付近は少しの差も重要なので、0.5付近の差を強調した整数にするのが、
ソフト的には扱いやすそうだ)
あたり>コンピュータ将棋スレでの最近のやりとりに触発
するどいね
読みにくいレスだな
34 :
31 :2008/09/04(木) 17:25:21
>32 さっきは「先手or後手が勝つ確率」と書いたが実際には 手番を含めた局面同士の比較(順序関係)さえ正しければ 値(比率)そのものはどうでも良いな。 探索後、末端局面の評価値を比較するわけだから。 書いた後で気が付いた。 だから正確には「勝つ可能性の順序関係を数値化したもの」か。
>>34 そのとおりなんだけど、評価値からウィンドウサーチするときなどは、
評価値の厳密な意味が明確でないと、どの程度の幅をとるべきかが
理論的にははっきりしない
ってことがあるかも
36 :
34 :2008/09/04(木) 23:52:54
>35 ああ、サーチウィンドウの幅の意味までは考えなかったな。 ところでモンテカルロ囲碁登場以前から、囲碁の評価値には 石数(何目差)と勝つ確率の二種類有りうると言う風に 考えられていたのかな? つまりその二種類の評価は必ずしも一致しないと。
うん
黒と白の地の差(スコア)を評価関数にするのが普通だったと思う でないと最善手を打たなくなるし そもそも古典的な囲碁の評価関数で勝率なんて求める方法があるのか 勝率が使えるのはモンテカルロ碁が本質的に確率的(多数回の試行に基づく)だからだろ
>>36 囲碁はよく知らないがオセロではそうだった
(歴史的には石差を評価値とするのばかりだったはずだが、ロジステロ(だったかな?)が
勝つ確率を評価値にして成功した)
モンテカルロ法も最初はプレイアウト後の地の平均を取っていたが、GNU囲碁より弱かった。
あるとき開発者がソースを1行変更して、地の平均 → 勝つ確率 に変えたところ
GNU囲碁より強くなったそうだ
>>39 Logistelloの成功の主因は、従来の盤面1マスずつに対し手動で価値を設定していたような古典的な評価関数ではなぃ、
(例:4隅に置いた石1個につきxxx点、その隣のマスなら-xx点、着手可能な場所1箇所につきx点etc.)
隅・辺・斜め方向などの複数マスの範囲における駒の配置パターン1つ1つに対して価値を与える評価関数を用い、
(例:辺の石が●○●●○○○●と並んでいたらx点etc.)
かつその膨大なパターンの評価の設定をコンピュータの学習によって行った事にあるようですが?
石差ではなく勝率を評価値にして成功したというのは恐らく斜め上の主張ではないかと。
http://www.cs.ualberta.ca/~mburo/log.html
辺やコーナーのパターンに点数を割り振っておいて それを参照するのはもっと前のプログラムから利用されてる
>>39 局面の相対的な善し悪しが判断できればいいのだから
評価値が石差を表そうが確率を表そうが本質的な違いは無いんだよ
俺の頭脳がコンピュータなんだぉ!!!
44 :
デフォルトの名無しさん :2008/09/05(金) 19:21:09
いや、つまんないから。
>本質的な違いは無い 何を以て本質的と称しているかは知らんが 実際に作る時には全く異なるし学習などを考えると理論的にも違ってくる
フハハハハ・・・石差に意味などない!! 意味があるのは勝敗のみ!! 勝者は常に一人よ!!
>42 >47 「ヒカルの碁」での佐為 対 塔矢行洋 戦を例に考えてみよう。 ネット対局ではなく新初段シリーズで佐為がヒカルの体を借りて打った奴。 盤面で二十目以上の大差を付けようとして打った対局がいったいどうなったか?
49 :
48 :2008/09/06(土) 07:29:00
別の言い方で説明してみようか? 石差がそのまま評価値なら一目差で何とか勝てる手と何十目もの 大差を付けて勝てる手のどちらをプログラムは選ぶだろうか? 当然、後者だよな。勝つ確率で評価値すると違うんだよ。
50 :
49 :2008/09/06(土) 07:32:20
あ、一目差じゃなくて半目差か。
石差による評価と勝つ確率による評価に違いが無いと 思っている人はある錯覚をしてるんだよ。 盤面で大差を付けられる(可能性が高い)手を 選べば少しくらいの読み間違いが有っても 差がつまるだけでやはり勝てる可能性は依然、 高いはずだと。 つまり実際には存在しない線形性と言うか 単調増加性を無意識に仮定している。 だが実際の囲碁やオセロ、将棋は とんでもなく非線形性の強いゲームだ。
人間が、「自分が大差で勝つ」可能性に賭けるようなプレイングは、 相手の癖のモデリングなどによって「相手が弱い」と理解しているからこそ 可能になるんだよ。 相手が囲碁の初心者なのか段位持ちなのか判断できない囲碁プログラムが 「自分が大差で勝てる」可能性があると信じて石差を評価基準として使い、 リスキーな手を連発すれば、当然段位持ちに負ける可能性は高くなっていくでしょう。 これをもっと簡単に言うと、石差を使うプログラムは(プロに)弱い、となる。
>囲碁やオセロ、将棋はとんでもなく非線形性の強いゲーム ここ嘘
と言うか人間のプレーヤーの場合、現局面で既に大差をつけて勝っている (可能性が高い)と思えば、そのまま大差を保って勝とうとするだろう。 わざわざ差を減らしてまで確実に勝とうとはしない。 また、大差で負けている時はその差をひっくり返すために大きく荒そうとする。 ところがモンテカルロ囲碁は常に勝つ可能性が少しでも高い手を選ぶから、 はっきり勝ってる時は勝ち(石差)を維持しようとしないし、 大きく負けている時でもリスクの大きな手を打たないのでやる気が 無さそうな打ちかたになる。 実力を発揮して強そうにみえるのは接戦の時だけと言う不思議な代物。
56 :
52 :2008/09/06(土) 19:13:18
>54 私が言う線形性があると言うのはわずかな優位を 積み上げればそのまま勝てるゲームだと言う事。 非線形性が強いと言うのはたった一手で 大逆転が起きる可能性も大きいと言う事。 で、嘘だと考える理由は何?
優位を積み上げる?
58 :
56 :2008/09/06(土) 19:43:32
別の言い方をすると「線形」的なゲームでは 情勢が一手だけでは大きく動かない。 少しずつ有利になり少しずつ不利になる。 だから積みあげたもの(石差)がそのまま 勝つ可能性に比例する。
サッカーはそれか 野球は違うわけだ
関係ないよ
>相手が囲碁の初心者なのか段位持ちなのか判断できない囲碁プログラム 通常のゲーム理論では、評価関数は相手も自分も同じなので、 敵は自分と同じ強さと仮定しているわけだけど、 対戦中に評価値の上昇・下降の傾きで、相手が自分より強いか弱いかは 認識できる。 これを利用して、強い探索を行う方法はできるでしょうか?
>>61 一言で説明するのは難しいけど・・・
たとえばモンテカルロ法の場合、石差と勝率が探索結果として出るわけでしょ?
おいらの思いついたアイデアをそのまま垂れ流すと・・・
・相手の強さに応じて石差と勝率の優先度合を変化させていく
(これはもう誰かがやってそうだ・・・)
・勝ったときの石差の平均と負けた時の石差の平均を使って
PF(プロフィットファクターまたは調整プロフィットファクター)を求める
平均勝ち石数 / 平均負け石差 = 勝ちやすさ、みたいな概念だぁね
・石差を区切って、勝率のヒストグラムを作れるのでは?
大勝と辛勝の確率に大差が無いか、十分に大勝の確率が高いのなら
そちらを狙わせてみるとかかなー。
PFと勝率は似ているようで違う概念だから、2次元の分布図を描いてみると 2個以上のクラスターというかピークというか、まあ単純な分布ではないんだろうな、と 直感的に天啓を得る。 そうすると、勝率が多少低くてもPFが高い攻撃的な作戦でいこう!とか、 勝率最優先でPFなんか無視無視!とか、いろいろ人工知能的な幅が出てくると思うんだな。 とまあ、ちょっと別分野をかじった程度の人の戯言。
囲碁はもともと20年遅れてるから
最初は普通のソフトの評価値についての話だったのが、 モンテカルロや非MinMaxな探索が入り乱れて混ざってないか。 MinMaxなゲーム木探索の場合、評価値の値の大小とかは関係無く、 相手がどんな手を指してきても評価値が一番マシになる手を探して進めていく事になるが、 ヒカ碁のは、単に最善な手では勝てない条件だから、 相手のミスを誘発して差をひっくり返そうとする話。根本的に違う。 ボナンザVS勝負脳に「ボナンザは相手が嫌がる手を指せる」って話が書いてたが、 これはBonanza Methodが「有利になる手」「最善手」という指標ではなく、 「人間の指し手を真似る」という指標で評価関数をチューニングする手法だったが故だよな。 詰みまで読み切った後なら、無駄合い・無駄王手を考えなければ手数でいいんだろうけど。
完全読みの場合とそうでない場合の話も混ざってる気がするなあ
それは俺も思った
概要を知っただけで実際にプログラムを書いたことが無い奴にはよくある事。
論文・書籍・雑誌・web site を読んで、(簡単に)強いプログラムが作れそうな気がして 実際にプログラム書いてみると、なかなか強くならないのはよくある事。 って、おいらのことか orz
実際やってみると意外とドロドロした世界なんだよなw もっときれいにコーディングできるのかと。 (能力のある人ならきれいに書けるのだろうか?)
ランダム、モンテカルロ、ニューラルネットワーク、MINーMAX法、評価関数、パターン認識…… やり方はたくさんあるけど、そんなにドロドロしない書き方もあると思うよ。 個人的には、手法違いを6パターンくらい、評価関数違いを10パターンくらい作って、 総当たりで100戦くらいさせつつ徐々に進化させていくのがいいと思う。 特にランダムな指し手は役に立つよ。
73 :
デフォルトの名無しさん :2008/09/08(月) 21:41:38
自分が将棋をしていてよくやるのは、まずざっと浅く読んでみて、 数手以内にありうる形とありえない形を把握すること。 いくら打ち込みがあるとはいえ、現状からぶっとんだ変化は無いから。 もし大きな変化がありうるなら、記憶しておくけど。 次に、その総和を取って、全体の重要性を把握する。 たとえば棒銀なら、銀が取るか取られるかが一番重要だとわかるよね。だからそこだけものすごく深く読むわけ。 そしていよいよあと数手で銀の生死が決まるとわかったら、もう、そこに「届かない」駒の動きなんかは読まない。 それは「遅い」ってことだからね。読むだけ無意味。 だいたいこんな感じかな。
74 :
デフォルトの名無しさん :2008/09/08(月) 21:59:46
もっと簡単に言うと、ある盤面から、全ての駒が同時に、可能な全ての方向にN手動いたと 仮定して、領域の重なり具合を元にイベントの発生の有無をチェックするわけ。 もし重なってないなら読むだけ無駄。そんな枝は刈れ。 結局、ターンなんて概念は邪魔なだけなんだよね。どうせ何かしらのイベントが起こり得ると 思われるターンまでターンを進ませなきゃ、意味無いんだからさ。 んでイベントを検知したら、それが合法手のみから成り立つか、相手の自殺手など自分に 都合の良い仮定を含まないかを洗うわけ。 先にあり得る全ての重ね合わせをアバウトに書き出してから、あり得ない組み合わせを 潰していくのよ。これは手単位や時間方向の深い読みじゃなくて、 領域と領域の平坦な食い合いとして実装するの。深さは過ちの元だからね。
プログラミングもできない奴がなんでこの板に居るの?
プログラム書けるからヒント出してやってるんだろ……。 1手ごとに枝刈り、得点付けしてるから弱いんだよ。 まず最初にごっそり読んで(というか枝を作らない単なるパターンの重ね合わせなんだが)、 妄想みたいな手順も含めて何が可能で何が不可能なのかを調べる。 これで王手が可能か否かなどがある程度事前にわかる。 次に、評価が高いほうから(ほぼ確実に王に向かって特攻する手だろう)実現可能性を探っていく。 自駒を乗り越えるには一手以上必要だし、相手の駒の範囲に飛び込んだら、普通は取られる。 こうして有望だが無謀な手から刈り込んでゆく。そのうち有望で無謀ではない手が見つかる。
ありがたいヒントですね
>まず最初にごっそり読んで(というか枝を作らない単なるパターンの重ね合わせなんだが)、 量子コンピュータか?
プログラミングができる気にまでなってるのか
>>78 いや普通に9×九×駒種(×N手)の配列。
王が2手動くとでかい正方形になるでしょ。3手だとさらにでかくなるでしょ。
それを
1 1 1
1 1 1
1 1 1
みたいなパターンとして、盤面に重ねて、画像の濃度のように扱う。
するとN手以内にここに金は絶対に来ないとか、銀は来るかもしれないとかが分かる。
N手をN1手とN2手に分ければ、2枚以上の駒がある場所に揃うか揃わないかもわかる。
>76 既存のアルゴリズムを否定して、それより良いアルゴリズムがあるのだと主張するなら、 まずは自分で動くもの作ってみろ。 どうせ滅多な事で既存の手法を超えるものなんか出来んから。 とりあえずぱっと見、曖昧な条件が多すぎて上手く行かない (コード化出来なかったりコストがかさんだり)と思う。
>>80 その重ね合わせの情報からどの程度有益な情報を抽出できるか甚だ疑問だが。
重ね合わせのアイディア自体はたいしたことないが、
そこから本当に有益な情報を取り出すアイディアがあるならそれはすごいとおもう。
>80 例えば5手先ではいろんなところで 駒がぶつかる事が分かったとする。 で、それからどうするの? 改めて関係する駒だけ動かしてみて読むのか? 二度手間だし勝手読みになりそうな。 将棋は駒をぶつけりゃ良いってもんじゃないからな。
それに本当に良いアイデアだと思ったら、黙って実現した方が良いよ。 この世界は実現してみせて何ぼの世界だから。 実現しておいてから論文か何かで発表するのが正当な方法。 アイデアだけをいくら語っても全く尊敬も尊重もされない。
うん。
>>72 >あると思うよ
思ってるだけで、断言できないんですね。
ましてや、ドロドロしないように実際に書いた経験は無いわけですね。
素人の妄想っぽくていいですね
確かに将棋PG始めた日曜PGですが、普通に駒と盤の動きを数字で表すだけでも 大変です。やるのと組むのでは全然違う。
またヒント出すぜ? ほら、手筋ってあるじゃん。 歩で釣って桂馬打ちとかさ。これは関数言語での制約プログラミングに似ているんだな。 普通の人間は、歩で釣る前から、桂馬を打ちたいマスには駒利きなんか無いのが わかっているわけだ(話が面倒になるから飛び道具は省く)。 a) まず、盤面の配置があり、 b) そこに桂馬を使える形があり、 c) 事実上駒利きが無いことが分かり、 d) 桂馬を打ったときの駒得があるので、 e) マスにいる敵駒をどかすための手筋が有効になるわけ。 (他の手筋と競合しない限り、この種の手筋はいくらでも長くなり得るため、 minーmax的な盤面単位の再帰には向かない。駒利き単位での再帰が必要)
人間の読みの各部分は、このように全て結末ありきの詰め将棋もどきなんだよ。 敵の守り(敵駒自信への利きの総和)が薄いから、金と銀があれば詰められる? →じゃあ金と銀取る方法を探そう→駒利きをぶつけたら右辺が有利 →右辺を深読み→あの歩と銀が邪魔だ→あれをどかすためには(以下再帰 他の駒は、この一連の推理に関与していれば考慮されるけど、そうでないなら関係ない。 目的達成に必要な駒の利きがあり、それを実現するための捨て駒や事前準備があり、 それゆえに手順は長く伸び、序盤の陣組み中の歩突きにまで意味が出てくる。 しかし始まりは単純で、単にある駒を取るための手段にそれが含まれていたということだ。
懐かしいアイディアだな
妄想乙
>minーmax的な盤面単位の再帰には向かない。駒利き単位での再帰が必要 minmaxを全く理解してない無い事が分かる
>93 いや、>89の言ってる意味は何となく分かるんだよ。 min-maxによる盤面全体の評価関数値が最大になるものを 探す手法ではなく、特定の駒の利きあるいはあるマス目に 対する利きに注目して手を探索したいと。 しかし有望そうな箇所を見つける手法がまったく 言及されてないのがなんともハヤ。 人間のように盤面を見てパッと「こういう事ができそうだ」と 思いつかせるとかソフトに目的意識を持たせる事ができれば 簡単なのかも知れないけどね。
要するに盤面の局所的な特徴を どうやって人間みたいにパターン認識し、 有望な手筋を見つけだして行くのか? 「言うは易く行うは難し」の典型。
ヒント:モンテカルロ法で生成した数万局面の総和
97 :
デフォルトの名無しさん :2008/09/10(水) 18:40:41
同種の駒であっても区別できるよう、駒にはユニークなラベルをつけておく。 打ち込みは種類別に何回目なのかわかるように別のラベルをふって管理する。 モンテカルロ法で詰み状態の盤面に達したら、そこまでに動かした駒をラベル別にカウント。 これを数万回繰り返し、動かすと確率的に詰みやすい駒、すなわち候補駒を求める。 あとは普通に、候補駒を優先して深く読むだけ。 モンテカルロする際の評価関数は賢さより速さが重要で、むしろ最低限の常識的な動きに 偏りをつけるのを除けば、完全にランダムであったほうがよい。
98 :
デフォルトの名無しさん :2008/09/10(水) 19:05:56
モンテカルロ法を使うための前提は、速度。 先読みは一切せず、経験則を元に静的評価をざっくりアバウトに作り込む。 基本はランダムでなければならないので、「ほぼ禁じ手」「やるのは馬鹿だけ」「手数の無駄」などの手を あまり指さないようにすることが重要になる。たとえば、駒に対する利きの変化も何も無く、 ただ相手に喰われるだけの動きはちょっとだけ指しにくくしてもいいだろう。 (歩の突き捨てや、敵の歩頭への打ち込みはminmaxでも探索の邪魔になる) 逆に、一番良い手はこれだ!というのはあまり作り込まないほうがよい。 将棋では、明らかな駒得の手が、のちのち負けの理由になっていることが多いためだ。 わざわざ罠にはまるように性格付けする必要は無い。(初心者AIを作りたいなら別) たぶんそんなに数を読まないうちに、候補駒は絞れると思う。 局面によっては、奇跡が起きないと玉に辿り着けない駒というのもあるからだ。 たとえば初期盤面の香車。こいつで玉を殺すのはかなり大変だと思う。
ついでに書いておくと、各駒のラベルごとに集計しているわけだから、 「相手の駒aを取った(自分の持ち駒にした or さらに後で打ち込んで利用した)場合の 勝率」みたいな値もすぐに出せるはず。条件付き確率だね。 また、勝ちパターンに共通する動きを抽出すれば、使えそうな手筋の特定もできるかな。 あとはこれらを考慮して読んでいく。
うだうだ言ってねーで作ってみろよド素人が
自分で言った事が何か重要なように思えて来た。 「盤面の局所的な特徴を認識して、 それに対して有望そうな手に絞って探索する」 これはもしかすると…ムム。
>>101 理屈はあってるとは思うんだが、「局所的な特徴」「有望そうな手」
これをプログラム言語まで落とすのがどれだけ難しいと思ってるんだぜ?
>102 いや、ここから先はしゃべるつもり無い。 そこが重要なんで。
プッ
はいはい激指の実現確率実現確率。
せめてコンピュータ将棋選手権決勝8チームに入るくらいの実績を上げないとね
>106 初出場でいきなりそこまでは望まない。 目標はまあ、一次予選突破くらいか。
まんま前向き枝狩りの概念だろ
>>75 プログラミングできる馬鹿は掃いて捨てるほど居るが、
発想をできる天才はごく少数しか居ないため。
おまえは死んでも支障ないから死んで良し!
他人の発想を理解できずに一人相撲する間抜けなんですね、判ります。
自分を「発想をできる天才」と勘違いしている馬鹿は掃いて捨てるほど居るが、 コンピュータ将棋選手権で優勝できるほどの実績を残せる本当の天才はごく少数しか居ない せめて決勝リーグに残れるくらいの実績をあげてからにしようね
誰が天才だとか天才じゃないとかクダラネ。 そんなものは後世の人間が評価する事だろ。
114 :
デフォルトの名無しさん :2008/09/13(土) 11:56:59
115 :
デフォルトの名無しさん :2008/09/14(日) 08:48:00
ルークよ、ハッシュを使うのだ
ハッシュテーブルでどれぐらい効率化できるの? 具体的な数字ある?
以前コンピュータ将棋の本で具体的な数字を見た覚えがあるけど忘れた
118 :
デフォルトの名無しさん :2008/09/14(日) 12:39:23
使わなければ強いのは作れない。
>80の手法は既出。漏れは既にやってる。
>119 おお、どんな風に使っているのかできたら教えてくれ。 あるいは既に何かの文献に出ている?
121 :
デフォルトの名無しさん :2008/09/17(水) 18:41:42
>>122 ありがと
日本語の解説はないのね・・・
がんがって読みます。
まだあったんだこのスレ… まだ、あいついるの?
>>123 駒を取る手の仮評価として取り返しを含めた駒の損得を計算すること。
▲同〜、△同〜、▲同〜、△同〜、と続く限り駒を取り合ってみて
駒得なら優先的に、駒損なら後回しに、探索させる。
>>114 遅ればせながらハッシュを実装して、初期状態から3手先、4手先局面の重複数を数えてみた
ユニーク局面数/総局面数:
3手先 13,530/25,440 (53.184%)
4手先 203,194/718,565(28.2777%)
3手先では約半分が重複局面、4手先では70%以上が重複局面だった
今人工知能採用して効率的なアルゴリズム(関数)などをコンピューター自らに考えて生成させている 人間がコツコツ局面に沿った振る舞いを書き込む条件反射のAIより強くなりそうな感じがする 今現在はBonanzaに勝つ状態
もうちょっと説明すると 局面を片っ端から覚えていくわけではないのでデータ容量は少なくて済みます 簡単に言えば、考え方を覚えさせていくわけです なので人工知能の特長とも言えるけれども、局面に対する理解力は曖昧です その曖昧さが失敗する場合もあれば、ひらめきに転ずる場合もあります 強い相手と対戦すれば、相手の思考の流れを取得し、データから類似する 考え方があるかどうか検索します。
素人っぽい書き込み乙
と言うか釣り乙 >今現在はBonanzaに勝つ状態
必死で考えて書いた文章がこの程度かと思うと可哀そうに思えてくるよ
ボナンザメッソドを使わずにボナンザ以上に強くできたら どれほど画期的な事なのか分かっていないと思われ。
バカにわかりやすく言ったつもりだけど理解できなかったみたいだな
そうそう、大層な事言うのなら 証拠を見せてくれないと話にならない。 ボナンザ側から見た棋譜とか そこをあなたのソフトから見た読み筋とか。
class Habu{ } ここまで書いた。
セミコロンが抜けている デフォルトコンストラクタが定義されていない 代入演算子が定義されていない
そこまで書いてない だから「ここまで書いた。」
Syntax Error : ここまで書いた。
main(){ int Moriuchi = HABU; } ここまで書きました。
ボナンザはソースコード少ないのに強いよなぁ それに比べて他の糞フリーソフトはソース長ったらしいのにバカだしw 低学歴プログラマ丸出しw
int 型を使っているけど意味的にはポインタだろう
え?
picture?
const int KON_YASUJIRO = 1; const int KIMURA_YOSHIO = 2; ... const int HABU_YOSHIHARU = 175; ... const int MORUICHI_TOSHIYUKI = 183; ...
>143 ボナンザのソースコードは公開されてないだろ? もしかしてsikou.c(sikou.dllのソース)を思考ルーチン本体だと思った? 私も最初、sikou.cを本体のソースコードかと勘違いして一生懸命読んで みて気がついたよw。実はCsa.exeから呼び出されるインターフェース用 dllでそれがBonanza.exe(思考ルーチン本体)を呼び出してるだけだって。 それにボナンザは例え、実際に動作するexeのソースが小さいとしても 全体として小さいとは限らんからなぁ。学習用ルーチンがその肝だが 別ソースかも知れないし、サイズなんかさっぱり分からないし。 それともただの釣りか?
いや、ただの馬鹿
>143はある意味間違いじゃない 前向き枝狩りソフトは、大量のヒューリスティックを実装しているので ソースがかなり長い (数千のIF文が並ぶソフトもあるらしい) 全幅探索は探索して自分で判断するからソースはシンプルで短い
いや、ただの馬鹿
ステップ数はどれぐらいの規模なんだろ ボナとか激指とか
ヒント
>>143 はこのスレに常駐してボナンザの評価を非常に気にしてます&断言
156 :
デフォルトの名無しさん :2008/10/29(水) 20:06:32
age
ボナンザの解説を読んでいたら、評価因子として「王周囲25枡の利きの配置」があげられていたのですが、 これは具体的にはどういう評価を行っていたのかよくわかりません。 双方の利きがあるかないかだけでも1枡3値だし、壁を入れると4値になります。そうなると全部で50ビットにもなり、 その値全部に対してテーブルを持つのは非現実的だし、ボナンザの説明には「パラメータの個数は約1万個」とあります。 どなたがわかる人いたら教えてください。
158 :
デフォルトの名無しさん :2008/10/31(金) 04:50:46
今日から、作り始めるぜ。 共通して使える公開ルーチンを作る
>>157 正直、それだけじゃ全然わかんね。ただの妄想だと思って聞いてみてくれ。
たぶん、前の所に書かれてる「王の周囲25マスの利き」については
単純に王が移動できない枡(移動したら取られるのも含め)のことだけじゃないかな?
で、下の方の「パラメータの個数は約一万個」ってのは、
自玉と相手の王との距離とか、手駒の負の数や飛車の利き枡数・角と飛車の距離とか
果ては、王が動いた回数とか
そういった細々したパラメータが約一万個ほどあるって話だと思う。
パラメータが一万個とかww 正気の沙汰とは思えないwwww
>157 「王周囲25枡の利きの配置」 自分もよくわからん 利きありなし、手番、壁を2bitで表現したとして たしかに50bitいる。圧縮してるのかもしれん パラメーター数1万個は、よく考えると 特徴の種類の数なのか、それぞれの要素の数なのか謎 と金、成桂とかをまとめて、駒を10種として 10x2x81x81=13万 王と駒の2駒配置だけでも要素数が13万行くので、とても1万には収まらないので 特徴の種類が1万個って話かも試練
>>161 ・玉とその他の駒の相対位置
に関しては、対象形を考えれば、玉の位置は 5*9 = 45
もうひとつの駒は 玉の位置以外の80箇所だけど、テーブルを引くことを考えれば81要素必要
駒の種類は 歩香桂銀飛角竜馬、金とその他の成り駒は同種とすれば9種類
なので 45*81*9 = 32,805
うーん、やっぱり特徴の種類の数が1万なのかぁ・・・
特徴の種類の数が一万だとすると、それはそれで評価関数の軽量化が難しそうだ
164 :
デフォルトの名無しさん :2008/11/17(月) 10:58:33
証明駒って、詰みの局面の持ち駒を0にして上位の局面に戻せば良いんですか? そしたら後手が、持ち駒を多く使わせるような局面へ誘導したら詰まなくなると思うのですが。
165 :
デフォルトの名無しさん :2008/11/17(月) 11:01:58
最も多く駒を使わせる最終局面を特定しないと、最小の証明駒は求まりませんか?
166 :
デフォルトの名無しさん :2008/11/17(月) 15:00:03
評価する数を増やしても無駄な事はあきらか。 多くの局面で影響を与える項目が100ほどでそれらで全体の95%の評価を表せているなら 残りの数万個の項目は計算するだけ遅くなる。
(・∀・)クスクス
168 :
デフォルトの名無しさん :2008/11/17(月) 15:22:44
なに? ほとんど影響のない項目まで計算するのは無駄だろ。 主要な項目さえ抽出して使えば十分だ。
んで、主要な項目って何よ?
170 :
デフォルトの名無しさん :2008/11/17(月) 17:58:05
たとえば、a+b+c+・・・・=1をウェイトとしてax+by+cz+・・・・が評価関数とすると ウェイトの小さいものは無視するって事だ
アタマワルイヤツバッカリ
頭悪い奴ばっかり…とは思わないけど、 お互いにお互いの想定とかが大きく食い違ってそうで、話にならないな。 とりあえず、166についてはなんか問題を勘違いしてそうな気がする。 将棋のばあいは、どうしても評価関数に目が行きがちだけど、 結局は、局面・局面の優劣や勢いとかじゃなくて、”最終的に詰むか詰まざるか?”のゲームだから 主要要素がどんだけ占める%高くても、正しく評価しきれるものじゃない。 特に、読みと言う作業が累積されていくので余計に予測が外れていくだろう さらに、もう一個言うならば将棋の主要要素なんて多めに見積もっても 40の駒の位置や利き程度 (ざっとみて、350項目ぐらいか) それ以外は、本質的に計算速度を・計算精度を上げるために利用してるようなモノ。
一手を一万パラメータで評価したときに一万回のループが必要だよね 三手読んだらどれだけ爆発すんの
アタマワルイヤツバッカリ
非常にたくさんのパラメータを候補として用意しておいて、学習が進むにつれ 主要なパラメータのみに絞り込んでいくと言う手法は有り得るだろうね。 ニューラルネットでもニューロンを必要に応じて増やしたり減らしたり する手法があるし。 統計学習の理論的支えが無いと訳が分からない事になりそうだが。
パラメータが多すぎる事の問題点は学習および対局の実行時に 時間が余分に掛かると言う事もあるが、本質的に問題なのは やはりオーバーフィッティング(過学習)だろうな。 学習した局面「だけ」正しい答えを出したのでは役に立たない。
まぁブログから影響されている話題だと思うけど、その試みには直感的に可能性を感じる。
178 :
デフォルトの名無しさん :2008/11/20(木) 08:16:12
>>166 この書き方だと主成分分析みたいなのを連想するけど
将棋の評価の成分が
駒割、大駒の自由度、王の脅威
としても、その割合が、局面で変化する
進行度を求めるにしても、そもそも正しい値を計算する方法が無い
推定するしかない
Bonanzaは進行度をつかってない
>>162 棋譜中に出現しないパターンまで無理に補完しない方針なんじゃないのと予想。
たとえば表が3分の1しか埋まっていなくてハッシュで引いてるとすれば何もおかしいことはない。
181 :
デフォルトの名無しさん :2008/12/25(木) 10:23:54
hosyu
誰の名言か忘れたけど
最強のチェスプログラムは人工的に作れるんだと
でも将棋は無理なんだと
少なくとも上級者には勝てないんだと
なんでかというと
持ち駒を再び盤上に出せるのならば
無限の手数を考えなきゃならないからなんだと
というわけでやめた方がいいぞ^^
>>1-1000
>182 ウーム、何と言ったら良いか良く分からんが 難しいからこそ挑戦する価値があるのだよ、君。
>>182 無限にはならないけどね
チェスより多いだけで
チェスの平均合法着手数(b)は30程度、将棋は80程度 探索時間はおおむね N^(b/2) に比例するので、たいした違いではない (Nは探索深さ)
15乗と40乗で大した違いじゃないのか。きっとNは1なんだろうな。
それでもNが5で千倍になるね……
b^(N/2)だろ ふざけてるのか知らんけど
なんじゃそりゃ もう一度考えてごらん
それはベストケース
普通の実装をすれば大抵ベストケースを更に下回る
iterative deepening
http://headlines.yahoo.co.jp/hl?a=20081231-00000000-isd-game アルゼ傘下のセタは、12月24日開催の取締役会にて、会社の解散と清算について決議し、
親会社であるアルゼも本件について承認する旨の決議を行ったことを明らかにしました。
かつては『スーパーリアル麻雀』や『森田将棋』といったゲームで知られた老舗メーカーですが、
約25年の歴史に幕を閉じることになります。
セタは1985年に設立。
処女作として同年にファミコン向け『本将棋内藤九段将棋秘伝』をリリースしたのを皮切りに
87年には人気シリーズとなった『スーパーリアル麻雀』シリーズの第一作目を発売しました。
技術力のあるメーカーとして知られ、プレイステーションやNINTENDO64で積極的に展開、
ネットワークで通信対局ができる『森田将棋64』(N64)やN64互換のアーケード基盤「Aleck64」
などを発売しました。
1999年にアルゼの資本参加を受けてからは軸足をゲームソフト開発から遊技機向けの機器製造に移し、
ホール向けのカードシステムや紙幣読み取り機などを販売していました。
ゲームでは2004年6月に任天堂より発売されたゲームキューブ向け『レジェンドオブゴルファー』が
最後の作品となりました。
解散の理由は「経済情勢の悪化により独自での事業継続が困難になったため」としています。
2月9日の臨時株主総会で正式に解散が決議される見込みです。
近年はゲーム事業を行っていなかったとはいえ、老舗メーカーの解散に寂しい思いをされる方も
多いのではないでしょうか?
>185 チェスより将棋の探索が厄介なのは合法な着手数の多さよりむしろ 取った駒を打てる事により終盤になってもなかなか決着が着かずに 一局がやたら長くなる可能性があるからじゃなかろうかと最近思う。
着手数の多さも駒を好きなところに打ち放題ってのに起因してる気がする
198 :
デフォルトの名無しさん :2009/01/03(土) 03:07:58
すべての手を考えるプログラムを前提にすると、 一つの持ち駒を持った場合、それが歩以外であれば、 空いているところ全てに打てることになるから、 その中から最もいい場所に打つようにプログラムしなければならない。 もう一つ持ち駒が増えると、単純計算でその倍の手数に加えて、 増えた持ち駒が置いてあった場所が空いたところに打てるかどうかの 検討もさせなければならない。 そうやって持ち駒が増えるたびに倍、倍、と、考える手数が増えていく。 さらに、複雑になった盤面が一つ動くごとに、 その持ち駒の使い方が全く違ってくる。 持ち駒以外にもチェスと異なる部分がある。 相手陣内に入ると持ち駒を成らせるかどうかの判断も加わる。 そうすると手数は無限に増えていく。
まぁ前提が無意味だから何の意味もない考察だよな
>>199 逆に、どうやって考える手を削るのか判断させんのか?
201 :
200 :2009/01/03(土) 04:01:20
眠くて文章が変になった。
>>199 考える手を減らすのにもプログラムがいる。
そもそも削る必要が無いだろう。ひたすらに考えさせればいい。 もちろん、削ることを考える人がいてもいいが、 そういうのは後から組み込めばいいだけで、 全体の流れで考えたときには、ひたすらに読む手を増やしていけばいい。 その意味ではソフトウェアよりもハードウェアに頼る。
>>202 削らないでひたすら読ませてると
5手ぐらいしか読めないよ。
同じハードでうまく削って20手読まれたら勝てない。
将来ハードの性能が上がっても、削ってる奴はもっと先を読むので
永遠に勝てない
20手読ませるとすると、20手目の目的が何なのか設定しなきゃならん。 王までたどり着かないということはないと思うが。
なんでそんな基本的な話延々としてんの?w
作った事が無い奴だからだよ
新年早々飛ばしてますね
>203 5手ぐらいではないぞ。それに「まったく削らない」ではない。 削る部分に関しては既存で、他の部分により力を入れたらと言っている。 暇があるなら削ることを考えてもいいが、 最初から考えるほど重要なことではない。 あと、削る奴は、読む手数が多くなると同時に見落としのリスクも増え、 また、形勢判断にも制限がかかる。それらができればあんたのいうとおりだが、 それができるとなれば、それは人工知能の領域に近い。 現時点のプログラミングではやや持て余す方法だ。
つまんにゃいよ
>>208 それだと速くするしかないね。ある意味当たり前の話。
リスクを増やさずに削る方法を考えるという方向しかないんでは?
間違った探索延長をしない
間違った探索削減をしても気がつくようにする
本当に必要なときに探索延長する
枝刈りぐらいは常識にしる!
前向き枝刈りと後ろ向き枝刈りくらいは知っておいて欲しいね。
なんでそんな基本的な話延々としてんの?w
もっとフルーティで前向きな話をしようぜ
枝狩りに意味が無いってことは棚瀬さんが実験で示してる 重要なのは探索深さ削減だよ (延長と削減は相対的な差しかないので同じ) 横型探索すべきところを縦型探索で代用しているんだから、 いかに近似度を上げていくかだよ。 dfpnが成したように
16bit時代に強い将棋作った森田氏が一番すごくね
凄いね、体型と態度が。
turboPascalで作ったのかな
アセンブラ
>>216 16bit時代にBonanzaがあったら森田将棋より強いよ
>220 16ビット時代ではメモリに入りきらないよ。 ボナンザがいくらコンパクトとは言っても 本体のサイズが数十メガバイトはある。 仮想記憶で無理矢理動かしたら動作が 無茶苦茶に遅くなるだろう。
あの頃は全幅探索だと 3,4手先まで読むのがやっとだった それにボナンザの評価関数パラメータ学習は計算機で3ヶ月かかったそうだが、 100倍の時間がかかるとすると25年もかかる計算になる。
100台並列処理するだけじゃん
>223 当時のコンピュータを100台並べると幾らかかるか? 1台30万円として3000万円。(当時のコンピュータは高かった) 物価のレートも違うから今の価値に換算すると 5000万円くらいにはなるか? にも関わらずインターネット機能どころか LAN(イーサネット)すら付いてなかった。 当時、普通に通信に使ってたインターフェースは RS-232-Cかセントロニクス・パラレルかGP-IBくらい。 イーサネットはゼロックス製のAltoなどの一台1000万円はする 高級ワークステーションが持つのみだった。 たくさんのPCをつないでコミュニケーションする方法は モデム経由でサーバーに繋いでパソコン通信するくらい。 データの持ち運びは2MBも入らないフロッピーディスク経由が基本。 この状況で100台のパソコンをどうやってひとつの目的に利用するか? 大学や企業の研究所でもほとんど不可能な話だった。 当時のパソコンは基本的にスタンド・アローンな存在だったんだよ。 そう言えばMacintoshだけはAppleTalkとか言う 今から思えば超スローなLANを持っていたな。
いくら仮定の話をしたところで 当時作れなかったお前らの負けは変わらない
メインメモリが最大数メガバイト程度、 ハードディスク容量も最大数十メガバイト程度で うまくジョブデータを各PCに割り振れるかどうかは なお、一層難しい問題であっただろう。
>225 そりゃそうだ。 あの頃の森田さんには誰もかなわなかった。 なにしろアセンブラでガジガジに書いて ハードウェアの性能を極限まで引き出したのだから。 あの時、あれがあったならなんて仮定の話は無意味だ。
231 :
デフォルトの名無しさん :2009/02/18(水) 15:01:06
>231 この記事を書いた人、ソフト開発関係者のブログは元より 2chのコンピュータ将棋関連スレも読んでるようだなw。 >中には「Bonanzaクローンが蔓延するのではないか」と危惧する声もある。
>「Bonanzaクローンが蔓延するのではないか」 アホすぎ
>>234 アホが大した努力もなしに作ったクローンが蔓延すると
トーナメントでそれ以下のものが締め出されちゃうわけで
そうなったら問題かもな。そこまでの恥知らずはいないと思いたいが。
ソース参考にして全体としての底上げにはつながりそう。
うん
こんなアホアホ言ってるスレ初めてw。
初めてのアホ きっとアホ アホアホオールナイロン
よーし この休みでボナのソース読みまくるぞー
246 :
デフォルトの名無しさん :2009/03/12(木) 02:10:16
>>245 オヤスミ…
<⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
評価関数改良したら全体で5〜10%くらい速くなった
248 :
デフォルトの名無しさん :2009/04/08(水) 12:14:34
いまから将棋プログラムをつくるので書き込んでみた
一ヶ月で挫折したおいらが来ましたよ
252 :
デフォルトの名無しさん :2009/04/10(金) 13:00:04
羽生プログラム
253 :
248 :2009/04/11(土) 15:03:56
まずは詰将棋から。 あたり(王手)を生成するコストの低い方法はなんだろう。 自分で考えたのは、たとえば桂馬なら、 王手が出来る位置から、先に一つ先の位置に駒があることを調べる方法。
254 :
デフォルトの名無しさん :2009/04/11(土) 23:08:56
>>253 一手詰ならそれでいんじゃね。
あとはミニマックス法で。
だめだこりゃ
スルーって素敵だよね
258 :
デフォルトの名無しさん :2009/04/16(木) 13:16:10
マスにどの駒から効きがあるが記録しておくには、bitがいいですかcharがいいですか。 速度はcharが上と思いますが、bitだと同一種類の駒の効きがあるかが一度に判別できます。
両方実装して、カンタンに差し替えられるようにしといて、両方パフォーマンス測定しろ。
260 :
デフォルトの名無しさん :2009/04/16(木) 19:44:19
わかりました
速度は実測が基本
PS3のCellに特化した将棋ソフトさっさと作れよ。
263 :
デフォルトの名無しさん :2009/04/17(金) 12:53:52
PS3のスペック CPU 浮動小数点演算性能 : 218 GFLOPS GPU 浮動小数点演算性能 : 1800 GFLOPS GPUを計算に使えば格段に良くなると思う。
264 :
デフォルトの名無しさん :2009/04/17(金) 12:56:17
GPUなんか将棋ソフトには使えない
どんなプログラムを考えてるか知らないけど、 むしろGPUの方が、論理的には即したモノが作れるだろう。 ただ、ps3はGPUは一般向けには解放されてないし、 GPGPU向けなチップ・仕様かどうかすらもわからんが。
PS3はメモリが少ない分、置換表のサイズが限られて無駄な探索が増えてしまうんじゃないかな。
>263-264 どうやって浮動小数点演算性能を将棋プログラムに 「有効に」利用するのか教えてくれ。 そしたらPS3やGPUを使った強い将棋ソフトを作ってやるよ。
271 :
デフォルトの名無しさん :2009/04/30(木) 18:44:31
保守
今も速度を要する部分はアセンブラで書いてみては
273 :
デフォルトの名無しさん :2009/05/04(月) 12:16:52
証明数の2重カウントは、完全に対策することは困難と思います。 ルート近くの上位の局面だけ厳密に調べておいて、 2重カウントが起こる手順を削除してしまうのがいいと思いますね。 下位で対策しても、評価値1が2や3になっても大差はないですが 上位で10万が20万や30万になったらえらく違うので。
A〜は局面を表すとします。 Aは後手の局面だとして A-B-C-D A-E-F-D という手順で他の分岐がなければ、Eへ進める手を削除してしまうってことです。 もしA-B-C-Gという手順があれば削除すると、詰みを間違えるので かなり限定的な場合にしか適用できないのですが。
276 :
274 :2009/05/23(土) 01:29:22
指し手の手順 (形) を考慮して評価値が増えにくい手を刈るので『盆栽型枝刈り』 と命名した。 一般的な枝刈りは手順は考慮しないため。
277 :
デフォルトの名無しさん :2009/05/23(土) 12:03:04
コンピュータ将棋アルゴリズムで 乱数よりももっといいハッシュの値の決め方が あると書いてあったのですがどんな方法があるのでしょうか?
ハッシュがかぶりにくい乱数をあらかじめ生成しておく。
279 :
デフォルトの名無しさん :2009/05/23(土) 23:47:17
>278 その方法が分かりません。
指し手、生成する局面に依存するから、 乱数を生成するごとに記録しておき衝突回数を計測する。 一般的な方法で数値を決定することは無理と思う。
281 :
デフォルトの名無しさん :2009/05/24(日) 14:32:34
>280 ほぼ手作業に近いのですね。 一般的な決まりがあるのかと思った。
>>281 各自のプログラムに依存するからね。
乱数がすべて0とかだったら重複しまくるから、
一般論として重複しにくいだろう数値を選び出すことは出来るだろうが
あくまで予測に過ぎない。 実験するのが一番。
283 :
デフォルトの名無しさん :2009/05/25(月) 14:26:23
>282 少々スピードが遅くなってもいいからXORよりも確実な方法が ないのでしょうか。
局面を完全に表せるbit数を使う。 81 + 5*40 = 281 bit のハッシュなら完璧。
512bit CPUの登場が望まれる
286 :
デフォルトの名無しさん :2009/05/25(月) 16:19:10
>284 すいません。5の意味は何ですか? >285 その前に誰かがプロを破っていたりして。
281bit 将棋 でググれ
偉い人 USB接続、将棋盤や囲碁盤をDS機能で出してもらえないだろうか? 駒をIC読み取りでって、造らないってことは儲からないからか? 俺がもう一回り若ければ自分で・・
289 :
デフォルトの名無しさん :2009/05/25(月) 16:51:51
>287 クグルとここの過去レス1つだけというのが驚きですね。 盤上の駒の有無:81ビット 盤上の駒情報:5ビット×40(種類3ビット、成り1ビット、先手後手1ビット) で全部盤上にあるときは281ビットで表現できる 持ち駒のことは盤上の駒が減っているから別に考えなくてもいいかな?
290 :
デフォルトの名無しさん :2009/05/25(月) 16:56:00
盤上で成れない位置の駒とかがあったり金や王のように なる必要のない駒があったりするから局面としては 2~281より少なくなりそうな気もしますね。
291 :
デフォルトの名無しさん :2009/05/25(月) 17:08:50
>290 2^281です。すみません。
> 持ち駒のこと 盤面にない分の空きが、駒を定める所へ出来るから そこに先手の駒だけ記録したらいい。 空だったら存在しない番号で埋める。
全譜君やって吹いた
294 :
デフォルトの名無しさん :2009/05/25(月) 22:01:29
松原 仁さんが10^220が全局面数みたいなことを 言っているけど281*log10の2をやっても10^84程度 にしかならないけどどういうことなんでしょう?
>>294 確実に10^220は間違えている。
多くて、10^85
全棋譜なんて考えても意味ないよ。 重要なのは全局面。
いやどっちも重要だよ。
全棋譜って変な言い方だな。 ゲーム木の探索時に現れる全局面数だよな。 おおよそ、重複を許してだが。
初手から各局面で候補手を平均80として、110手くらいで終局すると、それくらい。 てっことで、minmaxで探索したらそれくらい調べないと読みきれないねっていう数 手順前後とかで同一局面になるのも含めて全部の枝を展開して、ね。 単純に合法局面の数を数えるなら、10^80以下だよ
301 :
デフォルトの名無しさん :2009/05/26(火) 09:27:01
なるほど、重複を許していれば10^220位なのですね。
人間だと、無駄な駒捨ては意味ないとすぐにわかるのだが、 連続して詰めろを逃れられると、 残り手数が無くなり、詰めろを逃れられると勘違いする。
誤爆 もうひとつのすれだった
俺も将棋プログラミング始めた。取り敢えず手動で指せる所までがんばる。 駒の表示・・・おk 駒取り・・・おk 持ち駒の保存・・・格納方法を検討中orz やはりcharポインタは苦手
305 :
デフォルトの名無しさん :2009/05/30(土) 14:08:17
がんがれ。 私はbonanzaかうさぴょんを改造する方向で進める。
これ以上強さはいらないんで思考過程をEVA風に表示する機能をつけてください。
>304 ガンガレ、ガンガレ! 俺も取りあえず作りかけの奴を完成させなきゃ。
308 :
デフォルトの名無しさん :2009/05/30(土) 21:01:50
ちょっと聞きたいんだけど500GBハードディスクに対局した棋譜データを詰め込んで行って、 それを元に戦う方式を考えているんだがありだろうか? 仮にこれで既存のソフトの強さを平均的に越えてしまったとして、それは他のソフトに比べて公平と言えるのだろうか?
いくらつんでもその場でソフトが生成する局面には追いつくはずがない。 それに最善であることをどう判別するんだ
最終的には全局面の最善手を求めてしまおうって事でしょ 無理
勝手に極論に持って行かれて否定されてちゃ世話ねーな
>>309 それを解決する手段の一つとして、その手を指して終局した時の勝率をそれぞれの手に記録して行こうと思ってる。
極端に言うなら初めは50%の手で勝ったら+%、負けたら-%していくということ。
まあこれはあくまで最善の手を選ぶためのひとつの手段で、判断基準は他にも考えている。
この手の質問をすると
>>309 のような答えが返って来ることが多いけど、
仮に膨大なデータを元に局面に追いつきながら最善手を探しだせるプログラムを作れたとしたら、それは他のソフトに比べて公平なのだろうか?
既に自力で将棋ソフトを作った上で言っているのか ただ思いつきレベルの話をしているのか。 それが問題だ。
今作ってる最中。 駒を動かすだけのプログラムなら簡単に作れるけど、最善手を選ばせるための下準備に手間取ってる。 作って貰おうとか都合のいいことは考えて無い。 自分の進行具合とは別にしてソフトのあり方としてどうなのかを聞きたかっただけ。
強化学習とか信頼度割り当てでググると幸せになれそう
>>315 すでに約7万局についてのデーターベースを持ったしシステムを作り上げている。
何か質問ある?
やってみてください。 答えはそれで出ます。
たとえばボナンザで一手1秒で1億局生成したとしても、 その場のその局面で5分考えた方が強いだろ。 網羅は出来ないしヒットしても大して強いはずがない。
>308 端的に言って既存の棋譜では全然データ量が足りないと思う。 それは自己対戦で新たな棋譜を作り出したって変わらない。 一局の将棋には新しい局面が頻繁に現れる。 それに対しても過去の棋譜のデータを適用して 答えを出そうとすれば(汎化学習)それはもはや ボナンザメソッドに限らないが機械学習に他ならない。 あなたの考え方は個人的には強化学習に近いと思う。
一局の将棋に現れうる(可能性としての)局面数は (過去から未来の)対局において実際に現れる局面数より それこそ桁違いに大きいと言う事実をまず理解して欲しい。 対局というのは人間対人間に限らず、コンピュータ対コンピュータ、 コンピュータソフトの自己対戦などすべてひっくるめての話ね。
322 :
◆xegeq/it5Y :2009/05/31(日) 03:43:00
何人か勘違いしてるけど別に完全網羅とか必勝法とか考えているわけじゃない。 一局に現れる局数が桁違いに大きいのは理解してる。単純計算したって500GB程度じゃ全然足りない。まったく足りない。 ただ少しの容量にどれだけデータを小さくできるかの画期的(?)な方法を思い付いた。 もちろんただ小さく収めるだけじゃなく、データをいかに早く取り出せるか考えた上での方式だけど、これがうまく行けば道が開けるかもと期待はしてる。 で、誰も答えてくれないから質問に戻るけど、棋譜データをできるだけ記憶させて最善手を取り出せればそこそこ行けるんじゃないかって一度は考えることだと思う。 仮にその方法が確立したとして、明らかなデータ量を後ろ盾に既存のソフトと戦うのは有りなのだろうか? 例えばコンピュータ将棋の大会に出るのは大丈夫なのか。 数100MB対500GBって普通に考えたらアウトっぽくない?
そういう議論はまずぶっちぎりで優勝してからすればいいとおもうよ
324 :
◆xegeq/it5Y :2009/05/31(日) 03:49:47
>>317 そのデータを反映させたソフトは作らないの?作れないの?発表してないだけ?
作ったけど欠陥品だったの?
あと貴方が言うシステムの定義とは?
70000局を貴方が考える方式でハードディスクに詰め込んだ時の使用容量は何バイトくらいになりますか?
大会のレギュレーションに抵触しなけりゃいいに決まってる そもそもそんなのがある大会は知らん
散々大騒ぎしておいて結局一行もコード書かずにフェードアウトするに一票。
>>324 317だが、君の文を読む限り、きっと言っても理解しないだろうからこの言葉贈ろう。
318の文だ。
「やってみてください。 答えはそれで出ます。 」
すっこんでろゴミ
みえみえの反応をしてきたか? 理解しないのは良いが。
とにかく作れ! ゴミ以下の
>>324
330 :
317 :2009/05/31(日) 06:13:57
作ればこのぐらいのデータは当たり前に出せる。いろいろなデータがあるが2つ例を挙げる。 棋譜の勝率順位、先手番の勝数、先手番の負数、後手版の勝数、後手版の負数、名前 1:585:167:492:242:羽生善治 2:645:299:537:371:谷川浩司 3:188:180:156:205:島 朗 4:119:87:122:107:三浦弘行 5:105:88:83:95:畠山成幸 6:258:128:229:176:郷田真隆 7:216:162:203:206:南 芳一 羽生善治の棋譜は4つの数を足した1486棋譜が入ってる。 棋譜数からすると、2位の谷川浩司の方が多い これは、戦形を元にした統計だ 棋譜の勝率順位、勝数、負数、、、その時の戦形 1:742:628:0:0:その他の戦型 2:1289:1132:0:0:横歩取り 3:2005:1785:0:0:中飛車 4:4981:4240:0:0:矢倉 5:4216:3804:0:0:四間飛車 でもこれだけじゃ、棋譜を全部解析して持ってるとは理解できないか。 総棋譜の全場面の検索はほぼ一瞬で出来る。メモリー上にも持てる。 総棋譜の全場面のデータは、367,439KByteだ。勝率・手順・盤面総て入ってだ。 ただし、ループする手順が多数混合されるので、それ用の解析プログラムでアクセスする。 Gなんかいらないぞw この様なデータが出てくるのを期待する
なんかまた勘違いしているひとがいるけど、この方法が大成功したとしても強さは既存のソフトをほんの毛ほど上回る程度にしかならないけど。 理由は簡単で、過去のデータを参照して指し手を決める以上、元の棋譜が凄くないといけないわけ。 で、自分の実力は如何ほどかと言うと、ボナンザにも勝てない程度。 ということは元のデータが既存ソフトの基準にするしかないから結果的に全てが上手く行ってもその程度のレベルになってしまうだろうと予想してる。
お前はあほか!!!!!! 自演するならもっとうまくやれよ。 それに結局、1行も書かずに終わるのか、恥ずかしい奴だな
>少しの容量にどれだけデータを小さくできるかの画期的(?)な方法を思い付いた。 画期的な方法を思いついたんだろwwwwwwwwwwwww
PCの前で真っ赤になって、出来ないのを理由にくだらない書き込みをするから。 キー消し忘れる間違いをする。まさに墓穴を掘る。
335 :
◆xegeq/it5Y :2009/05/31(日) 06:39:42
>>330 凄いですね。とてもじゃないけどそんな大層なデータは持ち合わせていません。
もしかしたらかなりムダなデータ保存のやり方をするかもしれませんが、
とりあえず自分が考えている方法で読み取りをするにはこの方法が最善だと思っているので、何が何でも一度完成させてみます。
もし失敗したら、何をやろうとしていたか説明するので意見を出していただけたらありがたいです。
ちなみに自分の見立てでは既存のソフトを上回る確率は1%以下だと思ってます。
失敗する要因としては
1.一つの棋譜に記憶することが多すぎて参考に出来るほどデータ数を確保できない。
2.検索に時間が掛かりすぎて指し手を算出するまでに時間が掛かりすぎる。
3.最善手を選ばせるために組んだプログラムが全然最善手を選ばない。プログラム自体に問題あり。
等だと考えています。
336 :
デフォルトの名無しさん :2009/05/31(日) 06:46:33
>>333 ようは一つのアイデアを思い付いて、その方法をするには普通の棋譜データの他に記憶させる情報が必要になった。
で、それを実現するには記憶する容量が壁になってたんだけど、それを小さくする方法を思い付いた、ということ。
普通の棋譜データで出来るならそれが一番だけど、それだとちょっと不都合だから
と言うよりは多分ほとんどがそのやり方で作られてると思うからまるっきり別の方法を考えてみた、と言う話。
完成してないけど経過報告は一週間後にする予定。 流れを見た感じとりあえず何バイトで作っても問題ないようだから、モチベーションは維持できそうだ。 とりあえず目的としては「棋譜データが多いほうが良い手を判断しやすいか」と、「データが多くなるにつれてどれだけ時間が掛かるか」の解明。 叩くのは完成した時によろしく。
たくさん積むなら、ハッシュにぶち込めよ。 48bit〜64bitあれば、違う局面を間違えることは少ない。 あと指し手を記録する。 (12bit = 駒番号40 * マス81) 一局面、60bit程度(10バイト)ですむだろ。 100万局、60手を記録したとして、600Mバイト。 局面の重複、局面と指し手の重複などがあるから600Mは最大値。
あと棋譜を記録するという考えでは無駄が多いだろ。 手順を記録必要は無いし、手順の一致まで調べていたら、同一局面を検索できないじゃん。
>339 何かもの凄く画期的な、言い換えれば 奇妙なアイデアをお持ちのようなので 一週間後だかの彼の報告を楽しみに待ちましょうよ。 それが実は既存の方法よりはるかに非効率的で 役に立たないもので有ったとしても、今 いろいろ言ってやる気をそぐのはもったいない。 役に立とうが立ちまいが珍奇なアイデアと言うものは 大抵、おもしろい。
◆xegeq/it5Y (笑)
棋譜に付加する情報を圧縮するためのエンコード・デコード法を思いついただけ?
その付加情報の内容がキモなんだろう? 当人の考えでは。
ボナンザは現存するほとんど全ての棋譜を取り込んだはずだけどなw
棋譜を取り込むだけなら、簡単だ。 しかし…、やった人間ならわかる
>>338 単に結果だけが知りたいならハッシュで問題ないが。
分析したい場合ハッシュ値では盤面に戻せないので使い道が無い。
作るなら、盤面情報総て持つのが正しいだろう。
対戦時に最善手が求まればいいのだからハッシュでよい。 完全なデータは別に保存しておく。
う〜〜ん、あなたはほんとに、数万件の分析をしたこと有る?
ない。
私は巨大な結果データにあまり価値を感じていないんです。だからもしやって いたら、認識の違いの情報交換が出来るのではないかと思っていました。 実際やってみればわかることだけど、巨大な棋譜分析データの結果だけでは、 データ容量にたいする利益のパフォーマンスがあまり良くないんです。 この辺の詳しい話は◆xegeq/it5Y さんが作った後にでも。 盤面と手順と勝率を持ったデータでは、利用価値があるのです。例えば検索手を捜す 場合方法の一つに、似た盤面の良い手をリストアップするとか、他にもいろいろと。 ハッシュデータだととても困難ですが、上記データがあれば簡単にリストUPできる。 (データ構造にもよりますが、私の構造は探しやすい構造です) 等々、結果データでは取り出せない各種情報が取り出せるので。利用価値が上がて いる。等の理由で疑問に思ったわけ。
プログラムで組むってことはこれってプログラムが考えてやるの? 全ての手の種類を計算して詰み将棋の形に持っていくパターンにするとか無理なの?
pediaよるとチェスと違って棋譜には著作権があると連盟が主張してるけど 勝手にDBにぶっこんで大丈夫なん?
353 :
304 :2009/06/01(月) 21:42:15
304だけど、main関数にプログラム書きまくってたら、ヒドいことになったw なんでmain関数の外に出そうとしたら{}が多かったり少なかったりしてエラー出まくったので結局元に戻しましたw
戻すなよw 長すぎる関数は小さく分割していくんだ! その方がバグが出にくくなるし、見通しもよくなるよー
千里の道も一歩から
>>352 連盟が棋譜に著作権があるという事にしたがってるだけで実際は無いから大丈夫。
訴訟するぞという脅しに耐えられるならな
むしろ望むところだ。
>353 ワロタ!
360 :
デフォルトの名無しさん :2009/06/02(火) 18:05:03
1T(テラ)のハードディスクをハッシュにしても 問題ないですか? 少ないメモリとどっちがいいかな。
HDDをハッシュにしたら劇遅です
1Tが均等に参照されるなら話にならないけど1Tのうち、1Gぐらいしか 頻繁に参照されないなら、その部分をキャッシュしておけば速度は問題なし。
どこをどう考えたら1Tになったのか?
ブックとして使うだけならHDD上で十分なんだけどね
365 :
デフォルトの名無しさん :2009/06/02(火) 21:08:31
>363 あんまり考えていないけど1回目は書き込みがあるせいで 激遅かと思ったが、2回目以降はすぐにHDDから取り出せそうなので いけるかと思ったのだが・・・無謀なのか。 >364 プロが定石を1T分だけ編集してくれたら序盤はなんとかなりそう?
プロがどう逆立ちしてがんばっても1T分のデータは無い
367 :
デフォルトの名無しさん :2009/06/02(火) 22:29:13
>366 やはりしんどいか^^
Yahoo将棋に提供してもらえばいいだろ
クソ棋譜集めてもクソデータが出来るだけ
yahooはレートがあるから、それで選べばいい。
レートと言っても、短時間の勝負がほとんどで、どちらかの間違えで勝負が決まる のがほとんどだろ。あまり参考になるとは思えないな。
s/間違え/間違い/
すみません、プログラムにミスがあったので修正中です。稼動すらできていないと言うこの有様。 本当にプログラムは時間が掛かるね。死にそう……。 これで必要なデータの割に遅くて弱かったら泣くかも知んない。 本当に期待させて悪いですがもう少し待っててください。
期待してまっているやつって多かったの?
>373 うんうん、そんなに期待せずに気長に待ってるから。 あんまりあせるとプレッシャーに潰されるよ。
誰も待ってないからやめていいよ
ならん。 めちゃ期待してるぞ。 今日の23時までに動作するものを仕上げてあpすること!
378 :
デフォルトの名無しさん :2009/06/07(日) 12:15:23
期待しているといったほうがやる気が出るのかな?
Bonanza Classic【無料版】1.0New BShogi.exe 33,055,500Bytes <== 2009.4.15 まあチェスもなんだかんだで物量で押し切ったし あるいは将棋もそういうアプローチが最終的に勝利するのかもしれないな。
33MB?
381 :
デフォルトの名無しさん :2009/06/12(金) 08:03:22
***** 【弓月城太郎VSやねうらお、跳躍探索論争まとめ】 *****
【弓月の設計案の要約】
すでにあるBonanzaのデータベース上に、11手後の評価値(11手+静止探索)をプロットし、静止評価の値と11手後の評価値からトレンド係数(評価値の平均変化率)を算出、データベース上にマッピングする。
[11手後の評価値]=[トレンド係数]×[探索深さ(11)]+[静止評価値]であることから、棋譜データの欠損部分において、統計的に11手後の予測値を求めるためには、最小自乗法によってトレンド係数の最確値を求めればよい。
【それに対するやねうらおの解釈および批判】
11手+静止探索を行った結果が棋譜の指し手と良く一致するように、特徴次元ベクトルの係数を最急降下法を用いて最適化するには、学習に時間がかかり過ぎる。
【結論】
11手+静止探索で作った評価関数(やねうらお案)は11手後の評価値ではない。単なる評価値。
つまり、やねうらおは弓月の設計案を誤って解釈した上で批判を行った。
トレンド係数もへったくれも無い。計算自体に意味が無いわけで、こんな無茶苦茶な解釈をするやねうらお氏の理解力とは如何ほどのものか。
※付記
このスレ↓に登場する「コンピュータ将棋開発者」「有識者」「コピペサービス」「一般人」などのハンドルネームは、やねうらお氏のものと思われる。つまりブログに中傷記事を書き、自作自演で自己擁護。
http://www.hakusa.net/bbs2/mibbs.cgi?mo=p&fo=shogi&tn=0076
383 :
デフォルトの名無しさん :2009/06/12(金) 12:24:07
384 :
デフォルトの名無しさん :2009/06/12(金) 12:31:36
385 :
デフォルトの名無しさん :2009/06/12(金) 12:36:49
>>386 生きる資格も値打ちも無い、死ぬのが世のためである害獣汚辱豚やねうらおについてのまとめ
やねうらお‐よっちゃんイカ‐人間のクズがブログで商売!(`ω´)
【キチガイ豚やねうらおプロフィール】
学歴詐称 (大卒と自称しているが、卒業証書を持っていない)
教員免許詐称(同じく証明書を持っていない)
自分を大きく見せるためのエピソードを次から次へと捏造し、プロフィールとして公開(幼少期や学生時代の神話はすべて嘘)
凌辱系アダルトゲーム専門 (いわゆるハードコア物、代表作『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』など多数)
ダッチワイフ愛用(人形愛の変態性欲者、自分のブログで世界に向けて発信)
労働基準法違反(やねう企画タコ部屋。社員は週100時間以上の労働で月給は17万円程度。時給換算で400円くらい)
競馬詐欺ソフト製作(暴力団の資金源)
脱税目的で計画倒産。大阪国税局から税務査察を受け追徴金を払うものの、依然として再犯意欲旺盛 。(現在も脱税中)
違法コピー常習
違法コピーの指南書出版
海賊版ソフト製作
フィッシング詐欺
BM98、著作権モロ侵害 (コナミの人気アーケードゲームをそっくりに真似た前代未聞の違法ソフトで有名になる)
2ちゃんねる掲示板で通り魔的に他人を襲う嗜虐的趣味の変質者(前世が殺人鬼だったという本人の述懐あり)
自演集団ストーカー(自演で多数派を捏造)
自分のブログで、ログアウトしての自演書き込み 、常習犯。
※総じて、やねうらおの仕事は、他人の知的財産権への侵害(掠め取り)、世の中の不浄なる欲望、不正者への便宜を図ることで成り立っている。
>>388 何か文句でもあるのか?
【やねうらおの実装能力】←ここが肝心
http://d.hatena.ne.jp/pmoky/20060513 [pmokyからの質問]
YaneGameSDK以外で、言える範囲の中で 自分が一番自信のあるプログラムはなんですか? そのプログラムはどんなことをするものですか?
[やねうらおの回答](苦しい言いわけ)
それはひとことでは難しい。 pmokyなら知っての通り、私はあまりプログラムを書かないので。どちらかと言えば理論屋なのよね。 もちろん、必要ならば実装までするけども。
**** ***** **** ****
あまりプログラムを書かないことが判明。
理論屋なので、作ったプログラムで自信のあるものをあげるのは難しいとのこと。(`ω´;) ←ここが結論
プロフィールが詐称でないなら、凄いゲームソフトを幾つも作っていそうなものだが、そういう物はまったく無いらしい(笑)
あるのは話だけ。捏造した話だけ。現物(プログラム)は無い。
391 :
デフォルトの名無しさん :2009/06/12(金) 13:00:53
393 :
デフォルトの名無しさん :2009/06/12(金) 13:10:52
>>392 だから基地外はお前だと言ってるんじゃないか。
自分がまともな人間だとでも思っているのか?
このスレはお前の所有物なのか?
お前にそんなことを命令する権限があるのか?
どうせお前も今まで匿名で嫌がらせをやってきた人間のうちの一人だろう。
違うか?
>>393 他人の書き込みを成りすましだと論うのならば、
先ずはご自身がトリップをつけるなりしては如何でしょう。
伸びてるから何があったかと思えば
久々に時間できたからプログラムの続き書こうおもたら、前まで何書いてたか忘れたorz
個人レベルでもメモくらいは取っといたほうがいいよ 俺はしてる
数万件の棋譜解析君はもう消えたのか?
時々、思い出したように荒らす人が居るなぁ。 何かの発作?
構って欲しいんでしょ。
403 :
デフォルトの名無しさん :2009/06/22(月) 13:13:01
やねうらお‐よっちゃんイカ‐人間のクズがブログで商売!(`ω´) 【やねうらおプロフィール】 学歴詐称 (大卒と自称しているが、卒業証書を持っていない) 教員免許詐称(同じく証明書を持っていない) 自分を大きく見せるためのエピソードを次から次へと捏造し、プロフィールとして公開(幼少期や学生時代の神話はすべて嘘) 陵辱系アダルトゲーム専門 (代表作『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』など多数) ダッチワイフ愛用(人形愛の変態性欲者、自分のブログで世界に向けて発信) 労働基準法違反(やねう企画タコ部屋。社員は週100時間以上の労働で月給は17万円程度。時給換算で400円くらい) 競馬詐欺ソフト製作(暴力団の資金源) 脱税目的で計画倒産。大阪国税局から税務査察を受け追徴金を払うものの、依然として再犯意欲旺盛 。(現在も脱税中) 違法コピー常習 違法コピーの指南書出版 海賊版ソフト製作 フィッシング詐欺 BM98、著作権モロ侵害 (コナミの人気アーケードゲームをそっくりに真似た前代未聞の違法ソフトで有名になる) 2ちゃんねる掲示板で通り魔的に他人を襲う嗜虐的趣味の変質者(前世が殺人鬼だったという本人の述懐あり) 自演集団ストーカー(自演で多数派を捏造) 自分のブログで、ログアウトしての自演書き込み 、常習犯。 ※総じて、やねうらおの仕事は、他人の知的財産権への侵害(掠め取り)、世の中の不浄なる欲望、不正者への便宜を図ることで成り立っている。
【著作権侵害】やねうらお(`ω´)【BM98】
このゲームは今からおよそ2年前に"やねうらお"氏により生み出されました。
このころはとてもシミュレータと呼べるようなよいものではありませんでした。
http://www2.pf-x.net/~bforb/what.html 【やねうらおの実装能力】←ここが肝心
http://d.hatena.ne.jp/pmoky/20060513 [pmokyからの質問]
YaneGameSDK以外で、言える範囲の中で 自分が一番自信のあるプログラムはなんですか? そのプログラムはどんなことをするものですか?
[やねうらおの回答](苦しい言いわけ)
それはひとことでは難しい。 pmokyなら知っての通り、私はあまりプログラムを書かないので。どちらかと言えば理論屋なのよね。 もちろん、必要ならば実装までするけども。
**** ***** **** ****
あまりプログラムを書かないことが判明。
理論屋なので、作ったプログラムで自信のあるものをあげるのは難しいとのこと。(`ω´;) ←ここが結論
プロフィールが詐称でないなら、凄いゲームソフトを幾つも作っていそうなものだが、そういう物はまったく無いらしい(笑)
あるのは話だけ。捏造した話だけ。現物(プログラム)は無い。
411 :
デフォルトの名無しさん :2009/06/22(月) 14:40:57
カス豚ブログ『やねうらお‐よっちゃんイカ』の表側
http://d.hatena.ne.jp/yaneurao/20080510 自称スーパー・プログラマ、やねうらおのすべてがわかる。
これが本当の『最急降下法知能障害』 やねうらおとはこういう男だ!
やねうらお。やねうらお。やねうらお。
【弓月の設計案の要約】
すでにあるBonanzaのデータベース上に、11手後の評価値(11手+静止探索)をプロットし、静止評価の値(1手+静止探索)と11手後の評価値からトレンド係数(評価値の平均変化率)を算出、データベース上にマッピングする。
[11手後の評価値]=[トレンド係数]×[探索深さ(11)]+[静止評価値]であることから、棋譜データの欠損部分において、統計的に11手後の予測値を求めるためには、最小自乗法によってトレンド係数の最確値を求めればよい。
【それに対するやねうらおの解釈および批判】
11手+静止探索を行った結果が棋譜の指し手と良く一致するように、特徴次元ベクトルの係数を最急降下法を用いて最適化するには、学習に時間がかかり過ぎる。
【結論】
11手+静止探索で作った評価関数(やねうらお案)は11手後の評価値ではない。単なる評価値。
つまり、やねうらおは弓月の設計案を誤って解釈した上で批判を行った。
トレンド係数もへったくれも無い。計算自体に意味が無いわけで、こんな無茶苦茶な解釈をするやねうらお氏の理解力とは如何ほどのものか。
なんだかんだいってもbm98にハマってたんだろ?
まさかw それは無いwww
生きる資格も値打ちも無い、死ぬのが世のためである害獣汚辱豚やねうらおについてのまとめ やねうらお‐よっちゃんイカ‐人間のクズがブログで商売!(`ω´) 【やねうらおプロフィール】 学歴詐称 (大卒と自称しているが、卒業証書を持っていない) 教員免許詐称(同じく証明書を持っていない) 自分を大きく見せるためのエピソードを次から次へと捏造し、プロフィールとして公開(幼少期や学生時代の神話はすべて嘘) 凌辱系アダルトゲーム専門 (いわゆるハードコア物、代表作『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』など多数) ダッチワイフ愛用(人形愛の変態性欲者、自分のブログで世界に向けて発信) 労働基準法違反(やねう企画タコ部屋。社員は週100時間以上の労働で月給は17万円程度。時給換算で400円くらい) 競馬詐欺ソフト製作(暴力団の資金源) 脱税目的で計画倒産。大阪国税局から税務査察を受け追徴金を払うものの、依然として再犯意欲旺盛 。(現在も脱税中) 違法コピー常習 違法コピーの指南書出版 海賊版ソフト製作 フィッシング詐欺 BM98、著作権モロ侵害 (コナミの人気アーケードゲームをそっくりに真似た前代未聞の違法ソフトで有名になる) 2ちゃんねる掲示板で通り魔的に他人を襲う嗜虐的趣味の変質者(前世が殺人鬼だったという本人の述懐あり) 自演集団ストーカー(自演で多数派を捏造) 自分のブログで、ログアウトしての自演書き込み 、常習犯。 ※総じて、やねうらおの仕事は、他人の知的財産権への侵害(掠め取り)、世の中の不浄なる欲望、不正者への便宜を図ることで成り立っている。
これはやねう企画で働いていた人間による内部告発です。
やねう企画はスーパープログラマ集団で、やねうらおは万能のスーパープログラマだというのは誤りです。
社長のブログから垣間見えるやねう企画像(
http://d.hatena.ne.jp/yaneurao/20051225 )に騙されてはいけません。
社内の技術レベルは高くありません。
作業場はタコ部屋で福利厚生はなく、みんな死にそうになりながら働いています。
零細企業で仕事が選べないので、詐欺に使うためのソフトを書かざるを得なくなることもありますし、取引先がヤクザになることもあります。
私のように大学院をやめて勢いでやねう企画に入社するという事がないように。
ブログ(id:yaneurao)から見える虚像に騙されないようにして下さい。
私のようにならないように。
http://d.hatena.ne.jp/pmoky/20060512
420 :
デフォルトの名無しさん :2009/06/25(木) 17:54:48
やねうらおの追徴金の額なんだが、1千万円を超えてるなんてもんじゃないみたいだ。 年商4800万円で、pmoky証言に基づき、まったく無申告だと仮定すると、粗利益率30パーセントとして、粗利益1440万円。 900万円超〜1800万円の所得税率は30パーセント、控除額123万円。 概算でも年間約400万円の納税義務が発生する。 5年間に遡って追徴されると、2000万円+重加算税+延滞税となる。重加算税の最高税率は40パーセント、延滞税は7.3パーセント。 基礎控除以外の控除や、適用された重加算税率など、詳細が不明なために計算できないが、やねうらおが払った追徴金は3000万円を超えている可能性がある。
422 :
デフォルトの名無しさん :2009/06/25(木) 23:44:03
おれはやねうらおじゃないけど、ブログは結構好きで時々読んでる。 ちなみに俺も八尾出身(高美のほうだけど)。 やねうらおがんばれ。
423 :
デフォルトの名無しさん :2009/06/26(金) 00:38:47
>>422 前から感じていることなんだが、将棋ソフト開発者の気質には、ちょっと普通とは変わった特徴があるようだ。
善悪を判別する道徳観が弱いこと。良いか悪いかではなく、自分に近い人間のほうを応援する。かくして容易に悪が連合する。
これは他の開発者個人にも共通して見られる特徴だ。「将棋ソフト開発者気質」というものか。
まず根底にあるのは自己中心。自分を中心とした世界観を持っており、自分に都合の良いものは「善」、都合の悪いものは「悪」だと思っているようだ。
あるいは「好きか嫌いか」という自分の好みと「善悪」を安易に混同してしまうところがある。
これは博愛主義の対極に位置するもので、差別主義・民族至上主義など、満州で悪虐の限りを尽くした大日本帝国の日本人の気質にも見られる特徴だ。
スレが伸びてると思って来てみれば・・・
こんなので埋まってしまうのかと思うと かなり情けないよな。
あまりコピペがひどい場合、運営に通報すれば規制対象になるよ
428 :
デフォルトの名無しさん :2009/07/01(水) 18:03:45
ほんと久しぶりにスレが伸びてると思ったのにorz
431 :
デフォルトの名無しさん :2009/07/15(水) 15:05:32
記事入力 2009-07-15 02:59 “ナロ号発射直接見に行こう” 高興(コフン)は今‘部屋を手に入れる戦争’ ■韓国最初宇宙ロケット発射D-15…現地表情 民宿はもちろんテントまで品切れになって 遊覧船予約も3日ぶりに終わり 肉眼観測するビューポイント選定 駐車場-特設舞台新設奔走 30日韓国最初宇宙ロケット‘ナロ号(KSLV-I)’発射を控えて韓半島南の端すそ全南(チョンナム), 高興 郡(コフングン)がうきうきしている。 発射当日を前後して, 峰来面(ポンネミョン),ナロ宇宙センター近隣 宿泊施設予約がほとんど終わって, 時宜外れの‘部屋を手に入れる戦争’も広がっている。 ‘宇宙都市’ 高興郡(コフングン)は大韓民国の夢と希望をのせて宇宙へ行くナロ号発射祝い行事準備で忙しい。 ロケットが空へほとばしる場面を肉眼で見られる‘ビューポイント’を選定して発射特需を生かすために 観光商品も作った。 “残った部屋がないです。 民宿はもちろんで海水浴場モンゴル式テントまで….” 全南(チョンナム),高興郡(コフングン),影南面(ヨンナムミョン)ナムヨルリ。 この村はナロ宇宙センター へ直線距離で15km離れているが, 肉眼で宇宙センター建物が見えるほど展望が良いところだ。 この村 のマ・ヨンマン次長(63)は “29日から31日まで部屋を探し当てようとする人々のために大変な苦労をし ているが, それでも気持ちは良い”と笑った。 こちらは夏ならば10世帯余りが民宿を運営する。 先月開場した海水浴場には避暑客のためのモンゴ ル式テント60棟が設置されている。 民宿とテント予約は先月10日ナロ号発射日が発表されてすぐ皆終
432 :
デフォルトの名無しさん :2009/09/02(水) 15:55:31
ほs
433 :
デフォルトの名無しさん :2009/09/02(水) 22:28:07
生き残っていたか。俺もプログラムしてみよーかなー。
434 :
デフォルトの名無しさん :2009/09/25(金) 09:54:31
また、ほs
将棋所用になんとか将棋のルールだけはプログラミングしたw 思考ルーチンはどう作ればいいんだ?ww
436 :
デフォルトの名無しさん :2009/09/28(月) 13:58:20
総当り
反復深化
438 :
デフォルトの名無しさん :2009/09/28(月) 16:01:08
>>435 まず定石を全て登録してからだ、話はそれから
定跡入れたほうがやっぱ強いのか? 新しい定跡を編み出したいんだがw もうそれは不可能か
なんか本買えよ
うさピンさんの本 マジおすすめ
マルチださぁ〜〜〜〜〜ん!!
マルチ打算
浅読みくんのブログ参考になるなぁ
どの将棋ソフトも成功した例を強く記憶するようにできてるね でも人間って成功例よりむしろ失敗のほうを強く記憶するよね 成功例を記憶するようにすると指し手が収束し、新しい発見の可能性を 減らしていることにならないのかな このソフトはこの局面の時いつもこうするみたいな
>>445 成功している間は使いつづければいいんじゃない?
相手が違う応対を考えて、うまくいかなくなったら
別の指し手を考えるようになる。
お互いが切磋琢磨して作りあげる。
それを定石という。
ある局面の合法手と駒の座標すべてのマス目を赤と青の2値化にして 図形としてイメージで記憶させる これで標準のPCでも30手先まで読めるようになった 局面を完璧に記憶させて行くよりもデータ量も少なくて済むな
意味がわからん
>>447 30手って、それ実装したの?
局面をイメージと言い替えてもPCのやることは変んないんだけど。
情報量がどんだけ減ったとか計算量がどう減ったとか
言わないと相手にしようがない。
jpeg圧縮や顔マッチングなどの画像用の手法が使えるって言うことじゃね?
>>450 エスパー乙
本当なら論文が書けそうだが、
画像をデコードして次の手を指して画像にエンコード
の繰替えしってことか?
SSEとか駆使したら実用になるのかね
452 :
447 :2009/09/30(水) 13:54:07
画像マッチング法と同じようなアルゴリズムだよ ただ、画像で保存してたら普通に局面を数値化して保存したほうが はるかにデータ量が少なく済むのでそんなバカなことしませんよw あくまで数学的図形として保存してますです 簡単にいうと、曖昧記憶、曖昧検索を実装した感じです 局面を具体的に記憶せず抽象的に認識する手法です またその図形で保存した局面を8分割(ドットの荒い画像と思ってください)にしてより検索効率を上げる予定 人間が一瞬にして状況を把握できるのはイメージとして記憶しているからなんです それを具現化してみようという作戦です
なるほど
あー、ある種の検査装置と似たような考え方だな。 全面検査したデータを画像化するとテラバイト級になるから、 特徴のみを検査して危険点だけ画像解析するの。
端歩をついてるついてないとかいう部分が曖昧になったりしない? 検索にはいいけど次の手を決められるのかしらん?
bitboardではなさそうだし、既存のチェス・将棋の アルゴリズムとは根本的に異なる探索っぽい。 本当ならボナメソやUCTをゴミ扱いできるほどの大発明だな。
そんな曖昧な局面マッチングではろくに探索できないと思うよ
それが実際にどうなのかはやった奴が一番わかってると思うよ
459 :
447 :2009/09/30(水) 18:28:20
重要なのは正確性ではなく先読みする力だと考えています 先が見えない真っ暗な道をしらみつぶしに進んでいくような 今の手法はハードの性能が上がれば強くなるりますし そういう考え方で作られているソフトは多数あります わたしは違うアプローチをしてみることにしました わたしのソフトは50手先だろうと瞬時にイメージすることができるのが強みです またそれに対する勝ち筋を求める場合も通常の完全一致参照手法と比べ 探索が深くなればなるほど、スピードの差が顕著になります 目標地点をイメージして進むわけですから当然ですよね 中盤など天文学的な局面を完璧に覚え、探索していく手法は逆に無駄が多いわけで 重要なのはその局面における個々駒が持っているベクトルです ベクトルに分解して図形として抽象化させることで 局面データの削減と参照量の増大を実現することができました
460 :
447 :2009/09/30(水) 18:50:49
>>456 ほかのそれと同じようにミニマックス法も採用してますよ
そしてそれとは別にテンプレートマッチング法(かなり違いますけどわかりやすく言うと)も取り入れているわけです
前者が論理というなら後者は直感という感じですね
後者による探索の場合は何手先なのかはあまり重要ではありません
人はある思い出を断片的に覚えていますよね?
そして人に話す時にその記憶の断片を論理的に繋げていくわけです
前向き枝刈りで深く読むのと同じ気がする
要は実現確率探索のようなものか 見込みのあるところだけ深く読むっていう
447は凄く電波だと思う。 一言で言うなら、「こいつただのキチガイじゃないか。」 将棋って先を読むことが重要なんじゃなくて、意味のある変化をくまなく調べることが大切だろ。 ぼろぼろ取りこぼしながら先まで読んだところでそれは独善的な読みと同じで何の意味もなさない。
効果があるか無いか勝率で検証すればいいだけのこと
465 :
447 :2009/10/01(木) 03:02:46
?? 言っている意味がよくわかりませんが プログラマの意見では無さそうですね 逆に言うなら、取りこぼさない人間やソフトは存在するのでしょうか? すべての意味のある変化を理解することができる人間やソフトは存在するのでしょうか? ハードやソフトウェア面において、昔より進歩した現在でもまだまだ非力です 何億局面も瞬時に読み取れる性能はありません そういった中での1つの手法とお考えください
次回のコンピュータ将棋選手権に間に合うように頑張ってくれ。
別人だか、俺は元物理系学生の今本業プログラマ
その経験からすると、このお方
>>465 は
プログラマというより学者な感じがするな。
万偶師匠の次のネタかな?
新手法として発表されるよう期待してます。
447は妄想者。相手にするな。京都大のハブキラーよりひどい。
発想も実装も両方うまく出来る人材はあまいいないよね。
>>465 > 逆に言うなら、取りこぼさない人間やソフトは存在するのでしょうか?
取りこぼしが問題ではないんだよ。
詰め将棋が詰むことを証明するのに必ず一定量の変化は調べないといけないように、
本将棋だって棋力を上げようと思えば、一定量の変化は調べないといけないということだよ。
それを重要な変化をはしょって、30手先を調べてもそれでは棋力向上しないってーの。
大事なのは、良い指し手を低コストで生成すること。 機械学習では、プロ手が選ばれやすいようにしているが、 2手、3手読んでから、価値の低い手を切り捨てている。 これはコストが高い。 0手読みで最善手が得られれば最も理想的。しかしこれは神の領域で無理。 なるべく低い手数で良い手が生成出来れば、読みを駆使してより良い手が選べる。
その前に現在の局面を正確に記録できているのが前提のはず。 イメージにする際に情報落ちさせてたら、 その後最善手を選択できると思えない。 結局bitboradと同じ情報量が必要なはずで、 そうすると優位性はなくなると思う。
イメージ厨は相手にするなよ。 プロが強い理由は、読みが多いからではなく一目で最善手の見当が付くから。 無意味な手を30手進読めたところで意味がない。ランダムに30手進めることは簡単。 30手読めるってことは、(取りこぼしがあっとしても) COMの判断では すべての30手後の中で一番有利になる手が選べるってこと。
30手厨もよくわかんね
475 :
447 :2009/10/01(木) 17:07:06
>>470-473 またプログラマでない人の発言ですね
どのレスも文体が同じなのですぐわかります
言ってもいないことでっち上げてそれに対してダメ出しされても困るんですが・・
最良の選択肢を選ぶための手法が違うということでご理解頂けませんか?
わたしのソフトに完璧を求めているのならそれは無理です
見落としはあります、それは人間でも他の将棋ソフトでも同じことです
それと
>>460 をもう一度読んでください
自分は今日初めてレスしたんだけど・・・ それ以前に居ないのだから文体でわかるはず無い。 ここに文書上げるより、ソフト上げてもらったら明快。 いつになっても完成しないか、まんぐう以下とは思うが。
477 :
447 :2009/10/01(木) 17:15:58
プロでさえ、今まで対局した棋譜をすべて正確に記憶している人はいません ただ、断片的に記憶しそれを論理的に繋げることはできます 現在多くのソフトウェアはある程度合理的な手法を取り入れてはいますが 無作為(あなたが言っているランダムです)に探索しているに過ぎません また現在のハードウェアではその探索できる範囲も全体の極わずかです それを飛躍できるのが直感であるとわたしは考えています そしてわたしはその形作りをしているわけです
478 :
447 :2009/10/01(木) 17:28:29
>>470 重要な変化を重要であると完璧に理解できるソフトや人間がいると思いますか?
>>472 完璧に最善手を選択できるソフトや人間がいると思いますか?
そうではなくて、貴方が言っている最善手がある種のアルゴリズム上での結果というなら
それはわたしのソフトにもありますよ
それがなければ次の一手がさせないわけですからね
プログラマにしてもそうでないにしても、将棋プログラムに対しての知識が浅いのは明確ですね
低コストで質の良い手を生成する事と、次に読むだろう局面の下準備をして高速化する事 くらいの改良で大分よくなるとおもうが。 ようするに重要なところを沢山読むってことだけど。 ハード面でも、ソフト面でも無駄な読みをしないって事。
俺はマだって言ったのに全員マじゃないって 一緒くたにしちゃってるよ。この人 2chも研究して自分の脳味噌も、もうちょっと最適化してよ
勝ち:447 負け:30手厨
447はただのキチガイだな
483 :
447 :2009/10/01(木) 18:37:28
>プロが強い理由は、読みが多いからではなく一目で最善手の見当が付くから。 最善手と思われるものが脳裏に浮かぶのは、過去の経験の賜物です しかしながら、過去のどの局面においてもまったく同じものはないはずです ソフトウェアの場合はどうでしょうか? 少しでも配置が違うとまったく別物と判断するソフトと 類似するものを抽出するソフトとどちらが有能でしょうか? さらにその局面のそれぞれの駒が持っている利きや重みを図形として保存したデータから 類似する局面を抽出できたらどうでしょうか? 合理的な手法とは思いませんか? 正確に局面を保存する通常のやり方では90%類似する局面を抽出することはまず無理です 膨大な局面データが必要になりますし、検索にも時間がかかります また見つけられたとしてもまったく意味を成さない局面かもしれません 曖昧な記憶と曖昧な検索、これが局面をすばやく認識し 過去の経験を無駄にしないものだとわたしは思っています
>>483 そうかそうか、ここ以外でやったほうがいいよ。
来年のGWに選手権で合いましょう。
>>483 端歩や玉の位置が違うなどは、たとえば盤面を1/4ずつ分割して覚えておけばいい。
そして1カ所、2カ所の一致など調べればいい。
1/4箇所で指された指し手をすべて記録しておけば、低コストで指し手を生成出来る。
>>483 類似局面検索と30手後に現れるだろう局面を当てることはあまり関係ないが。
想定する局面になるかは、相手の指し手次第だ。
やはりmin-max検索の方法で、選ぶのが無難では。
447氏の講釈もいいけど、実装してどのくらい有効だったかを知りたい。 とりあえず現段階での完成度はどのくらいか教えてもらえますか?
447の妄想です。 有効度などは測れません。 全く出来ていません。
491 :
447 :2009/10/01(木) 19:21:34
>>483 =470-473さんご理解頂けてなによりです
>>485 ??
「例えば」といいながら「覚えておけばいい」「出来る」と断定的な口調になってますが・・・
重要なのはその分割方法ですね。どこを削ってどこを重要視するか
その分割方法が良くないと良い手もさせないわけで・・・
こういうことはプログラマなら言わなくてもわかると思うんですが・・
単純にその例でいうと3/4を見落としているわけですよね
詰めの段階ならまだしも、その考え方が中盤でも生きてきますか?
でも、低コストで指し手できるというのは合致ですね
だから?って疑問は残りますがw
>>487 何度も言ってますが、直感的イメージとそれを橋渡しする論理で成り立ってます
自演乙
493 :
447 :2009/10/01(木) 19:32:27
鳥の造形を模した飛べない乗り物と飛ぶことを重視したジェット機 どちらに乗りたいですか? いくらプロの真似をしても勝てなければ意味を成さないのですよ
抽象論はいいから 効果を検証しろよ
口だけ厨はまんぐうにも劣るがな 勝てるファイルをうpしてからいえよ
>>483 例えばボナンザの評価関数は3駒の位置関係で、
意味を失わない程度に細かく分解したパターン。
局面に現れた全てのパターンの値の総和が評価値。
やりたいことはほぼ同じでは?
497 :
447 :2009/10/01(木) 20:33:15
>>496 優劣については来年の選手権で実証できるのではと思いますです。
来年ではなく、いまここでうpしたらわかること。
すべてが妄想なんだろ。 来年の選手権までには完成している。来年の選手権は優勝している。イメージ、ベクトル理論は最強。・・・・
>>497 言い負かされて悔しいからって成りすまししないでね
いずれ納得行くものができたら ソフトもソースも公開するつもりです それと選手権には出るつもりはありません
502 :
447 :2009/10/01(木) 20:42:12
おお、鳥付けられる知能はあるらしい
>>497-499 は同一人物ですね
何が目的か知りませんけど幼稚ですね
人を妬むのは人として一番愚かな事ですよ
もっと自分に自信を持ってください
505 :
447 :2009/10/01(木) 20:59:21
>>504 その内、俺のレスは
>>472 だけだよ
前から、俺を含めても3人はいるって言ってるのに。
あんた、人の話聞いてないね。
好意的なレスもしたのに誰も信じない人だね。
選手権出なくてもfloodgateに出せる品質にはなるのかな?
検証できないと話の相手にもならないし、
ここでの話も妄想となるからそうならないよう
せいぜいがんばってね。
誰と誰が会話してるのかわからんなw
まあ
>>447 も、そのうち効果の低い手法であることがわかるだろう。
将棋では効果的な前向き枝刈りは実に難しい。
俺もいろいろ試してみたことがあるが、適当にやると驚くほど弱くなる。
やねうらおが混ぎれ込んでいるなw
ひと目見て形勢が判るのは人間も評価関数も同じ 人間すげーなって思うのは、 印象を覚えておいて、それを持ったまま探索できる COMは王手ラッシュして水平線効果ですべてを忘れるけど、 人間は印象を保持したままなので水平線効果を起こさない このへんが自分の印象 探索せずに50手読める理論を構築したら447はノーベル賞獲れるよ! ちなみにゲーム理論もモンテカルロ法もフォン・ノイマン(マメ知識な)
>探索せずに50手読める理論 ?????
>>509 447の話してるんじゃないの? 30手読めるなら50手読めるでしょ?
読めるわけ無いので言ってるわけだけど
>30手読めるなら50手読める ?????
バカが必死に理解しようとしても無理無理
いかにも素人が背伸びしてる感じだな
>>447 画期的なことが出来たと思うならfloodgateに参加させてみればいいんじゃないの。
まさか、プログラム書けないの?
447じゃないけど、いい感じの局面(次の1手問題の解答とか)の駒の全組み合わせを アソシアトロン風+Count Sketchで分散して記憶して 覚えが悪ければハッシュの違うサーバ増やしてちょっとづつ記憶確率を上げる というのは考えたことがある。考えただけ。 あと、厨な質問で済まんが、勝敗が決まらない状態の1パラメータのゼロサム前提って ホントに有効なの? 「自分がいい感じ&相手もいい感じ」と「自分が嫌な感じ&相手も嫌な感じ」を 差が同じだからって単純に比較していいのかと思ってさ。 たぶん、差が単純比較できるのって戦術目標が同じ枝同士だよね? いきなりMinMax否定でゴメン
>>514 まあ、普通に
王手を無視しないとか
2歩、打ち歩詰め、とか作りこむだけでも
かなり手間だしね。
その手間と概念的に優れてるを両立させるのは
むつかしいよね。
マングースみたいになる。
最近またレベルが下がったなここ
>>515 回答になってるかわからんが、関連の話として
局面を判断する進行度というのがあるが、
先手と後手で分ける人もいる
その場合、ゼロサムといいながらも、
評価値と進行度の両方が混ざった評価になる
評価関数を先手後手で変えれば、当然、ゼロサムにはならない。
手番を考慮する場合も非対称になる
トン死、2歩、打ち歩詰め これのプログラムが難しいって プログラマとして初心者レベルだろw
2歩はFizzBuzz並に難しいぞ
>>519 脊髄な奴だなw
516は447の手法だと「2歩」を厳密に判定できるのか?
って質問しているんだよ。
情報の保存形式を荒くした場合も、ルール的には正確性が必要になる
516は519よりはるかにレベルが上だよw
パターン想起だと、千日手もありそうですね
>>521 >>522 そんなもん、別判定すりゃいいだけの話。
というか、自然にそういうプログラムになる。実際に作ればわかる。
お前ら将棋プログラムはおろか、簡単なプログラムも組めないだろ。
524 :
516 :2009/10/03(土) 18:45:23
>>523 そうなんだよ、概念的な部分に凝り過ぎると
その他の別判定部分がおそろかになったり、
概念と実用を両立させるのは面倒と言いたかった。
>>523 別判定するなら歩の位置は完全に持っておく必要がある
それをやっても447の手法は維持できるのか?って話
プログラム組めるとか組めないとか、
小学生レベルの煽りがやりたいなら将棋板に帰れw
千日手は局面ハッシュで判断できるか無問題
打ち歩詰めも、手の履歴を保存していればわかる
できるよって話
思いついたのが2歩や打ち歩詰めでも 香で代用するかぐらいの度量が必要だな
528 :
デフォルトの名無しさん :2009/10/05(月) 08:14:38
>>528 ∧_∧
(´・ω・)ドウゾ
( つ旦つ ∬
と_)_) 旦
将棋ゲー作り始めるのが先か 将棋のスキルを上げるのが先か それが問題だ
530 :
デフォルトの名無しさん :2009/10/06(火) 11:24:35
囲碁ソフト、あと10年で人間を破る?
http://sankei.jp.msn.com/life/lifestyle/091005/sty0910051320007-n1.htm 2009.10.5 13:17
コンピューターソフト同士がチェスや将棋、囲碁などの“腕”を競う「第15回コンピュータ・オリンピアード」が来秋、初めて日本で開催されることになり、5日午前、会場予定の
石川県ペンギン村の北陸先端科学技術大学院大学
で調印式があった。注目は、人間の世界チャンピオンに勝ったチェスやオセロに比べ、「大局をみる」人間の方が有利とされてきた囲碁ソフト。今年の同大会囲碁部門では、
新たな日本製プログラムを搭載したソフトが初優勝し、期待を集めている。
◆大局観より確率を重視
9月中旬に発売された“史上最強”をうたう対局ソフト「天頂の囲碁」(発売元・毎日コミュニケーションズ)。5月の「コンピュータ・オリンピアード」(スペイン)で優勝した
思考エンジン「Zen」を搭載し、アマチュア三、四段の実力があるという。
強さの秘密は、数年前に登場した計算方式「モンテカルロ法」だ。従来のプログラムは、盤上の局面の大きさを判断したのち数手先の読みを加える、
人間に近い考え方だった。一方、同法はある局面でどう打てば勝ちにつながる終局にたどりつけるかを、コンピューターに数十万回計算させ、
最も勝率の高い一手を選ぶやり方。「大局をみる」囲碁の考えを排除し、確率を重視することで大幅な“昇段”を遂げた。発売元では「相手を気にせず長考したい60代以上の方が購入されているよう」と話す。
>>529 ルールの理解以上のスキルいらないでしょ。
詰みとかの概念は理解しないといけないけど。
詰めろ、必死なんかは不要かもね
>529 つーか、開発者自身の棋力が低くても強いプログラムが作れるのは 既に証明されてるのに対して、将棋を指すスキルがどのくらい将棋ソフト 開発に役立つのかはあまり良く分からないからね。 と言うか、作り始めると勉強しなきゃならない事がたくさん出てくるから とっとと作り始めるのが吉! 最初の段階で時間を掛け過ぎると挫折しがちだし。
強さ以前にまともに動くのが難しい まずは同じブログラムで終局までいけることを目指せ
説明になっていない時点で447が電波だからなぁ。 ある程度具体的な話をしてもらって、ツッコミいれるのはそれからだ。
失せろカス^^
ボナンザには勝てるようになった 234勝199敗 報告以上
良かったね( ´,_ゝ`)
>>536 54%か。パッとしないね。条件が全然わかんないけど。
ところで、なんで将棋板でなく、こんなところに書いてるの?
>>536 報告いいからバイナリおいてけ。
一秒とか、メモリ512Mの環境とか、一方が有利になる条件の場合がある。
強さは、みなが判定してるからバイナリおいてけ。
共通フレームワークを設定・共有して思考部分つくるだけですむようにしないか? ビットボードや他ボードなども切り替えできるようにして。
>>540 既にあるが?
初心者が横着しようと考えるな
どれですか。GUIではないんですが。
それくらい調べろよ…
あれ?テンプレになかったんだっけ?
と思ったらやっぱりあるじゃん
>>4
>>536 おめでとう。
24で3000超えるぐらいの実力あるならファイルうpして欲しいな
>>536 おぉ、すげー
先手後手で分けた時の勝敗数も知りたい
あと勝った棋譜負けた棋譜を1局ずつ載せてくれると嬉しい
447はただのキチガイ。相手にするな。
細かい情報がないとこれ以上相手にしようもない。 皆、結構現金だから無条件では相手にしないよ
去年の今頃もボナンザに勝ち越したとか言ってる奴いたなあ……
秋の虫の時期ですね
そうだよな。 今まで何回か(何人か?)そういう主張をする人が出て来たが 誰も(一回も)証拠を示さないので、もはや狼少年扱いだと思うぞ。
納得行くものができたらいずれ公開します
100年後くらい?w
打倒名人竜王が果される前に出さないと意味ないぜ
今となってはボナンザなんて骨董品だからなぁ。 勝ち越したところでわざわざネットで自慢するほどのことでもないよ。 あ、自慢しちゃったね(^^;;
>>555 骨董品に勝ち越したことを自慢に思ってしまうお前ってwwwショボwwww
558 :
デフォルトの名無しさん :2009/10/13(火) 00:40:00
>>528 ∧,,∧ ∧,,∧
∧,,(´-ω-)(-ω-`)∧,,∧
( ´-ω)旦o) (o旦o(ω-` )
(_ o[( ´-) (-` )]o _)
└'ー-(_ )][( _)ー'┘
'ー'^ー' 'ー'^ー'
今NegaScoutをマルチスレッド化してるところなんですけど PV以外を並列で探索する他にどんなタスク分割の仕方がよさそうですか
並列するなら、先読みに使うべき。ノードを分割すると読みの無駄が出て損。
だから聞いてんだろ
要のアイデア位自分の頭で考えろ!
>>559 分割せずにルートから複数探索させて合議
無駄の多さは、並列読み <<< 合議 だが。
そのかわり評価関数の不正確さをカバーできる利点があるのでは
つasynchronous parallel game-tree search
なるべく無駄を無くすなら並列読みすべきではない。 ルートかルートに近いところで並列にしたら、 もし一手が最善だったら、並列に読んでいた2手目以降は無駄になる。 逆に一手目が悪かったとして、並列に回した分深さが足らずそれが判定できないかもしれない。 COMが重要だと思うところに読みを集中させるべき。 数打てば当たる的なやり方は、コンピュータを1万-100万台とかでやれ。
指し手生成、局面更新、評価値の計算など作業は多くある。 そこでCPU資源を使い切るようにすべき。 たとえば、指し手生成を4並列でやるとか。 次局面状態の計算して それでも空いてたら、次局面の指し手生成していればいい。
>567 ある箇所に読みを集中させたくても、CPUのコアあたりの 処理能力(クロック周波数)向上が頭打ちしている現状だから 後は並列読みするしかショウガナイじゃマイカ。 無いものねだりをしてもどうしようも無い。
>>568 現状のスレッドレベル並列ではスレッド切り替え時間の負荷で無理
探索全体の中では手生成なんて一瞬
FPGAなら可能
それでは応答が500ms程度かかるだろうと所まで進めて そこを1CPUに割り当てるか。 このくらいの時間だったらスレッド切り替えコストは微少だろう。
困難な点は、500msの予定が1秒かかった場合、呼び出した親は処理待ちになる点だな。 探索中に、終了予定時間を更新していき、 時間かかりそうな所は再び500ms程度ごとに分割すればいいかもしれない。
なるべく500msが小さい方が直列読みに近づくけど、 小さすぎるとスレッド生成コストでロスする。 αかβか(どっちかは忘れた) カットが起きれば、 別スレッドは破棄して上ノードへ戻していい。 長い時間を計算したものを破棄すると無駄になるから、小さい方がいい。
残りの深さ、確率が少ない局面 = 短時間で探索が終了する局面で いかに速く解を得るかという事だ。 想定するのは、通常探索、1CPUで5秒かかる局面くらいでいいと思う。 並列処理で何秒に縮められるか。
言いたいことはなんとなくわかるけど、国語力が弱すぎる
ようするに、末端を並列読みすればいいって事。末端の集まりが全体。 末端の探索速度が1/2に出来たら、 上位が並列でなくても、全体の速度も1/2になるだろう。 なるべく末端近くまで並列にしない方が無駄が無くせるけど あまりに処理時間が短すぎると、スレッド生成コストが無駄になる。
それはわかってて そこからどう工夫すればいいだろうかって話
But she has been more recently stressed out because of work, and rightfully so. ,
囲碁のモンテカルロ碁は3段が限界みたいだな 囲碁ソフトはこの三、四年間ほとんど棋力が上がってない
寝言は寝て言え
いや、実際に販売している囲碁ソフトは全然進歩してない
なにこの情弱
当然とはいえ、棋力相応の読みしか入っていないと感じる。 今の延長線上じゃKGS2〜3dくらいで頭打ちじゃないのかな。 zenはd持ちだけど一手15秒なんで半分インチキだし。
囲碁板でやれよ
Yet, these same opponents would trust gov- ernment to provide the coinage. ,
futility cutってprobcutの簡易版ですよね
probcut、Lazy Evaluation、どっちの側面もあるよ
>>589 Lazy Evaluation
という概念で考えたことはなかったので勉強になったよ
言われてみればその通りだな。
ProbCutは予想が甘いとリスクがある
futilityCutは評価関数の一部と考えればいいな
Futility Cutだってマージンが甘いとリスクがある Probcutだって人間の裁量で調整できるんだから結局同じ事
初心者なのでようわからんのですが FPGAによる局面生成ってどこらへんにメリットがあるの? 局面だけポンと生成されても評価値計算のためには結局CPUが9x9=81マス読まなくてはならなくて 差分計算も糞も無くなる木がする、 一方FPGAに評価値計算までやらせる話になると、 評価ロジックの自由度は大幅に増すかもしれないけど(H/Wの並列性を生かせば差分計算に依存する必要が薄れる)、 演算精度のために支払うLE数が壁になりそうな (1局面の指し手数が平均80として、6手先で0.26兆局面あってそいつらに有意な順序づけを行うには 浮動小数点でも仮数部40 bitぐらい要ることは論をまたない)
593 :
592 :2009/10/25(日) 21:27:10
>浮動小数点でも仮数部40 bit なおこれは学習を安全に収束させる前提の話 ゲーム木全体をAND/OR木的に読み切って必勝局面を与えるだけなら1 bitでいいだろうけど
速い そんだけ
>>592 試合のときに浮動小数点なんか使わないぞ。
学習はC++でエンジン書いてやればいいだけ。
FPGAなら少なくとも手生成がマスや駒ごとに並列に行える。
位置評価も並列に行える。
探索自体は再帰だから結局はコアの数だけの並列になるけどな
今までにない将棋を作ってみた 将棋のGUIを3Dにした ただそれだけだけどねw
残念、「3D将棋」でググれ
>>592 > 浮動小数点でも仮数部40 bitぐらい要ることは論をまたない)
Bonanzaですら16bitしか使ってないけどな。40bitって何を根拠に言ってるんだ?
またプログラムが一行も書けない妄想バカのおでましか。
昼間のヒキコモリが言ってても
>>599 プログラムが一行も書けないことがバレると人を引きこもり扱いか。とんでもないクズだな。
>592さん 6手先で0.26兆局面あって、それら全てを順序づけるためには 40bitも必要になるのは認めるとしても、それらの局面すべてに 対してことごとく異なる評価値を与える必要は無いのでは? 現状、任意の局面に対してそんなに細かく厳密な評価が出来るとは思えません。 つまり、幾つかの局面がグループにまとめられて同じ評価値を 持ったとしても大した問題では無いはず。 実際、数手先まで読むと同じ局面が異なる手順で何回も出てきたりするし、 16bit整数(-32767 から +32767)で表せる値以上に細かく評価値を与える 意味と言うか、実用性が私には良く分かりません。
α-β法くらい勉強すればいいのにね
性能評価のため、共通のフレームワークでアルゴリズムの研究するか。 ボード、評価関数は同一にする。
605 :
592 :2009/10/29(木) 00:56:22
>>602 >それらの局面すべてに
>対してことごとく異なる評価値を与える必要は無いのでは?
逆に、同じでいいというのもあまり根拠の無い話に思える感じ
>現状、任意の局面に対してそんなに細かく厳密な評価が出来るとは思えません。
確かに現状壁が3つぐらいある(と思う)
(1) 学習パターン自体のノイズ
(2) 学習時間の壁 (パターン数に対して指数オーダー)
(3) 次元の壁 (評価因子を増やすと球面集中現象でヤられる)
これらの壁がほどよく立ちふさがってくれているから整数演算で通用しているのだと思う
>実際、数手先まで読むと同じ局面が異なる手順で何回も出てきたりするし、
それはそうだけども、サイクル手順を除去しても6手先までの指し手が数十万のオーダーまで降りるとは思えない感じ
一方評価関数の高精度化による指し手の最適化とは、その中から常にα最大かβ最小のものを選ばねばならないから
16 bit整数では足りない、というプログラム前の皮算用
違う局面で同じ評価値の場合はあってもいいに決まってんだろ
>>602 一つ反応し忘れたス、
>つまり、幾つかの局面がグループにまとめられて同じ評価値を
>持ったとしても大した問題では無いはず。
評価関数の高精度化による指し手の最適化では(非常に単純化して言うと)指し手は評価関数の値のみに依存するから、
局面をいくつかのグループにまとめて問題ないかどうか決めるのは評価関数自体なんであって、
上記主張は、評価関数の精度が低くていいことの根拠としては循環論理めいて聞こえる
もちろん実際は序盤・中盤・終盤その他のモード分けをプログラマがやってるから評価関数依存一辺倒ではないのは承知してる
つもりだが、最強コンピューター棋士はその手のフレーム問題も適当に解決する強いAIたるべき、
いまからつくりはじめたぞ。共同フレームワーク開発するぜ。
さいはつめい?
>>602 何故598でとっくに結論が出ているのにそんなに長々と意味の無い文章を書くんだ。
>>605 >>対してことごとく異なる評価値を与える必要は無いのでは?
> 逆に、同じでいいというのもあまり根拠の無い話に思える感じ
あんた(592=605)は、αβ法すら自分で書けない妄想バカだな
あたりの生成は、各ますにどのコマから利きがあるかを記録しておくんですか。
613 :
612 :2009/10/30(金) 06:29:24
どのコマの利きかを記録するか、2手前の位置を調べるかと思います。 詰将棋に限定したら、前者の方が速いですか。
Wikipediaで将棋プログラム関連技術の記事を充実させません?
615 :
デフォルトの名無しさん :2009/11/01(日) 04:25:40
何の項目?
>>611 俺はバカじゃない!俺はばkじゃない!
jふぃおhdるおb
つかαβ探索は探索の時間計算量削減には寄与するが、得られるmax{min{...}}の値自体は完全探索と一致するのだから
αβ探索を作れること(及びαβ探索を採択すること)は評価関数の精度が低くていいことを担保しない
評価関数の計算精度の十分条件とは全く関係ない話
617 :
デフォルトの名無しさん :2009/11/02(月) 00:52:14
現時点では評価関数の精度が低いから現在のような広い値域が必要なわけで 今後精度が高くなればなるほど値域は狭くていい まあ別に広くしてもいいけどね 無駄なだけで
完璧な評価関数なら-1、0、+1ですな。
将棋に引き分けってあるんだっけ?
千日手、持将棋、同時反則
621 :
デフォルトの名無しさん :2009/11/06(金) 18:37:55
>>558 `∧_∧
(´・ω・)
( つ旦O
と_)_)
ちょっと休憩。
622 :
デフォルトの名無しさん :2009/11/10(火) 22:49:28
水平線効果は静止探索で対処しているものがいくつかあるが、 静止探索は遅いので困る。 もっと良い水平線効果はないのだろうか? しかし、もし静止探索以外で水平線効果を対処できたとしても 静止探索には水平線効果以外のメリットがあるのかな? 良く分からないが、とりあえず静止探索以外の水平線効果対処方法を考えてみると
623 :
デフォルトの名無しさん :2009/11/12(木) 00:40:26
>>621 ∧ ∧ 彡
ミ ( ^ω^ )っ 彡
O ノ タタタタ…
ミ| (_) 彡
ミ し´ 彡
>>618 二人零和有限確定完全情報ゲームである以上2値でおk3値もイラン、
というのは次局面のどれが神の手筋に乗ってるか否か、それだけわかればいいから
仮に神の手筋の分岐する先に引き分けの局面があっても2値でいいことは変わらない(もしそうなら、
引き分けは保証されるが相手がミスしない限り勝てないこともあるゲームだったと認める他ない)
もっとも、先手がどうがんばっても神の手筋が後手の手番から始まってしまうゲームにおいて
初手からしばらくは先手後手ともに神の手筋に乗っていないから、どの手がベストかを確率的に判断
する他ないというのはある(が、そのこと自体は3値が必要十分とする根拠にはならない)
αβ法もわかってないゴミは黙ってな
神の手筋を知っている前提で解くやり方はαβ探索というよりむしろdf-pn探索(証明木の取得)の領分 残念ながら将棋は完全な証明木を現実的手段で取得したり記憶できたりするほど単純でないから (何しろ局面数が10^220もある) αβ探索(と評価関数のヒューリスティックな作り込み or 統計的最適化の組み合わせ)が幅を効かしてゐるのだけどね 故に漏れ涙目 統計的手法を駆使して勝利の蓋然性を積み重ねていったらぴったり敗着の穴がふさがれちゃった (それより優れた手筋を示す解法は存在しない)という可能性もあるっていやーあるが、
そいつは無限の猿定理
628 :
デフォルトの名無しさん :2009/11/30(月) 13:37:55
ぼなんざー
629 :
デフォルトの名無しさん :2009/12/09(水) 21:33:28
かそ
さて
がんばろうや
がんばってpn-searchを…
635 :
デフォルトの名無しさん :2010/01/31(日) 18:59:20
しーん
また花粉症の季節だ。これさえ無ければなぁ。
起きると目ヤニがついてて、取ろうとしても硬くて取れない
時々息子の目やにがひどいことになってるんだが 妻がそれ見るとペロペロなめて溶かしてやってる。 初めて見たときギョッと思ったけど 妻も小さい頃は親にこうされて育ったのかなと思った。
だんだん何のスレだか良く分からなくなってますが‥ 母親と言うのは有難いものですね。
>>641 dクス
拡張プロトコルと、評価値や読み筋の送信の書式とが別文書(さらに後者はRFC)ってことは
実装はともかく仕様の確定がまだな感じ
>>642 このスレと前のスレ読めば流れが見えてくるんだけど
まずCSAプロトコル(旧バージョン)ありきでサーバーが立ったわけよ
それでCSAプロトコルのみではいろいろかゆいとこに手が届かないので
拡張モードを追加して行ったというわけ今も進化中ってとこかな
古い文書はあまり更新されてないっぽい
CSAのほうがバージョンあがってたりして文書と微妙に食い違ってきてる
CSAプロトコルはコンピュータ将棋協会のものなので別文書にしとくほうが
よいのではないかと
?
>やねうらお氏と和解しました 傑作(0) >2009/10/14(水) 午前 10:31その他練習用 Yahoo!ブックマークに登録
いいぞもっとやれ
なんか向こうに迷惑がかかっちゃいそうなのでこっちにきました
http://anchorage.2ch.net/test/read.cgi/bgame/1266036069/ 結局、NullMoveとScoutの違いって
NullMove:いい手と思われる手を(手数の少ない評価値より超えてるだろう、とみなして)はしょることで探索数を下げる
Scout:悪い手と思われる手を(NullWindowで)はしょることで探索数を下げる
って感じでいいんでしょうか?
・・・ただ
276 名前:名無し名人[sage] 投稿日:2010/02/26(金) 00:46:49 ID:6fTYYu0I
>>273 対局じゃありえないけど
先手「この手はどうだ?」
後手「ばかもん!こっちがパスしても形勢に影響ない手を指すな!探索却下だ!」
先手「ひええっ、じゃ他の手を...orz」
NullMoveはこんな感じ
だと、「後手がパスしてくれたとしても形勢に影響を与えられないような悪い手」を探索しない
→悪い手をカット
っていう風にも読めるしなぁ・・・
NullMoveは探索深さを減らす前向き枝狩り Scoutは二番目以降の手はカットされるだろうと予めウインドウを狭めておく手法 失敗したら広げてやり直す
・・・だめだぁ・・・よくわからない・・・ Scoutの方はよくわかりました >NullMoveは探索深さを減らす前向き枝狩り NullMoveの場合 深さ7手くらいのところをとりあえず5手くらいで読んでみて それでβを超えてたら「7手読んだことにしちゃう(その枝は最後の7手まで読んだことにして次の枝へ行っちゃう)」 っていう意味ですか?
ちょっとちがう。 NullMoveはパスをするところが肝。 将棋って相手が連続で指してくるとすれば自分は不利になるでしょ。 そこでまず自分はパスをして相手に連続で指させる。 そのハンデを負った上で浅い探索をしても自分が優勢であると判断されるようなら パス無しだとさらに優勢である可能性が高いからカットできる。
>>651 順番が逆かな
目的は「パスしてもβを超えるなら枝刈り」
※手を指した側はαを超えられず採用される可能性が無いのでこれ以上探索しても無駄
「浅く探索する」は「浅く探索しても探索結果にほとんど影響が出なかった」という結果論
ヌルムーブは、少なくともいい手がひとつはある、って判断するためだよね 全部悪い手しかないときにヌルムーブでカットできる
一回パスして続けて指しても悪い手しかないから、打ちきるべきってことだよね そこにパスする意味があるんだね たとえば数手先で詰むとき どう読んでも負けしか見えないなら、それをなるべく 早く判断しなけりゃいけない
>ヌルムーブ ガッ!
>>656 「めるぽ」って言ってるわけでも無いのに「ガッ!」してたらキリが無いだろう?
658 :
デフォルトの名無しさん :2010/03/14(日) 13:47:38
プログラムやってる女だけど何か質問ある?
触らぬ神に祟りなし
ボナンザってコンソールアプリのはずだよねぇ Main関数の中に MessageBoxを呼ぶ個所があって、ビルドエラーが出た。 コメントアウトで対応できたけど、なんだかなぁと思った。。
Bonanzaの思考エンジンは自分用の小さなwindowも開くよ。 NPS値とかパラメータ表示用。 ビルドエラーが出るのはライブラリのバージョンの問題とかなんじゃ無いかな?
>>660 コンパイルオプションをつけ忘れていませんか。
makefileかreadmeのほうに書いてあったはずです。
話題になるように努力していることは素晴らしいけど、寒い小芝居は引く。 何で握手してんの。
将棋連盟に勝算はあるのか?
667 :
デフォルトの名無しさん :2010/05/01(土) 12:16:42
V V (´・ω・`) うさちゃんピース
ちゃゆううううぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅぅ
>>669 まだ将棋はコンピュータより人の方が強いみたいだな
>>671 暗いと不平を言うよりも、進んで明かりをつけましょう。
だいたい将棋の方が向いてるんじゃないか? 駒を取る時は相手の上にするのもいいだろうし、馬がいたり、槍を付いてみたり。
将棋だと全部寝技がらみになってしまうのが難点だな。
で、萌キャラで作ってほしいのか?w
ブルゲ的脱衣将棋ディスってんのか
エロをつければいいなんて厨房の浅墓な発想
HENTAI大国でそんな意見が出てくるとは実に嘆かわしい。
678 :
rei :2010/05/30(日) 16:35:45
え〜、bulbulの作者です、え?それ何って?wdoorの初期の頃に存在した人間用クライアントです アップローダーがスパムに押し流された後、PCのHDDクラッシュでソースコードもろとも綺麗さっぱり無くなってしまったので 一から作り直してます。 というわけで、また駒画像を提供してくださる神はいらっしゃいませんでしょうか もしかして、すでに需要が無いかもしれないですけど・・・・
バックアップすら取らない人に提供してもね
駒画像くらい自分で描けば 酷かろうが、公開してしまえばそのうち提供してくれる人が出てくれるでしょ
682 :
デフォルトの名無しさん :2010/06/04(金) 20:19:22
683 :
rei :2010/06/09(水) 17:47:22
え〜、ついでに、外部の思考エンジンへのインターフェイスを付けようかと思います。 DLLでいいやとか、EXEを蹴ってくれとか、ご要望がありましたらどんぞ あ〜、でも、この過疎り具合じゃ思考エンジンなんか作ってる人居ないかな・・・
USIプロトコル(将棋所やプチ将棋)、sikou.dll(CSA将棋)が 既に(コンピュータ将棋界では)メジャーな存在としてあるからねぇ...
685 :
デフォルトの名無しさん :2010/06/09(水) 23:09:55
USI と CSA ですか ちょっとググッてみたところ、USIはお互いにコマンドのやりとりなどが 有って結構複雑、ここまで実装する労力あればサーバーと直接お話できちゃいます って感じですね CSA将棋のほうは仕様を書いてるとこが見つかりませんでした。
686 :
デフォルトの名無しさん :2010/06/26(土) 19:13:21
V V (´・ω・`) うさちゃんピース
689 :
デフォルトの名無しさん :2010/06/29(火) 18:17:19
>>687 それは将棋サーバーのプロトコル
探してたのはCSA将棋の本体と思考プログラム間のプロトコル
CSA将棋のダウンロードファイルの中にテキストが有ったので解決しますた
なんかずっと規制中なので(永久規制に突入するかもらしい・・・)
ネットカフェからカキコ
キーボードがムニョ〜ンとしてる・・・・・
誰かジュースこぼしやがったな・・・
こっちのキーボードはポゲムタビニョーンとしてる
USBポートは大抵開いているから、キーボードを持ち歩いたらどうよ。あ、マウスもか。
将棋棋戦でさ、「この局面は○○局あり〜」とかあるけど、 ああいうのはどういう風にDBに登録してるか分かる人いる? 普通に、一手一手レコードで入れてたらかなり重くなると思うんだけど。 一局の記譜を一つのレコードにして入れてるんかな? としたら「手順前後の同一局面は○○局」とか、「さらに端歩を突いた形は○○局」とか 検索すんの大変だと思うんだけど。 データベース板いったけど将棋スレがなかった。 スレチだったら該当板を教えてくりゃれ。
ふつうに1局面1レコードだと思う。 だってデータベースってのは何万レコードぐらいは扱えるの普通だし。 対人戦の話題で荒れ気味だけど、将棋チェス板のコンピュータ将棋スレで聞くといいかも。
>>692 常識的には普通、インデックスを張るわな。
各局面recordにunique id(連番だと思いねぇ)を振ってあるとして、
・11に先手の銀がいる局面のrecord idの集合
・11に先手の金がいる局面のrecord idの集合
・11に先手の角がいる局面のrecord idの集合
…(中略)
・99に後手の王がいる局面のrecord idの集合
みたいなものを別途持っておくってことな。
続き。 11に先手の銀が居て、99に後手の玉がいることがわかっているなら、上の ・11に先手の銀がいる局面のrecord idの集合 ・99に後手の王がいる局面のrecord idの集合 の交差をとるわけ。局面数が少ないならそれぞれをメモリにまるごと読み込んでもいいけど、 局面数が多いなら、record idがsortされているならそれぞれの先頭から少しずつ読み込んでって merge sortのようなことをすればいいよな。 3駒以上でも同様。もう少し手のこんだことをすれば速くなるだろうけども、プロ棋士の将棋の棋譜限定なら record数は1000万は越えないだろうから上のようにやるぐらいでもそこそこの速度が出るんじゃね? 棋泉とかどうやってるかは知らね。誰かもう少しいい方法があるなら教えとくれ。
>>693-695 ありがとう。
まず一手指す
→その局面の全駒配置を1レコードにして保存。
→その局面の各駒の該当unique idをレコードに関連つけて保存。
また一手指す
→その局面の全駒配置を1レコードにして保存。
→その局面の各駒の該当unique idをレコードに関連つけて保存。
ということだろうか。
RDBに書き下すのって難しいな。
コンピュータ将棋スレも覗いて見ます。
よい方法あったらまた教えとくれ。
>>696 > ということだろうか。
うん。
> RDBに書き下すのって難しいな。
難しいか?
table 局面INDEX {
・盤面上の位置(11〜99と手駒の位置)
・駒ID
・局面id
}
こういうtable用意して、たとえば、33に先手の桂がいて、55に後手の角がいる局面を持ってきたければ
このtableのなかから、{ 盤面上の位置=33 , 駒ID = 先手の桂 } であるレコード集合と
{ 盤面上の位置=55 , 駒ID = 後手の角 } であるレコード集合の交差をとるだけだ。
SQLならサブクエリで書けるだろ。ただ、この手のサブクエリを高速に実行できるDBエンジンはなかなか無くて
たいていはひどいパフォーマンスになるんだけどな。まあ自分で実装するならそんな心配ないよな?
そういうの売ってないの? 買った方が速いとか野暮なこと考えちゃった
>>698 「そういうの」ってなんのことだろう?
棋泉というソフト(フリーソフト)なら
「33に先手の桂がいて、55に後手の角がいる局面」を探したければ、
「33に先手の桂、55に後手の角」を配置すれば即座にDB上に何局面あるか表示してくれる。
それで事足りるならそれを使えばいいだろう。
>>692 の質問者は、コンピュータ将棋の何かを自作するためにその部分のデータ構造を
どうすればいいのかという質問をしているのかと俺は思ったので、
>>694-695 のように俺は回答した。
また、こういうのを高速に検索できる将棋の棋譜専用のDBエンジンがあるのかという質問なら、
「ない」と俺は答える。そんなニッチで金にならない商品なんて誰も作らんだろう。
趣味か研究で作ったものを無料で公開する人ならいるかも知れないが、将棋の棋譜専用のDBエンジンは
俺は知らん。あるなら俺が教えて欲しい。
692に期待
>
>>692 の質問者は、コンピュータ将棋の何かを自作するためにその部分のデータ構造を
>どうすればいいのかという質問をしているのかと俺は思ったので、
>>694-695 のように俺は回答した。
ずばりそのとおり。
将棋の棋譜の、ifの検討の部分、もしこう指してたら〜・・・ってのを再生できるソフトを作りたい。
基本は、棋譜の一本道なんだけど、それぞれの手から枝葉が伸びるので、指し手のデータはツリー上になる。
これをどうDBに入れて管理するかを考えてる。
まずは一本道の棋譜をどうやって拡張性を持たせてRDBに格納するか、で思案中。
>>701 > まずは一本道の棋譜をどうやって拡張性を持たせてRDBに格納するか、で思案中。
俺は指し手だけでなく、局面そのものもDB上に格納しとけばいいと思うけどね。
どうせ棋譜なんて100万局分あったとしても1局面100バイト程度。平均100手として
1M局×100B×100手 = 10GBでしかない。いまどきのHDDなら余裕すぎるだろ。
DBの容量がもったいないなら前の局面からの指し手だけ保持して局面そのものが欲しい場合は、
そのtreeを根元まで辿ってそこから現局面までの指し手を順番に適用して現局面を得る方法も
あるけどな。それでもいいんじゃネーノ。
そんな難しいことしなくても棋譜なんかたかだか10万個程度だし、 全部ベタに保存しといて、検索時には全部再生してifで判定してるだけだよ。 同一局面のチェックだけならハッシュ関数を使えば高速。
>>703 > 全部ベタに保存しといて、検索時には全部再生してifで判定してるだけだよ。
将棋倶楽部24の24万局集とかマージしてると100万局にはなるだろうけどな。
100万局だと
>>702 に書いたように10GBあって、メモリを2GB程度しか載せてない
パソコンだとメモリに収まらないし、HDDにアクセスしに行って全部舐めてたら数分〜10数分かかるだろうな。
それで使い物になると思うならそれでもいいがな。
棋泉のフォーマットは1手2バイトで、1棋譜512バイトしか使ってないよ。
100万棋譜としても488MB。実際は半分以下にできるだろうけど。
それに
>>692 のような事をやりたい人はたぶん、プロの棋譜だけで
24万局集に入ってる弱い人の棋譜はいらないだろう。
>>705 棋泉は初手から全部makeMoveして行く実装なのかな?
まあ、全部の棋譜をまるごとメモリに読み込むならそれでもいいだろうね。
>>692 はコンピュータ将棋の思考ルーチンとか学習ルーチンとかで使う、
もう少し良好なレスポンスが必要な実装を必要としている気がしなくもないのだが。
>>704 >>HDDにアクセスしに行って全部舐めてたら数分〜10数分かかるだろうな。
いくらなんでも端から全部なめるようなアホな実装するやつは居ないだろw
そんなことはどうでもいいから Codepadの棋譜版、Kifupad作って将棋板住民が使えるようにしてくれ。
710 :
701 :2010/08/03(火) 07:10:19
いろいろレスサンクス。 とりあえず、空き時間を利用して、RDBに登録するコード書き始めた。 RDBへの持たせ方はとりあえずいいとして、 棋譜を再現するときに、棋譜はツリー上にどんどんひろがって行くから、 初手 →二手目その1 →三手目その1 →四手目その1 →四手目その2 →二手目その2 →三手目その1 →四手目その1 →四手目その2 →三手目その2 →四手目その1 みたいな感じで、どんどん広がっていくんだけど、 これをどうやってデータ構造に持たせるかで思案中。
711 :
701 :2010/08/03(火) 07:12:25
間違えて送信しちった。 データ構造とアルゴリズム、あたりでも久々に読み返してみようかなぁ。 とりあえずは、RDBに登録するコードだけ書いてる。 読み出して活用するコードはまだまだ先のお話。 いろいろ助言サンクス。 参考になったぜ。
そもそもRDB向きじゃないという話はありそうだな。 棋泉はともかく柿木はどうしてるんだろう。
>>710 > これをどうやってデータ構造に持たせるかで思案中。
どうやっても何も↓みたいなtableひとつあればいいだけだと思うんだが。
table {
(現在の)局面ID
指し手
(↑の指し手が現在の局面に適用されたあとの)局面ID
}
.| .| ∩___∩ | | ノ\ ,_ ヽ .| / ●゛ ● | .J | ∪ ( _●_) ミ 彡、 |∪| | / ∩ノ ⊃ ヽ ( \ / _ノ | | \ " / | | \ / ̄ ̄ ̄ /
>>714-715 いや、本気だけど
RDB上は
>>713 のtableが一つあればいいだけだし
それをメモリ上にdeployするなら
struct 局面Node
{
局面ID id;
List<指し手> move;
}
ぐらいでいいんじゃネーノ?何か問題あるの?
書き間違えた。局面IDと局面Nodeとごっちゃに書いてしまった struct 局面Node { List<pair<指し手,局面Node> > moves; } こうか? struct 局面Node { 局面まるごと board; List<pair<指し手,局面Node> > moves; } こうなってるほうが使いやすいか?
動的な(要素数可変な)リストの動的なリスト、とか 動的な木構造の動的なリスト、とか、動的集合の多段や再帰はそのままの形ではRDB上で表現しないが吉 (関係演算が固定回数で済まなくなる等、一筋縄でいかなくなる。) つかRDBに入れるといいつつstructで説明しようとするあたり大丈夫なのか、
>>718 > 動的集合の多段
日本語でおk
> (関係演算が固定回数で済まなくなる等、一筋縄でいかなくなる。)
棋譜に対してどんな関係演算をしたいって言うんだ?
現在の局面とぴったり一致する局面を引っ張ってこれて、それに対する定跡の指し手のリストが得られればそれでいいという話ではないのか?
部分一致している局面集合を得たいならメモリ上において全検索しろってことじゃなかったのか?
それとも部分一致している局面集合を一発でRDBから取ってこれるようなデータ構造を要求してんのか?
お前の話の前提がわからん。お前が何がしたいのか、何を目的とするのかを書かずに「〜しないが吉」とか言われてもな。
>>719 >動的集合の多段
動的集合を要素とする動的集合の意(動的集合は一般用語でなく、Ad-Hocな造語めいたものなので>718内で説明しておいた)
>棋譜に対してどんな関係演算をしたいって言うんだ?
RDBの文脈で関係演算といえば関係代数の演算しかない(と受け取って貰えるつもりで書いた)
つまりSELECTとか、JOINとか、WHERE句による絞り込みとかいったRDBに対して行う検索操作そのもの
>現在の局面とぴったり一致する局面を引っ張ってこれて、それに対する定跡の指し手のリストが得られればそれでいいという話ではないのか
確かに、元レスの>692の目的は(リストと木構造の違いを除き)そうだと思うが、
定跡の指し手のリストをリスト構造のままRDBに格納するのは厳しい、という話
>部分一致している局面集合を得たいならメモリ上において全検索しろってことじゃなかったのか?
>それとも部分一致している局面集合を一発でRDBから取ってこれるようなデータ構造を要求してんのか?
部分一致、という話は出ていないハズ。>701において「ifの検討の部分(中略)ってのを再生できるソフトを作りたい」というのは
思うに目的は、ある対局でn手目に現れた局面p_nに対して、その対局ではp_(n+1)で指されたわけだが
他の対局ではどう指された実績があるのか?(←ifの検討)をRDBで実現したい、の意だと思う
721 :
720 :2010/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 :2010/08/21(土) 19:58:48
ああすまん、落ち着いて読んだら >現在の局面とぴったり一致する局面を引っ張ってこれて、それに対する定跡の指し手のリストが得られればそれでいいという話ではないのか (>719) これは>692の目的と違うよ!全然違う 多分こっちね↓ >ある対局でn手目に現れた局面p_nに対して、その対局ではp_(n+1)で指されたわけだが >他の対局ではどう指された実績があるのか?(←ifの検討)をRDBで実現したい、の意だと思う (>720) この目的での検索性のためには、検索対象データは「指し手のリスト」ではなく、「局面のリスト」として格納されていなければならない だがRDB上ではリスト(や木構造)をストレートに表現しても良いことがない(>721に述べた理由で) だから、この場合も、RDBは集合を得るのに使い、オンメモリでリストなり木構造に構成する、というのが多分正解 部分一致の検索をも目的とするなら>721の第2パラグラフ以下で述べた様にすればいいし、 完全一致しか興味がないなら上で誰かが言っているようにハッシュ値で格納しとけばいい
>>720 > 定跡の指し手のリストをリスト構造のままRDBに格納するのは厳しい、という話
リスト構造ってどれのことを言ってるんだ?
ひょっとして
>>717 で俺が書いたListをリスト構造だと思ったのか?これは言語はC#風の擬似言語だ。
Listと書いてあるのは単なる配列だと思っとくれ。
「配列構造のままRDBに格納するのは厳しい」に対しては間違いだ。
C# + SQL ServerならBinaryFormatterでserializeしてvarcharに突っ込むだけだ。
次の局面に遷移するための指し手に対して条件絞ったりしないだろうから、それで問題ないだろう。
>>721 > Microsoft SQL Serverのようにレコードサイズに制限があり、
お前は一体いつの話をしているんだ。SQL Server 2008でvarchar(max)を使ったら
実質的にサイズ制限は無いに等しいんだが。
お前のなかではSQL Server 2008はSQL Serverでは無いのか?
>>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 のようにしてるというのにお前ときたら馬鹿のくせに余計な知識をひけらかしにきやがって。
>>722 > 完全一致しか興味がないなら上で誰かが言っているようにハッシュ値で格納しとけばいい
これも間違い。部分一致を調べたいときはメモリに丸読み(メモリに入りきらない場合は
実際は一定レコード数ごとに読み込む)して一つずつ調べるんだよ。そのときにハッシュ値しか
格納されてなかったら部分一致を調べられないじゃないか。だから
>>717 がベストなんだよ。
728 :
デフォルトの名無しさん :2010/08/22(日) 01:01:23
↑話を理解してない馬鹿
730 :
デフォルトの名無しさん :2010/08/22(日) 01:29:12
↑馬鹿
うんこすれ
732 :
720 :2010/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でもこの点は変わらない)
ttp://www.atmarkit.co.jp/fdb/rensai/drk01/drk01_2.html >AND条件をいろいろ書いてqueryかけた場合のパフォーマンスは恐ろしく悪いぞ。(>726)
総レコード数Nとして、
インデックスを張らずにn列のANDをとれば、SELECTの時間計算量は 線形探索*n回=O(N*n)
インデックスを張れば、O((N*log(N))*n)ぐらいが期待できる
n列の条件演算でn倍という部分自体にはキャッシングぐらいしか向上の余地がない
オンメモリにすれば高速化し得るというのは、上記インデクシングのメカニズムまで自前で実装すればの話
ところでRDBも検索性能命であるからして検索処理をオンメモリで実行しているのを>717=719はご存じだろうか?
(上記URLから辿れ)
>>727 RDBがやるんだヨ
>>732 > インデックスを張らずにn列のANDをとれば、SELECTの時間計算量は 線形探索*n回=O(N*n)
> インデックスを張れば、O((N*log(N))*n)ぐらいが期待できる
で、それが速いとでも思ってんの?頭おかしいとしか言いようがない。
普通に全レコードをメモリにとってきてすべて検索するほうがよっぽど速いんだよ。
だからお前が言ってることは全くの空論。何の役にも立たないわけだよ。
> レコードサイズを超える格納は、特定の型を使えば可能だがパフォーマンスへの影響がある パフォーマンスへの影響って具体的にどういう条件で影響があると思ってんの? そもそもそのvarchar(MAX)の部分をキーにして検索するわけでもないから、 別のページに格納されてようが、そこからデータを取得するときにオーバーヘッドがあるだけだぞ。 俺はvarchar(MAX)に格納しろと言ったのは、その曲面における定跡の指し手をserializeして 格納しろって言ったわけで、指し手をキーとして検索することは無いんだから、何も遅くならんよ。
×曲面 ○局面 typoした。ごめん。
736 :
720 :2010/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 :2010/08/28(土) 19:11:18
ちと補足(つか訂正と言った方がいいかな(汗 >n列の条件演算でn倍という部分自体にはキャッシングぐらいしか向上の余地がない (>732) これは一般論としてはそうだが、特定条件ではそうでもない >721で述べたクエリのように、n列のANDで検索をかける場合、メモリ上に展開されるべきレコードの集合が 列1の検索条件で絞られ、列2の検索条件でさらに絞られ…という単調減少を示すから、n倍より速くなる また、メモリにロードされるべきレコードの総数は、列1の検索条件で絞られた件数が上限となる 故にHDDからレコードを持ってくるI/O時間についても得をする 訂正とはいいつつ、これはますます >普通に全レコードをメモリにとってきてすべて検索するほうがよっぽど速いんだよ。 (>733) の否定材料になるわけだが
>>736 > n列の条件演算でn倍という部分自体にはキャッシングぐらいしか向上の余地がない (>732)
> を読み落としている件について
読み落としてないよ。インデックスを張って、
> インデックスを張れば、O((N*log(N))*n)ぐらいが期待できる
なんだろ?その時間を実際に測定してみなよ。遅すぎると言ってんの。
> インデックスが張られていればRDBが有利(Nレコードの中の一部をとってくるだけで済み、I/O時間がN*log(N)に比例)
> なんでメモリにとってきて検索したら速くなると言い切れるの??
そもそもあんたは何故それが遅いのかわかってないだろ。
DBがどういう実装になってるかちっともわかってないじゃん。
繰り返しになるけど、そんなにDB初心者なのだったら
その時間を実際に測定してみなよ。遅すぎると言ってんの。
>>736 > 指し手のみRDBに格納、なんて言ってること一つとっても驚嘆もの
俺、そんなこと言ってないじゃん。俺の実装なら最初から
>>717 にあるじゃん。
局面まるごとがちゃんとstructの中にあるじゃん。
どこに指し手のみRDBに格納されているように見えるの?
俺は指し手は(C#の)Listで持って、これserializeしてvarchar(MAX)に突っ込んどけって言ってんの。
で、部分一致局面を高速に調べたいなら、この局面まるごとなんかRDBには保存せずに
初期局面とあとはそこからの指し手だけの集合のほうが遥かに速いだろうし、俺はそうする。
>>737 > >721で述べたクエリのように、n列のANDで検索をかける場合、メモリ上に展開されるべきレコードの集合が
> 列1の検索条件で絞られ、列2の検索条件でさらに絞られ…という単調減少を示すから
そんな馬鹿な実装になっているDBがどこにあんの?
あんたの脳内にある馬鹿な実装してあるDBの話をされてもな。
結局、あんたはSQL queryのANDがそれぞれのDBでどういう実装になっているのか それすら全然理解してないじゃん。だからqueryでANDでやればあとはRDBがなんとかしてくれる だとか妄言じみたことを言うわけじゃん。そんだけ馬鹿なんだったいちいちしゃしゃり出てこなくていいのに。 素直にDB初心者スレを10年ぐらいROMってればいいレベルなのに。本当迷惑だな。
741 :
デフォルトの名無しさん :2010/09/15(水) 23:45:17
実際にコード書いて比べてみりゃいいんじゃね
理屈こねるより選手権で優勝してしまうほうが楽なんじゃね?
>>740 ここはあんたの日記帳じゃないぞ。
きっちり「実装して」成果が出てから書き込んでね。
745 :
偽物? ◆HxwXMuc5Pw :2010/10/04(月) 22:25:49
キターっ ってかw
>>744 終わってる話にSQL超初心者のくせにしゃしゃり出てきて間違いだらけのことを書いて行ったのは
>>720 だろ。
>>717 は最初から何も間違っちゃいないよ。
だからさ、そんなに正しくて有望な手法なら、さっさと実装すりゃいいのにっつってんだよボケが。
実装していない時点で
>>720 も
>>717 も同じ。
単なる妄想癖のあるパンピーだろうが。
717==746必至だなw RDBついて論破したから、自分の考えたアルゴリズムの先進性も証明されたと思ってる? その二つは全然別ですから。
勝負の世界じゃあ、実際には間違ってても勝ったほうの言い分が正しいことになるのだ だから勝て、話はそれからだ
750 :
デフォルトの名無しさん :2010/10/05(火) 00:38:15
必至なのはお前
>>747 > だからさ、そんなに正しくて有望な手法なら、さっさと実装すりゃいいのにっつってんだよボケが。
君は、よほど馬鹿なんだね。
>>720 がRDB超初心者だってことすらわからないんだね。
>>748 先進的なアルゴリズムなんて
>>717 は書いてないのにそれすらわからないんだね。
君はどうしようもない馬鹿なんだね。
森岡@GA将棋!って偽物だろ 本人なら、森岡@GA将!!!!!なんじゃね?
>>751 >普通に全レコードをメモリにとってきてすべて検索するほうがよっぽど速いんだよ。
ここら辺、
>>717 は従来手法より優れてるって思ってるんじゃね?
それを「先進的」って言うんだよ。
本当にそうならね。
>君は、よほど馬鹿なんだね。
>>720 がRDB超初心者だってことすらわからないんだね。
「720がRDB超初心者」と「717の言ってることが正しい」は全く別問題。
一方が真だと分かっても、もう一方がどうかは全く不明。
この理屈、理解できる?
てか、
>>749 が全てじゃね?
「強いソフト作った者=正しい」。シンプルでいいじゃないか。
755 :
デフォルトの名無しさん :2010/10/05(火) 07:47:49
いい加減実りのある議論したらどうだ、お前ら。
つwよwいwかwらwたwだwしwいw
そりゃそうだ。 一二三九段が弱かったら只の変質者だ。
んまい
759 :
デフォルトの名無しさん :2010/10/05(火) 12:14:46
>>753 >>普通に全レコードをメモリにとってきてすべて検索するほうがよっぽど速いんだよ。
> ここら辺、
>>717 は従来手法より優れてるって思ってるんじゃね?
RDB使うより「よっぽど速い」って書いてあるだけじゃん。
そりゃ
>>720 のような馬鹿な設計するよりはよっぽど速いに決まってるじゃん。
それすらわかんないの?
君は20万棋譜メモリに全部置いて部分一致検索する時間が
だいたいどれくらいになるかもわかんないの?
そりゃ重症だよ。本当にプログラマなの?そんな馬鹿で生きてて楽しいの?
ハイハイ717様は天才ですねー
762 :
ながと ◆32ZI32xxZI :2010/10/05(火) 15:12:42
置換表の話? チェスのstockfishだと、2^nのエントリを作り、局面から作られる64ビットのキー値でアクセスする。 2^nのエントリなら、キー値の下位nビットでアクセス。1つのエントリに4つまで、局面を格納できて、 上位のキー値が一致しているものを拾ってくる。 数百メガバイトの大きな置換表のエントリを拾うのは時間がかかるが、プリフェッチ命令というのを使って、 あらかじめL1/L2キャッシュにロードしておくから速いらしい。
>>762 置換表の話は誰もしていないよ。
どうやれば棋譜から部分一致している局面を高速に見つけられるかという話。
例えば68飛、66歩である棋譜を高速に引っ張ってくるだとか。
棋泉だとそういうこと出来るよね。
それをRDB使えばRDBの集合演算が使えるので高速に出来るという
SQL超初心者の基地外
>>720 が現れて話がおかしくなったわけ。
それでその話は
>>738-740 でもう終わってるのに、その終わった話を内容も理解せずに
2ヶ月もしてから蒸し返す
>>747 のような基地外が現れたわけ。しかもこの基地外は
森岡さんの名前を騙ってやがるんだよ。
764 :
デフォルトの名無しさん :2010/10/08(金) 01:24:47
実装できた?
717君は、もうとっくに692も720もいないのにスレ違いの事に粘着して 延々喚き続けてる自分が「基地外」だと理解できないのかな? しかし、こっちはあからの話題がまったくでてないんだな……。
-------------------------ここから次の話題-------------------------
768 :
デフォルトの名無しさん :2010/10/09(土) 01:31:24
合議制がよほど変なふうに働かない限り、あからが史上最強の将棋マシンなのかな その割にはfloodgateで結構負けてるけど……
素人目には合議制をうまく活かすのは結構難しい気がするんだが…… 例えば、どれか1個の思考エンジンが巧妙な手を見つけても 他のエンジンが見つけられなければ、結局それらが提案する (平凡な)手の中に埋もれてしまって表に出てこないよね? 思考エンジンを増やせば増やすほどそういう傾向が強まるわけで、 妙手を打てなくなる方向にしか行かない気がするんだけど……
いや、でもそのかわり失着もなくなる方向になるわけで
772 :
デフォルトの名無しさん :2010/10/11(月) 09:36:26
良く分からんが、見つけた妙手については、 他の思考エンジンに通常よりも少し深読みさせれば、 却下させる率を下げられんのかね。
合議制はエヴァオタの趣味だろw
スペースシャトルのコンピュータとか、もっと古くからある。
コンピュータ同士の対戦で一番強かったからといって プロ相手に強いとは限らない。 と、二位以下の作者がごねてWC日韓共同開催的な結論に落ち着いたのだろう。
よくわからないですけど、将棋界はコンピューターに負けるのを恐れて戦わないんですか?
>>778 昔、大口たたいたのが居て、引っ込みがつかなくなってるんじゃにない?
>>778 そう思ってる人も多いし
どうせ負けるのは時間の問題だから小出しにして
せいぜい話題を集めようとしてるんだろうと裏読みする人もいる
結局真相は外からじゃ分からないよ
なんにしろ羽生7冠以来のでかいネタであるのは間違いない
>なんにしろ羽生7冠以来のでかいネタであるのは間違いない 人間棋士がコンピュータに圧勝という状況が続くなら将棋連盟にとって収益的に悪い話ではないが、 やってみて実はそうでなかった、となると怖い 人間弱しということで将棋自体への世間の関心が低下すれば、タイトル戦の提供元がいなくなる 関心が高まったとしても、コンピュータが強くて将棋連盟にお金が入る道理はちょっと見あたらない
重量級のコンピューター構成でやっと勝てた、というくらいだから、 人間様のほうがパフォーマンスがいいと思うんですが、それでも将棋界には不利ですか‥‥‥。
783 :
デフォルトの名無しさん :2010/10/17(日) 01:58:43
>>781 先行例のオセロやチェスでそのようなことが起きていますか?
将棋でだけそのようなことが起きる道理があるのですか?
>>784 オセロやチェスで人間v.s.コンピュータの大会を開催して収益を上げる団体が存在しますか?
一流プレイヤーを育成し、雇い、それらの参戦大会を一元的に仕切る包括的な団体が将棋以外に存在しますか?
788 :
デフォルトの名無しさん :2010/10/18(月) 20:36:43
↑話の流れがわかってない馬鹿
馬鹿とオタクと田舎者はネットすんな
いや、それネットの主要利用者層だろ
田舎者にとっちゃぁネットの情報って貴重だしな。
そういや10年前に衝撃の話を聞いた 「田舎ではネットやってるだけでオタク扱い」 今でもそうなの?
20年前はパソコンやってるだけでオタク扱いだったけどな
しかしレヴェルの低いスレだな
お前らは顔見るだけでオタク扱いされるだろ
それはお前だけ
次の女流棋士との対戦は来年?
早くとも半年後らしいから、来年なんじゃね?
次は誰が対戦すんの?
未来の名人戦は、SFに出てくるロボット闘技場みたいなイメージなのかな
コマが3D化して戦う!
803 :
デフォルトの名無しさん :2010/10/25(月) 03:32:10
804 :
デフォルトの名無しさん :2010/10/26(火) 09:25:18
ゆくゆくは将棋のA級棋士はみんなコンピューターになるんじゃない? コンピューターに弟子入りする棋士もいるかもしれない。
805 :
デフォルトの名無しさん :2010/10/26(火) 10:00:09
いるわけない コンピュータの手筋を解釈するのが上手い奴に弟子入りすることはありえるけど
ソフトの進化とスレの荒廃が両極端だな
807 :
デフォルトの名無しさん :2010/10/26(火) 20:18:58
私の将棋師匠は「れさぴょん」です!!
ボナメソを試してみたいのですがどうすればいいですか? 論文読んだけどさっぱり分かりません。
809 :
デフォルトの名無しさん :2010/11/01(月) 22:00:27
論文を理解すればいいよ
ソフトの進化とスレの荒廃が両極端だな
さいきんはプログラム板的に面白い話題が無いからな
813 :
デフォルトの名無しさん :2010/11/15(月) 10:57:45
羽生さんが言うには、人間は省くことで強くなって行くらしい。 コンピュータは、何手先まで計算出来るかとか膨大な累積で成り立つだろうから 根本的に違うよなぁ チェスは定石が3〜4個くらいしかないらしいから14〜15手まで読めてたけどね ディープブルーだっけ? 将棋の定石は倍以上ありそうだからかなりキツイんだと思う
枝刈りはコンピュータもやってたよ 局面単位のパターン認識が人の強みなんだよな
ディープブルーと世界チャンピオンの対戦観てたけど 途中でビショップとナイトの駒の重み変えてたりしてたよね 結構昔の話だし、今のコンピュータスペックなら20手くらい読めそうだから もうチェスはムリポなのかもな んでもって日本でチェス強いのも羽生さんだっけw
Floodgateのサーバーが送りつけてくる対局条件のうち、時間計測に関するところを見ると
Time_Unit:1sec
Total_Time:1500
Byoyomi:0
Least_Time_Per_Move:1
となってるんだけど(→例:
http://shogi-server.sourceforge.jp/protocol.html )
Byoyomi:0ってどういう意味なんだぜ?
試行時間が0 secを超えたら時間切れ??
(1手あたりの時間制限を設けない場合はByoyomi:フィールドの省略が正しいはず→CSAサーバ プロトコル ver.1.1.3)
floodgateの対局条件は「15分切れ負け」ですが、「切れ負け」の部分の表現にByoyomiを使ってる…のかも。 開発者の人がCSAサーバプロトコルを誤解している可能性もあるので、一度連絡されてみては?
>>819 あ、おれもそう思ってたw
規定読んでみると、どういう使い方するのか明記されてないっすね
To_Move:も+しか返してこないから、途中から観戦するときに手番がこけてハマったし
SFICPでローカルに対局させると強弱はともかくそこそこ妥当な指し方をするのに floodgateに投入すると自殺手を放つ(最初に見つけた手を即座に指す)原因がこれだった件について
Byoyomiという命名からしてTotal_Timeを使い切った後に意味を持つフィールドらしいという想像ならつくわけだが あくまで想像 単独の'+'や'-'は多分、初期配置(一括表現や駒別単独表現)の直後に現れた場合は それぞれ「下手が先手」、「上手が先手」と解釈すべきなのではないかという気がする 初期配置の直後以外の場所に現れた'+'や'-'の解釈は想像するだに恐ろしいが規約上は明白には禁じられていない 直前の指し手の手番やTo_Move:と矛盾してたりしたらどうすればいいいんだろ;
>>822 >>初期配置の直後以外の場所に現れた'+'や'-'の解釈は想像するだに恐ろしいが規約上は明白には禁じられていない
>>直前の指し手の手番やTo_Move:と矛盾してたりしたらどうすればいいいんだろ;
BEGIN PositionとEND Positionの外側で単独の+−が出てきたら無視すればよし
というか、サーバーがバグってなけりゃ,そこにしか出てこないっしょ
本来の手番と矛盾したら?
そりゃサーバーのバグだろうから直してね攻撃だw
To_Move:は現状+しか見たこと無い
観戦時にその盤面に対しての手番が入ってるのを期待したが、ちがったようだ
対局開始直後の手番ということなので仕様なんだろうけど
解釈が違うような気はする
自己解決しますた ようわからんが、右クリック「ソースの表示」でソースを表示したものを 拡張子.htmでローカルに保存すると、それは問題無く読める charsetは問題になっているそのものずばり"iso-2022-jp"(本当は全部大文字であるべき) なんでローカルに開くか否かで現象が変わるのかは不明
826 :
fku :2010/12/25(土) 06:48:10
ボナンザのbook.bin,hash.bin.fv.binを書き換えたいのですが 良い方法を教えてください。一生懸命説明を読んだのですが、理解出来ません。 よろしくお願いします
大風呂敷ひろげてた屋根裏は案の定ろくなもん出来なくて ボナンザのケツ舐めてるだけみたいだな
大丈夫だよ
830 :
fku :2010/12/29(水) 03:10:08
>>827 あなたがソースプログラムが読めないのはよーく分かったが。誰が解説してくれるのだい?
>>830 恐らくボナンザのソースを理解する必要があります。
つまり、あなたに良い方法はありません。
832 :
fku :2010/12/29(水) 06:53:59
>>832 以前、似たようなスレが将棋版にあったが
教えて君の建てたスレが盛り上がるはずもなく…DAT落ちした。
プログラム板にもあったが 教えてクレばかりで機能してなかったな ネット初心者は自分でなんとかしようとせず 人に頼ってばかり
>>833 今回もプログラムの書けない教えて君がスレ建ててるみたいだし速攻DAT落ちだな
836 :
デフォルトの名無しさん :2011/01/27(木) 22:53:24
最近ニコニコで対局を見てたんだが、終盤戦の詰みかどうかの判断はコンピュータの得意分野の気がする 100手詰みとか瞬時に見つけられたら強そう 詰みか 詰みなら詰める 詰まないなら字玉は詰みそうか詰みそうなら 受ける 詰めろがかけられるか コマがなにかあれば詰められるか Etc. 中盤はよく分からないけど、優勢劣勢を点数化して、大手飛車20点、駒得10点、成り10点とか よい点数を稼ぐアルゴリズムでさせばよいんじゃないかとか思った
中盤のアルゴリズムは評価関数とかアルファベータ探索とかでググってみそ
>>838 15年前からタイムスリップしてきた方?
いやいや35年前でしょう
終局までランダムに売って一番勝った組み合わせが多い手を打てばいいんじゃね?
それが最近の流行だな
あからの合議制で、地デジの紅白歌合戦みたいに観客が最善手を投票する機能を用意すれば面白そう たまにキャスティングボートを握れるくらいの議決権で
最近趣味で将棋ソフトを書き始めたんですけど、 LS3600って人が提唱していた差分指し手生成は結局有効なんでしょうか? 誰か他の人が実装に成功したとかいう話を一切見つけられないんですが…
>>845 そんな神がかった高速化に腐心するより、まずは将棋ソフトを完成させることを念頭においたほうがいいと思うよ。
それはそうなんですけど… 神がかったってことは、あの差分生成の話は嘘やハッタリではなく本当なんですか? 性能は最大で2.4M回とからしいですが
>>850 2009-11-22のブログ参照。
差分でなく、普通に生成して毎秒1コアで3M回、8コアなら24M回
>>847 「大会用マシンで」って、少なくとも去年は実際には出てないし、
コンパイラの最適化etcも皮算用に過ぎない。
序盤の局面と持ち駒ありの局面を混同して語ってるようにも見える。
それに、仮に持ち駒4種の局面で全生成して、2.8GHz定格の1コアで1秒あたり3〜6M回ってのが真実だとしても、
差分生成がそれより速いのか、そして誰か追試した人がいたのかという
>>845 の質問への答えにはなってないのでは
ハッタリだった場合に追試でそれを反証するのは不可能に近い
>>852 > 序盤の局面と持ち駒ありの局面を混同して語ってるようにも見える。
局面は指定されてるよ。
指し手生成祭り で検索。
>>853 やっぱりそうですか。実はそれは知っていました。
その指定された局面で後手の持ち駒が4種だったから5行目に4種って書いたんです。
まあ、他の誰も追試or採用してないならいいんですけどね。
本人も3工程あるうちの工程1と3の速度しか(それも何故か別々にしか)発表してないようですし、
初期局面付近での指し手を普通に(プロファイラとか使わずに)全生成したら400サイクル程度を要するとして、
例え工程2が10サイクルで完了してもせいぜい1.6倍ですし
>>854 追試がしたいなら両方作って自分でやるしかない
指し手生成祭でもLS3600以外はボナにも追いつけていない
検証するにも通常生成の結果がいる
>>855 まあ、ボナはソースが公開されているわけで、他の人が
ボナにも追いつけてないのはプログラマ的には技量不足なんだろうけど、
トッププログラマばかりがコンピュータ将棋の開発に取り組んでるわけでもないしな・・
>>855 なるほど。追試されてないのは、LS3600さんを除く誰もが差分生成のやりかたを理解できておらず、
追試したくても出来ないからだってことですか。それは想定外でした。
11/28日時点のLS3600さんの予想では、
上手く実装できた場合の初期局面付近の生成速度が〜8M回/秒、つまり350サイクル程度とのことですが、
確かに他のプログラムの生成速度を見ると可能性はありますね。
とはいえ、そもそもnpsと強さにそれほど関係がないのはあからの合議ログからも明らかですし、
>>846 さんの言う通り、ソフトの完成を優先するべきなんでしょうね
>>857 > とはいえ、そもそもnpsと強さにそれほど関係がないのはあからの合議ログからも明らかですし、
いや、全く同じ思考エンジンなら単純に倍速になるならR70〜150ぐらいはあがるんじゃないの。
>>858 倍速になれば確かにそうですが、例えばGPS将棋の指し手生成速度を極限まで上げてもnpsは全然上がらないのでは?
GPS将棋を律速しているのは恐らく評価関数でしょうから。
あから以外で言えば習甦なんかも、評価関数にニューラルネットを使っていることから同様な気がします。
それに、探索深さを変えての同種対戦でR150しか差がつかない(単純に考えれば全勝に近いかと思いますが)というのも、
深さだけでなく評価の精度も重要であることや、ついでに言えば多数決合議の有用性も暗に示しているように思います。
まあ、合議制は計算資源を分け合うので一長一短でしょうけど…
>>859 > GPS将棋を律速しているのは恐らく評価関数でしょうから。
そんな推測で語るなよ。きちんとプロファイルしなよ。
>>857 追試したいかどうかは知らん
優先度は人それぞれだし、指し手生成が究極ゼロ秒に出来たとしてもホットスポットが別にあって効果が見込めないかもしれない
コードを複雑にするよりもシンプルさを維持したい人もいる
だいたい手の生成なんて全体から見たら僅かな処理量だろ ハッシュ→キラーでかなり枝狩される
>>862 > だいたい手の生成なんて全体から見たら僅かな処理量だろ
BonanzaなりGPSなりをプロファイラで調べてから語ろうね。
>>863 がBonanzaなりGPSなりのプロファイルの結果を貼ればいいんじゃないの?
それが一番説得力があるし、既にプロファイルとってあると受け取れる書き込み内容だし。
>>864 862だが、ボナは評価関数が75%を占める
>>865 bonasseではその何%になるだろう?
>>866 865じゃないけど、1.5倍速だから最低でも62%以上
GPSの開発者がボナのソースを読んでることから、もうプロファイルするまでもないだろ
プロファイル結果があるなら見たいけど
>>867 > 865じゃないけど、1.5倍速だから最低でも62%以上
それどういう計算?
869 :
デフォルトの名無しさん :2011/02/19(土) 20:11:05.49
863は自分で作ったことも既存のソフトのプロファイルをとったこともないカス
>>868 例えば、ボナが120秒思考した時、評価関数90秒、その他30秒。
1.5倍速なら80秒で同じ処理が出来て、評価関数50秒、その他30秒。
だとすると評価関数は62.5%。
実際にはその他処理も高速化してるから30秒より少なくなり評価関数は62.5%以上になる。
871 :
デフォルトの名無しさん :2011/02/20(日) 16:18:39.62
ボナふぇりのコンピュータ対コンピュータについてききたい。 1.コンピュータ対コンピュータの自動対局(対局終了後もすぐ開始) 2.思考時間をかえたい。(例えば、先手が60秒、後手が30秒とか) 3.メモリ使用量を変えたい。(4Gメモリ) 4.ぼなふぇり12コアを試した方、感想を聞きたいです。何でも構いません。お願いします。 1-4、どなたか分かる方、いらっしゃいましたらお願いします。
使い方なんて聞いてるアホがいる・・・・ ここは作り方のスレだよ
チェスじゃ最強ソフトのソースやアルゴリズムを暴いて それをベースに改良してさらに進歩させる邪道がけっこうまかり通ってる雰囲気があるけど 将棋はそういう話はないのかね
わざわざ暴かなくても公開されてる
将棋は、アルゴリズムの使用のしかたのノウハウがまだ幅をきかせているから、 アルゴリズムが分かったからと言ってそれより強いソフトが出来るわけでもない。 アルゴリズムの改良+使い方(ノウハウ)の改良が出来て初めて強くなるかもしれない。
>>876 は思い違いをしているか、誤解している。
KCCが激指あたりを逆アセしてたとしても驚かない自信はある
そう思うなら自分でやってみれば?
モチーフにしたどころではない丸パクリだな
元々オリジナリティのあるルールではないし、 意匠さえ違えばパクリでもかまわないんじゃないか。
マルパクリなのを「モチーフ」って呼んでるのがだめなんじゃないの?
モチーフでも何でも良いとは思うが、いろんなところに宣伝を書き込んでる
>>880 が
「どうぶつしょうぎ」スレには書いてないのが意図と言うか、怯んでる感じがするw
どうぶつしょうぎとそのCOMプレーヤを実装してみました、と言えばいいのに モチーフっていう言葉の意味をよくわからず背伸びして使っちゃったんだろう
でもまぁRPG用ツールで将棋を作ろうとした努力は認めてやる
将棋は何を基準にいいのか悪いのかがないから難しいよな 棋譜DBを参考にするしかないし 1流プロが見てこの手はいい手だって判断するしかない 将棋はプログラムの中でも南関
それが評価関数っていうものだよ たとえば「駒得をすることはよいことだ」とか「玉が固いのはよいことだ」とか
玉よりも竿が固い方が好みだなあ。
890 :
hatenaの人 ◆hWSWszj6iM6z :2011/04/01(金) 01:16:41.97
最強ではありませんが、自作ソフトつくったので対局させてみました。 にーずがなければ続きは貼りません。 ▲76歩 △34歩 ▲26歩 △44歩 ▲48銀 △94歩 ▲56歩 △42飛 歩 ▲68王 △72銀 ▲58金右 △52金左 ▲77角 △62玉 ▲78王 △32銀 ▲88王 △95歩 ▲98香 △71玉 ▲99王 △64歩 ▲88銀 △74歩 ▲25歩 △33角 ▲57銀 △45歩 ▲55角 △63金 ▲36歩 △82玉 ▲79金 △54歩 ▲37角 △84歩 ▲66銀 △83銀 ▲75歩 △72金 ▲68金寄 △75歩 ▲75同銀 △46歩 ▲46同歩 △35歩 ▲35同歩 △36歩 ▲48角 △46飛 ▲24歩 △88角成 ▲88同金 △79銀 ▲73歩 △88銀不成 ▲88同玉 △73金寄 ▲74歩 △63金寄 ▲61角 △47飛成 ▲23歩成 △38金 ▲66角 △28金 ▲32と △38龍 ▲79銀 △77歩 ▲99王 △29龍 ▲88銀打 △76桂 ▲77金 △58飛 ▲49歩 感想お願いします。
これってどのへんまで定跡なん? 藤井システムとか詳しくないんだけど 角切るあたりまでは定跡を並べてるだけ?
携帯用の棋譜ビューワつくろうと思って中身の設計(という名の妄想)してたんだが 棋譜の解釈して駒動かすのって対局プログラム作るのと比べてさほど労力軽減するわけでもないのね・・。 というわけであそびにきました。 自作ソフト作ってる人ってこのへんフルスクラッチでやってるの?
>>892 将棋ソフト用のGUIなら出来合いの優れものが複数あるよ(もっぱらWindows用だけど)
だから、選手権に出場する場合も思考エンジンだけ自作してる人の方が多数派。
どうしたら強いプログラムが作れるんだー
私もそれが知りたいw
強いボナンザがオープンソースなのに・・・・???
いまソフト指しの判定方法について考えてるんだけど、開発者の意見を聞きたい。
将棋倶楽部24のソフト指しの判定基準はこうなっている。まず、これが妥当なのかどうかだ。
http://www.shogidojo.com/etc/softorii/index.htm > 指し手が一致する確率は、10億局に1局以下です。(下記限定条件にて計算)
> 31手から90手までの片側30手を対象とし
> 指し手の候補は2手とする
> よって、千年続いても棋譜が他の人(含む将棋ソフト)と一致することはありません。
これ、意味がわからない。30手が対象となっているのはわかるが10億って数字はどこから出てきたんだ?
2^30≒10.7億を言っているように思えるけど、この底の2は、「指し手の候補は2手とする」の2か?
だとしたらこの「指し手の候補」の意味がよくわからないんだが、将棋では指し手の候補は各局面で
2手あり、そのどちらかを人間がランダムで選ぶから、ソフトの第一候補と一致する確率は1/2みたいな論法か?
この論法自体がおかしくないか?
>>899 の続き。
棋譜からの学習って学習棋譜との指し手の一致率を上げるように学習させるだろ?
それで一致率は40数%ぐらいになる。裏を返せば、つまり一手読みでも40数%もプロの棋譜と一致するってことだよな?
先まで読めば5割、6割とあがっていくんじゃないか?それも序盤の(定跡選択の)初手〜30手までは対象外として、
31手〜90手までなら、もっと一致率は高いんじゃないか?
たぶん少なくとも7割ぐらいは一致するだろう。つまり、指し手の候補はそんな自由度はなく、
この7割のほうを選ぶか、残りの3割(それがいい手なのか悪い手なのかは知らないが)を選ぶかでしかない。
つまり、将棋倶楽部24の表現で書くなら「指し手の候補は10/7手」ってことだろ。
(10/7)^30 ≒ 44367局。10億と全然桁が違うんだが…。
>将棋では指し手の候補は各局面で >2手あり、そのどちらかを人間がランダムで選ぶから、 >ソフトの第一候補と一致する確率は1/2みたいな論法か? 出された数字を解釈する限りそういう事だろうね
0.7^60=1/19億 指し手一致率7割を仮定するなら、相手の指し手一致率も7割であろうこと、 および、相手の協力あっての60局面完全一致であること、 および、60局面完全一致しない限り、片側30手の完全一致はほぼ有り得ないこと、 をお忘れ無く
相手関係ないし
個々の指し手のソフトとの一致頻度であれば相手は関係無いが 一連の指し手の(過去の一連の指し手との)完全一致であれば相手は関係する 10億という数値は後者の確率の逆数を言っているように読めるが?
そりゃ誤読
>>904 ソフト指しかどうかの判定に相手は関係ないし、
>>904 の後者の計算でどうやったら10億という数字が出てくるの?
つか、24の文章自体があえて誤読を誘ってたりしてなくなくね? 24にはソフト指し予備軍のうち、数字に弱い層を誤読に誘ってでも ソフト指しを阻止したい動機があることは否定できないと思われ >906 指し手一致率が局面によらず常に0.681なら60局面完全一致確率は1/10億(log(x)=-1/6の根) 指数60ものべきとなれば、指し手一致率を0.7から3%も弄ればたちまち億レベルの違いが出せる
なお、指し手一致率が局面によって大幅に変動することを認めるなら、 ソフト指し判定(ソフトの指し手との一致確率)すら相手と無関係とは言えなくなることに注意
まだ理解してないのかこの馬鹿は
>ここ↓に書いてある数字以外、勝手に引用してくんな。 そのリンク先内容について>899-900の疑問が出ているわけで 引用先の正しさを否定する立場では何から何まで引用する義理はない 0.681と言う値は、>900の揚げた10/7の逆数0.7を>904の流れを経て受けたもの いや>899が誤差±2.5%未満の精度で一致率0.7なのだと主張してたのならスマンが
912 :
907 :2011/05/29(日) 19:08:51.77
ま、それはそうとして、今日はある意味撤回に来た 60局面完全一致確率として挙げた0.7^60とか0.681^60は、その直前の局面が一致した後の事後確率の間違いだ(汗 また、>908の指し手一致率の局面毎の変動の心配は、優劣が拮抗したままの推移に話を限れば問題にならないかもしれない
913 :
910 :2011/05/29(日) 19:53:04.69
>>911 >>899 の疑問は、そのサイトにある「10億局に1局以下です」って言う
10億がどうやれば出てくるかだろ?
勝手に0.7とか出してくんなって言ってんの。
別の方法で"勝手に"求めて1/10億ぐらいになるって話はしてないわけだよ。
だめだこりゃ
「ソフトX使いの疑惑のPさん」と「善良なQさん」の対局を検証するとして、 N手目の局面をS(N)とする。 S(N)→S(N+1)の常識的な候補手は2通りと仮定、どっちも良さそうなのでどっちかをランダムで選ぶとする (「同金or同桂」とか「銀を成るor不成」、「19玉or17玉」みたいな2通り以外考えられない状況が連続すると仮定。) Pの手番はS(31),S(33),S(35),…,S(89) の合計30手。 PのS(31)における選択と、XのS(31)における選択が一致する確率は1/2 (S(32)ではQが指した手を入力) これをS(89)まで30回繰り返して完全一致する確率は(1/2)^30≒1/10億 さすがにこの確率ならたまたまな訳なくてカンニング認定してもいいよね? 2通りでさえこの低率なのに、実際はとんちんかんな手を除いても5〜6手以上のの候補手があることもざらで、 それだとなおさら一致するわけないよね? という解釈をした 学習うんぬんは全く関係ないと思う もちろん候補手が1つしか無い状況もかなりあるだろうから厳密な話ではなく概算 61手詰めで偶然一致しちゃったら涙目っていう
>「ソフトX使いの疑惑のPさん」と「善良なQさん」の対局を検証 何と何を比較するのかkwsk もしP v.s. XとQ v.s. Yの2対局の比較なら、30手目の局面が一致する確率 が非現実的なぐらい小さい(1/30^30ぐらい?)から そういう解釈では現実の判定が成立しないというのがスレの総意 ソフト指し疑惑のPさんと、ソフトXとの指し手の比較なら現実的に可能
補足。30手目の局面というのは、>915の記号で言うとS(30)のことな これが一致しない対局同士でS(30)より先の指し手を比較しても意味がない っていうかPがソフト使いか善良かとは無関係にほとんど一致しない
Pさんの手番の次の1手を検証し続ければいいだけでは?
>>915 の解釈であってるよ
>>916 PさんがソフトXを使ってるかの検証なんだから
Pさんの指し手とソフトXの指し手を比較するんでしょ
920 :
デフォルトの名無しさん :2011/06/14(火) 17:11:07.90
やっぱり頭の良い人たちが議論してくれた方が一般民にも分かりやすい。 24の「10億局に1回って説明はなんじゃらほい?」ってずっと気になってました。 駒の動きだけを見ても、初手は先手の17手のいずれかから始まって、局面が進む度に動かしたり打ち込んだりできる持ち駒の数も増えるでしょう。 さらに、「それだけ複雑怪奇な駒の動きにプラスして局面変化まで一致する確率」っていったら想像もつかないもんね… 将棋ソフトの「あから」ってのがあったけど、実際どうなんでしょうか? ※「あから」とは10の224乗の数を示す数「阿伽羅」であり、将棋の局面の数がこの数に近いらしい。 オセロの世界では、先手の初手〜後手の最終手まで「全て最善手を打てば必ず引き分けに終わる(つまり、全ての局面に定跡が存在するため、 勝負相手を負かすというよりも、実質、己の記憶力との戦いに相応しく、もはや公式戦の意味もない)」けど、将棋には詰み(勝ち負け)を除けば、 敗勢側の相手玉が盤上を永遠に逃げ回る限り、対局者2人を仮に年齢20歳、寿命が100歳だと仮定すると、理論上1局の戦いを80年間続けることも可能となり、 そして80年間の間には同じ局面が何度も訪れることになる(今現在、何手目かというのは前例がないから無視するとして)から、事実上全ての対局が千日手になる可能性も秘めている。 もうそうなると、10の224乗(阿伽羅)じゃなくて無限大だとも言える。 全ての局面に最善手があるとするなら、盤上に置かれた初期局面の駒40枚の勝ち負けは必ず「先手の勝ち(オセロと違って、 詰まされてから最後に巻き返しの一手が存在しないため)」ということになり、将棋もゲームとしての存在価値がなくなり、単なる記憶力テストと化してしまう・・・ それでも、生きてる間にその謎解きの答えを知りたいです^^
921 :
デフォルトの名無しさん :2011/06/14(火) 17:54:33.79
あっ、言い間違えました。 現状では、対局開始時の▲先手が必ずしも勝つとは言い切れませんね。 例えば、後手に対して先手が飛車先の歩をぶつけて、相手に取らせてからそれを飛車で取る。 その後、後手が飛車に対して歩やその他の駒をぶつけて飛車を弾き返したら先手と後手が入れ替わる。 差し手そのものは先手と後手が入れ替わる事はないけど、「攻め手側=先手番」は交互に入れ替わるから、どちらとも言えないですよね。 全てが解析されるまでは…
例によって組み合わせ爆発という奴で、将棋の全解析は、ほぼありえないから。 ほぼってのは、宇宙1000個の全寿命を並列に利用して、とかいう超絶技術が 開発される可能性とかそういうのを考慮しての話なので。
う〜ん 三流大学出で文系の僕には話がぶっ飛び過ぎてて良く理解できませんが・・・・ とにかく物凄い上にも物凄い話だということだけは理解しました(笑) こうして見ると、(現在のゲームルールで)将棋を極めるのは、 なんだか「神」を語るようなレベルのお話なんでしょうかね(^^;) まぁ、冷静に考えてみれば、数百年もの歴史を誇る伝統の将棋界で、幼少期より何十年も将棋漬けで頑張った名人級の数々の先人たち(もちろん一般人がかなうはずがない達人たち)でさえも、 同じプロの棋士間では乖離率がそれ程顕著ではなく、勝ったり負けたりを繰り返しているわけですもんね・・・ でも、if〜万が一、仮にも「極める=完全解析」という希望的観測(単なるアホの妄想?)が許されるならば、その糸口はやはりコンピューターに委ねざるを得ないんじゃないかな・・・とは思います。 解析されたら夢もロマンもなくなりますが、それでも「謎を解明する」というのは 科学の分野ではとても偉大なことでしょうから、プログラマーの方たちには是非ともチャレンジして頂きたいですね! まぁ、自分なんかじゃ200年生きても無理だろうから、ここに集う天才の力で是非! ( ^ω^ )
924 :
デフォルトの名無しさん :2011/06/15(水) 12:42:41.16
もし棋譜の全解析ができたとしても更なる課題が山積みだよね。 全宇宙分にも匹敵する膨大な情報量を如何にして圧縮する技術、又は圧縮したとしても超膨大な情報量を保管しておく記憶装置なんかはどうするのか?という問題。 情報量が宇宙1個分で、サーバーが宇宙100個分・・・とかじゃ何の解決にもならないもんね(笑) そもそも、「情報とは活用して初めて意味がある」わけだしねぇ。。 また、そんなにも膨大な情報の中から、ゲーム中の現局面に合わせた最善手を「宇宙規模の神サーバー」から引っ張り出してくるにはどうするのか?と。 例えば、現在の局面に対応した最善手がサーバーの奥深く1,000万光年の彼方にあったら、一手指す(情報を取りに行ってから、また戻ってきてディスプレイに表示させる)のに、光の速さでも10,000,000*2で単純に2,000万年もかかっちゃうw 1回の対局が終了するのに約100手だとして、1つ差し手を進めるのに2,000万年もかかってたら・・・
「将棋の全局面」 ↑ ほれ 俺の技術で現実的に保管できるサイズにまで可逆圧縮してやったぞ
では、次は何処かに展開してみてくれ
>>925 ちょw将棋の全局面が12バイトだとは知りませんでしたw
THCompの生成する結果に「将棋の全局面」に対応するファイルがありうるか否か、 というのは面白い問題かも。
929 :
デフォルトの名無しさん :2011/06/18(土) 04:06:28.69
現在の最強プログラムはボナンザメソッドなんだよね? 市販品だと激指でぉk?
930 :
デフォルトの名無しさん :2011/06/18(土) 05:22:11.96
市販品でもボナンザが強いんじゃない。 ちなみにボナンザメソッドは方法であって プログラムの名前じゃないです。
これ最強 print "初手 5一歩";
932 :
デフォルトの名無しさん :2011/06/18(土) 12:31:48.29
さすがは保木さん!!次元が違う〜!! もはやルールを超越し、新たなる宇宙をも創造してしまったかw
933 :
デフォルトの名無しさん :2011/06/19(日) 17:26:58.25
ゲームの木で全て解決
じゃあ俺もゲームの苗植えてみるか どこに売ってる?
「ゲームの木」が育つと宇宙全体が埋め尽くされるのでやめてくれ、頼む
936 :
デフォルトの名無しさん :2011/06/20(月) 02:41:37.50
栗まんじゅうみたいだな
937 :
デフォルトの名無しさん :2011/06/21(火) 04:22:25.30
ボナンザに決定的な欠陥を発見したんだけど言っちゃっても大丈夫かな?
938 :
デフォルトの名無しさん :2011/06/21(火) 08:42:35.97
大昔...ゲームで将棋も出来るようになったんだ。スゲー。 今...自作の将棋ソフトに、作者の自分が勝てなくなる時代。
939 :
デフォルトの名無しさん :2011/06/21(火) 11:53:18.37
ファミコン前の大昔を例に出されても
940 :
デフォルトの名無しさん :2011/06/21(火) 12:58:47.92
強さ対決もいいのですが 自分のようなへぼ将棋指しには コーチング将棋といったらいいか サジェスチョンをしてくれる将棋ソフトが開発されるといいなあと コンピューター将棋だと ヒントボタン押すと 単に最善手を教えてくれるだけで参考にならない 「コーチ」と・攻めたい ・守るべき とか 相談しながら 指せたら勉強になるかも コーチも 仙人風から バニーとかいろいろあるといいなあ
>>940 それは面白そうだね。
でも、その代わり優秀なソフトじゃないと困るぜ
「攻める」となった場合にも、ソフトに有りがちな無理筋でも攻めまくって自滅・・とか、一旦守りに入ると詰むまで悪あがきして、意味のない王手を繰り返したりじゃ駄目だ
攻めだとか守りだとか悪あがきとか意味があるとかないとか感じるのは人間や個々人の勝手な感覚。 こんな無根拠なものをコンピュータは判断できないよ。 もしできるというならソースコードでよろしく。
943 :
デフォルトの名無しさん :2011/06/22(水) 14:36:18.71
>>942 無理攻めには確固たる根拠があるよ。
一例を挙げるなら、連続王手の先に詰みが有るか無いか・・とかね。
ソフトがきちんと「その先に詰みはない=まだ必死じゃないぞ」と判断出来さえすれば、そのような無理な攻めはなくなる。
論理は簡単でしょ。
その局面でYES or NO ?だけ。
二進法と同じだからコンピューターの超得意分野でしょJK
一部だけ実装したって無駄 誰にでもわかる型にはまったものだけ説明されても上達しない
945 :
デフォルトの名無しさん :2011/06/22(水) 23:33:03.51
ボナンザもナニゲに無理攻めやらかす時があるよねw まぁ、たまにだけど… やっぱり、どんなに優れたプログラムにもバグは必ずあるからねぇ。 だからこそ、コツコツ改修して手直しを繰り返したソフトだけがより人間に近づける。 ボナンザや激指もBer.100.0.0くらいまで進化すればプロの名人にも(合議とかじゃなくて単独で)余裕で勝てるかもね
Ber.100.0.0 ↑べろ?
w
948 :
プログラマー :2011/06/23(木) 14:57:03.99
最強()のプログラムはいつ完成しますか?
949 :
デフォルトの名無しさん :2011/06/25(土) 18:14:41.06
▲先手:おれ △後手:ボナンザ ▲7六歩 △3四歩 ▲7五歩 △3五歩 ▲7八飛 △3二飛 ▲4八玉 △6二玉 ▲3八玉 △7二銀←www ▲2二角成 △同銀 ▲8二角打! 余裕で先手必勝ですた( ̄ー ̄)
それ完全にバグというか凡ミス
最新のver.6でも何故かそういう意味不明な手を指すときがある。
これはどういう事かというと、自陣を美濃囲いのための△72銀や▲38銀と上げる場合には、
▲66歩(または△44歩)となってて双方の角道が遮断されてなきゃいけないわけだけど
>>949 の
駒運びを見ると、△62玉と寄った形が角道を遮断した上で美濃囲いを作る手順に似ているから銀が上がっちゃったんだな
プログラムには、単に囲いの手順を書き込むだけじゃなくて、相手とのバランスを相対的に見ながら駒運びをするようにしなきゃダメだよねぇ
今回の場合だと、「美濃囲いは72銀のあとで71玉→82玉と進むケースと、72玉→82玉→72銀の
2通りがあるが、相手の角と睨み合ってる状態では絶対に72銀を82玉より先に上げたらいけませんよ」と、
丁寧に書き込んでやらないと、コンピューターは馬鹿の一つ覚えで、プログラム通りにしか動けないからね
渡辺竜王の対局のときにそれやらかしてたら序盤で瞬殺されてぞw
↑ボナメソを理解してない馬鹿
いや、かなり序盤の話だからボナンザに入れてる定跡にミスがあるのだと思う
ざっくりと1手における最大の駒のパターンを計算してみた。 駒を表す基本ビットセット {00 0001}-{1-11}-1-1 一番右から 敵味方 1bit 成 1bit 駒の移動可能方向 2bit 桂馬は0 駒の移動可能距離 1bit 無限または1マス。桂馬は無視。 駒の座標兼持ち駒 7bit 82の時は持ち駒とする。 ( 9 + 9 + 2 ) * 2 = 40 存在し得る駒の数は全部で40駒 40 * 11 = 440 bit ≒ 64bit * 7 ということで440bitで表せる。 SIMDの128bitレジスタ使えば4本で1手の状態すべてを表せるね。
現実的に並べるならこんな感じか。 typedef unsigned long BitSet; #define CAPACITY(bits) (bits) / ( sizeof(BitSet) * 8 ) + 1 struct Phase { BitSet side[ CAPACITY(40 * 1) ], face[ CAPACITY(40 * 1) ], direction[ CAPACITY(40 * 2) ], orign[ CAPACITY(40 * 5) ]; };
一部間違えたんで修正 typedef unsigned long BitSet; #define CAPACITY(bits) ( 40 * (bits) ) / ( sizeof(BitSet) * 8 ) + 1 struct Phase { BitSet side[ CAPACITY(1) ], face[ CAPACITY(1) ], step[ CAPACITY(1) ], direction[ CAPACITY(2) ], orign[ CAPACITY(5) ]; };
956 :
デフォルトの名無しさん :2011/06/26(日) 00:35:09.16
>>951 馬鹿なのはボナンザのプログラムミスなんだけどなw
その証拠があの有り得ない痛手www
一部計算間違えた、移動方向は3bitいるわ。 あと、別に駒特性自体は手ごとに存在する必要ないね。 実質1手は、280bitになるね。 typedef unsigned long BitSet; #define CAPACITY(length,bits) ( (length) * (bits) ) / ( sizeof(BitSet) * 8 ) + 1 struct Phase { const static int length = 40; const static BitSet step[ CAPACITY( length, 1 ) ], direction[ CAPACITY( length, 3 ) ], BitSet side[ CAPACITY( length, 1 ) ], face[ CAPACITY( length, 1 ) ], orign[ CAPACITY( length, 5 ) ]; };
>>949 > △7二銀←www
あれ?それは定跡に入ってるの?
そもそも数手先まで読めば72銀だと形勢損ねるのはわかるだろうから、
そんな手を指すというのは、その手が定跡として入ってるとしか思えないのだが。
いまどき囲いの手順入れてるプログラムなんかねーだろ それはともかく、そもそも36歩で後手そこまで悪くないと思うが
961 :
デフォルトの名無しさん :2011/06/27(月) 08:25:44.73
>>960 じゃあ、有り得ない手を指しちゃうボナちゃんは将棋の初心者ってことになるが…
もちろん異論はないよな
m9(^д^)
ないよ。おまえの脳内設定なんだからどうとでもすればいい。
963 :
デフォルトの名無しさん :2011/06/27(月) 09:12:53.60
いやいや、脳内設定だとか妄想とかじゃなくて、既に実証されてしまった事実なんだけど… 要はソフトのバグを改修するしか解決策はないよねぇって話
学習不足や調整不足はバグじゃないから こんなことも知らないのか
965 :
デフォルトの名無しさん :2011/06/27(月) 09:38:59.76
>>964 どこを調整?
今ボナを起動させてるから言ってみなよ
ちなみに、先日のお馬鹿な手はノードを300k、スレッド4、定跡最長手数無限、予測読み有りな
保木氏のHPに置いてあるフリーのボナンザには学習機能なんてないだろ
968 :
デフォルトの名無しさん :2011/06/27(月) 10:09:56.87
>>967 お前はほんとに馬鹿な土人だな
言ってみろと云われて「探してろ」じゃ答えになっとらん
これだからカタコトの日本語しか話せない朝鮮人は・・・
おまけにバカウヨ属性持ちかよw
971 :
デフォルトの名無しさん :2011/06/27(月) 10:23:47.95
とりあえず2人とも死ね
学生時代も答えを求められて答えられん奴は総じて落ちこぼれだったな…
将棋板のスレで完全に打ちのめされたバカが、こっちで勝ち誇ってるだけだから、 なまぬるくかまってやりつつ見守ろうよw
974 :
デフォルトの名無しさん :2011/06/27(月) 10:30:49.16
答えられない=馬鹿だから分かりましぇん(ゲザーw)
荒らすなクズども
まぁ、ボナはとりあえず置いといてさ、いま市販ソフトの最強は何だっけ? 棚瀬?GPS?檄指し?
977 :
デフォルトの名無しさん :2011/06/27(月) 13:51:56.71
) < けんかは、やめてくださーーーーーいっ!! ) ⌒V⌒V⌒V⌒V⌒V⌒V⌒V⌒V⌒V⌒V⌒V⌒V _..-ー'''''''―..、 / // .''″ `''、.. `、..ヽ ..-ーー、、 ...`''- / // / ''、 `, ヽ / ..-,ヽ ヽ `'' / /Y / ハ ,, ヽ ヽ ハ l`''ーー人 | / `-ハイハ ソ i ハ、/ 、、 ノ l イl, リ ソ ヽ、 `くノ l リ ヽl ヾl\_,ヾ ノ_,ノリiレ l \ / ト、 / ,i =〒示 ソ '' i l / _..'″ `''v l ヽ ト ) r=ニ l ー-‐'″ _..'″ `''、. ハ⊂⊃´ 、 ⊂⊃ | _..'″ ヽ 人 ,==、 イ リ ー----‐‐‐'″ トハレ`'' 、 ヽ.__.ノイソイ/ リ `''ー--、.______ ノ \ \`'''ー''' ハ/ ノ ノ `ー-..、__ 人 ト ノV トー..、ソ 彡/
978 :
デフォルトの名無しさん :2011/06/28(火) 21:50:38.26
>949の局面を試してみました。 定石ファイルのミスではなく、すでに定石は外れています。 思考時間を長くすると△5二金を選ぶけど短い設定だと△7二銀を指しますね。 で>950の内容ですけど ボナンザのプログラムの概要を知らないんだろうなと思われても仕方がないです。 まぁ馬鹿は言い過ぎだと思いますが。理解不足ですね。 >965の内容は完全にあなたの勘違いですから、相手に対して馬鹿だのと言っているのはとても恥ずかしいですよ。
相手に対して「調整不足だ」と断言しつつ、調整すべき該当個所を明示できないのは馬鹿でしょ。 少なくとも「お利口さん」とはお世辞にも呼べんだろ
馬鹿であろうとなかろうとそいつよりお前がはるかに馬鹿なのは確定
981 :
デフォルトの名無しさん :2011/06/29(水) 01:25:43.87
ぷろぐらまーって馬鹿の集まりだったんか… 馬鹿同士なかよくやれよ くだらねー
アホの坂田もびっくりやで
荒らすなクズども
984 :
デフォルトの名無しさん :2011/06/29(水) 06:05:40.14
↓そこでスーパーハカーが一言!!
985 :
天下一 :2011/06/29(水) 08:02:07.56
モー娘。よりAKB
986 :
デフォルトの名無しさん :2011/06/29(水) 09:20:35.84
秋葉のばあさん48歳
うんこちんちん うんこちんちん
988 :
デフォルトの名無しさん :
2011/06/29(水) 11:20:22.94 (๑╹ω╹๑ )ㄘんㄘんㄟ⁰ㄋㄟ⁰ㄋㄜㄝㄋ