比較的地味なボードゲーム専用のスレが欲しくて立ててみました。
私はc言語で作ったデータベースを使って人間と対戦できる将棋かチェス
みたいなソフトを作りたいと思ってますが、グラフィックインターフェースの
作り方がわからなくてつっかえているレベルです。
【オセロ,将棋】ボードゲーム【囲碁,War】
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
03/07/10 00:10ID:6FQp6G+O533460
2016/09/07(水) 01:48:41.72ID:UfwPrMcb 自己対局ですが、8手読みの20マス空き完全読み設定だと、2日で大体20万局終わることが分かりました。
ここまで速いと10手読みの22マス空き読みにランクアップしてみたいところ。。
体感だと1/3くらい遅くなっているのですが、22マス空き読みだと偏りもひどくて、
1〜2日やってみないとなんとも言えない感じです。
2日で7万局程度終えられるなら、それでのんびりやろうかと思います。
ここまで速いと10手読みの22マス空き読みにランクアップしてみたいところ。。
体感だと1/3くらい遅くなっているのですが、22マス空き読みだと偏りもひどくて、
1〜2日やってみないとなんとも言えない感じです。
2日で7万局程度終えられるなら、それでのんびりやろうかと思います。
534460
2016/09/07(水) 03:02:28.63ID:UfwPrMcb 今しがた動かし中ですが、400局完了まで16〜17分でした。
1時間で1400局程度できそうなので、1か月で100万局くらい行けそうです。
とりあえずこのまま100万局集めようと思いますw
あと、初手ラムダムをやめて最悪手が数%程度で打つよう、評価値によって着手確率を調整しました。
最悪手の絶対値の1.2倍をそれぞれの評価値に加算した後の総和を使って
それぞれ加算した評価値を除算という古典的な方法ですが・・・
この方法だと絶対値が0に近いと悲惨な事が起こるので、絶対値は>=4にしています。
1時間で1400局程度できそうなので、1か月で100万局くらい行けそうです。
とりあえずこのまま100万局集めようと思いますw
あと、初手ラムダムをやめて最悪手が数%程度で打つよう、評価値によって着手確率を調整しました。
最悪手の絶対値の1.2倍をそれぞれの評価値に加算した後の総和を使って
それぞれ加算した評価値を除算という古典的な方法ですが・・・
この方法だと絶対値が0に近いと悲惨な事が起こるので、絶対値は>=4にしています。
535名前は開発中のものです。
2016/09/07(水) 23:27:08.71ID:4MEE20eO 誰かヘルプ!
このページのmm.tar.bz2の使い方わかる人いない?
http://www.remi-coulom.fr/Amsterdam2007/
makeしてexe作るところまではできたんだけど
README通りにmm.exe < input.dat > output.dat
ってやってもoutput.datが空ファイルにしかならない。
このページのmm.tar.bz2の使い方わかる人いない?
http://www.remi-coulom.fr/Amsterdam2007/
makeしてexe作るところまではできたんだけど
README通りにmm.exe < input.dat > output.dat
ってやってもoutput.datが空ファイルにしかならない。
536460
2016/09/07(水) 23:57:41.97ID:UfwPrMcb >>535
とりあえずmm.exe < input.datでコンソールに何が出てきてるか見た方が良いかも。
Cygwinでやるとこんなの出てきました。
$ ./mm < input.dat
..
Games = 2
Feature1 -0.89588 2.44949 0.0285792
Feature2 -0.867301 2.38048 0.15838
Feature2 -0.708921 2.0318 0.0737065
Feature2 -0.635214 1.88743 0.0358307
Feature2 -0.599384 1.821 0.0187057
・・・(略)・・・
0 1.49416
1 1.21426
2 0.586193
3 0.668003
4 2.13451
outputは下5行だけが出力されるみたいです。
とりあえずmm.exe < input.datでコンソールに何が出てきてるか見た方が良いかも。
Cygwinでやるとこんなの出てきました。
$ ./mm < input.dat
..
Games = 2
Feature1 -0.89588 2.44949 0.0285792
Feature2 -0.867301 2.38048 0.15838
Feature2 -0.708921 2.0318 0.0737065
Feature2 -0.635214 1.88743 0.0358307
Feature2 -0.599384 1.821 0.0187057
・・・(略)・・・
0 1.49416
1 1.21426
2 0.586193
3 0.668003
4 2.13451
outputは下5行だけが出力されるみたいです。
537535
2016/09/08(木) 00:10:42.63ID:/oQCQhP8538535
2016/09/08(木) 00:16:47.92ID:/oQCQhP8 すいません。
makefileからコンパイルオプションを取り除いたところ結果が出力されました。
-O3がダメなのかなぁ。
ともかく、ありがとうございました。
makefileからコンパイルオプションを取り除いたところ結果が出力されました。
-O3がダメなのかなぁ。
ともかく、ありがとうございました。
539460
2016/09/08(木) 00:21:28.75ID:LcwQkLYi >>537
input.datは全く編集せずにやりました。
Cygwin64bitだと動くのですが、環境によっては動かないんですかね・・・
gcc-5.4.0でビルドしましたが、コンパイラのバージョンの差異も原因かもです。
input.datは全く編集せずにやりました。
Cygwin64bitだと動くのですが、環境によっては動かないんですかね・・・
gcc-5.4.0でビルドしましたが、コンパイラのバージョンの差異も原因かもです。
541460
2016/09/10(土) 21:06:28.42ID:FA2ccDEd >>534の読みを深くさせた自己対局棋譜ですが、15万程度集まったので
無理やり学習してWZebraと対局させてみたところ、黒持ちで+12、白持ちで+2でした!
次善手や序盤ランダムの考慮と読みを深くした効果が現れてて安心しました。。100万達成した時の結果が楽しみです。
無理やり学習してWZebraと対局させてみたところ、黒持ちで+12、白持ちで+2でした!
次善手や序盤ランダムの考慮と読みを深くした効果が現れてて安心しました。。100万達成した時の結果が楽しみです。
542460
2016/09/11(日) 09:03:13.98ID:UepiTkRD ついにBOOKの読み込みとアルファベータによる手の選択を実装できました。
まだ最善しか着手できないので、誤差率によるランダム着手も実装しようと思います。
ゼブラのExtra-Bookをそのまま使っているので、ゆくゆくは自力で構築できるシステムを
考えたいところ。。
まだ最善しか着手できないので、誤差率によるランダム着手も実装しようと思います。
ゼブラのExtra-Bookをそのまま使っているので、ゆくゆくは自力で構築できるシステムを
考えたいところ。。
543名前は開発中のものです。
2016/09/11(日) 11:41:57.36ID:dMHrH3w2 >>542
やっぱり最終目標は完全解析なんですか?
やっぱり最終目標は完全解析なんですか?
544460
2016/09/11(日) 15:25:12.97ID:UepiTkRD >>543
いえ、さすがにそこまでは・・・w
Edaxの作者が完全解析を先行してやってるみたいですし、そこは任せようかなと。
最終的にEdaxやMasterReversiと同等の評価関数やBOOKを作成できるレベルまで持っていきたいです。
いえ、さすがにそこまでは・・・w
Edaxの作者が完全解析を先行してやってるみたいですし、そこは任せようかなと。
最終的にEdaxやMasterReversiと同等の評価関数やBOOKを作成できるレベルまで持っていきたいです。
545535
2016/09/12(月) 21:36:16.05ID:vkOlNla9 >>535です。
<number of gammas for this feature>というのがよくわからん。
とりあえず1にしとけばOKみたいな?
input.dat色々いじってみたけど確かにそれっぽい値はに出る。
<number of gammas for this feature>というのがよくわからん。
とりあえず1にしとけばOKみたいな?
input.dat色々いじってみたけど確かにそれっぽい値はに出る。
546310
2016/09/12(月) 22:52:49.52ID:5hD0Gf9W547535
2016/09/12(月) 22:58:52.81ID:vkOlNla9548535
2016/09/14(水) 22:57:07.95ID:lQtAf6dT 本番のデータ使うと結果が表示されないorz
入力ファイルの形式なんか間違ってるんだろうけど
何間違ってるのかわからんorz
入力ファイルの形式なんか間違ってるんだろうけど
何間違ってるのかわからんorz
549535
2016/09/15(木) 21:47:58.41ID:NUOEmvbB もしかして万が一だけど同じフィーチャーに属するガンマは同じチームになれないとかあるのか?
550535
2016/09/15(木) 23:35:36.05ID:NUOEmvbB うお〜わかんねぇぇぇ
コード熟読しかないのか?
厳しいぃぃぃ
コード熟読しかないのか?
厳しいぃぃぃ
551310
2016/09/16(金) 00:03:09.94ID:44uFy3HE featureってコンピュータの世界では、機能を意味するよね。
あと、もう一度読み返すと、γが複数形になってるので、
γの数であってγの値ではなさそう。
「この機能で使用するγの数」となるけど・・・
これだけだと正直なんのこっちゃだねw
この機能が何を表すかどこかに書いてないの?
あと、もう一度読み返すと、γが複数形になってるので、
γの数であってγの値ではなさそう。
「この機能で使用するγの数」となるけど・・・
これだけだと正直なんのこっちゃだねw
この機能が何を表すかどこかに書いてないの?
552名前は開発中のものです。
2016/09/16(金) 07:31:01.43ID:mrye4Vvn もう一年くらい将棋をちまちま作ってるけど、なかなか強くならないな
最近ようやくアマ高段くらいには行った感じだ
ランダムでただ指すところから始めて、先人の歴史を全部なぞるようにプログラムして来た
みんなはゲームは違うだろうけど、もうその筋ではかなり強いレベルなの?
最近ようやくアマ高段くらいには行った感じだ
ランダムでただ指すところから始めて、先人の歴史を全部なぞるようにプログラムして来た
みんなはゲームは違うだろうけど、もうその筋ではかなり強いレベルなの?
553460
2016/09/16(金) 13:50:57.59ID:gJ0b6G2+ 自己対局での棋譜生成ですが、10手読みだとまだまだ精度が落ちるようで、思いきって中盤16手読みの24手読みにしてみたところ…10分で35局…w
今日は出勤時間がせまっていたのもありこのままで生成していますが、
中盤14手読みか12手読み、22マス空き完全読みにした方が良さそうです。
ああ、PC10台くらい並べて棋譜生成したい…
今日は出勤時間がせまっていたのもありこのままで生成していますが、
中盤14手読みか12手読み、22マス空き完全読みにした方が良さそうです。
ああ、PC10台くらい並べて棋譜生成したい…
555名前は開発中のものです。
2016/09/16(金) 21:22:13.05ID:l6ih+FVI556535
2016/09/16(金) 22:26:17.01ID:l6ih+FVI 囲碁の手の特徴にパス、トリ、伸び、自己当たり、当たり、
盤端との距離、直前の手との距離、2手前の手との距離、モンテカルロオーナー
などがあると書かれている。
feature=特徴?
盤端との距離、直前の手との距離、2手前の手との距離、モンテカルロオーナー
などがあると書かれている。
feature=特徴?
557名前は開発中のものです。
2016/09/17(土) 22:31:21.85ID:mQ7ypIPZ 下がりすぎ
上げるぜ
上げるぜ
558460
2016/09/18(日) 02:39:21.57ID:6855FAgd オセロオンラインというアプリに付属されている真・HAYABUSAと対戦してみました。
どうも定石がかなり充実しているようで、普通にやってると
こちら側が記憶していないドロー進行に分岐されて負けます。。
しょうがないので野兎とか序盤から不利な定石に分岐して評価関数の勝負に入らせると、案外勝てましたw
評価チューニングがEdaxなどに比べると結構甘いようです。
とはいえ国産アプリでここまでチューニングされているとは思わなかったので驚いています。
どうも定石がかなり充実しているようで、普通にやってると
こちら側が記憶していないドロー進行に分岐されて負けます。。
しょうがないので野兎とか序盤から不利な定石に分岐して評価関数の勝負に入らせると、案外勝てましたw
評価チューニングがEdaxなどに比べると結構甘いようです。
とはいえ国産アプリでここまでチューニングされているとは思わなかったので驚いています。
559名前は開発中のものです。
2016/09/18(日) 09:21:43.32ID:u+E0nELs おめでとうございます
ひょっとして物足りないと感じましたか?
それなら次は
PREMIUM・HAYABUSA に挑戦してみませんか?
いまなら特別キャンペーン中につき(ry
ひょっとして物足りないと感じましたか?
それなら次は
PREMIUM・HAYABUSA に挑戦してみませんか?
いまなら特別キャンペーン中につき(ry
560535
2016/09/21(水) 00:02:39.39ID:DjDR9tnr すいませんが誰か俺のデータを>>535のmm.exeにかけてみてくれませんか?
まじで何が悪いのかさっぱりわからん。
環境の問題かも?
http://thuploader.orz.hm/uploader/
のmy_input.zipが俺のデータです。
だれか親切な方よろしくお願いします。
まじで何が悪いのかさっぱりわからん。
環境の問題かも?
http://thuploader.orz.hm/uploader/
のmy_input.zipが俺のデータです。
だれか親切な方よろしくお願いします。
561310
2016/09/21(水) 01:01:30.09ID:CFP8O8Vn >>558
http://www.slideshare.net/uenokazu/20130906-hayabusa
これですね。色々AIの特徴を説明してますが、まあLogistelloの
日本語解説みたいな感じで、皆さんのAIもほぼ同じ構造かなと
思います。
テレビ番組企画でEdaxと良い勝負するAIを短期間で開発したという
のが開発経緯らしいので、恐らくEdaxをたたき台にして定石DBの
学習をしていると思います。
つまり、Edaxよりちょこっとだけ強ければよいと割り切った目標をたて、
目標がはっきりしている分、手間をかける箇所を、定石DBの対局学習に
集中したって感じだと思います。想像ですが。
で、これ読んだ時に、オセロAIの強さって結局は定石DBじゃんと、
結構真剣に思いまして・・・。まあ、それゆえ、オセロAIの開発者の多くが
ドロー進行のリストアップに走ってしまったのかなぁと。
http://www.slideshare.net/uenokazu/20130906-hayabusa
これですね。色々AIの特徴を説明してますが、まあLogistelloの
日本語解説みたいな感じで、皆さんのAIもほぼ同じ構造かなと
思います。
テレビ番組企画でEdaxと良い勝負するAIを短期間で開発したという
のが開発経緯らしいので、恐らくEdaxをたたき台にして定石DBの
学習をしていると思います。
つまり、Edaxよりちょこっとだけ強ければよいと割り切った目標をたて、
目標がはっきりしている分、手間をかける箇所を、定石DBの対局学習に
集中したって感じだと思います。想像ですが。
で、これ読んだ時に、オセロAIの強さって結局は定石DBじゃんと、
結構真剣に思いまして・・・。まあ、それゆえ、オセロAIの開発者の多くが
ドロー進行のリストアップに走ってしまったのかなぁと。
562535
2016/09/21(水) 20:18:28.81ID:DjDR9tnr 環境が悪いのかと思い押し入れからノートPCを引っ張り出して走らせてみたところ
計算結果がNaNになってるっぽい。
駄目なのか?うーむ。
計算結果がNaNになってるっぽい。
駄目なのか?うーむ。
563460
2016/09/22(木) 13:08:07.84ID:aLXK2a2e >>561
ほとんど考えずに打ってくるので、もしやと思い定石からわざと外してみたらいきなり10秒超の長考でした・・・w
本当にBOOKの精度がEdaxよりちょっと良いのでしょうね(逆に言うとそれだけ)
開発期間が短期間って制限があったらしいので、しょうがないのでしょうけどもったいない気もします。
ほとんど考えずに打ってくるので、もしやと思い定石からわざと外してみたらいきなり10秒超の長考でした・・・w
本当にBOOKの精度がEdaxよりちょっと良いのでしょうね(逆に言うとそれだけ)
開発期間が短期間って制限があったらしいので、しょうがないのでしょうけどもったいない気もします。
564310
2016/09/22(木) 20:43:51.38ID:esximYO0 BOOK学習ってあんまり実装例見ないので、その点は評価しても良いかなと。
Buroさんの論文はあるので、自分もいずれは実装しようと思っています。
が、BOOK学習で、別のオセロプログラムとひたすら対局学習させると、そのプログラム
相手限定ならほぼ負けないBOOKが得られるんです。
EdaxのBookは引き分け進行のリストアップで、そこに記載されていない分岐は、基本は
分岐した方が負けるはずなのですが、分岐後は純粋に評価関数の読みの勝負になるの
で、いかなEdaxでも間違える事があります。で、勝った手順、負けた手順をリストアップし
ていき、負けたら勝つ手順が見つかるまで、ランダムな手番で別の分岐を探していく。
Edax側がBOOK学習をオフにすれば、間違えた箇所は何度対局しても同じ間違いをする
ので、勝った手順になれば勝ちは確定し、負け手順は自分は打たないようになっていく。
要するに、そのプログラムの弱点を学習する事になるので、勝率が上がっていく。
EdaxのBookより精度が良いというのとはちょっと違う気がします。
とはいえ、Edaxとかの引分進行リストをパクっても意味が無いし、限られた時間で、パソコン
ぶん回して引分進行を発見していっても、間に合わないしで、これしかやりようがないんだ
とは思います。
実はこれに気が付いた時、BOOK学習+乱数着手(打たない箇所がない)で、自己対局を
延々と続けていくと、究極のBOOKができるんじゃないかと妄想してしまいましたが、よくよく
考えたら、それって全手順リストアップというか、完全解析大差ない事に気が付きました(汗
Buroさんの論文はあるので、自分もいずれは実装しようと思っています。
が、BOOK学習で、別のオセロプログラムとひたすら対局学習させると、そのプログラム
相手限定ならほぼ負けないBOOKが得られるんです。
EdaxのBookは引き分け進行のリストアップで、そこに記載されていない分岐は、基本は
分岐した方が負けるはずなのですが、分岐後は純粋に評価関数の読みの勝負になるの
で、いかなEdaxでも間違える事があります。で、勝った手順、負けた手順をリストアップし
ていき、負けたら勝つ手順が見つかるまで、ランダムな手番で別の分岐を探していく。
Edax側がBOOK学習をオフにすれば、間違えた箇所は何度対局しても同じ間違いをする
ので、勝った手順になれば勝ちは確定し、負け手順は自分は打たないようになっていく。
要するに、そのプログラムの弱点を学習する事になるので、勝率が上がっていく。
EdaxのBookより精度が良いというのとはちょっと違う気がします。
とはいえ、Edaxとかの引分進行リストをパクっても意味が無いし、限られた時間で、パソコン
ぶん回して引分進行を発見していっても、間に合わないしで、これしかやりようがないんだ
とは思います。
実はこれに気が付いた時、BOOK学習+乱数着手(打たない箇所がない)で、自己対局を
延々と続けていくと、究極のBOOKができるんじゃないかと妄想してしまいましたが、よくよく
考えたら、それって全手順リストアップというか、完全解析大差ない事に気が付きました(汗
565535
2016/09/22(木) 21:29:54.82ID:kzrJOomn RemiさんのMM法諦めるしかないのかなぁ
他の学習方法探すか…
他の学習方法探すか…
566535
2016/09/27(火) 23:07:26.38ID:AU3JIk+S いまいち手ごろな強化学習が見つからなかったので
モンテカルロ木探索をパターンに応用することにした。
モンテカルロ木探索をパターンに応用することにした。
567535
2016/09/28(水) 22:21:31.56ID:DgDU0GF3 とりあえずConnect 4のAI書いてるんだけどまあまあ強くなってきた。
Connect 4は完全ソルバが公開されてるので
先手でこれに一発入れるのが当面の目標。
Connect 4 完全ソルバ
http://connect4.gamesolver.org/?pos=
Connect 4は完全ソルバが公開されてるので
先手でこれに一発入れるのが当面の目標。
Connect 4 完全ソルバ
http://connect4.gamesolver.org/?pos=
568535
2016/09/29(木) 20:34:59.17ID:1GHOMTNV 評価関数の基になるパターンが悪いせいで
一生学習しても完全ソルバに勝てない気がしてきました。
一生学習しても完全ソルバに勝てない気がしてきました。
569535
2016/09/29(木) 21:12:02.15ID:1GHOMTNV まあ、Connect 4は習作なので一定の成果が確認できたということで一旦休止します。
これから本番のゲームに着手します。
できたConnect 4のexeをアップしてみます。
http://fast-uploader.com/file/7030706137212/
Connect 4の経験がない人にはかなり強く感じるはずです。
遊んでみてください。
これから本番のゲームに着手します。
できたConnect 4のexeをアップしてみます。
http://fast-uploader.com/file/7030706137212/
Connect 4の経験がない人にはかなり強く感じるはずです。
遊んでみてください。
570535
2016/09/30(金) 22:44:03.81ID:Ol1OvzoR 人為的なパターンを評価関数の基礎においてると
幾ら学習しても完全解析にたどり着かない可能性があるよね?
十分学習すれば完全解析にたどり着くと保証できる
出来るだけ効率の良いパターンセットてのは
なんとか数学的に割り出せないだろうか。
幾ら学習しても完全解析にたどり着かない可能性があるよね?
十分学習すれば完全解析にたどり着くと保証できる
出来るだけ効率の良いパターンセットてのは
なんとか数学的に割り出せないだろうか。
571460
2016/10/01(土) 15:19:39.34ID:NwASWJgd >>570
オセロしか開発したことがないのですが、connect4のノード数だと4兆程度だと聞きました。
オセロよりも合法手生成が簡単かつ常に7つなので、相当早い段階から完全読み出来そうです。
現在のAI同士を戦わせて数千から1万局程度の棋譜を作成すれば、
簡単なモデル(縦横斜めだけとか)でほぼ完ぺきな評価関数が線形回帰で
出来そうな気がするのですが、どうでしょうか。
オセロしか開発したことがないのですが、connect4のノード数だと4兆程度だと聞きました。
オセロよりも合法手生成が簡単かつ常に7つなので、相当早い段階から完全読み出来そうです。
現在のAI同士を戦わせて数千から1万局程度の棋譜を作成すれば、
簡単なモデル(縦横斜めだけとか)でほぼ完ぺきな評価関数が線形回帰で
出来そうな気がするのですが、どうでしょうか。
572535
2016/10/01(土) 16:21:13.92ID:UW3pMcrq573535
2016/10/01(土) 22:20:23.15ID:UW3pMcrq ちょっと思いついたんで、縦横斜めのパターンに加えて、
盤面の空マスの情報をパターンに加えて再学習させてみます。
もしかしてこれなら完全ソルバに一発入るかも?
盤面の空マスの情報をパターンに加えて再学習させてみます。
もしかしてこれなら完全ソルバに一発入るかも?
574460
2016/10/02(日) 00:33:37.72ID:jNeryq9p575535
2016/10/02(日) 00:38:22.45ID:8lzQrfNi レスありがとうございます。
オセロでも20手も読めるのか!
Connect 4ならもっと読めないとダメですね〜
線形回帰はちょっと調べてみます。
オセロでも20手も読めるのか!
Connect 4ならもっと読めないとダメですね〜
線形回帰はちょっと調べてみます。
576名前は開発中のものです。
2016/10/02(日) 01:27:36.48ID:8lzQrfNi 完全読みかなり厳しいorz
なぜオセロは20手も読めるんだろう?
よほど実装がいいのか?
なぜオセロは20手も読めるんだろう?
よほど実装がいいのか?
577460
2016/10/02(日) 04:03:56.40ID:jNeryq9p >>576
オーダリングはしてますか?オーダリング無しだと20手は厳しいと思います。
オセロは最後あたりだと数マスしか無くなるので合法手が1手しかないとかも頻出するのですが
connect4は最後まで7つあるので、20手はちょっと難しいかもですね。。
オーダリングはしてますか?オーダリング無しだと20手は厳しいと思います。
オセロは最後あたりだと数マスしか無くなるので合法手が1手しかないとかも頻出するのですが
connect4は最後まで7つあるので、20手はちょっと難しいかもですね。。
578名前は開発中のものです。
2016/10/02(日) 18:53:33.45ID:8lzQrfNi すいません。
オーダリングとはよさそうな枝を先に読むってことでしたっけ?
なぜそれで計算量が削減できるんでしたっけ?
最終的に全部読むなら結局同じのような…
素人考えですが。
オーダリングとはよさそうな枝を先に読むってことでしたっけ?
なぜそれで計算量が削減できるんでしたっけ?
最終的に全部読むなら結局同じのような…
素人考えですが。
579名前は開発中のものです。
2016/10/02(日) 19:09:19.16ID:8lzQrfNi 完全ソルバと対戦させると誤った学習をしてしまってるように見えます。
悪い手を良い手と思ってる。
うーん。
学習量が足りないだけなんだろうか?
悪い手を良い手と思ってる。
うーん。
学習量が足りないだけなんだろうか?
580310
2016/10/02(日) 20:32:53.90ID:n86BxDyi >>578
αβ刈りしているでしょ。
最初に読んだ手でα値が最高値になる。
次の手を1段読んだ時、それを超える手が出ないので、全ての手がβカットの対象となる。
本当に一番良い手を選べるんなら、そもそも読む必要がないけど、何らかのヒューリスティック
な基準でよさそうな手から読むと、それが正解だった時に、βカットが大量発生して、実際に
読む事になるノード数が激減する。
αβ刈りみたいな方法は、後ろ向き枝刈と言って、完全読み切りに必要が無い手を読まずに
済ます手法。
αβ刈りしているでしょ。
最初に読んだ手でα値が最高値になる。
次の手を1段読んだ時、それを超える手が出ないので、全ての手がβカットの対象となる。
本当に一番良い手を選べるんなら、そもそも読む必要がないけど、何らかのヒューリスティック
な基準でよさそうな手から読むと、それが正解だった時に、βカットが大量発生して、実際に
読む事になるノード数が激減する。
αβ刈りみたいな方法は、後ろ向き枝刈と言って、完全読み切りに必要が無い手を読まずに
済ます手法。
581名前は開発中のものです。
2016/10/02(日) 20:59:00.22ID:8lzQrfNi レスありがとうございます。
αβですか〜。
実はあれ、私、理解してないんですよね。
説明読むとなんとなくわかった気になるんですけど
いまだ実装できたことない。orz
MinMaxなら実装できるんですけどね。
αβですか〜。
実はあれ、私、理解してないんですよね。
説明読むとなんとなくわかった気になるんですけど
いまだ実装できたことない。orz
MinMaxなら実装できるんですけどね。
582名前は開発中のものです。
2016/10/02(日) 21:29:32.92ID:8lzQrfNi αβが最高に上手く働けばMinMaxの倍の深さ読めるんでしたっけ?
それなら20手行けそうですね。
それなら20手行けそうですね。
583535
2016/10/03(月) 00:03:31.42ID:5qtC3pHr 完全ソルバでいろいろ試してるんですが、
Connect 4って思ったよりずっと底の浅いゲームのような気がしてきましたw
□□□□□□□
□□□○□□□
□○□●□○□
□●□○□●□
□○□●□○□
□●□○□●□
この配石が必勝法の骨格のようです。
ここさえ押さえればあとは自動的に勝つる。
Connect 4って思ったよりずっと底の浅いゲームのような気がしてきましたw
□□□□□□□
□□□○□□□
□○□●□○□
□●□○□●□
□○□●□○□
□●□○□●□
この配石が必勝法の骨格のようです。
ここさえ押さえればあとは自動的に勝つる。
584310
2016/10/03(月) 01:55:16.80ID:alBluDZI >>582
深さはなんとも言えないけど、オセロで言えば、αβだけでノード数は1/100くらいに
なるってどこかのサイトに出ていたかな。1/100だとアバウト2〜4手くらい深く読めるはず。
置ける箇所が結構絞られるゲームなので置換表入れたら更にいけるかもしれない。
あとはビットマップの実装だね。
ゲームの規模的には(ネットチラ見だけど7兆パターンって書いてあった)完全解析を
ターゲットにしても良い気がする。軽はずみ発言だけど。
深さはなんとも言えないけど、オセロで言えば、αβだけでノード数は1/100くらいに
なるってどこかのサイトに出ていたかな。1/100だとアバウト2〜4手くらい深く読めるはず。
置ける箇所が結構絞られるゲームなので置換表入れたら更にいけるかもしれない。
あとはビットマップの実装だね。
ゲームの規模的には(ネットチラ見だけど7兆パターンって書いてあった)完全解析を
ターゲットにしても良い気がする。軽はずみ発言だけど。
585310
2016/10/03(月) 02:02:27.60ID:alBluDZI ちなみに。当方、Sparse正則化付AutoEncoderの実装に不安が付きまとった挙句、
MNISTという手書き数字認識のテストで動作確認をするという遠回りな事をしてます。
というか、何をしたら認識率改善するのかという事を考えて、色々といじって時間を
食ってました。
結果、オセロの方が盤面は狭いけど、良く現れる状態の数と、その特徴の複雑性が
圧倒的に違うので、やはり畳み込みのような、盤面の特徴の解釈の仕方を外から
与える方向に行く必要がありそうだという事になりました。
いままでも薄々気づいていたんですが。
ただ、画像解析や囲碁のように隣接するノードとの関係性からスタートしても意味がなさ
そうなので、その辺の工夫をしてみようと思っています。
MNISTという手書き数字認識のテストで動作確認をするという遠回りな事をしてます。
というか、何をしたら認識率改善するのかという事を考えて、色々といじって時間を
食ってました。
結果、オセロの方が盤面は狭いけど、良く現れる状態の数と、その特徴の複雑性が
圧倒的に違うので、やはり畳み込みのような、盤面の特徴の解釈の仕方を外から
与える方向に行く必要がありそうだという事になりました。
いままでも薄々気づいていたんですが。
ただ、画像解析や囲碁のように隣接するノードとの関係性からスタートしても意味がなさ
そうなので、その辺の工夫をしてみようと思っています。
586535
2016/10/03(月) 22:00:29.42ID:5qtC3pHr 完全解析はできるに越したことはないですが、
Connect 4やってるのは勉強の意味あいが強いので
Connect 4以外では通用しないようなヒューリスティックで強くなるのは
出来るだけ避けたいです。
理想的には汎用的な手法で完全解析レベルまでもっていきたいですね。
αβもそろそろ片づけなければいけない宿題ですね。
Connect 4やってるのは勉強の意味あいが強いので
Connect 4以外では通用しないようなヒューリスティックで強くなるのは
出来るだけ避けたいです。
理想的には汎用的な手法で完全解析レベルまでもっていきたいですね。
αβもそろそろ片づけなければいけない宿題ですね。
587460
2016/10/04(火) 00:53:57.08ID:OTRn7xTU コネクト4、軽く実装してみましたが(ほとんどオセロの流用)
単純アルファベータ、置換無しオーダリング無し、
評価関数が連続している数だけ考慮・・・だと8手涛ヌみは一瞬ですbェ、12手読みはbキでにきついでbキね。。
末セ日評価関数を給lめてみてとりbえず8手読みで535さんのAIと対戦してみる予定ですw
単純アルファベータ、置換無しオーダリング無し、
評価関数が連続している数だけ考慮・・・だと8手涛ヌみは一瞬ですbェ、12手読みはbキでにきついでbキね。。
末セ日評価関数を給lめてみてとりbえず8手読みで535さんのAIと対戦してみる予定ですw
588535
2016/10/04(火) 21:18:36.22ID:dRd+Ucp+ おお!楽しみですね。
ありがとうございます。
工夫無しの8手読みなら勝ちたいですねw
ちなみに私のAIは結構思考時間が長いのでw
統計といえるほどの試合数はこなせないと思いますが期待しちゃいます。
よろしくお願いします。
ありがとうございます。
工夫無しの8手読みなら勝ちたいですねw
ちなみに私のAIは結構思考時間が長いのでw
統計といえるほどの試合数はこなせないと思いますが期待しちゃいます。
よろしくお願いします。
590460
2016/10/05(水) 11:21:34.44ID:WWXbBFqc オセロは大体やることはやったので、そろそろ将棋か囲碁に着手してみようかと思っています。
ルールの実装が楽なのは囲碁なのかな…
自身が囲碁を打ったことがないのでルールから調べないとですがw
ルールの実装が楽なのは囲碁なのかな…
自身が囲碁を打ったことがないのでルールから調べないとですがw
591310
2016/10/05(水) 12:08:04.26ID:Iif/OHnc やっぱ囲碁行きたいですよね。
昔調べた感じでは、日本ルールと中国ルールで勝敗の判定が微妙に違って、日本
ルールだと曖昧なところがあるので、AI開発は中国ルールでしているみたいです。
ルールの実装は着手禁止点が少なくて拍子抜けするくらいですが、その先が・・・
色々と一筋縄ではいかないようです。
オセロの評価関数ですが、AutoEncoderの限界を感じ、DCNNの実装を始めていますが、
バックプロパゲーションがスパゲッティでわけわからん状態になっています。しばらくは
紙と鉛筆で考える必要がありそうです。DCNNがある程度できたら、僕も囲碁に行って
みようかな。
その前にConnect4に脱線してみたい気も(汗
昔調べた感じでは、日本ルールと中国ルールで勝敗の判定が微妙に違って、日本
ルールだと曖昧なところがあるので、AI開発は中国ルールでしているみたいです。
ルールの実装は着手禁止点が少なくて拍子抜けするくらいですが、その先が・・・
色々と一筋縄ではいかないようです。
オセロの評価関数ですが、AutoEncoderの限界を感じ、DCNNの実装を始めていますが、
バックプロパゲーションがスパゲッティでわけわからん状態になっています。しばらくは
紙と鉛筆で考える必要がありそうです。DCNNがある程度できたら、僕も囲碁に行って
みようかな。
その前にConnect4に脱線してみたい気も(汗
593535
2016/10/05(水) 19:48:59.89ID:KcSrUkxH596名前は開発中のものです。
2016/10/05(水) 22:05:36.36ID:KcSrUkxH まあ、こんな過疎スレでわざわざ嘘をついて騙るひともいない気もしますが…
597名前は開発中のものです。
2016/10/05(水) 22:31:22.88ID:KcSrUkxH598460
2016/10/06(木) 20:28:59.44ID:1mBat3Ee 460の名前があるものは偽物ではないので大丈夫です・・・
コテ付けた方がいいかもですけど、まぁこの人数ですし、そこまでする必要もないかなと思いますー
囲碁ですが、ネットから集めた棋譜をざっと見てみましたが、投了がほとんどなんですね・・・
中押し勝ち?はて・・・?となって調べるくらいルールを理解していないという;;
投了だとするとロジスティック回帰でないとあんまり良い精度は出なさそう・・・?
というより一般的な機械学習のアプローチで良いのかも微妙ですね。
やはりディープランニングなのでしょうか。。。腰が引けますw
コテ付けた方がいいかもですけど、まぁこの人数ですし、そこまでする必要もないかなと思いますー
囲碁ですが、ネットから集めた棋譜をざっと見てみましたが、投了がほとんどなんですね・・・
中押し勝ち?はて・・・?となって調べるくらいルールを理解していないという;;
投了だとするとロジスティック回帰でないとあんまり良い精度は出なさそう・・・?
というより一般的な機械学習のアプローチで良いのかも微妙ですね。
やはりディープランニングなのでしょうか。。。腰が引けますw
600310
2016/10/06(木) 22:11:43.15ID:2nbHwrUk >>598
投了は将棋用語で「参った」です。むしろ中押し勝ちと同じ意味です(汗
将棋の場合、詰まれるまで粘る事はみっともないこととされているので、
入玉とか千日手、反則負けなどの特殊なケースを除けば全て投了です。
囲碁は、逆に終局まで打つ事があって、「数え碁」と呼ぶみたいです。
この間のアルファ碁vsセドルの試合見て覚えました(笑)
オセロのように必ず最後まで打って、得点差がはっきりと出るゲームの
方が珍しいのかも知れません。
オセロみたいなmin-Max+評価関数は既にダメ認定されてます。
アルファ碁までは、MTCS(モンテカルロツリーサーチ)が主流で、
モンテカルロ系には評価関数はありません。着手順決定のための
ヒューリスティックが大事になります。
アルファ碁の登場で、一気にディープラーニングにシフトしていますが、
基本骨格はMTCSです。着手順のヒューリスティックに「次の1手を返す
DCNN」と、評価値たるモンテカルロの勝率に、補助的に「勝率を返す
評価関数としてのDCNN」を組み合わせているようです。
投了は将棋用語で「参った」です。むしろ中押し勝ちと同じ意味です(汗
将棋の場合、詰まれるまで粘る事はみっともないこととされているので、
入玉とか千日手、反則負けなどの特殊なケースを除けば全て投了です。
囲碁は、逆に終局まで打つ事があって、「数え碁」と呼ぶみたいです。
この間のアルファ碁vsセドルの試合見て覚えました(笑)
オセロのように必ず最後まで打って、得点差がはっきりと出るゲームの
方が珍しいのかも知れません。
オセロみたいなmin-Max+評価関数は既にダメ認定されてます。
アルファ碁までは、MTCS(モンテカルロツリーサーチ)が主流で、
モンテカルロ系には評価関数はありません。着手順決定のための
ヒューリスティックが大事になります。
アルファ碁の登場で、一気にディープラーニングにシフトしていますが、
基本骨格はMTCSです。着手順のヒューリスティックに「次の1手を返す
DCNN」と、評価値たるモンテカルロの勝率に、補助的に「勝率を返す
評価関数としてのDCNN」を組み合わせているようです。
601310
2016/10/08(土) 22:22:06.53ID:wBSLMo4h あ、MTCSじゃねー。MCTSだ。
>>600書きながら、Q-Learningなるものの存在を思い出して、調べ始めたら、
やっぱりDQN(ブロック崩しで有名になった奴)はQ-Learning+DeepLearning
だった。
興味津々だけど、どんどん発散しちゃうなぁ。
>>600書きながら、Q-Learningなるものの存在を思い出して、調べ始めたら、
やっぱりDQN(ブロック崩しで有名になった奴)はQ-Learning+DeepLearning
だった。
興味津々だけど、どんどん発散しちゃうなぁ。
602535
2016/10/10(月) 19:51:24.57ID:WonRpXhk なんかモチベーションあがらんなぁ
三連休まるまるさぼってしまった。
三連休まるまるさぼってしまった。
603名前は開発中のものです。
2016/10/10(月) 22:22:05.27ID:WonRpXhk 将棋電王戦あったみたいですね。
604名前は開発中のものです。
2016/10/10(月) 22:38:31.22ID:WonRpXhk 優勝はポナンザか。
一発勝負のトーナメントなのに強え。
一発勝負のトーナメントなのに強え。
605名前は開発中のものです。
2016/10/10(月) 23:10:57.87ID:WonRpXhk ん?
一発勝負じゃないのか?
一発勝負じゃないのか?
606310
2016/10/13(木) 11:06:43.08ID:f6Nd8WJL ここ数日、気分転換でConnect4やってました。
ビットマップ方式の置換表付αβのオーダリング無し。リーチ状態のみ後方枝刈。
完全解析ができそうか確認してました。
全42手でルートから30手くらい置換表適用すると、序盤はかなり良いペースで探索
してくれますが、数時間で置換表パンク。置換表を20手くらいまでにとどめると、びっくり
するほど速度低下。手順の前後で簡単に同形が生じるので、置換表が肝なのは確か。
というか、手順前後の同形を排除する仕組みが作れればメモリ節約可能になる。
けど、それを一般化した処理が置換表なので、全てカバーしなくても3手以内くらいで
排除すれば状況はかなり改善するかも知れない。
あと、パンク前も探索が進むにつれて徐々にnpsが低下していきます。原因不明。
書きながら気づいたのですが、置換表のハッシュ値はオセロのものを流用しています。
Connect4はビット数が少ないので、ハッシュ衝突が頻発して、格納効率が低下して
領域拡張が頻繁におきて、探索速度も落ちている可能性があります。
というわけで、現段階では置換表周りを工夫しないと完全解析は厳しそうです。
一方で、空26箇所くらいの終盤探索なら実用的な速度が出そうな感触です。
>>569の完全ソルバは、評価値表示機能があるけど、あの表示の仕方だと、証明数
探索みたいな手法を使っているのかなぁ。ほぼノータイムで最善手のみ着手してくる
ので。完全ソルバの出現で終わっちゃってるゲームなんでしょうね。
で、このゲームってMCTSの練習台にちょうど良いのではないか?とふと思いついて
しまいまして・・・。更に脱線しようかなと思います。Playout関数は作りましたが、ツリー
展開の仕方に疑問があり、まだ調べ中です。
ビットマップ方式の置換表付αβのオーダリング無し。リーチ状態のみ後方枝刈。
完全解析ができそうか確認してました。
全42手でルートから30手くらい置換表適用すると、序盤はかなり良いペースで探索
してくれますが、数時間で置換表パンク。置換表を20手くらいまでにとどめると、びっくり
するほど速度低下。手順の前後で簡単に同形が生じるので、置換表が肝なのは確か。
というか、手順前後の同形を排除する仕組みが作れればメモリ節約可能になる。
けど、それを一般化した処理が置換表なので、全てカバーしなくても3手以内くらいで
排除すれば状況はかなり改善するかも知れない。
あと、パンク前も探索が進むにつれて徐々にnpsが低下していきます。原因不明。
書きながら気づいたのですが、置換表のハッシュ値はオセロのものを流用しています。
Connect4はビット数が少ないので、ハッシュ衝突が頻発して、格納効率が低下して
領域拡張が頻繁におきて、探索速度も落ちている可能性があります。
というわけで、現段階では置換表周りを工夫しないと完全解析は厳しそうです。
一方で、空26箇所くらいの終盤探索なら実用的な速度が出そうな感触です。
>>569の完全ソルバは、評価値表示機能があるけど、あの表示の仕方だと、証明数
探索みたいな手法を使っているのかなぁ。ほぼノータイムで最善手のみ着手してくる
ので。完全ソルバの出現で終わっちゃってるゲームなんでしょうね。
で、このゲームってMCTSの練習台にちょうど良いのではないか?とふと思いついて
しまいまして・・・。更に脱線しようかなと思います。Playout関数は作りましたが、ツリー
展開の仕方に疑問があり、まだ調べ中です。
607名前は開発中のものです。
2016/10/13(木) 21:15:41.15ID:XMNeJMFS 310氏もConnect 4 参戦か〜
608535
2016/10/13(木) 21:53:14.86ID:XMNeJMFS 名前書き忘れた。
終盤26手読み行けそうというのは流石ですな。
完全解析ってConnect 4だと簡単そうに見えますがこれが意外と手強いんですよね〜
終盤26手読み行けそうというのは流石ですな。
完全解析ってConnect 4だと簡単そうに見えますがこれが意外と手強いんですよね〜
609310
2016/10/15(土) 13:58:53.52ID:iZ3eY/zy NPS低下問題はやはりハッシュ衝突のようで、ちょこっと直したら解消しました。
Connect4は手順前後しても同じ形になる事が多いゲーム(DAG問題多発)なので、
置換表を上手く使わないと、7兆種類あると言われている盤面を何度も重複探索して
しまう事になります。が、置換表探索と登録のオーバーヘッドは結構大きく、メモリ
パンクでスワップ多発の問題も起きます。
今の設定だと残り27手探索くらいなら難しい問題で1分程度で解けそうです。
NPSは20メガくらい。が、メモリパンクや重複探索の問題があるので、その速度を
もとに完全解析に要する期間を推計するのは無理っぽい感じです。
というわけで、完全解析はこの辺にして、MCTSの方に行きます。
Connect4は手順前後しても同じ形になる事が多いゲーム(DAG問題多発)なので、
置換表を上手く使わないと、7兆種類あると言われている盤面を何度も重複探索して
しまう事になります。が、置換表探索と登録のオーバーヘッドは結構大きく、メモリ
パンクでスワップ多発の問題も起きます。
今の設定だと残り27手探索くらいなら難しい問題で1分程度で解けそうです。
NPSは20メガくらい。が、メモリパンクや重複探索の問題があるので、その速度を
もとに完全解析に要する期間を推計するのは無理っぽい感じです。
というわけで、完全解析はこの辺にして、MCTSの方に行きます。
610535
2016/10/15(土) 20:55:10.85ID:jn3cHMWR >>609
多分純粋なMCTSだけではあまり強くならず、
プレイアウトになにがしかの工夫を入れる必要が出てくると見てます。
逆にプレイアウトさえ改良できればMCTSはびっくりするくらい強くなる。
しかしそれでも完全ソルバには届かない。みたいな感じだと思います。
多分純粋なMCTSだけではあまり強くならず、
プレイアウトになにがしかの工夫を入れる必要が出てくると見てます。
逆にプレイアウトさえ改良できればMCTSはびっくりするくらい強くなる。
しかしそれでも完全ソルバには届かない。みたいな感じだと思います。
611310
2016/10/15(土) 21:29:59.48ID:iZ3eY/zy MCTS(UCT)多分できました。STL様様です。
探索時間1秒で40万プレイアウト。
playout部をnegamax的に書いたので、ちょっと混乱しました。
まだ終局判定とかいい加減で、引分近辺で落ちる可能性あります。
オセロでも1秒で10万プレイアウト以上いけるんじゃないかなぁ。
探索時間固定できるのでオセロ序盤〜中盤で使えるかも。
>>535さんのプログラムはもうダウンロードできないですね。
探索時間1秒で40万プレイアウト。
playout部をnegamax的に書いたので、ちょっと混乱しました。
まだ終局判定とかいい加減で、引分近辺で落ちる可能性あります。
オセロでも1秒で10万プレイアウト以上いけるんじゃないかなぁ。
探索時間固定できるのでオセロ序盤〜中盤で使えるかも。
>>535さんのプログラムはもうダウンロードできないですね。
612535
2016/10/15(土) 21:54:42.38ID:jn3cHMWR 秒速40万プレイアウト!?すげぇぇぇぇ
1プレイアウト=1手てことですか?
1プレイアウト=1局てことですか?
1プレイアウト=1手てことですか?
1プレイアウト=1局てことですか?
613535
2016/10/15(土) 22:17:47.78ID:jn3cHMWR 460氏もオセロで10000Knps〜15000Knpsとか言ってるし、まじか〜
やっぱ本気でやってる人達は違うのかな…
やっぱ本気でやってる人達は違うのかな…
614535
2016/10/15(土) 23:46:45.43ID:jn3cHMWR NPSは20メガって書いてありますね…
すいません。
すいません。
615310
2016/10/16(日) 01:32:06.03ID:KTdXBWLt プレイアウトなので1局です。色々ごにょごにょはありますが、ランダム着手で、
とりあえず勝負がつくまで打ちます。これで1プレイアウト。
速度が出るのはビットマップとBMI命令などのX64命令を使ってるからだと思います。
が、Perfect Solverに先手で勝てません(汗。5手目に必ず間違えます。
評価値を眺めても、当たり前のように、正解(真ん中列)が最下位になります。
パラメータをそこそこいじってみましたが、状況は変わらないです。
一本道には弱いって事かなぁ。
とはいえ、自分がやると、さっくりと負けてしまいます(汗
とりあえず勝負がつくまで打ちます。これで1プレイアウト。
速度が出るのはビットマップとBMI命令などのX64命令を使ってるからだと思います。
が、Perfect Solverに先手で勝てません(汗。5手目に必ず間違えます。
評価値を眺めても、当たり前のように、正解(真ん中列)が最下位になります。
パラメータをそこそこいじってみましたが、状況は変わらないです。
一本道には弱いって事かなぁ。
とはいえ、自分がやると、さっくりと負けてしまいます(汗
616310
2016/10/16(日) 13:25:18.14ID:KTdXBWLt mobility周りにバグがあって直したところ、1秒読みでPerfect Solverに先手で勝ちました。
昨夜は120秒読みでも同じ手順で負けていました。
とはいえ、乱数が絡むので引き分ける事もあります。
まだ若干問題があります。1本道を交互に着手していくと自動的に勝ちが確定する盤面
なのに、評価が引き分けになっています。プレイアウトの終局判定で何かの条件が抜け
ていて、勝ちと判定されていない感じです。
直したらまた勝てなくなったりして(汗
C++の診断ツールを今回初めて使ってみました。
関数ごとの使用時間がわかるようで、速度アップの検討に重宝します。
が、どうもUCB1の計算で使うsqrtとlogを使ってる箇所でCPUを9割くらい使っている
感じです。見方が良くわからないけど、多分そういう状況。速度アップ難しい。
昨夜は120秒読みでも同じ手順で負けていました。
とはいえ、乱数が絡むので引き分ける事もあります。
まだ若干問題があります。1本道を交互に着手していくと自動的に勝ちが確定する盤面
なのに、評価が引き分けになっています。プレイアウトの終局判定で何かの条件が抜け
ていて、勝ちと判定されていない感じです。
直したらまた勝てなくなったりして(汗
C++の診断ツールを今回初めて使ってみました。
関数ごとの使用時間がわかるようで、速度アップの検討に重宝します。
が、どうもUCB1の計算で使うsqrtとlogを使ってる箇所でCPUを9割くらい使っている
感じです。見方が良くわからないけど、多分そういう状況。速度アップ難しい。
617535
2016/10/16(日) 16:43:19.50ID:Ts0NTtMt 一秒読みで完全ソルバに勝とかまじか〜
やっぱ積み上げてきた基礎力が違うんだろうな〜
やっぱ積み上げてきた基礎力が違うんだろうな〜
618310
2016/10/16(日) 17:19:15.26ID:KTdXBWLt どもです。評価値問題は治りました。
乱数じゃなくて、ある手順で引き分けな手を選んでしまう事が判明したので探索時間
を延ばしてみたら、逆に序盤で負け手順を選んでしまうようになりました(汗。
ツリー部の地平線臭い感じなのかなぁ。
というわけで、たまたま選んだ1秒が良かっただけかも知れませんorz
MCTSも理論的には探索回数を∞にすると、最善手を必ず導き出す事は保証されて
いるらしいのですが、中途半端な回数の時は保証されていないんですよね。
乱数じゃなくて、ある手順で引き分けな手を選んでしまう事が判明したので探索時間
を延ばしてみたら、逆に序盤で負け手順を選んでしまうようになりました(汗。
ツリー部の地平線臭い感じなのかなぁ。
というわけで、たまたま選んだ1秒が良かっただけかも知れませんorz
MCTSも理論的には探索回数を∞にすると、最善手を必ず導き出す事は保証されて
いるらしいのですが、中途半端な回数の時は保証されていないんですよね。
619535
2016/10/16(日) 21:36:30.64ID:Ts0NTtMt なんか将棋で評価値を深く探索した時の評価値に近づけるっていう学習方法があるみたいですね。
ちょっと興味あります。
ちょっと興味あります。
620310
2016/10/16(日) 22:45:31.89ID:KTdXBWLt なんか、デバッグ報告みたいな状況になってすみません。
地平線臭い状況を調べていたら、負ける寸前なのに評価値が勝ちになってます。
つまり負けを認識していない。
着手を間違えるのはこの辺も原因かも知れません。
ぱっと思いつく原因が見当たらないので、しばし長考します。
地平線臭い状況を調べていたら、負ける寸前なのに評価値が勝ちになってます。
つまり負けを認識していない。
着手を間違えるのはこの辺も原因かも知れません。
ぱっと思いつく原因が見当たらないので、しばし長考します。
621535
2016/10/17(月) 22:03:40.14ID:B9d5KHtX connect 4序盤ブック作ってみようかな。
完全ソルバ丸パクリでw
完全ソルバ丸パクリでw
622310
2016/10/18(火) 00:57:04.06ID:k8M1GDOc 色々直して、ほぼバグは取れたと思います。
で・・・強くなったはずですが・・・PerfectSolverに先手で勝てなくなりました。
かつて勝てたのはたまたま上手くバグっていたという事みたいです。
1秒設定は途中で間違えて引き分け、10秒設定は初手で負け確定(真ん中以外に着手)。
1秒設定で初手真ん中を選択するのはたまたまかもしれません。
初手だけ調べると150万プレイアウトくらいで間違えはじめ、15億プレイアウトまで確認
しましたが、雰囲気的には当分正しい答えに戻ってこないようです。
評価値の推移を見ると、一本道問題に引っかかっているように見えます。
DAG問題がやっぱり気になるので、ハッシュと組み合わせて合流できるようにしてみます。
多少は改善するかも知れないし、逆にもっと早く真ん中から外れるかも。
で・・・強くなったはずですが・・・PerfectSolverに先手で勝てなくなりました。
かつて勝てたのはたまたま上手くバグっていたという事みたいです。
1秒設定は途中で間違えて引き分け、10秒設定は初手で負け確定(真ん中以外に着手)。
1秒設定で初手真ん中を選択するのはたまたまかもしれません。
初手だけ調べると150万プレイアウトくらいで間違えはじめ、15億プレイアウトまで確認
しましたが、雰囲気的には当分正しい答えに戻ってこないようです。
評価値の推移を見ると、一本道問題に引っかかっているように見えます。
DAG問題がやっぱり気になるので、ハッシュと組み合わせて合流できるようにしてみます。
多少は改善するかも知れないし、逆にもっと早く真ん中から外れるかも。
623名前は開発中のものです。
2016/10/18(火) 17:50:18.00ID:7idTlLLA 読めば読むほど弱くなるとは不思議
ucbの計算間違えてるとかでは?
ucbの計算間違えてるとかでは?
624名前は開発中のものです。
2016/10/18(火) 19:31:31.87ID: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.nifty.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://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.nifty.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/
625535
2016/10/18(火) 22:30:42.36ID:5rT5zFZw 完全ソルバから定石パクるの意外とめんどくさいな。
クローラーみたいにして自動でパクれるようにしようかな。
でも迷惑かかるかな?
クローラーみたいにして自動でパクれるようにしようかな。
でも迷惑かかるかな?
626535
2016/10/18(火) 23:07:54.58ID:5rT5zFZw なんか本末転倒だからやめとくかw
627310
2016/10/19(水) 02:53:35.54ID:YWnebdEb まさかの場所にバグ発見。
プレイアウトでランダムに1手選ぶところがバグってました。
良く動いていたものだと思う反面、MCTSってそういう所がある事も薄々感じてます。
が、状況はほぼ変わらず。初手真ん中と、5手目真ん中。この2か所が鬼門。
まだバグがあるのかも知れない。やっぱり自分が一番信用できないですね。
DAG問題対策でノードの合流を実装しました。枝とノードを分離して、ノードをハッシュ
にして、ノードの下に次の枝をぶら下げました。同時に、ハッシュキーに細工して、
左右同形も合流させてます。あまり変化はない気が。
速度低下が酷いです。
プレイアウトでランダムに1手選ぶところがバグってました。
良く動いていたものだと思う反面、MCTSってそういう所がある事も薄々感じてます。
が、状況はほぼ変わらず。初手真ん中と、5手目真ん中。この2か所が鬼門。
まだバグがあるのかも知れない。やっぱり自分が一番信用できないですね。
DAG問題対策でノードの合流を実装しました。枝とノードを分離して、ノードをハッシュ
にして、ノードの下に次の枝をぶら下げました。同時に、ハッシュキーに細工して、
左右同形も合流させてます。あまり変化はない気が。
速度低下が酷いです。
628310
2016/10/20(木) 00:37:06.99ID:yz39woaL 5手目真ん中以後どうなるのか1秒探索検証。6手目2列目に対しては、勝利(全て
最善着手)。6手目1列目に対しては、5列目着手で引き分け進行に入り、引分終了。
この時の手順では、全箇所が最善手という盤面ばかり通っていくように感じています。
つまり、MCTS的に勝利期待値が最大になりやすい手です。という事で、まあ、そんな
に間違った手は打っていないかなと。
また、プレイアウトを繰り返して手がどう変遷するのか見ていくと、最善手である真ん中
は、ある一定数からほとんど選択されなくなっています。結果、その手で枝の分岐が起き
ない事から、いつまでたっても評価が更新されず正解に戻らないと推測できます。
そこで、試行回数に圧倒的な差ができても、下位の手も一定回数は試行されるように
できないかと、手の選択基準をucb1の大きい順から、ソフトマックス関数を通して確率
分布に変えて、乱数で選択してみました。
結果は・・・。expの計算がある事からか、速度が激減。PVに割り当てられる試行回数は
2/3程度になり、その時点の最悪手でもそれなりに試行されるようになりましたが、それ
でも手の選択は微妙な感じです。この程度の効果なら、他のパラメータいじった方が
速度低下も無く良かったかも(汗
というわけで、本日のトライアルも失敗。
気が進まなかったけど、やっぱりucb1計算の検算をしてみます。
あと、部分的にmin-Maxを適用するとか。
最善着手)。6手目1列目に対しては、5列目着手で引き分け進行に入り、引分終了。
この時の手順では、全箇所が最善手という盤面ばかり通っていくように感じています。
つまり、MCTS的に勝利期待値が最大になりやすい手です。という事で、まあ、そんな
に間違った手は打っていないかなと。
また、プレイアウトを繰り返して手がどう変遷するのか見ていくと、最善手である真ん中
は、ある一定数からほとんど選択されなくなっています。結果、その手で枝の分岐が起き
ない事から、いつまでたっても評価が更新されず正解に戻らないと推測できます。
そこで、試行回数に圧倒的な差ができても、下位の手も一定回数は試行されるように
できないかと、手の選択基準をucb1の大きい順から、ソフトマックス関数を通して確率
分布に変えて、乱数で選択してみました。
結果は・・・。expの計算がある事からか、速度が激減。PVに割り当てられる試行回数は
2/3程度になり、その時点の最悪手でもそれなりに試行されるようになりましたが、それ
でも手の選択は微妙な感じです。この程度の効果なら、他のパラメータいじった方が
速度低下も無く良かったかも(汗
というわけで、本日のトライアルも失敗。
気が進まなかったけど、やっぱりucb1計算の検算をしてみます。
あと、部分的にmin-Maxを適用するとか。
629310
2016/10/23(日) 09:58:44.72ID:qEEwIK82 UCB1の計算は合ってました。
プログラムがC++的に美しくない事が気になりだし始めて、全部書き直ししてました。
書いた端から美しくないのが気になりだしましたが(笑)
UCTで後方枝刈というか、小枝の勝敗が確定していたら、ツリーを縮小していく処理を
追加。一本道問題が多少緩和するかと期待。対戦はちゃんと動いているっぽい。
デバッグ情報をファイル出力する処理書いて確認。
間違え方はあまり変わっていないのが残念というか、安心というか(汗
モンテカルロで1手目から最善手順が確実にわかったら、それはそれでゲームが
簡単すぎるって事になっちゃうので、大きく間違えないんなら、それで仕方ないかな。
というわけで、COM1手目は真ん中に固定。
プレイアウト部を高速化できる気がしていますが、やってみないとわかりません。
プレイアウトの末端部分に完全読みを数段入れるのも良いかと思っています。
DAG問題対応と左右対称チェックを入れて毎秒20万プレイアウトくらい。
評価値の算出方法でちょっと悩み中。
そこそこ落ち着いたらオセロの中盤探索に応用してみます。
プログラムがC++的に美しくない事が気になりだし始めて、全部書き直ししてました。
書いた端から美しくないのが気になりだしましたが(笑)
UCTで後方枝刈というか、小枝の勝敗が確定していたら、ツリーを縮小していく処理を
追加。一本道問題が多少緩和するかと期待。対戦はちゃんと動いているっぽい。
デバッグ情報をファイル出力する処理書いて確認。
間違え方はあまり変わっていないのが残念というか、安心というか(汗
モンテカルロで1手目から最善手順が確実にわかったら、それはそれでゲームが
簡単すぎるって事になっちゃうので、大きく間違えないんなら、それで仕方ないかな。
というわけで、COM1手目は真ん中に固定。
プレイアウト部を高速化できる気がしていますが、やってみないとわかりません。
プレイアウトの末端部分に完全読みを数段入れるのも良いかと思っています。
DAG問題対応と左右対称チェックを入れて毎秒20万プレイアウトくらい。
評価値の算出方法でちょっと悩み中。
そこそこ落ち着いたらオセロの中盤探索に応用してみます。
630310
2016/10/26(水) 20:47:59.29ID:H5ji3apJ また美しくない病が出て、書き直したところ、びっくりするほど弱くなってしまった。
しばらくデバッグで悩みそうです。
しばらくデバッグで悩みそうです。
631535
2016/10/26(水) 20:59:11.78ID:+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
マイナーゲームですが囲連星というゲームで囲碁と五目並べを混ぜたようなゲームです。
簡単に言うと、七目並べれば勝ち、囲った石は取れるというルールです。
ついさっき黒番で公式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
632535
2016/10/27(木) 22:26:16.59ID: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])
キセキが起きた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])
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★4 [BFU★]
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 【音楽】『日本レコード大賞』各賞発表! 大賞候補にILLIT、M!LK、ふるっぱー、幾田りら、アイナ、ミセスら… 作詩賞は指原莉乃 [冬月記者★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- 中国、レアアース輸出制限wwwwwwwwwwwwwwwwwwwwwwww🎌 [329329848]
- マッサージ師だが
- 【訃報】日経平均先物逝く、円安株安債券安 [943688309]
- 【すべてが】𝗮𝗺͜𝗮͉𝘇𝗼𝗻ブラックフライデーSALE総合【いいだろ!】 [194819832]
- 昼夜逆転してるから話そう
- お返事まだカナ
