[過去ログ]
【オセロ,将棋】ボードゲーム Part2【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム Part2【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
552: 535 [] 2018/12/19(水) 21:16:40.83 ID:REA/9P4B スマホでconnect4のパーフェクトソルバーをちょくちょく遊んでるのですが パターンをかなり覚えて7割くらい勝てるようになりました 囲碁とかも真の棋理が明らかになった方が 逆に人間がコンピュータに勝てるようになるかもしれませんね http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/552
553: 310 [sage] 2018/12/19(水) 22:48:18.33 ID:T2sH1fj1 ハッシュの構想し始めましたが、確かに自分が作って早くなる保証はないですね。 インターフェースを既存のstlに合わせようとか思って調べ始めたら面倒になりました。 で、色々見ていたら、そのまんま効率化できそうな使い方を見つけた。 有れば読み込んで更新、無ければ追加の方法です。 あとバケットサイズとか個数とか、その辺を調べていった方が早くなるかも。 並列処理だとtry_emplaceが使えないのね。これが使えたらきっと早くなるのに。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/553
554: 535 [sage] 2018/12/20(木) 23:32:19.98 ID:zB5frbtZ また再起動してる。。。 まあいいけど、もう諦めぎみ。 なんか仕事が急に忙しくなってますますコーディングから遠ざかってますが、 棋譜だけは地味に溜まってます。今82889局分溜まってます。 並列化ハッシュってどんななんですかね。そういえば知らない。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/554
555: 310 [sage] 2018/12/21(金) 00:04:37.10 ID:kvniGc89 いや。まぁ。バケットか中のレコードか、どちらかの単位で排他かけるだけです。 Hash関数がきちんとばらけさせてくれたら、基本的にあんまり排他で捕まる事は 無いので、それほど気にしなくてもパフォーマンスに影響ないかなぁと。実際に concurrent_unordered_mapの配列用意して、適当にハッシュでばらけさせて格納 してみたら(つまり、同じmapじゃなければ排他はおきない)、排他で遅くなっている 訳ではない事が確認できています。 と言いながら、iteratorとか考えだすと、何を並列セーフにして、何をアンセーフに するかみたいな事で悩んじゃいます。 先日の続きでmax_load_factorとかbacketサイズとかいじってみましたが、 パフォーマンスにほとんど影響がないです。というか、どうせ後で逐次的に拡張する くらいならと、backetサイズを増やしても性能は上がらないし、max_load_factorを 増やしても、性能が落ちるだけだったり…。 棋譜作成だけなら並列化レベルをもう1段上げて、4記譜同時作成とかすれば、 個々の読み切りはシングルスレッドに下げられて、ただのunordered_mapが使えるし その方が棋譜作成的には速度アップしそうな気がしてきた(汗 FFO的には別処理になるけど。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/555
556: 535 [sage] 2018/12/22(土) 00:08:33.74 ID:w0ekMTPt 採りためた棋譜をもとに序盤DBを更新してみましたが、 確かにうち筋は変わってる気がしますが強くなってるかはよくわからないというorz まあ序盤DBは誤魔化しみたいなものだから期待しすぎもよくないか。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/556
557: 535 [sage] 2018/12/22(土) 00:42:25.73 ID:w0ekMTPt 序盤DB更新で強くなってるか統計とってみたいけどモンテカルロが遅すぎてそれもままならないというorz やはりモンテカルロに代わる何かを実装しなければ… http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/557
558: 535 [sage] 2018/12/26(水) 00:12:59.86 ID:2Tvqp++w 棋譜USBメモリにコピーしたらめっちゃ時間かかるorz 130MBくらいなのにUSBメモリってやっぱ遅いんだな。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/558
559: 310 [sage] 2018/12/26(水) 00:20:29.39 ID:Rkthqh0l 4記譜並列作成実装してみました。ただいま本番状態でテスト中。 並列処理の基本は、なるべく上位の層で並列化すべしでした。 現状、並列探索の速度は、シングル探索の2倍程度です。 1つ1つの探索には時間が2倍かかるけど、4つ並列なので、トータルでは 半分の時間で処理できるので、実質2倍みたいな。 探索中のオーバーヘッドはほぼ無いはずで、待ち合わせロスくらいなので、 大量に一気に処理する分には、ほぼ無視できるかなと。 これやると、スレッドの数がモロに効いてくるんで…48並列くらいできたら… http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/559
560: 535 [sage] 2018/12/26(水) 00:30:44.15 ID:2Tvqp++w 310さんはintel派なんでしたっけ? AMDでもzen2はかなりコスパいいものが来ると思いますが… http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/560
561: 535 [sage] 2018/12/26(水) 00:40:17.50 ID:2Tvqp++w 試しにSSDに棋譜コピーしてみたらかなり速いw やっぱそうなのか。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/561
562: 310 [sage] 2018/12/26(水) 03:07:45.74 ID:Rkthqh0l あれれ。思ったほど速度が出ない…というか、単体の速度が半分どころか、 1/4くらいになっているイメージ…。深さが深いものほど遅いという事は、 置換表周りかなぁ。 棋譜作成する対象によって速度が結構変わるので、評価しづらい。 メモリー配置等の問題も考えないといかんような気がしてきた。 いかん。夜も更けていく…。 >>561 なんか、フラッシュメモリー自体は書き込みが遅くて、SSDだとその辺を並列 化とかキャッシュとかで回避しているらしいです。USBメモリーは、その辺真面目 にやっているもの(高価)と、そうじゃないもの(安価)で差があるけど、それでも SSDには敵わないとか。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/562
563: 535 [sage] 2018/12/26(水) 21:06:48.31 ID:2Tvqp++w 明日か明後日あたりで棋譜10万局分溜まりそう 深層学習のプログラム、組みたいなぁ でも難しいんだよなぁ http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/563
564: 310 [sage] 2018/12/27(木) 00:00:43.02 ID:APLuuq5f 悩ましい。 シングルmin-Maxの並列動作と、パラレルmin-Maxのシングル動作。 どうも速度的には大差ない感じ。 2倍くらい速度出ると思ったのに…。 スレッド数が増えたら差が出てくるのかなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/564
565: 535 [sage] 2018/12/27(木) 20:54:08.52 ID:gYB4tQZF 10万局いきました。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/565
566: 535 [sage] 2018/12/27(木) 21:18:27.23 ID:gYB4tQZF 多分俺が世界で一番囲連星LV3の計算を回した人だろうなw http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/566
567: 310 [sage] 2018/12/27(木) 22:00:15.50 ID:APLuuq5f 色々あがいた挙句、そこそこ時間がかかる26手空きを、それぞれで解いてみた。 並列探索で6分。シングル単独動作で12分。シングル4並列動作で18分。 やはり、シングルも4並列する事でなにがしかのオーバーヘッドがあるようです。 単純計算だと並列探索6分を4個で24分に対して、シングル18分で4つ解ける 事から33%の速度アップが見込める事になるけど、体感そこまでの効果が感じ られないというか、時間がかかる問題では更に差が大きくなっていて、そいつらに 足を引っ張られている印象。 そのうえで、裏でゴソゴソやりながら計算させる時に色々弊害があるので、 CPUの増強を決断するまで放置しようかと思います。 色々あがいた結果か、並列探索ですこーし速度アップした感じ。 10%行くかいかないか。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/567
568: 535 [sage] 2018/12/27(木) 22:05:17.88 ID:gYB4tQZF よくわからんがハイパースレッディングって単純に性能2倍になるわけではないということではなくて? http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/568
569: 310 [sage] 2018/12/27(木) 23:06:53.59 ID:APLuuq5f もちろんそうなんだけど、排他待ちを要するデータも、待ち合わせロスも 無いので、もうちょっと性能出るんじゃないかと思っていたのです。 あと、うまく説明できないけど、ノード数が多い探索は、ノード数比以上に 時間がかかっている気がしています。まだ感覚の話ですが。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/569
570: 535 [sage] 2018/12/28(金) 20:37:08.10 ID:HWMCAOZD LV3は強いんだけど詰み状態から詰みを逃してる棋譜が散見される。 直せるもんなら直したほうがいいんだろうけどかなり大変だろうな http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/570
571: 310 [sage] 2018/12/29(土) 09:40:46.33 ID:hnomLa8j んー。シングル並列動作で6時間かかっても解けずに諦めた盤面とを見つけて、 パラレルで解いたら1時間40分だった。空きマス26だと通常1分程度なんだけど、 時々こういう時間がかかる盤面がある。今までテストが面倒なので、10分以内に 終わりそうな奴でテストしていたけど、もしかしたら探索ノードが多い奴ほど、 シングル並列動作での速度低下が大きいのかも知れない。 時間がかかる奴ほど、シングル・パラレル比が悪化するなら、今考えている大体 3倍程度ってのは成り立たなくなって、もっと悪い事になる。それなら感覚的に 合致する。普通に流れている時には、シングル並列で高速化できそうな手ごたえ があるんだけど、時間がかかる盤面が来ると急速に逼塞していって、なかなか 回復しないという感じ。 パフォーマンスモニタにらみながら、unordered_mapのメモリアロケーションの方法 を想像してみた。初期確保件数指定(倍々で自動追加される)してみたけど、溢れて もいないのにダラダラとメモリー使用量が増えていく。もしかしたらOSにメモリーを 貰いに行く動作が排他待ちになっているのかも知れない。どうやって検証しよう。 やっぱ自前置換表作るしかないのかなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/571
572: 310 [sage] 2019/01/01(火) 10:13:37.88 ID:y24geaJt あけおめです。 ヒープをダラダラと確保するのが気になったので、色々いじりました。 ordering用のvectorを、配列にしてスタックに。ついでにクラス化してメンテ性アップ。 少しだけ速度アップした気がする。 自前ハッシュテーブル型の置換表を作ってみた。 最初に大きく領域確保して、溢れた時以外領域確保しないようにした。 基本、余計な機能は実装していないので、処理は軽いはずなんだけど… 極ほんの少しだけ速度ダウンした感じ… 記譜作成はunordered_map版で実行しながら、改良をしてみたいと思います。 とはいえ、ソース的にはあんまり改良の余地がないんだよなぁ。 速度がそん色ないところまで行けたら、シングル版の並列での速度低下が メモリー確保が原因か検証できるかなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/572
573: 310 [sage] 2019/01/05(土) 09:07:42.68 ID:KwyVlHZX チェーン型でハッシュを組んでましたが、テーブルがあふれると結局ダラダラと メモリー獲得し始めるので、オープンアドレス型に変更して、まとめて領域を追加 するようにしました。 この辺、もう趣味の世界ですね。 何をしても、速度は上がりも下がりもしない(汗 やっぱり探索ノードを減らす工夫が重要ですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/573
574: 535 [sage] 2019/01/05(土) 21:26:02.72 ID:TXR2vHHf 自己対戦のみで強くなるアルファゼロは理想ですが実装が難しそうなので せっかく棋譜も集めてるので教師あり学習をやってみようかと思案中。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/574
575: 535 [sage] 2019/01/06(日) 00:55:45.70 ID:6f3tqt5A とりあえず、棋譜データからmin-max探索して黒有利の局面か白有利の局面かの2択を学習させようかな。とか思ってます。 そろそろ寝るか。。。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/575
576: 535 [sage] 2019/01/06(日) 02:33:16.90 ID:6f3tqt5A 寝るタイミングを逸してしまったw プログラミングってこれがあるから怖いよねw http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/576
577: 535 [sage] 2019/01/06(日) 02:46:46.55 ID:6f3tqt5A なんか100兆局くらい棋譜を集めると序盤DBだけでもかなり押せるんじゃないかなぁ。 そんな感じ。 いかん、寝なければww http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/577
578: 名前は開発中のものです。 [sage] 2019/01/06(日) 03:01:38.94 ID:aGENq217 質の悪い棋譜ばかり100兆局集めてもあんまり強くならない気がするのですがどうなんでしょう 質のいい棋譜がそれだけ集まればいいですがそれはほぼ不可能ですし… http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/578
579: 535 [sage] 2019/01/06(日) 03:14:04.86 ID:6f3tqt5A そうはいってもLV3の棋力はかなり高い。 囲碁将棋でいえばアマチュア3段くらいには相当するはず。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/579
580: 535 [sage] 2019/01/06(日) 03:18:59.57 ID:6f3tqt5A 波があるからアマチュア3段は言い過ぎだったかなw でもまあ強い時はかなり強い。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/580
581: 310 [sage] 2019/01/06(日) 14:23:08.43 ID:a93oWf/5 置換表一時調子が良かったのですが、修正加えたら崩壊。 なんとなく読み取りが変な感じなんだけど、どこがおかしいのか全くわからず。 >>578 棋譜たくさん集めて序盤DB作ったら、その序盤DBのMax手順以外の手について は、分岐した以後の盤面だけで学習させると序盤の穴が埋まるというか、間違った 盤面でぼやっとした学習するの避けられるかも。 今、序盤についてはそのやり方で学習させてます。 http://mevius.5ch.net/test/read.cgi/gamedev/1508056498/581
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 421 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s