汎用行動選択モデルの学習 part03 パーティ固有行動選択モデルを用いた学習データの生成【PokéAI】

任意のパーティを受け取って、バトル中の行動(技)を選択する「汎用行動選択モデル」を学習していきます。

この記事では、モデルの構造を検討するための疑似教師データの作成を考えます。

汎用行動選択モデルではDeep Neural Networkを用いることを考えていますが、パーティの情報を取り入れるための構造や、パラメータ数の自由度が非常に大きいため適切な規模のものを選ぶ必要があります。 モデルを強化学習させると強化学習自体にも様々なパラメータが必要(割引率やreplay bufferのサイズ等)で、探索が大変です。 そのため強化学習の適切なパラメータがわかっているパーティ固有モデルを用いて局面ごとの行動の正解を生成します。パーティ固有モデルは1パーティに対し1つのモデルが対応します。様々なパーティに対しそれぞれパーティ固有モデルを強化学習させ、その行動データを集積し、それを1つの汎用行動選択モデルに教師あり学習させるという流れを提案します。パーティ固有モデルにより選択された行動を疑似教師データと呼ぶことにします。「疑似」とついているのは、パーティ固有モデルの強化学習が完ぺきではなく、必ずしも最適な行動を選択できるわけではないということを指しています。

疑似教師データの作成を実装しました。パーティをランダムに1000個生成させ、それぞれに対してパーティ固有モデルを学習させます。パーティの条件は前パートで検討した最終進化系ポケモンだけを含むものです。強化学習中の対戦相手は自分以外のパーティがランダムに行動するエージェントです。 こうして学習させたエージェント同士を対戦させ、対戦ログを保存する仕組みを用意しました。対戦ログには、各ターンにおける状況(相手のポケモンの種族、残りHP、状態異常など)・自分のパーティの情報(ポケモンの種族、覚えている技など)、エージェントが選択した行動が含まれます。

実際のログを整形していくつか表示します。

凡例

自分のポケモン(FはFriend)
自分のポケモンの技構成
相手のポケモン(OはOpponent)
=> 選択した行動
F マタドガス 187/187  
ころがる 10まんボルト でんじほう だいもんじ
O オムスター 193/193  
=> 10まんボルト

F ラフレシア 198/198  
はかいこうせん やどりぎのタネ ギガドレイン おんがえし
O ウソッキー 193/193  
=> ギガドレイン

F ラプラス 259/259  
いわくだき 10まんボルト サイコキネシス ハイドロポンプ
O オクタン 198/198  
=> サイコキネシス

F ブーバー 187/187  
すてみタックル サイコキネシス いわくだき ずつき
O ジュゴン 215/215  
=> いわくだき

必ずしも最適とは言えないですが、ある程度「こうかはばつぐん」な行動を選べています。

次の例は1つのバトル中の行動系列を示したものです。

F プテラ 204/204  
かげぶんしん つばさでうつ どくどく だいもんじ
O ポリゴン2 209/209  
=> どくどく

F プテラ 157/204  
かげぶんしん つばさでうつ どくどく だいもんじ
O ポリゴン2 185/209 tox 
=> だいもんじ

F プテラ 108/204  
かげぶんしん つばさでうつ どくどく だいもんじ
O ポリゴン2 106/209 tox 
=> かげぶんしん

F プテラ 63/204   evasion+1
かげぶんしん つばさでうつ どくどく だいもんじ
O ポリゴン2 56/209 tox 
=> かげぶんしん

F プテラ 63/204   evasion+2
かげぶんしん つばさでうつ どくどく だいもんじ
O ポリゴン2 4/209 tox 
=> だいもんじ

toxは猛毒状態、evasion+1は回避率が1段階上がった状態です。どくどくのあとかげぶんしんで逃げ回るという戦略のエージェントも存在しました。

次回は、このデータを教師データとしてパーティ固有モデルの学習を試みます。

汎用行動選択モデルの学習 part02 ポケモン・技のサブセット作成【PokéAI】

任意のパーティを受け取って、バトル中の行動(技)を選択する「汎用行動選択モデル」を学習していきます。

この記事では、学習を容易にするためポケモン・技の数を制限する手法を考えます。

バトルのルールの前提条件は、

3vs3は選択肢が多くなり学習が難しくなることが予想されるので、まずは一番簡単な条件に設定しました。

