[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
395: 310 [sage] 2016/01/27(水) 01:18:29.98 ID:IVwAw5rN オライリーの並列化本が来たので拾い読みしながら並列プログラミングの勉強。 PPLの各アルゴリズムが何を目的とするものなのかが、少しずつ分かってきました。 抽象化度が高いので、最初のとっかかりとしては良いかも。何故かcombinableが 上手く動かないとか、parallel_reduceの中身がよく分からないとかありますが。 で、並列化できるところを探して速度が上がるか試したり、同じ処理をより綺麗に書き 換えしたりして、微妙に速度アップし、0.70〜0.75秒くらい、ノード数が15M、NPS
が21M nps程度になりました。たまに0.68秒台が出ます。 Edax4.3のFFOベンチの結果を確認したところ、ノード数で1.5倍、NPSで4倍、計6倍の 差があります。NPSをコア・クロック換算しても1.5〜2倍の差があり、ノード数は別として、 まだ速度アップの余地があるのではないかという事で、単品速度アップに走ってます。 ノード数はMPC導入後のiterative wideningである程度追い付けるかなと淡い期待。 いくつか速度アップネタがありますが、サッカー日本代表見ながらでははかどらず。 続きは明日。 http://mevius.5ch.net/test/read.cgi/
gamedev/1057763418/395
396: 310 [sage] 2016/01/29(金) 11:31:08.14 ID:trvaxUQ+ 先日の速度アップネタはすべて不発でしたが、その際にノード数のカウント漏れを見つけ て、修正したところ、ノード数は17〜8Mという感じでした。その際に、最終2手高速化の 箇所でもカウント漏れがあり、まずは正確なノード数を簡便に把握しようと外してみたところ、 意に反して速度低下しないところか、どうも微妙に高速化したように見えまして(汗。 最終3手高速化を試してみたり、最終1手高速化も外してみたり、moveorder適用とか、 そもそもmobilityを求めずに空マスを順に
着手してみるとか、その辺の適用深さを変えて みたりいろいろとやって現時点の最適パラメータにしてみたところ、0.63〜0.68秒、最速で 0.60秒が出るようになりました。 αβカットの効きが悪くなっているため、ノード数は24〜25Mとなりました。 その分NPSは37〜38Mと速くなっていますが、こんな方向で高速化してて良いのか? というわけで、ノード数が違う段階でNPSを比較しても意味が無いという事に気が付きました。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/396
397: 310 [sage] 2016/01/30(土) 20:51:37.62 ID:yCKBToEa 囲碁がすごい事になってますね。オセロで一通り勉強したら小さい盤の囲碁をやって みようと思っていたので、モチベーション低下中。とはいえ、ああいうのをオセロに応用 しようとしたら、あそこまでマシンパワーいらないんじゃないかとか・・・。 ここのところ、もっぱらSTLやPPLの機能を綺麗に使う方向での改良ばかりしてました。 pararell_reduceの使い方もわかりました。negaScoutの繰り返しループが綺麗に並列化 できたんじゃないかと。ただ、MAPする件数がしれているので、parallel_re
duceではなく 逐次版のaccumlateの方が速いという結果に。あと、時間計測が結構飛び飛びの値に なるので時間計測関数を精度1msのものに変更。 色々やった結果、若干高速化したうえで、時間のバラつきが消えてくれました。 100回試行で計測すると610ms±15ms(1σ)となり、逐次処理のほぼ2倍の速度に。 ノード数は同程度で、NPSは40M超えて来ました。このNPSのままノードを半減できれば 良いのに。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/397
398: 310 [sage] 2016/02/07(日) 21:48:19.14 ID:xNqeS9Ve ここら辺で、EDAXとかとの速度差の原因を考えたところ、次の2点が考えられました。 1.評価関数の精度が悪い可能性 2.個々の関数で速度アップの余地がある可能性 という事で、1は熟考が必要なので後回しで、速度アップの対象として、flipとmobilityの 高速化を検討。とはいえ、良い知恵があるわけでもないので、ネット徘徊。 現在、ポインタ関数で分岐して処理しているflip関数を1発で処理するopenCLのソースを 発見。Master Othelloの作者のものでEDAX4.3のflip関数を参考にしている
らしい。 中身を解読するとベクターを使っている。とりあえず処理を真似て逐次処理で組んでみたら 結構速度アップしました。 解読の過程で、ようやくベクタ化の意味がわかったので、mm256系の命令を使って、 ベクタ化してみましたが、若干速度低下。原因は恐らくlzcntで一回ベクタを抜けてしまう 所だと思うので、ハッカーのたしなみを読んでベクタ演算で組み直してみる予定。 合わせてmobility関数もベクタ化。若干速度アップしたかなという程度。 組み込み関数は使い方が面倒臭いので、演算子のオーバーロードしまくってみました。 flip関数は非ベ
クタの分岐無しバージョン、mobilityはベクタという状態で、500msを切る 数字が出るところまで来ました。flipのベクタ化ができて、パラメータ調整するともうちょい 良い数字が出るかなと期待。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/398
399: 310 [sage] 2016/02/09(火) 01:09:41.58 ID:MeGl+gwc flip関数続き ・lzcntを自前で組んでみましたが、やはり処理が重く速度低下。ボツ。 ・右方向と左方向で処理が違うので、片側+180度回転で、同じ処理にしてlzcnt不使用 にしてみたが、180度回転×4が重くて速度低下。ボツ。 ・できるところまでベクタ化して、lzcnt以後はスカラ計算で、速度若干改善。 ・上記からlzcnt後、再度ベクタ化してみたら、速度若干低下したのでボツ。 ・64bit×4の値を代入する関数を変更したら、意に反して結構速度改善。 ・闇雲に__declspec(align(32))
してみたら若干速度改善してバラツキ減少。 これらにより、450msくらいになりました。 ベクタ化はまだ何かありそう。 ちゃんと書いてなかったですが、途中からノート数カウントを外してます。入れると100ms 程度の速度低下になります。一応、デバッグ用に#ifで切り替えられるようになってます。 が、そんな状態なので、nps計算に意味が見いだせないという・・・。 続いて評価関数をベクタ化できないか考えましたが、BMI命令使っているので厳しい。 計算楽にするため、でかい配列を何回も引いているので、ここを何とかしたい気がする。 黒・白・空の
3を基数とする3進数でナンバリングしているんだけど、高速で計算する方法 が見つからず。 平衡3進法を手早く計算する方法があると、黒を1、白を-1、空を0にして、定数足すとか できるんだけど、どんなに調べても、基数変換に王道なしという言葉しか見つからない。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/399
400: 名前は開発中のものです。 [sage] 2016/02/15(月) 00:14:34.50 ID:2rfyeFpJ 高速化については一旦棚上げ。何やっても速度が上がらない。 ひたすらノード数カウントの速度低下を抑えて、カウントのバグ取りして。 色々発見はあったけど、結局ソースを綺麗にしただけだった。 後は、いずれゆっくり時間をかけて、評価関数を作り直すかな。 MPCを組みました。一応動作している模様。 これからしばらく、GUI作りに入ります。 MFCよくわからん。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/400
401: 310 [sage] 2016/02/20(土) 13:43:08.30 ID:ZGi2V8ih GUIできた。昔作った序盤定石部分と合体。 中盤探索を反復深化にして、3秒を超えて新しい深さに入らないあたりで調整。 MPCで25手くらいまで読めるように調整。 終盤完全読みは38手から。36手からMPC付で完全読み(つまり完全ではない)。 こんな感じでできたので、早速プレイ。自分だと軽く全滅負けしてしまうので、zebra先生 にお越しいただきました。が、滅茶苦茶弱い。 良く見ると、定石が効いている段階で+16だったのが、中盤読みになった瞬間に一気に −14くらい
まで落ちて、そのまま挽回できない感じ。zebra先生は、その前に定石から外れ て、既にzebraから見て+14程度の評価値を算出している。つまり、定石部分がおかしい。 それ以外は、評価値もzebraとは大きく違わないし、終盤探索もちゃんと機能している感じ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/401
402: 310 [sage] 2016/02/20(土) 23:06:47.33 ID:ZGi2V8ih zebra先生にならって定石の評価を表示するオプションをつけてみました。 ロジック的には間違いなさそうですが、定石DBがおかしいというか、定石に登録がない 手順に正しい変化があって、それを無視しているため、間違った判断をしているみたい。 一応、完全読みという触れ込みの棋譜を元にしているはずなので、使い方をどこかで 勘違いしているんだと思います。しばらく悩むしかなさそうです。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/402
403: 310 [sage] 2016/02/21(日) 01:04:17.33 ID:nPWuqcvw 試しに定石部分を外して、中盤探索で開始してみたら、zebraの20手読みに対して 2戦して1勝1分となりました。読みの深さは、こちらが上なので、こんな感じでしょうか。 序盤20手分は評価値が無いので、20手近い探索を反復無しで探索するため、MPCを 使っても最初の数手は1手あたり5分以上掛かってしまいます。 定石については、以前にウェブで見つけてテキストに起こした定石データがあるので、 それを評価0で登録してみようかなぁと思っています。 定石の自己学習とか、評価付
けとか、どうやるんだろ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/403
404: 310 [sage] 2016/02/25(木) 21:06:56.39 ID:fXRsnvrs 定石データを、上記の手打ちデータで作り直しました。 当初は並び取りとかの極端な進行以外は評価0.0にしたため、mobility関数のビット列 の下から定石に従って着手する形となり、zebra先生のBookに誘導されるように、少しずつ 不利な定石に乗り換えていき、負けるという展開に(汗 悔しかったので別のソフトを拾い、戦ってみると、そちらには圧勝。決して弱くはないと思う。 また、zebraとの対戦時にBookで評価値がついているものは、それを参考に修正したところ、 時々勝てるような感
じになりました。 EDAX先生+UnifiedBookなるものを拾って、そちらと戦ってみたところ、軽く惨敗。 fjt定石とかだと終盤近くまでBookがあるみたいで、Bookが続く限り紛れが無い。 こちらが中盤探索などでミスるたびに−2づつ落としていき、お話にならないレベル差を感じました。 しばし熟考の上、定石の拡張、評価付けを考えてみようかと思います。 あと、評価値が近い時には、何らかの確率で手を選択するようにもしてみたいと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/404
405: 310 [sage] 2016/02/28(日) 01:10:48.52 ID:hQzoi2Tz 縦取り系は白番黒番試して、定石の評価値を修正してみました。 あと、AIの進行ごとのパラメータを試行錯誤して、なるべく負けないようにしてみました。 これにより、AIの読み時間が結構伸びて、1ゲームワーストケースで1手2分、トータル 5分くらい思考してしまいます。これは、反復深化などで、タイムアップをせずに、次の ステップに入る制限時間だけ決めているためです。 EDAX+Unified Book先生はレベル21で、黒番白番ともに引き分けになります。 こちらは20手前に定石が切れて
いますが、その後も最善手が打てているという事になり ます。こちらは何局打っても手を変えないので、EDAX先生のBookの進行に合わせた だけですが。一方zebra先生は比較的手をいろいろ変えてくるので、勝ち負けが発生します (もちろん、各アプリの設定次第ですが)。 序盤定石の評価値をそれなりにしたら、後は引き分け進行をひたすら登録していって、 相手が最善しか着手しないと信用すると負けないプログラムができちゃうのではないか と、ふと思いましたが・・・。トップ同士の対局が引き分けばかりになるのは、こういう事 なんでしょうね。とい
うか、完全解析ってこれが完成した状態なのか。 EDAX先生のUnified Bookは、いくつかの引き分け進行棋譜の集合体のようですが、 元データが幸い既知のWthor形式なので、それをもらってしまうと、トップレベルになる のかなぁ。トップな人がBook構築に主眼を移したり、開発が止まったりする訳だと。 そろそろ、混とんとしているプログラムを綺麗に直して、パクリBook作って開発終了しちゃ おうかと思い始めています。速度的には、まだまだ改善の余地はありそうですが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/405
406: じょげなら ◆kXDiHQuNQ2 [sage] 2016/02/29(月) 19:18:07.19 ID:etqtABZA ライフゲーム囲碁というゲームのネット対局場を作りたいです。 囲碁でいうKGSみたいなのが理想です。 プログラムはある程度わかりますが、ネット関連の知識が乏しいです。 何から始めればいいですか? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/406
407: 名前は開発中のものです。 [sage] 2016/02/29(月) 19:21:39.28 ID:etqtABZA URLがNGワードに引っかかる… http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/407
408: 名前は開発中のものです。 [sage] 2016/02/29(月) 19:34:26.59 ID:etqtABZA 好きな言語 C++ C# Ruby 嫌いな言語 Java Python Perl http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/408
409: 406 [sage] 2016/03/01(火) 20:52:33.32 ID:6wFQeZGp とりあえずHTML5の本買ってきた http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/409
410: 406 [sage] 2016/03/03(木) 19:44:49.47 ID:Hi4nZgiL http://fast-uploader.com/file/7012557196681/ 碁石をぽちぽち置けるところまで作った http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/410
411: 310 [sage] 2016/03/04(金) 10:15:09.55 ID:Q4DtXsqP >>410 一晩考えてみた。 通信回りに興味を持って遊んだのは15年くらい前だし、Javaとかイメージしかないし。 あまり助言できる事はありませんが、一つ言えるのは、UIに凝ったりサービス内容を 考えたりするのは最後で良いと思います。 Rubyが好きなら、まずはCGIベースで、テキスト表示で対戦を実現する仕掛けを作る事 だと思います。次に複数のユーザーが接続するのであれば、身元確認のためのID/パス ワード管理が必要になりますし、個々の対戦を区別するにはセッション管理が必
要になり ます。この辺は、スタンドアロンのアプリには無い、独特の世界なので、結構新しい技術、 テクニックの習得が必要になるかと思います。いまどきあるのかわかりませんが、チャット のスクリプトとかあれば、参考になるかも。 その辺から入り込んで、いろいろ調べていくと、だんだんと必要な技術、知識が増えてくる んじゃないかと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/411
412: 406 [sage] 2016/03/04(金) 18:58:38.77 ID:w3YPuhPg >>411 レスありがとうございます。 確かにセッション管理とか知らないです。 チャット調べてみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/412
413: 406 [sage] 2016/03/07(月) 21:05:27.22 ID:NI+TTWmM RoRの本買ってきた。 チャットはまだ調べてない。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/413
414: 名前は開発中のものです。 [sage] 2016/03/09(水) 19:45:29.94 ID:Cf1/SDqU うおおおおセドルがああああぁぁぁ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/414
415: 310 [sage] 2016/03/10(木) 02:00:10.79 ID:hvbQwbFh うむむ。 これにて、オセロができたら次は囲碁という目標が雲散霧消してしまいました。 どうしよう。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/415
416: 310 [sage] 2016/03/10(木) 18:05:03.79 ID:b1SmaPOg AlphaGO強すぎ・・・orz 今夜は、囲碁関係者だけじゃなく、AI周りの人も、Google以外全員お通夜ですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/416
417: 名前は開発中のものです。 [sage] 2016/03/10(木) 19:38:43.78 ID:SphVvbk5 310氏もalpha碁注目してたか。 セドル一発入れてほしいなぁ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/417
418: 名前は開発中のものです。 [] 2016/03/11(金) 09:04:36.30 ID:HTdTU0Fi 浮上 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/418
419: 名前は開発中のものです。 [sage] 2016/03/12(土) 12:19:15.41 ID:k2nAbsiz おお、このスレ生きてたんだ なんで RoR なんか見てるのよスレ間違えたかと思った http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/419
420: 名前は開発中のものです。 [sage] 2016/03/13(日) 18:01:59.50 ID:X9umXTnK せどるううううッよくやったあああああぁっ 人類の勝利やあああぁぁっ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/420
421: 名前は開発中のものです。 [sage] 2016/03/13(日) 19:02:49.19 ID:Gv0++KTh お、第四局はセドル勝ったか http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/421
422: 310 [sage] 2016/03/13(日) 20:47:23.70 ID:50OeMIN8 うむ。なんか期待を裏切られっぱなしw この負けっぷりを見ると、囲碁もトライしたくなってくる希ガス。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/422
423: 406 [sage] 2016/03/15(火) 20:44:49.53 ID:NF77F+OG RoRとjavascriptの連携がよくわからん。 でもちょっとづつだけど進んでる。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/423
424: 310 [sage] 2016/03/16(水) 23:06:52.43 ID:YEZK1fac アルファ碁ロスまっただ中ですw オセロ作ったおかげで、一連の勝負をいままでとは違う視点で見れたかなぁ。 とりあえず、囲碁のモンテカルロ解説した本と、ディープラーニングの入門書を 買ってきた。さらっと読んだけど、ディープラーニングは理解に時間がかかりそうorz オセロで3層パーセプトロンを試したときは、結局うまく動かなかった。 実装が悪いのもあるけど、学習にもすごく時間がかかった。 あれをディープにしたら、どうなっちゃうんだろうかは不安ではある。 こちとら、Surf
acePro3しかないし(汗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/424
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 578 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s