【オセロ,将棋】ボードゲーム Part2【囲碁,War】

1名前は開発中のものです。2017/10/15(日) 17:34:58.03ID:RaMh0le2
比較的地味なボードゲーム専用のスレが欲しくて立ててみました。

前スレ
【オセロ,将棋】ボードゲーム【囲碁,War】
http://mevius.2ch.net/test/read.cgi/gamedev/1057763418/

2033102018/01/16(火) 01:56:04.23ID:8d/ib1bw
>>200
どもです。ダウンロードしてみました。
酔っぱらって帰ってきたところなので、明日以後見てみます。

>>201
ありがとうございます。
cassioはmin-Max前提みたいですね。
nboardとxboardは明日以後見てみます。

とはいえ、もうすでに作り始めてしまいました(汗
c#はVBみたいな感じですね。10年くらいVBも触っていないので、VB自体も
昔とはだいぶ違うんだと思いますが。

まずは匿名パイプでのやり取りまで確認できました。
色々なソースのつぎはぎでわけわからんけど、何とかC++とAPIで作ったサーバ
側と同じ動作するものが動いています。

2045352018/01/18(木) 00:27:09.66ID:+dGVWc2f
GitHubでウインドウズでも簡単にビルドできそうなAlphaZeroクローンを物色中。

2052012018/01/19(金) 19:49:16.63ID:nx2VVS4x
ところで、
Learning to Play Othello with Deep Neural Networks
https://arxiv.org/abs/1711.06583
はチェックされていますか?

2063102018/01/20(土) 13:01:59.38ID:Zq3gts8j
>>205
ありがとうございます。
さっそくダウンロードしました。

2075352018/01/20(土) 23:55:57.24ID:1Kz+zB3+
いろいろ試してみてるけどスキルが足りなくてどれもうまくいかないデスネ。
今これ見てます。
https://github.com/adepierre/Caffe_AlphaZero

2085352018/01/21(日) 00:31:51.93ID:qH0IRvSF
ん〜なんかアンチウイルスソフトが警告だしてきたorz
どうしようかな…

2095352018/01/21(日) 23:00:34.14ID:qH0IRvSF
gflagsとかglogとかいうのが必要らしいんだが
アンチウィルスソフトが勝手に何か裏で削除してるらしく
うまくmakeできないorz
なんなんだこれは?

2105352018/01/25(木) 20:47:17.06ID:deBVwh8E
モチベ保てなくてガッツリサボリ中w
仕事が忙しいのもあるけど

2113102018/01/27(土) 00:56:40.42ID:0QPAoXtC
自分もGUIでモチベ保てず、がっつりさぼり中。

技術的に難しそうな事は気合入るんだけど、どっちが黒番とかのラジオボタン
をどうしようかとか考え出すと、思考が止まってしまう(汗

一つの項目で諦めがつくまでに3日づつかかっていますorz

2125352018/01/27(土) 23:18:12.98ID:EzLPwnOa
http://postd.cc/alphago-zero-how-and-why-it-works/
これ読んでます。
とりあえず、一旦コードから離れて基礎知識を充実させる方向で。

2133102018/01/28(日) 17:18:05.66ID:0oeW9Kee
GUIのパスの処理を真剣にチェックしだしたら、特定のケースで動作が
おかしいので、丸々一晩デバッグしていました。ケースは特定できてた
のですが、ぱっと見まったく原因がわからず。

C#はオブジェクトを代入すると参照になるのでした。やられた。
やっぱCというのは名前だけですね。

2145352018/01/28(日) 23:56:16.68ID:yuGXDS1r
https://github.com/junxiaosong/AlphaZero_Gomoku
すいません。またコード見始めてます。
多分これがウィンドウズで動かすの一番簡単な奴な気がするw

2155352018/01/29(月) 20:05:24.91ID:WXPd8Jtc
human_play.pyでモンテカルロAIは動いたけど深層学習AIが動かないorz.
theanoとかいうライブラリが上手くインストールできてないっぽいorz

2165352018/01/29(月) 20:08:40.86ID:WXPd8Jtc
うう、心が折れそうorz

2175352018/01/29(月) 21:03:35.36ID:WXPd8Jtc
こんなエラーが出るんだが何がないって言われてるのかわからん。
誰かわかる人いる?

...
File "C:\Python27\lib\site-packages\theano-1.0.1+unknown-py2.7.egg\theano\gof\
lazylinker_c.py", line 127, in <module>
preargs=args)
File "C:\Python27\lib\site-packages\theano-1.0.1+unknown-py2.7.egg\theano\gof\
cmodule.py", line 2359, in compile_str
(status, compile_stderr.replace('\n', '. ')))
Exception: Compilation failed (return status=1): /usr/x86_64-w64-mingw32/bin/ld.
exe: error while loading shared libraries: ?: cannot open shared object file: No
such file or directory. collect2: error: ld returned 127 exit status.