従来の行動学習で扱いづらかった点として、ポケモンや技の強さに格差が大きい点がありました。例えばトランセルはどういう戦略をとろうが勝ち目はほとんどなく、「なみのり・みずでっぽう・あわ・しっぽをふる」を覚えたカメックスではバトル中の状況にかかわらずなみのりを選択するのが最適解となるでしょう。このような状況下の行動選択データは無意味なデータとなってしまう可能性が高く、モデルの学習の妨げになると考えられます。そこで、ある程度有効なポケモン・技だけが存在する環境で学習を試みることにしました。

まずポケモンですが、最終進化系だけを用いることにしました。ただし、禁止級伝説、技マシンが使えないポケモンを除外しています。すなわちミュウ、ミュウツー、ホウオウ、ルギア、セレビィメタモンアンノーンソーナンスドーブル以外の最終進化系で、合計129種類となりました。ほかの手法として、種族値で決める方法もあるかと思います。

次に技ですが、ポケモンほど自明な基準がありません。そこで、ランダムな技を覚えたパーティを多数生成し、パーティ評価関数 select766.hatenablog.com の手法で技の有用度を定量化することとしました。

ポケモンは最終進化系だけをランダムに選択し、技はそれぞれのポケモンが覚えられるものからランダムに4つ選択します。このようなパーティを10,000個生成し、ランダムに行動させた勝敗から各パーティのレートを計算します。ここでは技がレートに与える影響を抽出したいので、パーティ特徴量として技(M)特徴量のみを用います。

技ごとに算出された係数のtop10、worst10を表示します。係数が大きいほど勝利に貢献していることを表します。

係数
はかいこうせん 0.660
じしん 0.561
なみのり 0.493
10まんボルト 0.477
れいとうビーム 0.460
のしかかり 0.418
かいりき 0.415
ハイドロポンプ 0.406
かえんほうしゃ 0.393
ちきゅうなげ 0.392
... ...
あまごい -0.411
やつあたり -0.411
いびき -0.423
ねごと -0.449
こらえる -0.456
しんぴのまもり -0.479
メロメロ -0.484
だいばくはつ -0.490
じばく -0.760
いとをはく -0.862

はかいこうせん、じしんなどの強そうな技が上位に来ています。下位では、1vs1バトルなので使うと即負けになるじばくのほか、使用条件を満たさないと無意味なメロメロ、ねごとなどが出ています。これらの技の有効な運用もいつかは実現したいですが、「こうかはばつぐん」の技を選ぶことすら苦労している現状なので後回しです。

ポケモンごとに技構成の自由度をもたせつつ無意味な技を排除するため、各ポケモンの覚えられる技のうち係数上位8個を選択し、全(最終進化系)ポケモンにわたって和集合をとりました。その結果、以下の52個の技が選択されました。

つのでつく, ふぶき, つばさでうつ, どくどく, やどりぎのタネ, ふみつけ, いあいぎり, はかいこうせん, でんじほう, サイコキネシス, かいりき, ソーラービーム, ロケットずつき, げんしのちから, そらをとぶ, ナイトヘッド, おんがえし, はなびらのまい, なみのり, かみなりパンチ, たきのぼり, かげぶんしん, いわくだき, どくのこな, とっしん, つのドリル, どろかけ, のしかかり, ゴッドバード, ころがる, スピードスター, れいとうビーム, ちきゅうなげ, ヘドロばくだん, すてみタックル, バブルこうせん, ほのおのパンチ, だいもんじ, ハイドロポンプ, サイケこうせん, かみなり, はっぱカッター, じしん, ドリルくちばし, ばくれつパンチ, ずつき, はがねのつばさ, すなあらし, れいとうパンチ, 10まんボルト, ギガドレイン, かえんほうしゃ

以上、ルール上存在するポケモン・技のうち、ランダムに選択しても大きく格差が出ないよう有効なポケモン129種類・技52種類からなるサブセットを抽出しました。この範囲で汎用行動選択モデルの学習を進めていきます。

汎用行動選択モデルの学習 part01 構想【PokéAI】

今までポケモンバトル中の行動選択を行うモデルは、パーティごとに別個のパラメータを学習していました。しかし今後の発展を考えるとこの方式は難点があり、あらゆるパーティの行動選択を行える単一のモデルを学習したいと思いました。

