見出し画像

オセロAI世界一の男が人類未知のゲームのAIを作った話

こんにちは、にゃにゃんです。

私がAIを開発したスマホゲームがついにリリースされました!!!

嬉しいです!!嬉しすぎます!!

というわけで、この記事ではこのゲームの紹介と、AIに使われている技術を軽く解説します。


出会い

始まりは技育展2021(学生向けのITコンテスト)でした。このゲームの制作者と私は、共にこのコンテストに出場しています。

コンテスト前のオンラインの集まりで、私はこのゲームと出会いました。

開発者はKatoMoriさん。

その後も何回か懇親会で話すうちに、私はこのゲームの内容を知ることになります。


ダイナミックなリバーシゲーム"ダイナボ"

"ダイナボ"という名前のこのゲームは、有名なボードゲーム、リバーシ(オセロ)の派生ゲームです。

一見4x4のリバーシに見えるのですが、なんと辺が埋まるとその辺に隣接する新たな盤面が展開されます。

一見して思いました。これは面白い。

ここまで読んですでに遊びたくなった方、朗報です。PCでもスマホでも今すぐ遊べます!

開発者のKatoMoriさんによる記事はこちらです。


コラボ決定

かくしてダイナボに出会った私ですが、なんと私はこのとき、オセロAIを制作していました。詳細は別記事に書きましたが、この出会いの後世界1位になるオセロAIです。

なにかこう、運命的なものを感じました。私から「このゲームのAIを作りたいです」と連絡を取り、「声をかけたいと思っていた」との返答をいただき、このゲームの付属AIを作ることが決定しました。


人類未知のゲームのAIを作ること

リバーシの派生ゲームとは言え、ダイナボは人類にとって未知のゲームです。未知のゲームのAIを作ることは、往々にしてとても難しいのです。

ボードゲームAIに主流なアルゴリズムは、「評価関数」を必要とします。盤面を見て、「うーん、今は先手が有利そうだな」などと考える部分です。

オセロなどの人間によってある程度研究されたゲームでは、人間の経験を基礎とした評価関数を簡単に設計でき、さらにその性能は結構良いものとなります。

しかしダイナボは未知のゲームです。人間の経験を使った評価関数は作れません。ここが壁となります。


世界最強の囲碁AI"AlphaGo"

2016年3月15日、世界を驚かせる大ニュースが駆け巡りました。囲碁AIのAlphaGoが囲碁の世界最強棋士に5番勝負で4勝したのです。

当時の私はその凄さが全くわかりませんでしたが、今思うとこれはコンピュータの快挙であったと同時に、コンピュータと人間の関わりを考える上で欠かせない一つのドラマでもありました。

このドラマはとても面白いのですが一旦置いておいて、重要なことは、このAlphaGoのアルゴリズムがダイナボのAIを作る上での大きなヒントとなることです。


囲碁のために開発されたアルゴリズム

囲碁は評価関数が作りにくいゲームとして長年AI開発者を苦しめてきました。

そんな中、2006年に開発されたアルゴリズムが、モンテカルロ木探索です。このアルゴリズムの特徴は、なんと評価関数が必要ないことです。

私は自分のオセロAIを開発する中で、様々なアルゴリズムとその歴史を勉強していました。その知識がここで発揮されることになります。


モンテカルロ木探索

従来のボードゲームAIでは、とりあえず考えうる手を打つことをシミュレーションしてみて、何手か打ち進めた後の局面を評価関数を使って評価していました。

モンテカルロ木探索は、このシミュレーションをなんと終局まで行ってしまいます。終局までランダムに手を打ち続けて、最終的に勝ったか負けたかを判定します。「たくさんランダム打ちを続ければ、そのうちなんとなく勝率の高そうな手が見えてくるだろう。」そんなアルゴリズムです。

こんなアルゴリズムで良いのか?と思う方もいらっしゃると思います。モンテカルロ木探索は、ランダム打ちの駄目なところを、話すと長くなる工夫によって克服しています。気になる方は調べてみてください。


できあがったAI

私が書いたAIはたった700行のプログラムです。これが完成したとき、試しに私はAIと戦ってみました。私は完膚なきまでに叩きのめされました。

早速ゲーム開発者のKatoMoriさんにも遊んでもらって、強いことを確認しました。


かくしてAIはアプリに搭載された

開発者のKatoMoriさんはこのダイナボAIをアプリに組み込んでついにリリースしました。私もとても嬉しかったです。


でも実は…

実はこの私が開発したダイナボAI、まだまだ強くなる余地があることを私は知っています。

このAIで採用したアルゴリズム「モンテカルロ木探索」は、実はオセロには向かないことが経験的にわかっています。そして、私はリバーシの派生ゲームであるダイナボにもそこまで有効ではないと考えています。

今回は実装時間の短さとバグの発生しにくさ、さらにはAIの規模をなるべく小さくしたいという意図でモンテカルロ木探索を採用しました。

本気で強いダイナボAIをいつか作りたい。オセロAI世界一位の男はそんなことを密かに企んでいます。

この記事が気に入ったらサポートをしてみませんか?