ニュース
» 2010年11月19日 10時00分 UPDATE

帰ってきた井上恭輔:プロコン史上初の“超ド級”電脳戦、IT維新の志士たちはどう戦ったのか (1/2)

また“熱い”季節がやってきた。IT技術者を志す高専生たちの祭典「高専プロコン」の競技部門は、プロコン史上初となるネットワーク・リアルタイム対戦が採用されたが、その開発で中心的な役割を担った伝説のプロコンマイスターが今回のプロコンを振り返る。

[井上恭輔,ITmedia]

 今年も“熱い”季節がやってきた。IT技術者を志す高専生たちの最大の祭典「第21回全国高等専門学校プログラミングコンテスト」(高専プロコン)が、10月16〜17日に高知県高知市で開催された。

 「高専プロコン」といえば、NHKの放映でおなじみの「高専ロボコン」とともに、今では“高専”の2大看板を担う栄光の舞台である。今回の大会では、全国の高専から名乗りを上げた全157チームの中から、本選に駒を進めた課題・自由部門各20チームと競技部門59チーム、海外からのオープン参加5チームの学生たちが「高知市文化プラザかるぽーと」に集結。大河ドラマ「龍馬伝」で話題の坂本竜馬の出身地にちなんだ「集えプロコン! IT維新の志士たち」という大会キャッチコピーの下、若者ならではの発想力と創造力、そして、大人も顔負けのズバ抜けた実装力とアルゴリズムで、高専生プログラマーの頂点をかけた壮絶な戦いを繰り広げた。

 本稿では、高専プロコンの開催部門である「課題」「自由」「競技」の3部門の中から、参加チームがトーナメント形式で直接対決を行って優勝を目指す「競技部門」に焦点を当てて、全力のレポートをお届けしたいと思う。この“プロコンの花形”とも称される競技部門、今回の大会では、参加者の誰もが予測しなかった「奇跡の一戦」が待ち構えていた。

tnfig1.jpgtnfig2.jpg 今年のプロコンは高知県の「高知市文化プラザかるぽーと」で開催された

プロコン史上初のネットワーク・リアルタイム対戦競技

 今回のプロコン競技部門「水瓶の恵み――水と緑のネットワーク――」は、プログラミング競技としては非常に珍しいRTS(リアルタイム・ストラテジー)形式の対戦競技である。

 今回の競技を一言で表すならば、「リアルタイム対戦オンライン治水戦略シミュレーション」といえるだろう。競技は、ゲームフィールドを共有する6つのチームが、それぞれのチームに割り振られた3体のロボットに命令を送って操作することで進行する。フィールド上の「水瓶」と呼ばれるエリアにロボット移動させ、水を給水(チャージ)させた後、エリアを移動させながら各地に水をまき、配水に成功した自分のエリアの治水面積を競う。ゲームフィールドは全1680個からなる「セル」と呼ばれる六角形のマス目状に分割されており、最終的に勝ち取ったセルの数が治水面積となる。

 このセルには4つの種類があり、前述の水をくむことができる「水瓶」、移動も通過もできない「」、配水可能な「平地」、そして配水可能だがロボットの操作に2倍の時間がかかってしまう「荒地」がある。また、他チームのエリアとなっているセルに移動を行うと、相手チームの配水した水を「奪う」ことが可能で、奪った後に自分の陣地とすることもできる。これを阻止するため、配水は1回ではなく複数回行うことが可能で「水を高く積む」ことで奪われにくい陣形を築くこともできる。例えば、5段積んでおけば、相手も5回移動を行わなければ水をすべて奪えないので侵攻できない。

 ロボットの各操作にはフレームと呼ばれる操作に必要なコストが決まっており、移動なら40フレーム、給水なら24フレームといった具合である。1秒間に処理できるフレームは60フレームで、3秒分の命令をまとめて送信するルールとなっている。