昨年8月を最後にイベント参加に関する記事ばかりになっていたのですが、研究記事も上げていきたいと思います。 その原因として、イベントの締め切りがあるので研究を急ぐ必要があり記事執筆の優先順位が低かったことと、うまくいくかわからないアイデアを中途半端な状態で記事にすることに対するためらいがありました。 これからは、ブログではどんどん試したことを記事にしていって、1本のストーリーにまとまる部分を取捨選択して本にするという方式をとっていきたいと思います。 アイデア自体に矛盾があったり、実験してみてもうまくいかない、実装が難しくて放棄するということがあるかもしれませんが、ご了承ください。

従来の行動選択モデルは、パーティごとに別個のパラメータを学習します。モデルの入力はバトル中の状態で、相手のポケモンの種族、自分と相手それぞれのHPの残り比率、ランク補正状態などです。モデルの出力は技1~4それぞれの優先度を表す値となります。今回の議論ではポケモン交代は本質的ではないため、ポケモン1匹だけを出す1vs1バトルで考えます。モデルの入力として、自分のポケモンの種族やどの技を覚えているかという情報はありません。技1~4が何であるか知らずとも、水タイプの相手に最大ダメージを与えられるのは技1で、炎タイプの相手に最大ダメージを与えられるのは技3であるというような情報を勝敗から学習していけば十分であるためです。 この方式の問題点は、パーティ構成が変われば一から学習しなければならないという点です。プロジェクトの大きな目標として、パーティ構成とバトル中の行動選択の両方を最適化したいと考えています。様々なパーティを試行錯誤して作る際、過去に学習した行動選択モデルの情報が使えれば、学習コストを下げられる可能性があります。自分のパーティ構成がなんであろうと、水タイプの相手には10まんボルトやメガドレインが有効である、というような知識は有用です。そのような知識をどのパーティでも共有し、新しく生成されたパーティでも、相手が水タイプで10まんボルトれいとうビームを覚えているなら10まんボルトを選ぶということを行動選択モデルの学習なしに実現できれば、様々なパーティの強さを(ランダムに行動させるより正確に)評価することが容易になります。 パーティの技1~4の効果が固定という前提が取り払われれば、別のメリットとして、「へんしん」等で自分の技が変化した場合にも対応することができるようになります。ただし、タイプ相性すら難儀している現状では難しすぎる課題のため当分は取り組みません。

これを実現するために、自分のパーティにかかわらず1つのモデルパラメータを共有する「汎用行動選択モデル」を学習したいと思います。従来の行動選択モデルは「パーティ固有行動選択モデル」と呼ぶことにします。汎用行動選択モデルでは、入力として自分のパーティのポケモンの種族と覚えている技も与えて、ターンごとにどの技を使うかを出力します。パーティ固有行動選択モデルではあくまで自分が覚えている技4つのどれを選択するかだけを考慮すればよかった一方、汎用行動選択モデルでは100種類以上存在する技・ポケモンすべての運用を知っている必要があるため、学習すべきパラメータ数が増加します。また、どのようなモデル構造(ニューラルネットワークの構造)にすればいいかも明らかではありません。パーティ固有行動選択モデルでも勝敗から強化学習した結果のモデルが「こうかはいまひとつ」な技を選択してしまうなど難ありの状況のため、パラメータ数が増加したモデルの強化学習は難しいと予想しました。

この課題を解決するアイデアとして、強化学習よりも容易である教師あり学習で汎用行動選択モデルを学習させ、どのようなモデル構造ならうまく学習できるのかを検討することにしました。教師データ、すなわちバトルの状況と適切な行動(技)の組が必要です。しかしそのようなデータはどこかで拾えるわけでもないので自作する必要があります。1つの方法は人力で作成することですが、数千件必要であろうサンプルを作るのが大変そうだし条件が変わるたびに作り直しになるので不採用です。そこで今回は、パーティ固有行動選択モデルを多数のパーティに対して学習させ、モデル間で対戦させてバトルの状態とモデルが選んだ行動の組を収集し、疑似的な教師データとして用いることにしました。

