このサイトでは、C言語でのオセロ(リバーシ)のプログラム開発方法を解りやすく説明しています。初級者、初心者でも作れるオセロ実装のコツが満載です。
実際作ってみて思ったのは、どうしても基本に忠実に作成しただけではあるレベルからプログラムの強さが止まってしまうと言うことです。
そのレベルから抜け出すには多くの他の理論を持ち込む必要があると思われます。
今回採用しなかったまだ残っている課題をここに書いておきます。
リバーシの思考ルーチンは、
というのが一般的です。多くの強いプログラムは、膨大な棋譜データベースを利用して「3」を実現しています。
この手法にさらに「学習システム」を追加し、以後「悪手」を打たないように改良するのも手です。
αβ法だけでは、やはり6、7手以上を読むのは不可能です。しかしながらリバーシよりさらに難解な「将棋」などのソフトは10手近く手を読んでいます。
さらにプログラムを高速化する為には、結局はαβ法を工夫して、且つ一度に読む手を極端に予め刈っておくしかないようです。
αβ法を工夫する方法としては「同じ盤面が深読み中に何度も出てくることに注目して、その後の展開をハッシュに保存して、その手を繰り返し読まない。」と言うことが最も盛んに行われているようです。
深読みして、その時は評価値が高いが、実際にもう1手深く読ませれば悪手だったと言うことはよくあります。
この時は、チェスの最強マシン「Deep Blue」と世界チャンピオン「カスパロフ」のとの対局の第2試合、35手目の時のマシンの読みの変更の考えが利用できそうです。
例えば7手読みをするソフトを作ったとして、5手の段階での最大評価値が「30」だとし、6手目になると先程の手の続きの最大評価値が「28」に下がっているとします。
同様に7手目で、確かにここでも先程の手は最大評価値なのですが「24」まで下がってしまっています。
この様な場合「Deep Blue」は、この後何か悪い方向へ進むのでは無いかと考えるらしいのです。
また、6手目では凡手だったのに7手で急に良手になっている場合も危険です。
目先だけの利益だけを読んでしまっては、形勢が悪化することがあるようです。
現在の有名なゲームの状況は次のようになっています。
ゲーム名 | 総探索数 | 現在のコンピュータレベル | プロを抜いた年 | チェッカー | 1030手 | チャンピオン破る | 1994年 | リバーシ | 1060手 | チャンピオン破る | 1997年 | チェス | 10120手 | チャンピオン破る | 1997年 | 将棋 | 10220手 | 2000年 アマチュア4段 2016年 プロ5段 | 2015年(予想) | 囲碁 | 10360~600手 | 1999年 アマチュア5級 2016年 プロ2段 | 2050年(予想) |
---|
また、現在必勝手の分かっているゲームは次のようなものがあります。
ゲーム名 | 勝ち手 | ○×ゲーム(三目並べ) | 引き分け | 五目並べ | 先手必勝 | 6x6リバーシ | 後手必勝 |
---|
8x8リバーシについては分かっていませんが、やはり「後手必勝」と言う見解が強いと思われ、2052年までには完全読みきりが家庭のコンピュータで可能になると言われています。
現在「囲碁」では視線の動きを解析し、心理学を応用した最先端の「認知科学」の成果なども取り込んだ研究がなされているようです。
【参考】"2015年コンピュータ名人誕生!?", 日本経済新聞, 2000-1-1, 第三部 7.
2010年から2012年にかけての公開対局では、コンピュータ側の勝率が9割を超えています。
2013年3月30日、第2回将棋電王戦において、コンピュータ将棋プログラム「ponanza」が佐藤慎一(四段)に勝利しました。これは長い持ち時間(各四時間)・公開対局・相手が現役の女流を除いたプロ棋士という条件で初めてコンピュータが人間に勝利した事例となりました。
2008年03月22日、9×9の盤面を使った試合を3試合と、19×19の盤面を使った試合を1試合行いました。コンピュータ側はINRIA(フランス国立情報学自動制御研究所)にあるスーパーコンピュータを数百台使用。人間側はルーマニア出身のタラヌ カタリン五段(35歳)です。9×9ではタラヌ氏の2勝1敗、19×19ではタラヌ氏が勝利という形になりました。
2009年08月10日、コンピュータ囲碁プログラムZenがプロ囲碁棋士の王メイエン九段と対戦し、19路盤で七子、9路盤でのコミ2.5/3.5目という大きなハンデが与えられていたものの、9路盤で見事に一勝をあげました。
2016年01月28日、Googleが開発した囲碁プログラム「AlphaGo」が、初めてプロの棋士に勝利しました。このプログラムはGoogle傘下のGoogle DeepMind所属の研究者らが開発したもので「ディープラーニング」を使っています。対戦相手は中国出身の2015年の欧州王者(二段)。5回の対戦で全勝の成績を収めました。
オセロに強くなりたい人は下記を読むことをお勧めします。
オセロ(将棋等)のプログラムを開発したい人・ゲームプログラマーになりたい人は下記は持っていて損はないでしょう。
Copyright ©2024 pl_kyo.(since 2001/11/18)