ガジェット通信

見たことのないものを見に行こう

未経験も多数参加!チームラボVSドワンゴ☆競技プログラミング勉強会レポート

DATE:
  • ガジェット通信を≫

ゲームを攻略する「最強のAI」を競い合う、プログラマ日本一決定戦「CODE VS」。その第5回目となる「CODE VS 5.0」が、3月26日(土)に六本木ニコファーレで開催されることが発表されましたね。3月1日からは、予選も開始されました。

「競技プログラミングに興味があるけど参加したことがない」「ルールや戦い方などを知りたい」という方のため、12月に開催されたチームラボとドワンゴによる競技プログラミング勉強会をご紹介したいと思います。


チームラボVSドワンゴ!競技プログラミング勉強会@ドワンゴオフィス

☆チームラボコンテンツ

リクルートキャリアと共催で行っている競技プログラミング「CODE VS」などで実際に使われるゲームのAI開発について、AI開発者からのレクチャーや、サンプルコードの改良例などを紹介。

☆ドワンゴコンテンツ

ACM-ICPCやAtCoderなどで利用されているような、コーディングのスピードと正確さを競う競技スタイルについてレクチャー。AOJやAtCoderの「良問」をもとにしたアルゴリズムの勉強方法や、選手が利用するライブラリ等のツール、導入問題の実践など。

初心者にもやさしい!CODE VSって何?

チームラボから登壇したのは、「CODE VS」および「CODE RUNNER」のチームラボ内プロジェクトマネージメントを担当している林輝大さん。今回は主に競技プログラミング初心者向けに勉強会コンテンツを作成してきたという。

▲チームラボ株式会社 林輝大さん。パッケージ導入・分析レコメンデーションチームに所属している。

最初に説明されたのは、そもそも「CODE VS」とは何かということ。ゲームAIの強さを競うプログラミングコンテストで、年1回開催される。2週間の予選を勝ち抜いた上位入賞者が、ニコファーレで行われる決勝大会に進むことができる。


サンプルコードを動かしてみよう!

CODE VS 3.0決勝大会の様子を動画で紹介したあと、3.0で使われた爆弾ゲームのAIのサンプルコードをもとに講義が開始された。ちなみに3.0のサンプル動画はこちら。

今回用意されたコードはJava、C/C++の2つの言語。サンプルコードと専用クライアントは、CODE VS公式サイトから手に入れることができる(※会員登録後、ログインしてマイページから)。

上記の「サンプルコードをダウンロード」から、以下のファイルがダウンロードできる。

●専用クライアント(CODEVS 3.0用)

codevs3.jnlp

●サンプルコード

sample_code_3.zip

codevs3_tutorial.cpp

Codevs3Tutorial.java

input.txt

サンプルコードは以下のようにコンパイルする。

下記のコマンドを入力して実行ボタンを押すと、サンプルコードを動かすことができる。


AI作成の基礎知識を学ぼう!

休憩をはさんだ後半は、サンプルコードで使用するCODE VS 3.0の基本ルール・勝利条件・プレイヤーが取れる行動などのルール説明や、シミュレーター・ゲーム木・評価関数などの基礎知識が解説された。

特に、盤面の状態を評価関数で数値化し、よりよい状態になる手をゲーム木から探索「ゲーム木探索」については、詳しく語られた。手法は様々あるが、よく使われるのは以下だという。ゲーム木とはゲームの状態をツリー状に表現したもので、節点(ノード)はゲームの状態を表し、枝の数はプレイヤーが取れる行動だけ存在するという。 mini-max法 α-β法 モンテカルロ法 ビームサーチ

今回はmini-max法、α-β法、モンテカルロ法について詳しく解説された。特に2.1、3.0で優勝者が使っていたモンテカルロ法に関しては、参加者の関心も高く、講義後に質問が寄せられていた。


【ゲーム木探索(mini-max法)とは】

想定される最大の損害が最小になるように決断を行う戦略。3つの特徴が挙げられる。
次にどの手を打てば将来的に良さそうか判断できるようになる かなり先のターンまで予測しようとすると、計算量が爆発的に増える 選択できる行動が多いゲームは苦手

【モンテカルロ法とは】

モンテカルロ法とはシミュレーションや数値計算を乱数を用いて行う手法の総称。
全てを探索せずに、ランダムに選択した手を深く探索する 評価関数を作るのが難しい場合に有効 計算量は劇的に減らせる 全探索していないので、悪い手を打つ可能性もある

オンライン対戦機能で他の人との対戦や、ランキングもつく。本日紹介した方法で過去のコンテストゲームでAI作成の練習をしてほしいという林さん。基本知識は得られたので、一歩先へ進んだアルゴリズムや、最強AIの作成にチャレンジしてほしいと講義を締めくくった。

☆☆今回の林さんの勉強会資料はこちら☆☆

Codevs5.0勉強会 from Kidai Hayashi

【特別コンテンツ】チームラボVSドワンゴ AI対決

続いて、実際にこれまでCODE VSの上位入賞者として熱い戦いを繰り広げてきたOBでもあり、現在チームラボとドワンゴのエンジニアとして活躍するお二人のAI対決が披露された。

▲左から、チームラボのschwarzahlさん、ドワンゴのkusanoさん

▲二人の組んだAIが対決している様子が実況された

続いては、ドワンゴ競プロ部の田山貴士さんによる「オンラインジャッジ良問手ほどき」。著名な競技プログラミングコンテストの紹介から、競技プログラミングコンテストの開催スタイルやジャッジルール、コンテストルールが説明されたあと、実際の問題例をもとに、問題解説なども行われた。

☆☆田山さんのドワンゴ競技プログラミング勉強会資料はこちら☆☆

勉強会終了後は懇親会などが行われ、参加者同士も交流を深めていた。

CODEVSはいよいよ3月1日から予選が開始されました。プログラミングスキルに自信がある人から、ゲームAIが好きな人まで、興味を持った人はまず登録して挑戦してみよう!

●CODE VS 5.0公式サイト


関連記事リンク(外部サイト)

優勝・上位入賞者・解説・主催者を直撃インタビュー!「CODE VS 4.0どうだった?」
【CODE VS 4.0】まだ終わりじゃない!「チームラボ×中学生」感動のエキジビジョンマッチ
最強のAIでプログラマ日本一に輝いたのは、なんと中学生!「CODE VS 4.0」実況中継 ver.2

カテゴリー : デジタル・IT タグ :
carrariaの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。

TOP