今回の研究の流れは次のようになることを想定しています。

  • ポケモン・技を候補にするとパーティ固有行動選択モデルの必要数が非常に多くなるため、適宜削減する
  • ランダムに生成したパーティに対してパーティ固有行動選択モデルを学習させる
  • 学習したモデルを対戦させて、バトルの状態(自分のパーティの情報を含む)と選択した行動のペアを収集し教師データとする
  • 汎用行動選択モデルの構造について教師あり学習で試行錯誤する
  • 汎用行動選択モデルを直接的に強化学習させる

技術書典→コミックマーケット 出展方法の差分

私は2018年10月に技術書典5で同人誌即売会に初サークル参加した後、2019年4月に技術書典6にもサークル参加、そして先日2019年12月にコミックマーケット97(コミケ)にサークル参加しました。 技術書典とコミケでは勝手が違う部分もあったので、その差分に特化した情報を簡単に書き留めておこうと思います。 あくまでコミケ97における情報で、今後のイベントでルールが変更されることがありますのでご注意ください。 なお数千部持ち込むような大規模サークルについては全く考慮していないのでご了承ください。

話題

  • 頒布できるものの違い
  • 出展申し込み
    • 締め切りはイベントの半年前ぐらい
    • 紙媒体の申込書が必要
  • 当選
    • 紙媒体のサークルチケット(入場券)が郵送されてくる
  • 入稿
  • 直前準備
    • 参加登録カード(ハンコが必要)などの記載
  • 当日
    • 物理媒体での見本誌提出が必要

この記事では扱わないこと

  • コスプレ
  • 追加の申請
    • 大量搬入等
    • 駐車場利用など、小規模サークルでも人によっては必要な申請あり

頒布できるものの違い

頒布可能な同人誌の内容ですが、技術書典ではアダルトはダメな一方コミケでは商業出版された本がダメです。単純な包含関係にありません。

出展申し込み

コミケの申し込みは開催日の約半年前です。技術書典より一般に申込~開催までの期間が長くなります。オリンピックの関係で2020年は変則的になっています。この記事の公開時点ですでに2020年5月のコミケの申し込み締め切りは過ぎています。

技術書典は申し込みがオンラインで完結しますが、コミケでは紙媒体の「参加申込書セット」を購入(有料)し、そこに書かれている申込書番号が必要です。参加申込書セットを購入すること自体が手数料の一部を構成していて、申込書番号は一度しか使えません。出展予定の前の回の会場で購入するか、通販で入手する必要があります。申込書番号を用いて、circle.msというサイトで申し込みと参加費の支払いが必要となります。申し込みの時点で参加費とサークルカット(Web版カタログ用には差し替え可能だが、印刷・DVD版はこの時点で確定)が必要となるのが技術書典との違いです。郵送での申し込みも可能ですが技術書典経験者ならメリットはないと思います。

申込諸費用は1万円程度になります。落選すると一部返ってきます。

入力すべき内容は特に迷うことはないと思いますが、技術書典にないもので重要な項目に「ジャンルコード」があります。どのジャンルの本を出すかということで、技術書典に出すような本だと「評論・情報」か「同人ソフト」に該当することが多いと思います。ソフトウェアの開発や解説ならどちらでも問題はないと思います。当選率が違うかはわかりません。「評論・情報」だとグルメや経済なども含む幅広い評論系、「同人ソフト」だとオリジナルのゲーム作品と同じブロックに配置されることになります。配置担当者の一言コーナーも参考になります。

当選

開催日の2か月ほど前に当選発表があります。オンラインで確認できます。発表時点でサークル配置場所が決定しており、Webカタログも公開されます。

発表から1週間程度でサークルチケット(入場券)・注意事項書類(コミケットアピール)などを含む郵便が来ます。必要な申請がある人はすぐに行う必要があります。私は必要ありませんでした。

毎回内容は変わると思いますが、コミケットアピールの過去のバージョンを読んでおくと事前にスケジュール・注意事項がわかります。

入稿

本の執筆・印刷所への入稿そのものは技術書典と基本的に違いありません。印刷所による直接搬入に対応する印刷所は技術書典よりも多いです。締め切りはコミケのほうが早いかもしれません。

自宅から宅配便で搬入する場合はゆうパックのみのようです。技術書典ではヤマト運輸のみなので異なります。

直前準備

