オセロ
ゲームAI

ゲームAIとwebの学習のためにオセロのAIを実装してみる (0) 導入編

世界コンピュータ将棋選手権とかを見てゲームAIへの興味が再燃してきたので、ゲームAIの入門編としてオセロのAIを実装してみる。ついでなのでwebのお勉強もする。

方針

  • 単にオセロAIを実装するだけならブラウザjavascriptオンリーでも人間が勝てないレベルのものができるらしいが、折角なのでREST API的に盤面の情報を送ると次の手を返すWeb APIを実装したい。
    • 必然的に相手番に思考できないので、AIとしてはそんなに強くならなさそう。
  • 一応人間が対戦できるように、UIをhtml5, javascriptで作る。
  • 折角なのでAI側はいろんな言語、フレームワークで作ってみる。同じ中身のAIを別の言語で実装して、速度差による勝率差とかも見たい。
  • AIは単純なルールベースから初めて、木探索、局面評価値の機械学習、モンテカルロとか、いけたらDQNまでやってみたい。(できるかは不明)
  • Web方面はあまり発展する見通しが立ってない(アイデア募集)
  • やった内容はQiitaの記事にする。ソースコードはgithubに公開する。
    • 個別の記事の内容については、世の中に無限にある記事の焼き直しになると思われる
  • Webサービスとして公開する予定は今の所なし。

筆者の技術レベル

  • プログラミングの経験はそれなりにあるが、研究開発寄りなのでWeb開発の知識、経験は殆ど無い。
  • ゲーム開発、ゲームAI開発の経験はなし。
  • コードレビューとか殆ど無い職場なので、いろいろとおかしい書き方してそう
  • 機械学習はライブラリ使って回帰とか分類ならまあできるかなというレベル。強化学習は経験無し。
  • オセロは「角はとった方がいい」「角の隣は取らないほうがいい」くらいしか知らない。

シリーズ (随時更新予定)

その他

  • アドバイス、アイデア、マサカリなど大歓迎です