[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
618: 310 [sage] 2016/10/16(日) 17:19:15.26 ID:KTdXBWLt どもです。評価値問題は治りました。 乱数じゃなくて、ある手順で引き分けな手を選んでしまう事が判明したので探索時間 を延ばしてみたら、逆に序盤で負け手順を選んでしまうようになりました(汗。 ツリー部の地平線臭い感じなのかなぁ。 というわけで、たまたま選んだ1秒が良かっただけかも知れませんorz MCTSも理論的には探索回数を∞にすると、最善手を必ず導き出す事は保証されて いるらしいのですが、中途半端な回数の時は保証されていないんですよね。 http://mevius.5ch.net/te
st/read.cgi/gamedev/1057763418/618
619: 535 [sage] 2016/10/16(日) 21:36:30.64 ID:Ts0NTtMt なんか将棋で評価値を深く探索した時の評価値に近づけるっていう学習方法があるみたいですね。 ちょっと興味あります。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/619
620: 310 [sage] 2016/10/16(日) 22:45:31.89 ID:KTdXBWLt なんか、デバッグ報告みたいな状況になってすみません。 地平線臭い状況を調べていたら、負ける寸前なのに評価値が勝ちになってます。 つまり負けを認識していない。 着手を間違えるのはこの辺も原因かも知れません。 ぱっと思いつく原因が見当たらないので、しばし長考します。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/620
621: 535 [sage] 2016/10/17(月) 22:03:40.14 ID:B9d5KHtX connect 4序盤ブック作ってみようかな。 完全ソルバ丸パクリでw http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/621
622: 310 [sage] 2016/10/18(火) 00:57:04.06 ID:k8M1GDOc 色々直して、ほぼバグは取れたと思います。 で・・・強くなったはずですが・・・PerfectSolverに先手で勝てなくなりました。 かつて勝てたのはたまたま上手くバグっていたという事みたいです。 1秒設定は途中で間違えて引き分け、10秒設定は初手で負け確定(真ん中以外に着手)。 1秒設定で初手真ん中を選択するのはたまたまかもしれません。 初手だけ調べると150万プレイアウトくらいで間違えはじめ、15億プレイアウトまで確認 しましたが、雰囲気的には当分正しい答えに戻ってこ
ないようです。 評価値の推移を見ると、一本道問題に引っかかっているように見えます。 DAG問題がやっぱり気になるので、ハッシュと組み合わせて合流できるようにしてみます。 多少は改善するかも知れないし、逆にもっと早く真ん中から外れるかも。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/622
623: 名前は開発中のものです。 [] 2016/10/18(火) 17:50:18.00 ID:7idTlLLA 読めば読むほど弱くなるとは不思議 ucbの計算間違えてるとかでは? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/623
624: 名前は開発中のものです。 [] 2016/10/18(火) 19:31:31.87 ID:4bRvdGb+ ボードゲームのオリジナルオーダー制作 http://www.logygames.com/logy/ordermade.html 簡単に本格自作ボードゲームが作れる時代到来!! http://jellyjellycafe.com/3869 100円ショップでボードゲームを自作しよう https://sites.google.com/site/jun1sboardgames/blog/makeyourbg ノーアイデアでボードゲームを作ろう第1回「100円ショップで物を買う」 http://boardgamelove.com/archives/boardgame-make-1/ 自作ゲームをゲームマーケットで売って来た http://portal.nif
ty.com/kiji/160418196277_1.htm 「街コロ」はカードゲームに興味ありな初心者の入門用に最適、サイコロを振って カードを集めどんどん自分の街を発展させて勝利を目指せ http://news.livedoor.com/article/detail/10962802/ ようこそ「男の世界」へ。『ダンジョン オブ マンダム』試されるカードゲーム http://www.moguragames.com/entry/dungeon_of_mandum/ かわいいひつじを増やして増やして増やしまくれ! “一人用”カードゲーム『シェフィ』 http://www.moguragames.com/entry/shephy/ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418
/624
625: 535 [sage] 2016/10/18(火) 22:30:42.36 ID:5rT5zFZw 完全ソルバから定石パクるの意外とめんどくさいな。 クローラーみたいにして自動でパクれるようにしようかな。 でも迷惑かかるかな? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/625
626: 535 [sage] 2016/10/18(火) 23:07:54.58 ID:5rT5zFZw なんか本末転倒だからやめとくかw http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/626
627: 310 [sage] 2016/10/19(水) 02:53:35.54 ID:YWnebdEb まさかの場所にバグ発見。 プレイアウトでランダムに1手選ぶところがバグってました。 良く動いていたものだと思う反面、MCTSってそういう所がある事も薄々感じてます。 が、状況はほぼ変わらず。初手真ん中と、5手目真ん中。この2か所が鬼門。 まだバグがあるのかも知れない。やっぱり自分が一番信用できないですね。 DAG問題対策でノードの合流を実装しました。枝とノードを分離して、ノードをハッシュ にして、ノードの下に次の枝をぶら下げました。同時に、ハッシュキーに細工して
、 左右同形も合流させてます。あまり変化はない気が。 速度低下が酷いです。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/627
628: 310 [sage] 2016/10/20(木) 00:37:06.99 ID:yz39woaL 5手目真ん中以後どうなるのか1秒探索検証。6手目2列目に対しては、勝利(全て 最善着手)。6手目1列目に対しては、5列目着手で引き分け進行に入り、引分終了。 この時の手順では、全箇所が最善手という盤面ばかり通っていくように感じています。 つまり、MCTS的に勝利期待値が最大になりやすい手です。という事で、まあ、そんな に間違った手は打っていないかなと。 また、プレイアウトを繰り返して手がどう変遷するのか見ていくと、最善手である真ん中 は、ある一定数からほとんど
選択されなくなっています。結果、その手で枝の分岐が起き ない事から、いつまでたっても評価が更新されず正解に戻らないと推測できます。 そこで、試行回数に圧倒的な差ができても、下位の手も一定回数は試行されるように できないかと、手の選択基準をucb1の大きい順から、ソフトマックス関数を通して確率 分布に変えて、乱数で選択してみました。 結果は・・・。expの計算がある事からか、速度が激減。PVに割り当てられる試行回数は 2/3程度になり、その時点の最悪手でもそれなりに試行されるようになりましたが、それ でも手の選択は微妙な感じ
です。この程度の効果なら、他のパラメータいじった方が 速度低下も無く良かったかも(汗 というわけで、本日のトライアルも失敗。 気が進まなかったけど、やっぱりucb1計算の検算をしてみます。 あと、部分的にmin-Maxを適用するとか。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/628
629: 310 [sage] 2016/10/23(日) 09:58:44.72 ID:qEEwIK82 UCB1の計算は合ってました。 プログラムがC++的に美しくない事が気になりだし始めて、全部書き直ししてました。 書いた端から美しくないのが気になりだしましたが(笑) UCTで後方枝刈というか、小枝の勝敗が確定していたら、ツリーを縮小していく処理を 追加。一本道問題が多少緩和するかと期待。対戦はちゃんと動いているっぽい。 デバッグ情報をファイル出力する処理書いて確認。 間違え方はあまり変わっていないのが残念というか、安心というか(汗 モンテカルロで1手目から最善手順
が確実にわかったら、それはそれでゲームが 簡単すぎるって事になっちゃうので、大きく間違えないんなら、それで仕方ないかな。 というわけで、COM1手目は真ん中に固定。 プレイアウト部を高速化できる気がしていますが、やってみないとわかりません。 プレイアウトの末端部分に完全読みを数段入れるのも良いかと思っています。 DAG問題対応と左右対称チェックを入れて毎秒20万プレイアウトくらい。 評価値の算出方法でちょっと悩み中。 そこそこ落ち着いたらオセロの中盤探索に応用してみます。 http://mevius.5ch.net/test/read.cgi/gamedev/
1057763418/629
630: 310 [sage] 2016/10/26(水) 20:47:59.29 ID:H5ji3apJ また美しくない病が出て、書き直したところ、びっくりするほど弱くなってしまった。 しばらくデバッグで悩みそうです。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/630
631: 535 [sage] 2016/10/26(水) 20:59:11.78 ID:+YpzcPTO Connect 4は一旦休止して別のゲームのAI書いてます。 マイナーゲームですが囲連星というゲームで囲碁と五目並べを混ぜたようなゲームです。 簡単に言うと、七目並べれば勝ち、囲った石は取れるというルールです。 ついさっき黒番で公式AIのLV0に1勝できました。 (;SZ[19] ;B[jj];W[kj];B[jl];W[ji];B[ik];W[km];B[kk];W[ki] ;B[ii];W[lj];B[ll];W[mm];B[hh];W[gg];B[im];W[ih] ;B[ig];W[jh];B[ij];W[in];B[lk];W[gi];B[hk];W[gk] ;B[mk];W[nk];B[hn];W[hl];B[jn];W[io];B[lm];W[jo] ;B
[go];W[fp];B[gh];W[hi];B[fg];W[ko];B[gf];W[ln] ;B[hg];W[jg];B[ff];W[gj];B[gg]) 囲連星AIはこちらで配布されてます。 http://www.vector.co.jp/soft/win95/game/se401975.html http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/631
632: 535 [sage] 2016/10/27(木) 22:26:16.59 ID:CgNWWTgQ LV2からも黒番で一本取りました。 キセキが起きたw (;SZ[19] ;B[jj];W[ik];B[ji];W[hj];B[jh];W[jk];B[kk];W[jl] ;B[gi];W[il];B[ll];W[hm];B[ii];W[hh];B[hi];W[ki] ;B[mm];W[nn];B[li];W[in];B[kh];W[fi];B[mi];W[io] ;B[kj];W[lj];B[ki]) http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/632
633: 535 [sage] 2016/10/27(木) 22:53:05.70 ID:CgNWWTgQ 黒番でLV3からも一本取りました。 なかなかいい感じ。 ここからどう高めるか。 (;SZ[19] ;B[jj];W[ji];B[ij];W[kj];B[kk];W[ii];B[ki];W[lj] ;B[lk];W[jk];B[ik];W[kh];B[li];W[mj];B[lh];W[hl] ;B[mk];W[hj];B[jl];W[hk];B[ok];W[nk];B[nj];W[hh] ;B[nl];W[km];B[jk];W[lm];B[nk]) http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/633
634: 310 [sage] 2016/10/27(木) 23:41:56.56 ID:KUg+LQ1A バグ取れました。わかればどうという事はないですねorz 左右対称はデバッグが面倒くさいので省きました。どうせ序盤でした 意味がありませんので。 初手真ん中は、多分モンテカルロでは答えを出すのが相当厳しいです。 5手目真ん中は、乱数次第みたいな感じで、100万プレイアウトくらいまでに 出るか、1億プレイアウトしても出ないかみたいな感じになります。 一応、DOS窓ベースでプレイできるようにして、途中でMTCSのツリーを 色々と確認したり、追加のプレイアウトをしたりできる
ようにしましたが、 本質的にモンテカルロなので、完全に近いけど完全じゃないし、乱数の 具合によって着手する手もバラつくという事で勝手に納得してしまいまして、 せっかく作ったデバッグルーチンも禄に活用していません。 高速化も、一時期は40万プレイアウト毎秒くらいまで出たように感じて ましたが、最終的に20万くらいで落ち着いてしまいました。 次のステップでオセロに応用と思ったのですが、その前に並列処理化を してみようかと思います。上手くやれば探索ノード数は3倍強(自分のPC では)くらいにはなりますが・・・数段深く読ん
だとて、結論にはあんまり大差 が無いのかなと。まあ練習ですな。 というか、min-Maxとモンテカルロのノウハウ、仕事で使えそうだなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/634
635: 名前は開発中のものです。 [sage] 2016/10/27(木) 23:46:29.29 ID:CgNWWTgQ >>310氏はプロのプログラマなのか。 まあ納得。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/635
636: 310 [sage] 2016/10/28(金) 10:50:00.21 ID:/58y3Hfc いや。趣味の深夜プログラマです。 物流業務改善の会議で提案してみて、わからんと言われたら ソース見せて動作検証してやろうかなと。 システム屋さんからすると、とてつもなく面倒くさいクライアント だと自覚しておりまするorz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/636
637: 535 [sage] 2016/10/29(土) 21:09:01.77 ID:4znFYNwN 囲連星、公式AIとガッツリ対戦してみました。 LV0はdll化されてないので対戦できませんでしたが。。。 結果はLV1には大きく勝ち越しましたがLV2,LV3には敵わなかったです。 airandom.dllが私のAIです。 50局目 黒(airandom.dll)の勝利回数: 44 白(ai-lv1.dll)の勝利回数: 6 50局目 黒(ai-lv1.dll)の勝利回数: 10 白(airandom.dll)の勝利回数: 40 50局目 黒(airandom.dll)の勝利回数: 20 白(ai-lv2.dll)の勝利回数: 30 50局目 黒(ai-lv2.dll)の勝利回数:
41 白(airandom.dll)の勝利回数: 9 50局目 黒(airandom.dll)の勝利回数: 15 白(ai-lv3.dll)の勝利回数: 35 50局目 黒(ai-lv3.dll)の勝利回数: 44 白(airandom.dll)の勝利回数: 6 私のAIが長考するのでこの対戦するのに丸一日以上かかってしまいましたw http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/637
638: 310 [sage] 2016/10/29(土) 21:13:21.87 ID:hyv6QOjp 並列化してみました。 色々やり方ありますが、まあ順当なやり方という事で、ツリー単位の並列化です。 が、4コアに対して4並列でむしろ速度低下。排他で怪しいところを色々変えてみて ようやく若干(10〜20%程度)の速度アップにしかなりません。並列数を減らすと 速度低下していくので、排他待ちが原因ではなく、並列化オーバーヘッドの模様。 ノード&ツリーの構造で複雑な分、オーバーヘッドが大きくなっているのか、オセロの 時の効果には大きくおよびません。 ルート単
位の並列化で、一定時間ごとにツリー統合(合算)というやり方もあるような ので、次はこちらを試してみます。 もしかしたら、一番効果が無さそうな、プレイアウトのみ並列化の方が効果出たりして。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/638
639: 310 [sage] 2016/10/29(土) 21:14:51.22 ID:hyv6QOjp MTCSは並列化と相性が良いとは思えないなぁ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/639
640: 535 [sage] 2016/10/30(日) 23:47:35.70 ID:11nwLD7b return文忘れててめちゃくちゃな値返してた。 この不可解なバグ潰すのに3時間かかったorz. 関数の終わりでreturn文無かったら警告だしてよコンパイラ(泣 まあコンパイラオプション付けてない俺が悪いんだがwww http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/640
641: 310 [sage] 2016/10/30(日) 23:54:19.10 ID:vT6Vi1L+ 結局ツリー部の並列化はやめてプレイアウトだけを並列化しました。 ツリー統合も気になりますが、とりあえずこれで末端の評価が正確になります。 プレイアウト部分は処理時間が短いので、プレイアウト回数は大幅に増えます。 MCTSは面倒でも、モンテカルロは並列化向きです。 100回プレイアウトして、そのスコアでまとめて更新。 ところが、バグを発見してしまいました。 勝ち手順で進めていたのに、最後の最後に1手間違えて引分。 もうプレイアウトではなくツリーの勝敗が確定している
状態で、間違えるはずがない。 勝敗確定時のフラグ設定がおかしいようです。 そこから色々見直しを始めたら、negaMax的な処理の扱いに完全に混乱して しまいまして…。これだと思って修正すると、おかしくなってしまいます。 どこか根本的に勘違いしているみたいなので、しばし長考に入りますorz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/641
642: 535 [sage] 2016/10/31(月) 00:37:25.82 ID:KdjBytFw なかなかいい感じのルーチンが書けた。 まだ結果に結びついてないけどこれはあと一捻りいれればかなりいい線行くんじゃないか? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/642
643: 535 [sage] 2016/10/31(月) 21:35:59.05 ID:KdjBytFw おかしいな。 石の流れは良くなってるのになかなか勝利に結びつかない。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/643
644: 535 [sage] 2016/10/31(月) 22:47:38.80 ID:KdjBytFw パラメータ微調整地獄w 機械学習に切り替えないと限界が… http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/644
645: 535 [sage] 2016/11/01(火) 21:33:50.00 ID:pQxzEPLf あかん。 完全にバランスを失った。 一から出直しだな。orz http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/645
646: 名前は開発中のものです。 [] 2016/11/03(木) 03:15:09.64 ID:x7yDYWU2 ボードゲームのオリジナルオーダー制作 http://www.logygames.com/logy/ordermade.html 簡単に本格自作ボードゲームが作れる時代到来!! http://jellyjellycafe.com/3869 100円ショップでボードゲームを自作しよう https://sites.google.com/site/jun1sboardgames/blog/makeyourbg ノーアイデアでボードゲームを作ろう第1回「100円ショップで物を買う」 http://boardgamelove.com/archives/boardgame-make-1/ ボードゲーム市場がクラウドファンディングの出現で急成長を遂
げ市場規模を拡大中 http://gigazine.net/news/20150820-board-game-crowdfunding/ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/646
647: 310 [sage] 2016/11/04(金) 15:36:30.74 ID:zGiY9OSz 長考の結果、もう一度作り直し(笑)していたら、混乱の原因がわかりまして。 勝敗の持ち方を逆にしたらすっきりしました。 あと、終盤の手順の前後で、あと3手粘れるのに1手で負けるという現象を調べた 結果、ツリー部で負けと判定している以上、何手先に負けるか関係ないというプロ グラムになっていた事も判明。バグじゃありませんでした。とはいえ気持ちが悪いので、 なるべく長く粘るようにしてみました。 そこでわかったのは、Perfect Solverの数字は、42手21ターン目の引分か
ら何ターン 前に勝負がつくのかを表していて、プラスは勝ち、マイナスは負けという事です。先手で +1と出たら最善を尽くせば41手目の自分の着手で勝つという事のようです。 つまりスコアを勝敗決定ターンにしたmin-Maxで、速度考えるとDB化してるんでしょう。 で、MCTSですが、まあやはりモンテカルロなので間違えます。試しに10手目程度 の間違えた局面から、シミュレーションを続行してみたところ、億単位の探索(プレイ アウトとしては10倍)で、間違えた手が本当は悪かった事に気づいた様子で、そこから 正しい答えに向かって行きました
。なので、まあプログラムは間違っていない模様です(汗。 DAG対応とか、自殺手禁止プレイアウトとか、色々やった結果、選択手のばらつきが 減って、「たまたま正解手順を引く」事がなくなって、自信満々に間違えるようになっ た印象です。それでも、時間をかけて探索を続けると、いつかは正しい答えにたどり着くと。 今となってはあまり意味が無いですが、せっかくなので、ここまで積み上げて来た ノウハウで、今一度Solver作ってみようかなと。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/647
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 355 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s