イベント当日の参加登録に必要な紙媒体の書類を用意します。以下の3種類と頒布物があれば最低限サークル参加できます。

  • サークルチケット
    • 入場時、1人1枚必要(私の場合は3枚来ました)
    • 入場時にサークルチケットと引き換えに一般入場者が使うのと同等のリストバンドがもらえるので、ほかの入場券の準備は不要
  • 参加登録カード
    • サークル名・代表者名とハンコを押す欄があるカードです
  • 見本誌票
    • 当選後に来る書類ではなく、申込書セットのほうについています
    • 頒布する本1種類につき1つ必要なシールで、名称・価格などを書く欄があり、見本誌に貼り付けて提出します
    • 電子的な提出ができません

私の場合、本は会場への直接搬入のため見本誌票は内容だけ書いておいて、当日搬入された本に貼り付ける形になりました。 また電子版ダウンロードカードの頒布ですが、「ダウンロードカード」と、「これを用いてダウンロード可能なPDFデータをCDに焼いたもの」をケースに入れ、これに見本誌票を貼ったものを提出したところ受理されました。

当日

サークルチケットを入場場所で渡して入場した後、サークルブースに行きます。直接搬入なら本が机の下に置いてあります。

見本誌を用意したうえで、ホールごとのサークル受付場所で参加登録カード・見本誌の提出を行うことで手続きが完了します。

ブースの設営・頒布方法は技術書典と変わりません。

コミケットアピールにちょろっとだけ書いてありますが、ポスターを掲示するための「POPスタンド」を各ホールにある「準備会販売ブース」にて有料で借りることができました。先着順のようで、自分が借りた後しばらくすると掲示がなくなっていました。比較的大きなものなので借りられると便利ですが、必ず借りられる保証はないものと了承しておく必要があります。

搬出

売れ残った本などをゆうパックで搬出することができます。箱の販売、発送それぞれ別の列になっていました。

ゆうパックスマホ割 というアプリを使った場合、住所入力・支払いをアプリ内で行えます。梱包およびアプリ内での支払いを済ませて発送用QRコードを表示した状態で、箱の販売場所の近くの送り状印刷装置へQRコードを読ませて印刷、さらに職員による計量を行ったうえで発送の列に並びます。発送の列自体では優遇措置はとくになく、閉会直後だと20分ぐらい並ぶことになりました。

おわりに

コミケは技術書典と比べて郵送・紙媒体ベースの処理が多いのと様々な申請オプションがあるのがとっつきにくい点になります。 しかし技術書典で出した本でもより幅広い層に見てもらえる可能性があり、有意義な場になると思います。

コミックマーケット97 振り返り(出展側)

当ブログのサークル「ヤマブキ計算所」は2019年12月31日にコミックマーケット97(コミケ)にてポケモンバトルAI本「PokéAI」シリーズを頒布いたしました。

まずは会場でお買い上げくださった方に感謝申し上げます。会場に来られなかった方にも電子版(PDFダウンロード)については以下のサイトにて有料配布しておりますのでご利用ください。

select766.booth.pm

以下では今回出展の感想・制作過程などを述べます。事前手続きがすべてオンライン化されている技術書典とは手続きに差異があり不安な部分も多かったので、出展のためのテクニカルな部分は感想とは分けて別の記事にまとめたいと思います。

出展の経緯

私は今まで技術書典に2回サークル参加しておりましたが、コミケは初のサークル参加です。 コミケへの一般参加は10年ほど前が初めてで、知人が出展していたこともあり、いつかは出展してみたい同人誌界のトップカンファレンスという認識でした。 ITエンジニアに親和性の高い技術書典で同人誌即売会の最低限のノウハウを得られたと考え、敷居は高いものの以前より出展してみたかったコミケへ参加申込し、抽選に通りました。

研究開発・執筆

今回のテーマはポケモン金銀のルールに対応したAIの開発で、オープンソースのシミュレータの仕様を読み解くところから始まりました。 既存のコードの多くが使えず、一部使える部分を切り取って新システムに用いるという形になりました。 生活が忙しく時間が取れたのが10月以降で、仕様を読み解いてランダムな行動をするAIを作るところまでで11月に入ってしまいました。 本来想定していた制作過程は、新たな機能が実装できるたびにブログ記事を書き、それを再構成して出版するというものだったのですが、ブログ向けに情報を整理する時間が無くなってしまいました。 システムは主にパーティ生成パートとバトル中の行動選択パートに分かれるのですが、金銀の新要素である持ち物を考慮したパーティ生成の実装が12月にずれこみ、いよいよ時間がないという状況になりました。 これが動作することを確認したうえでバトル中の行動選択のための強化学習を実装し始め、デスマーチ状態になりながら実装を終え、なんとか本シリーズの流れである「提案手法→評価」という流れを作れたという感じです。 次回はもっと余裕のあるスケジュールにしたいですね。。。

