インテージテクノスフィア技術ブログ

株式会社インテージテクノスフィアの社員達がシステム開発や仕事に関する技術情報を随時掲載いたします

個人的どうぶつしょうぎリベンジ~「マンカラ」つくってみた

こんにちは。インテージテクノスフィア技術探究委員会アイダです。

昨年度「どうぶつしょうぎ」をプレーするAIプログラムの作成に挑戦したAさんですが、その出来栄えに納得しておらず、今回は「マンカラ」をプレーするAIの作成に挑戦したと聞きつけました。

以下のようなやり取りがありまして、奮闘した内容を投稿してもらいました。ではAさん宜しくお願い致します。

自己紹介

私は2018年度に「どうぶつしょうぎ 」というボードゲームをAIで実装する社内プロジェクトに参加しました。

今はAIと名のつく部署に所属しているのですが頭に AI知識をつめてはこぼす日々です。英語やら数式やらにつまずいて、まずつめるのが大変なんだけど…

なぜこの記事を書いたのか

現在インテージテクノスフィアでは6月末まで新人研修が行われておりますが、毎日Confluence上に新人日記が掲載されます。

更新される新人日記を眺めていたら、新人さんのみならず コメント欄の先輩社員含め、ボードゲームを趣味にしている人がたくさんいることを知りました。

(私はゲームの類 ほぼやらないので驚きました…!)

そして手元にいつだか(半年くらい前かな…)に実装した、マンカラ というボードゲームがありました。

→ そのボードゲーム公開したら、誰かのひまつぶしにならないかな…

→ 公開しちゃえ!!

…ということです。はい。

以下、もう少し順を追って具体的に説明しますね。

「どうぶつしょうぎ」と 「どうぶつしょうぎAIプロジェクト」とは

ここはアイダにてご説明します。「どうぶつしょうぎ」とはWikipediaによりますと

3×4の盤面を用い、駒の動きを簡略化した将棋類である。主に将棋が普及していない世代への将棋普及のために、女流棋士の北尾まどかがルールを考案し、同じく女流棋士の藤田麻衣子がデザインした。2008年、その2人が所属していた日本女子プロ将棋協会(LPSA)が発表して人気となった。

とあります。

https://ja.wikipedia.org/wiki/どうぶつしょうぎ

プレーの際には以下のような盤と駒をつかって試合を行います。

インテージテクノスフィアでは2018年より信州大学工学部様と「どうぶつしょうぎ」をプレーするプログラムを作成し、互いに対戦するという、ユニークなPBL( 問題解決学習法、Project-Based Learning)を行っています。

2018年度には、この取り組みについて社員が論文【深層強化学習アルゴリズムを用いた「どうぶつしょうぎ」AI研究開発プロジェクト】を執筆しIBMユーザー論文にて「銅賞」を受賞しました。

www.intage-technosphere.co.jp

この取り組みはアイダが所属します技術探求委員会によって現在も活動継続中となっております。そして、Aさんはこの活動の参加者として活躍されていました。

なんでマンカラ実装したの?

理由は3つほどあって

  1. 個人的に参加したDeepLearningの講座内で、自分で課題設定してAIモデルを作成する必要があった。

  2. その以前にYouTubeでマンカラを知って、ルールはシンプルなのに必勝パターン解析が興味深かった 参考:YouTubeより QuizKnock「世界最古のボードゲームが超簡単なのに奥が深い!!【紀元前アフリカのボドゲ】」 youtu.be

  3. 2018年度のどうぶつしょうぎは Deep-Q-Network(DQN)という手法で実装したんですが、これがまぁうまくいかなかったんですね…

    参考: https://ja.wikipedia.org/wiki/DQN_(コンピュータ)

今だからいえる、うまくいかなかった原因は多分、どうぶつしょうぎの盤面の表現の仕方が難しくてパターン(状態数・行動数とも)が多すぎたというところにあると思うんですけど、でも、マンカラならルールがシンプルなので、その問題にぶちあたらずにうまく学習できるんじゃないかと思ったわけです。

どうぶつしょうぎのトラウマで、DQNほんとに使えんのか???と疑っていたわたしは、試してみたくなってしょうがなかったわけです!

ということで、つくったボードゲーム公開しました

社内限定となりましたがソースコードを公開しました。マンカラは以下のようなルールとなります。詳細は前述のYoutubeでご確認ください。

ソースコード実行はGoogle Colaboratory 上で実行できるようにしました。

もくろみ通りマンカラはよき感じに学習できたので、そこそこ強いはずです。

DQNに勝ったよ!!という報告もお待ちしております。

ちなみに、マンカラのルールは世界でいろいろらしく、ピットや石の数もいろいろだそうです。

2ピットだと簡単なので、3ピット版もつくりました。好きなほうで遊んでください。

でも、3ピット版はどこかにバグがあった気がするんですが、いかんせん半年前のことなので忘れてしまいました。

先日ざっと見てもほんとうに何も思い出せません……残念!

公開したソースでマンカラやってみた(上司が)

ということでAさんが公開したソースコード=挑戦状を早速アイダの上司が動かしてくれました。

なんと上司は3pit版についに勝利したようです。

f:id:intage-tech:20200510134536p:plain

Aさん曰く、開発期間については

これは、モデル部分はどうぶつしょうぎでも使ったコードを使いまわせたので、 あとはマンカラのルールを実装するくらいで、3日くらいでできました モデル学習(DQN同士で5万回対戦させてよかったプレーを覚えさせる)も たしか数十分で終わった気がします

とのことです。技術的には十分Aさんリベンジを果たせているのではないかと思うアイダです。