* オセロを作るときに参照した情報
-(by [[K]], 2018.10.21)
** (1)
-オセロAI入門
-https://qiita.com/na-o-ys/items/10d894635c2a6c07ac70
--ここでビットボードについて知りました。ありがたかったです!
--ちなみにここのアルファベータ法も、wikipediaのアルゴリズムを使っているので間違っていると思われます(間違っていないのかもしれないけど)。参照:[[p20181020]]
--またここで紹介されている隅の周辺の評価は、「山」に悪い点数を与えてしまうので、うまくないと思われます。
~
-オセロの着手可能位置生成 【ビット演算テクニック Advent Calendar 2016 23日目】
-http://primenumber.hatenadiary.jp/entry/2016/12/26/063226
--「ひっくり返る石の計算」が詳しく書いてありますが、石をひっくり返す頻度は着手可能位置を調べることに比べればたいしたことはないので、私は採用しませんでした。
--またここには着手可能位置の探索方法として、「ビットシフトを繰り返す方法が知られているようです。今回はそれより高速な方法を解説します。」と書いてあって、おおお!と思ったわけですが、まあ縦横はこれで行けるとしても斜めはどうしたらいいのかよくわからなかったので、結局ビットシフトを繰り返す定番の方法を私は採用しました。
** (2)
-強いオセロプログラムの内部動作
-http://www.amy.hi-ho.ne.jp/okuhara/howtoj.htm
--これによると20手以上前から完全読み切りができるらしいです。うらやましいです。
--ここはかなり面白そうなことがたくさん書いてあります。
~
-人間VSコンピュータオセロ 衝撃の6戦全敗から20年、元世界チャンピオン村上健さんに聞いた「負けた後に見えてきたもの」 (2/3)
-http://nlab.itmedia.co.jp/nl/articles/1710/06/news013_2.html
--ロジステロは「残りの26手を最後まで完全に読み切ります。」とあります。おお、すごい。20年前でそこまでできたのなら、今は28手前でも読み切れないかな・・・。
~
-リバーシの現状
-http://d.hatena.ne.jp/yaneurao/20040316
-Zebraでは、26手の完全読み切りでも5秒しかかからないらしい・・・すごい。しかも2004年の時点で。
** (3)
-オセロの終盤ソルバーを100倍以上高速化した話
-https://www.slideshare.net/KMC_JP/100-51405496
--20手読みが15分→「20手読み6秒、24手読み30秒」
--これでも十分すごいけど、Zebarはもっとすごいということか・・・。
~
-オセロの終盤読み切りしてみた話
-http://gasin.hatenadiary.jp/entry/2017/03/14/220656
--「速さ優先探索を実装したら20倍ぐらい速くなりました」とあるので、速さ優先探索というのはちょっと気になる・・・。
--https://github.com/gasin/othello_read/tree/master/sample にあるサンプルを使うとベンチマークがやりやすい??
~
-強化学習(Q-Learning)で学習させたオセロAIで、MinMaxアルゴリズムと戦わせる
-http://tech.mof-mof.co.jp/blog/reversi-ai-2.html
--文章がとても面白いのですが「あと今回ミニマックスアルゴリズムに勝ったと言いましたが、確かちゃんと実装されたミニマックス(アルファベータ?)は、後攻を取れば絶対に負けることがないはずなので、今回の竜王ミニマックスはまだ本気を出していなかったのかも(コードにバグが残っているかもしれない)。」って書いてあるところが気になって、やっぱりwikipediaのせいで、間違ったアルファベータ法の実装が広まっているのではないかなあ・・・。
--まあ私も引っかかったので、人のことは言えないのだけど・・・。
* こめんと欄
#comment