利用していた強化学習ライブラリChainerRLが開発終了の宣言がなされてしまうという不測の事態はありましたが、考え方や実装方針自体は汎用的だと思われるので予定通りコードの解説を掲載しました。

入稿

今回新たなチャレンジとして、表紙をカラーにしました。きれいなイラストが描けるわけでもないので必要性は薄いのですが、イベント会場で本が並べてあるのを見るとモノクロは見劣りするという印象があったのでコストはかかる&デザインセンスが問われるものの頑張りました。表紙のデータはWordで作っていて、表表紙と裏表紙それぞれをB5サイズのPDFとして入稿しています。本来印刷で必要になるCMYKカラーではなくRGBカラーではありましたが、期待通りの印刷になっていました。また、この方法だと塗り足しがつけられないので紙の端の部分まで色がついているようなデザインは作れません。次回はその部分にもチャレンジしてみたいと思っています。

2020年3月の技術書典8への出展が決まっていたこともあり、200冊の印刷としました。ページ数が従来より多く、カラー表紙にしたこともあり1冊の単価が270円となりました。過去作は1冊500円で頒布しており、在庫を抱える期間があり厳しいのは確かですが価格は据え置きました。700円のように端数を出すと現金の扱いが面倒ですし、神絵師の作品ではなく仕事に役立つ本でもないので、買う側の立場だとこの分厚さで1000円は高いという意識です。

出展準備

入稿後は広報を含めた出展準備です。

コミケのオンラインカタログはcircle.msというサイトで管理されており、頒布内容や関連サイト(pixivなど)を掲載することができます。掲載できる情報が多くて大変ですが、できるだけ埋めるようにしました。 また、pixivに新刊の試し読み版を上げてみました。pixivでは連番の画像ファイルを上げることができるので、https://smallpdf.com/を使ってPDFファイルを連番画像に変換し、イントロダクションの全文とその後の部分の4ページごとに1ページを上げるという形をとりました。この宣伝にどの程度効果があったかはわかりません。

出展の前日にサークルスペースを下見すると、建物の入り口から見える場所であることがわかりました。そのため当サークルや近隣に興味がある人でなくても目に留まる可能性があるため、急遽ポスターを作成することとしました。上部に「ポケモンバトルAI」と大きく書いて残りを新刊の表紙画像で埋めました。コンビニで印刷できた最大サイズのA3で用意しましたが、当日周囲を見るともっと大きいほうが良かったと感じました。

ワンオペは厳しいため売り子を募集しました。過去のイベントでやってくれていた人は都合がつかず、同人誌即売会参加経験のない別の知人(有名大卒高給取り)に依頼することとなりました。 万一自分が急病などで欠席した場合、印刷会社から搬入された本が放置されて迷惑をかけてしまうため、サークルチケットと非常時対応文書を作って知人に送付しました。こんな感じです。

f:id:select766:20200108221600p:plain
売り子非常時対応

自分が音信不通レベルの急病になったことを想定したときに搬入済みのものがどうなるのかネット検索しても分からなかったので、慎重すぎる印象はありますが対策を打っておきました。

当日

初めてのサークルチケットでの入場を経験して設営を行いました。

建物の入り口が見える場所だったので、開場とともに行列が入ってくる様子は壮観でした。

時間ごとの頒布冊数を示します。

f:id:select766:20200108203704p:plain
頒布冊数時系列

最初の1時間は人が入ってくる割にはほとんど売れないという状況でした。この時間に入ってくる参加者は始発組レベルで、何時間も待って得た数十分のアドバンテージを当サークルの訪問に費やすのはもったいないので予想通りです。その後建物が満員状態になりどんどん売れました。全巻まとめて買うという方も多く、新たな場で頒布した甲斐がありました。