2185352018/01/29(月) 23:39:21.86ID:WXPd8Jtc
ライブラリに互換性がないって言われてるような気がする。
Cygwinに入ってるライブラリは互換性ないってことか?
どこでライブラリ入手すりゃいいんだ??

2193102018/01/31(水) 00:01:03.41ID:EjEC4Ae7
すまん。わからんけど、collecdt2というフォルダ(ファイルかも)が無いと言ってる?

こちらは、どうしても画面が崩れてしまうので、最初から作り直し。
原因は、トップのFormでauto resizeをtrueにしていた事でした。

ゲームの進行を上手に管理する方法が無いか考えていると、つい寝てしまうorz

2205352018/01/31(水) 20:29:33.40ID:u/gx4uXy
すいません。
コマンドプロンプトで実行したら>>217のようなメッセージでライブラリ名わからなかったのですが
Cygwinで実行したらライブラリ名が出てきました。
それぞれ4行づつ同じ行が出るのですが1行に削って張ります。

library stdc++ is not found.
library mingw32 is not found.
library gcc_s is not found.
library gcc is not found.
library moldname is not found.
library mingwex is not found.
library msvcrt is not found.
library advapi32 is not found.
library shell32 is not found.
library user32 is not found.
library kernel32 is not found.
library mingw32 is not found.
library gcc_s is not found.
library gcc is not found.
library moldname is not found.
library mingwex is not found.
library msvcrt is not found.

これに続いて同じ名前のライブラリはあるけどコンパチブルでない的なメッセージが出ています。

2215352018/02/04(日) 02:31:39.86ID:8N3h1IXY
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
動いたっぽいです。
Theanoってライブラリのバージョンが0.7.0じゃないといけないみたいです。
ここまでめっさ時間かかったorz
遅れを取り戻さんとな。

2225352018/02/04(日) 18:58:20.09ID:8N3h1IXY
せっかく動いたけどpython読む根性がなかなか湧いてこない。
つか多分pythonじゃなくても読むのしんどいんだけど。

2233102018/02/04(日) 20:16:17.17ID:Wmf+lsae
他人のコードは読みづらいですよね。
1年前に書いた自分のコードもですがorz

Theano動作おめでとうございます。良かったです。