競技フィールドと各セルの説明 競技フィールドと各セルの説明

 フィールドの情報や各チームのステータス、ロボットの状況はリアルタイムでWeb APIを介して取得でき、ロボットへの操作命令もすべてWeb APIを用いて行う。細かな決まりはいろいろとあるのだが、ルールは基本的に簡単で、ロボットを操作して水をまき、相手がまいた水を奪い、自分の陣地の拡大し面積を競うというものだ。

 各チームは、競技システムが提供するWeb APIを使ってロボットを操るAIプログラムを実装し、競技に挑むことになる。水瓶にいち早くたどり着くために必要な最短経路探索、効率的な配水経路を計算するアルゴリズムや、戦況をリアルタイムに把握し、時には領地拡大、またある時には相手の攻撃など、評価関数や思考ロジックを動的に切り替える高度なプログラミング技能が要求される。

 また、高専プロコンならではの面白い要素として「人間の介在」を認めている点が挙げられる。つまり、コンピュータに判断が難しい部分を人間が操作しても良いのだ。しかし、これも万能ではない。リアルタイムに進行する競技の中で、コンピュータが高速に行う計算に勝つのは容易ではないため、問題の切り分けが焦点になる。人間を使う場合はシステムのUIなどアルゴリズム以外の要素が大きく勝因に影響する。文字通り「アルゴリズム」ではなく、総合的な「プログラム」の競技なのだ。

 実は、筆者はこの「高専プロコン」のOBでもある。現役時代は第13〜18回の4大会に出場し、自由部門で3度、最優秀賞を受賞した経験を持つ。そういったいきさつからプロコン実行委員会との関係が深く、今回のプロコンでは競技部門で使用する競技システムの開発に参加することになった。自分を育ててくれたプロコンや、次代を担う若い才能に、少しでも恩返しとエールを贈れれば思った次第である。本稿では、実装の裏側や、実際に各チームがやりとりした操作命令などの視点からも、解説を行いたい。

tnfig4.jpgtnfig5.jpg プロコンの競技部門はほかのアルゴリズム系プログラミングコンテストに比べて、エンターテインメント性に重点が置かれている。今回の競技の様子はリアルタイムで3Dアニメーション化され、競技会場で上演されると同時に実況が行われた。競技用BGMなどもオリジナルで用意したとのことで、運営スタッフの本気がうかがえる。可視化された電脳空間で繰り広げられるプログラム同士の激戦は、まるで映画「サマーウォーズ」のようである

作りこみの差が圧倒的に現れた初日

 初日は予行練習とトーナメント第1回戦が行われた。今回はフィールドを共有する競技のため、アルゴリズム競技のように「これが解ければ必ず勝つ」ということはなく、実際に試合を行ってみるまで勝敗は分からない。

 各チームのAIがどのように動くかによって試合の性質は変化するため、どれほど競技を分析し、戦略を立て、柔軟に試合に対応できるAIを実装したかが勝負を分ける。実際、1回戦は各チームのAIの作りこみの違いが顕著に現れた結果になった。

 まず参加者の度肝を抜いたのが近畿大学。2位の有明110セルに対し5倍以上の638セルで圧勝し、会場を大いに沸かせた。近畿大学の採用したアルゴリズムは「敵から遠く、未配水エリアを多く通る目的地、ルートを探索する」というもの。つまり、マップ上から“ブルーオーシャン”を見つけ出し、一気に領地を確保するという戦略である。AIは全自動で動作し、条項によって評価アルゴリズムを動的に切り替える機能も装備しているとこのことだ。

 また、1回戦では各チームのAIの完成度を試すような難易度の高いマップも出題された。例えば、ロボットに最も近い水瓶が全方位壁で囲われているという意地悪なマップである。単純な最短経路ではなく、到達可能判定を組み込んでいなければ対処できない「呼び水」だ。このマップに涙をのむ高専も多かった。

tnfig6.jpgtnfig7.jpg 緑の近畿大学の領地で埋め尽くされたマップと、到達不可能な「呼び水」を配置したマップ

 1回戦を勝ち抜いたのは、久留米、香川(高松)、新居浜、ハノイ、大阪府立をはじめ、全10試合、上位2位までの20チーム。獲得セル数200後半から300以上のハイスコアは次の戦いの序章といったところだろう。

       1|2 次のページへ

Copyright© 2016 ITmedia, Inc. All Rights Reserved.