JSTTweet筆者が会長を務める秋葉原プログラミング教室には、サッカー部がある。サッカー部といっても、スパイクを履いてグランドを駆け回るわけではない。プログラミング教室のサッカー部なのだから、当然、サッカーもブログラミングで行う。毎年、世界各地で世界大会が開催されている本格的なチャンピオンシップ、RoboCup出場を目指している。プログラミングというのは、ただ出来るだけでは意味がない。自分の考えをプログラムとして表現し、高い目標を目指さなければならない。その意味で、ロボカップへの参戦は理想的なものと言える。Jrを想定した小型ロボットによるサッカープログラミングを試したあと、ついに今月からいよいよ2Dシミュレーションリーグに挑戦することとなった。チームメンバーは小学生二人に大人6人。2Dシミュレーションリーグとは、ロボットを使わずにシミュレータ上で複数のAIエージェントを動作させて行う競技で、手軽に試せるのが魅力だ。2Dシミュレーションリーグの歴史は古いが、日本では大阪府立大学と福岡大学の混合チームによるHELIOSがあり、これが世界最強の座に何度も輝いている。HELIOSの作者らによる解説書も販売されているが、いかんせんC言語で書かれていて少し敷居が高かった。そこで筆者の務めるギリア株式会社のインターンである増村コーチにPythonで書き直してもらったことで、AIプログラミングコース受講者なら誰でもやっているPythonでシミュレーションリーグへの挑戦が可能になった。いえ、いきなり世界チャンピオンに勝つのは無理なので、まずは基本的な縦パスをつなぐだけのサンプルプログラムを少しだけ改造して、フォーメーションを変化させるだけの簡単な題材からスタート。「フォーメーションだけで優劣なんかつくの?」と思いきや、これが予想外に面白い展開になった。ロボカップでは、公平性を期すために、審判サーバーに対してAIエージェントがソケット通信でやりとりしてゲームが進む。各エージェントは個別の主観的な視点情報しか与えられず、それぞれスタミナも異なる。高校サッカーで関西最強チームの司令塔を務めた経験のある久保コーチも加わって、戦略を練る。AIプログラミングコースに栃木から通う小学生のりょうくんに、最新のサッカー戦術である3-4-1-2を教えると、これが面白いくらいに強い。試合開始当初はこのシステムに防戦一方だった社会人の望月さんのチーム、このままゲーム終了まで行くかと思いきや、なんと後半から奇跡の大逆転が始まる。後衛二人がスタミナ切れでバテているところに、面白いように攻め込まれる。前半で2-6とリードしていた展開だったが、後半で8-6と挽回された。実は、ロボカップではスタミナ管理が重要で、適度に選手を休ませなければならないのだが、サンプルプログラムのままではそこまでの動きがプログラミングされていなかった。縦パスしかしないプログラムのため、横に広がると弱いという欠点もあった。この構成だけで戦ってみたところ、一直線上に選手を集中配置する方法が一番強そう・・・というわけにもならず、望月さんのチームはばらけていてもバランスが良く、教室内暫定一位となった。強いチームと望月さんのチームを戦わせてみよう、ということで、2010年のHeliosと対戦したところ・・・36対0とまさかのボロ負け。世界最強は世界最強だった・・・。AIだけに初心者相手でも容赦なし。配置を変えるだけでも十分面白く、興奮するのでロボカップのシミュレーションリーグは子供にPythonを教える教材として非常に良いのではないかと思った。実際のサッカー経験のある久保コーチも、実戦でよく知られた戦法が本当に有効に機能しているところを見て「俺もプログラムしてみたい」と開眼したようだ。深層強化学習を用いて最強のロボットサッカーチームを作るべく、頑張ってみたい。2Dシミュレーションリーグはやらないと損、というくらい面白いのでもっと広まればいいのに、と思った。Tweetおすすめ記事と編集部のお知らせをお送りします。亮(しみず・りょう)新潟県長岡市生まれ。LLC.とともにギリア株式会社を設立し、「ヒトとAIの共生環境」の構築に情熱を捧げる。センター客員研究員を兼務。(KADOKAWA)」「プログラミングバカ一代(晶文社)」など。