こちらは…GUI作るのに嫌気がさして、学習部をいじっていましたが、
そろそろ〜30手の評価関数もそれほど酷いものではなさそうな気がしてきて、
中盤探索9手読み(なんの工夫も無し)で記譜作れる事に思い至りまして。
つまり、MCTSより短時間で記譜作成できると…。
この学習で、もし中盤探索の読みがそこそこな精度になってしまったら、
そもそもMCTSにする意味ないじゃんという現実からいかに目を背け続けるか
という戦いが始まりました(涙

2245352018/02/05(月) 18:27:38.68ID:Q1ssK5oS
やはりこの業界で生きていくには
パイソンの習得は必須…

2255352018/02/05(月) 20:15:05.78ID:kkO201mJ
ということでパイソンの入門本買ってきました。
とりあえず囲連星のルールを実装してみます。

2263102018/02/05(月) 23:37:11.58ID:tGe3CIWd
相変わらず、GUIから逃げています。

アルファ碁でいうところのポリシーネットの学習を放棄して、代わりに評価値から
P(UCT探索に対する絞り込み項)を生成していましたが、これをQ(UCT探索の
予想スコア:これまでの探索の加重平均)から、1プレイアウト毎に再計算するよう
にしてみました。

多少探索速度は落ちますが、良い感じかなぁ。

2275352018/02/08(木) 20:36:12.73ID:BwB5Lh8w
パイソン入門本、一回通して読もうとしてますが、ページ数あって結構大変。
コード書きながら読んだほうがいいかなぁ。

2283102018/02/09(金) 23:42:10.85ID:XzN5+u9b
新言語習得はストレスですよね。
C#ですら混乱して、C++に帰りたくなってます(汗

というか、メモリー管理できないC#にいらついて、記譜作成回りをいじって
慰みにしています。中盤探索に置換表を足して、反復深化っぽくしてみま
したが、あんまり早くならなくてがっかり。


Python本はまだ買ってません。ウェブ上の入門を眺めたくらいです。

Pythonは構造やら変数の型の考えやら、落とし穴になりそうなところが
色々とありますね。計算式だけ見ていればわかったような気になりますが、
どういう順番で処理が進むのか、慣れないとわからん感じ。

2295352018/02/10(土) 21:27:45.30ID:DQEki32w
パイソン、変数の型の宣言がないから他人のコード超読みずらいorz
引数に何与えていいのかとかパッとわからないorz

2305352018/02/12(月) 00:17:40.24ID:eWCzbr3d
9路囲連星の最低限のルールをパイソンに移植しました。
これからテストします。

2315352018/02/12(月) 02:17:04.85ID:eWCzbr3d
おおむねバグ取れたっぽい
あとはこれを>>214に移植できれば…

2325352018/02/12(月) 20:42:28.11ID:eWCzbr3d
他人のコード読むの辛いおT△T
これはかなり時間かかる…

2335352018/02/12(月) 22:23:10.54ID:eWCzbr3d
うーん、なんかこのコード五目並べのルールにべったり依存してる感じなのかなぁもしかして。
複数のゲームに対応しているAlpha Zeroプロジェクトのコードを見たほうがゲームのルールが分離されてるのかもしれないなぁ
一応、別のプロジェクトに手を出すことも視野に入れるか…

2345352018/02/12(月) 23:45:59.40ID:eWCzbr3d
アルファゼロって数手前の履歴情報が必要らしいけどなんでこんなものがいるんだろう?
謎だ…

2353102018/02/13(火) 13:07:22.56ID:SwoVylIU
アルファ碁の論文に書いてあったかな。次の1手的には意味なさそうだけど、
有った方が強くなるので外せなかったみたいな事が書いてあったような。

今現在の思いつきですが、ツリーサーチの末端近くでは、手の流れに応じて
点数が変わる事で、そのツリーのルート側の評価(加重平均)に影響が出てくる
可能性はある。

囲碁の場合、同一盤面が出る可能性が非常に高いのだけど、そこに至る経路で
隙があると、相手にその隙を突かれて、分岐が生じる事で、その点数は無意味に
なる。けど、それは途中の分岐をしっかり読まないと判明しない。経路情報によって
評価値(評価関数直)を下げてしまえば、プレイアウトの振り分けが減って、別の
もっと良い手に集中させることができる。こういう事かなぁ。

ま、本当に今思いついたばかりですが。

GUIに気が進まないまま、ぼーっと学習を見ていると、何故か(効果は微妙だけど)
速度アップの方法を思いついてしまうもので…。地味に色々改良しています。

2365352018/02/13(火) 22:47:18.55ID:75Woy+K4
310さんほどのプログラマがGUIで躓くというのも謎ですね。
単に凝り性なだけですかね。

2373102018/02/14(水) 20:49:32.16ID:I/pUqAGs
単にGUIが嫌いなんですorz

凝りたい気持ちと、画面遷移の罠から、心がデッドロックを起こして、
しまいに面倒くさくなってしまうという。

2385352018/02/14(水) 21:17:25.33ID:XBQY5lLn
オセロで画面遷移なんてほぼいらんでしょうに。
まいいけど。

2395352018/02/14(水) 22:23:18.42ID:XBQY5lLn
五目並べのプロジェクトだとコウの扱いがよくわからないな
囲碁のプロジェクトもgithubで漁るか…

2405352018/02/17(土) 21:19:34.66ID:9/16YNby
藤井聡太さん朝日杯将棋オープン戦優勝ですか
すごいすな

2413102018/02/17(土) 21:53:57.13ID:vz2S+0Ke
ドタバタしながら音だけ聞いていたけど、なんか普通に互角から徐々に優勢を
築いて、相手の奇手にも動ぜずにさばいて、勝利って感じで、強さが際立って
いましたね。

これで勝っても漫画なら編集長にバカにされるレベルと言われていましたが、
本当に笑うしかないですね。

2425352018/02/19(月) 21:32:59.37ID:k/eP19bS
>>214のプロジェクトに囲連星ルールを移植してみまして、モンテカルロAIが動いたみたいです。
ただし超絶遅い。絶望しかないってくらい遅い。
10プレイアウトで10秒くらいかかります。
デフォルト1000プレイアウトになっていたのでそれぐらいないとまともな強さは出ないんでしょう。
となると1手1000秒か?
絶望しかない。
orzorzorzorzorz

2435352018/02/19(月) 21:45:50.40ID:k/eP19bS
小路盤五目並べとかConnect4とかtic tac toe くらい小さなゲームじゃなきゃまともに動かんぞこれ

2445352018/02/19(月) 21:53:01.97ID:k/eP19bS
      ,.‐''" ̄`丶、         ひどい…!ひどすぎるっ……!
    /        \          こんな話があるかっ…!
 /´           \
 /    |\_>、_ 、r‐、    \     命からがら… やっとの思いで…
  レ! ||_| |/_ ヽ\}      \    辿り着いたのに… やり遂げたのに……
  |八|-/>、∪_ u`i  ト、      \
    / / ,くィ夕u' |   |/ ``‐- 、_.、__\      実行速度っ…!
     |/ / /_ヽ┐u |  ,|  /  ,-,.=====ゝ
    ヾ' / r┘|.l__人 |  /\//      \ あの計算量がもぎ取ってしまった……!
      \ ) |   N /  //\./´ ̄`丶
      |u  |  /|(l(l「|  | |   |       せっかく手にした
       | u| / | ヾ-イ .||  l、            俺の未来…希望…
       _|   |/| |  \_|_|,. く. \
      ハ.___ハ     >、 \ \  \      Alpha Zero AI を……!

2455352018/02/19(月) 22:39:02.94ID:k/eP19bS
つか連想配列とか見るからに遅そうなクラス使いまくりなんだよなぁ
こうなったらC++に移植する方向で考えるか??

2465352018/02/19(月) 22:59:04.05ID:k/eP19bS
囲連星ルール部分をC++で書きなおしてパイソンと結合させるという手もあるんだろか??
とにかく今のままじゃ遅すぎる
囲連星ルール部分がどれくらいネックになってるかもよくわからないですが多分相当遅い

2475352018/02/19(月) 23:28:23.57ID:k/eP19bS
五目並べルールだとそこそこのスピード出ますね
当たり前か…

やっぱ囲連星ルール実装がネックか〜
は〜
死にたい

2483102018/02/19(月) 23:48:36.73ID:KY7Wcd5F
PythonからC++関数を呼べるみたいですね。
C++からPythonも呼べるみたいです。
前にPythonに手を出そうかと思った時にググったら出てきました。
前者の方が解説が多かったと思います。

自分はBitboardを使いまくりなので、Pythonに手を出しあぐねていました。
また、評価関数の学習部と、評価値計算をうまく分離できれば、前者を
Python、後者をC++で書けないかなぁと思っていますが、im2col関数の
うまい実装を考えるのが面倒で、放置になっています。

2493102018/02/19(月) 23:56:04.01ID:KY7Wcd5F
ここ数日強化学習の結果がよさげになってきたので、結果の良かった学習方法に
集中させたら、また変な学習になってしまったようで、迷走中です。

学習の具合が良いと、色々な探索も速度アップするんだけど、具合が悪いと全部
悪循環になってしまうという。

仕方無いので、中盤探索の反復深化を作り、その結果を置換表に溜めてオーダ
リングを行うようにしてみましたが、効果があったのかよくわからない罠。
こちらも、学習の具合が良くなったら、急激に効果が表れるのではないかと期待
しているんだけど。

2505352018/02/21(水) 01:00:17.47ID:65PdIEqg
SWIGっての調べてます。
なかなか手ごわい

2515352018/02/21(水) 22:17:30.79ID:65PdIEqg
まずは簡単なC++関数一個だけのパイソンモジュール作成に成功しました。
つぎは囲連星ルールパイソンモジュールの作成ですね〜

2525352018/02/21(水) 23:35:14.72ID:65PdIEqg
なんかdeepcopyとかいうのに対応しなきゃいかんようなのだが。

2533102018/02/22(木) 01:36:26.61ID:pKMuaeJh
評価関数がどんどん悪化していく罠。
頭に来たので、評価関数をステージ分割。

ステージ分割すると学習部分の全面書き直しとなる。
どうせニューラルネットは使わないと決めたので、線形回帰にスケールダウン。

またしてもゴチャゴチャしてきた部分を全面書き直しパターンへ。

もうGUIはすっかり忘れていますorz

新着レスの表示
レスを投稿する