技術書典には「かんたん後払い」というスマホアプリによる電子決済システムがあるのですが、コミケにはないためpixiv pay を導入しました。現金決済におけるレジ機能も担ってログを取ってくれるため、それを取り出して上記の時間帯ごとのグラフを作成しています。しかし残念ながらpixiv payによる決済は0件でした。手数料はかかるものの原価割れはしないので、1冊でも多く売れるならぜひ使ってもらいたかったのですが。苦言を申し上げると、twitterが開店休業状態だったり、お金を扱うアプリなのにまともなマニュアルが見つからないなど広報に難があるように思います。

ともあれ、大したトラブルも起こらず多数の参加者に来ていただくことができ、満足いくサークル参加となりました。

FAQ

内容に関して現場で聞かれた質問について。

  • Q ポケモンの最新世代ではやらないのか?(現在だとサン・ムーンやソード・シールド)
    • A (ダブルバトル以外の)ポケモンバトルのルールの本質的な部分は金銀世代で十分と考えており、アルゴリズムの探求に興味があるため、技やポケモンの種類が増えて計算量が増加する新しい世代では当分研究するつもりはありません。アルゴリズムが十分確立し、計算コストさえかければより新しい世代でも良い結果が得られる見通しが立てば実験するかもしれません。
  • Q 実機ではやらないのか?
    • A ルール上構築可能なパーティを大量に自動生成できる前提で最適解を求めることに興味があるため、まっとうなプレイではポケモンの育成という段階が必要な実機での実験は困難です。セーブデータの改造を行えばシミュレータを実機に置き換えられる可能性がありますが、オープンソースのシミュレータがある状況で採用するメリットは小さいです。またネット対戦のあるゲームなのでチート行為を行っていると誤解されると無用なトラブルを招くためやっていません。

おわりに

コミケへ念願のサークル参加を実現し、貴重な経験ができました。次回は3月1日に技術書典8にてよろしくお願いいたします。

コミックマーケット97 お品書き(4日目南リ36a)【PokéAI】

2019年12月31日のコミックマーケット97での当サークル「ヤマブキ計算所」の頒布予定をお知らせします。

当サークルはコミケには初出展となります。配置は「南リ36a」です。比較的新しい南ホールです。私もまだ地理に慣れていません。

f:id:select766:20191221235242p:plain
C97お品書き

ポケモンバトルAI本「PokéAI」シリーズの第1・2・3巻を紙媒体で頒布いたします。 なお、第1巻のPDFについてはすでに無料配布しておりますが、紙媒体の需要が高いため増刷いたしました。 新規出展となるコミケで新たに興味を持っていただいた方も全巻揃えられるようにしようという考えです。

試し読みとして、イントロダクション全文+残りの本文のうち4ページに1ページをpixivに投稿しました。

PokéAI 第3巻試し読み【C97新刊】www.pixiv.net

  • 1冊500円です。まとめ買いによる割引はありません。
  • 現金・pixiv payに対応予定です。
  • 第2・3巻の電子版(ダウンロードカード)の配布は、紙版の完売時のみ行います。
    • 電子版(PDFダウンロード)については、BOOTHでも並行して行います。
  • 在庫は十分な数用意しております。サークル主と売り子の2人体制で閉会まで頒布を続ける予定ですので、焦らずお越しください。
    • 十分な数と言いながら過去2回完売しているのは申し訳ありません…
  • 今後の予定
    • 2020年3月1日、技術書典8に出展予定です。同じものを頒布します。
    • 2020年5月のコミックマーケット98には出展いたしません。世界コンピュータ将棋選手権と日程が被るためです。

それでは、当日会場にてお待ちしております。

技術書典8 当選しました

2020-02-17: イベントは中止となりました。

2020年2月29日・3月1日に池袋サンシャインシティにて開催される技術書同人誌即売会技術書典8」に当選しました。サークル名は「ヤマブキ計算所」です。

2日間開催ですが、そのうち2日目となる3月1日に出展します。配置場所は「あ10」です。(2020-01-16 配置場所を加筆)

ポケモンバトルの戦略を人工知能技術を用いて開発する本を頒布する予定です。12月31日のコミケにて新刊(第3巻)を発行しますので、これを技術書典でも頒布する見通しです。今から1か月後に本を書き始めるだけの技術開発をするのは難しいため、第4巻は出せないと思います。

取り急ぎご連絡まで。