日本選手団 団長 伊藤哲史
日本代表選手 | ||||
金メダル | 村井翔悟 | 開成高等学校 | 高2 | |
銀メダル | 今西健介 | 八千代松陰高等学校 | 高3 | 銀メダル | 城下慎也 | 灘高等学校 | 高3 |
銀メダル | 原将己 | 筑波大学附属駒場高等学校 | 高3 | |
日本選手団役員 | ||||
団長 | 伊藤哲史 | 京都大学・准教授 | '94スウェーデン大会・'95オランダ大会日本代表選手 | |
副団長 | 谷聖一 | 日本大学文理学部・教授 | ||
随行役員 | 今城健太郎 | 京都大学M1 | '06メキシコ大会日本代表選手 | |
随行役員 | 奥田遼介 | 東北大学4年 | 07クロアチア大会日本代表選手 | |
随行役員 | 渡部正樹 | 東京大学M1 | '06年メキシコ大会日本代表選手 |
IOI は個人競技であり,公式な国別順位は存在しないが,参考までにメダル数に基づく日本の国別順位は 8 位タイである (1位中国,台湾,アメリカ,4位クロアチア,5位ロシア,6位タイ,ポーランド,8位日本,ベラルーシ) .また,総得点に基づく順位は6位である (1位中国,2位ロシア,3位アメリカ,4位台湾,5位クロアチア) .昨年のカナダ大会 (金2個,銀2個,メダル数は2位タイ,総得点は4位) と比べると少し下がってしまったが,その内容は,昨年に匹敵する好成績だったと思う.
(1) IOI のルールは毎年少しずつ改訂されているが,今年の最も大きな変更点は,1 日あたりの課題数が 4 個から 3 個に減らされたことである.IOI では伝統的に 1 日あたり 3 個 (2 日間で合計 6 個) の課題に取り組む方式がとられてきた.2009年のブルガリア大会から1日あたりの課題数が 4 個 (2 日間で合計 8 個) に増え,ただし4個のうちの1個はとても易しい課題となった.これは IOI に参加する国・地域の数が増えたことへの措置である.この変更は2010年カナダ大会でも引き継がれたが,今年になって以前の方式に戻った.易しい課題が無くなった代わりに,各課題がいくつかの小課題に分割され,小課題の中に易しいものが含まれるようになった.
この変更は,以下に述べる 2 つの理由から,日本選手にとって望ましいものであった.1 つ目の理由は,追加された課題は日本選手のレベルからすればとても易しい課題ではあるが,満点を得るにはそれなりに注意深く取り組む必要があることである.とても易しい課題で時間をロスしてしまうと,本来時間をかけるべき難しい課題がおろそかになってしまう恐れがある.とても易しい課題の存在は選手に余計なプレッシャーを与えるかもしれない.とても易しい課題が無くなったことは,日本選手にとって,歓迎すべきことであった.
もう 1 つの理由は,課題数が減ったことで,日本のように問題文を翻訳しなければならない国は,1 課題あたりに多くの時間をかけて翻訳することで,訳文の質を上げることができるようになったことである.しかし,現実はそう甘くはなかった.実際には,2 日目の問題文は原文 (英文) で合計 13 ページもの長文であり,結局,日本チームは深夜 5 時近くまで翻訳作業に追われることになった.問題文の長さは GA meeting でも議題に上がったものの,残念ながらあまり真剣には取り合ってもらえなかった.英語や英語に近い言語を母国語にする国・地域と,日本のように英語から遠い言語を母国語とする国・地域とでは,翻訳に対する考え方は大きく異なるのが現状である.
(2) 2010年のカナダ大会では IOI 競技に関して様々な改革が行われた.そこで導入された「プロシージャー方式」は今年も継続された.選手は,実行可能なプログラム全体ではなく,アルゴリズムの根幹をなす「プロシージャー」のみを提出する.また,プログラミング・テスト環境として,RunC と呼ばれるソフトウェアが提供される.これにより,選手は入出力インターフェースを実装する手間が省け,入出力の些細なミスで失点することが防げる.過去の IOI では,入出力の仕様を間違えていたために大きく点を落としてしまった人もいたが,そうしたミスも防げる.ただし,RunC 環境に慣れていないとデバッグがやりにくくなるという欠点もある.
残念ながら,日本情報オリンピック (JOI) の「プロシージャー方式」や RunC 環境への取り組みは遅れているのが現状である.今年は,JOI の予選・本選・選手選考会ともに旧来の方法で行ったため,「プロシージャー方式」や RunC 環境に慣れる時間はなかった.幸いなことに,今年の日本選手は,プラクティス等を通じて自主的に予習してくれたようで,競技に大きな支障はなかった (もちろん 4 人の選手のうち 3 人がカナダ大会の経験者であるというのは大きい).来年以降の IOI で「プロシージャー方式」や RunC が継続されるかどうかは分からない.継続される可能性もあると思う.今後は,JOI でも何らかの対策が必要かもしれない.
(3) 2010年に導入された「トークン方式」は今年も継続された.選手には 30 分ごとに 2 個のトークンが与えられる.選手はトークンを使うことで,プログラム提出時に自分の得点を知ることができる.これにより,些細なミスで大きく点数を落とすことが無くなり,選手は自分の実力を十分に発揮できるようになった.この「トークン方式」の導入により,デバッグが容易になり,上位の選手間では得点差が付きにくくなった.一度でも大きなミスもしてしまうと挽回しにくくなった.昨年と同様,今年も上位陣はかなりの接戦になった.
細かいことだが,カナダ大会では,トークンを各課題ごとに最大 2 個までしか所持できなかったのに対し,今年は時間経過とともに所有トークン数が (30 分に 2 個の割合で) どんどん増えていくように仕様が変更されていた.こうした細かい仕様はルールに明記されておらず,GA meeting での事前のアナウンスも無かった.
(4) これも2010年から導入されたものだが,競技中の選手の得点をウェブページを通じて見ることができる「スコアボード」は今年も継続された.スコアボードは全世界に公開されていたので,日本を含めて,様々な国からスコアボードを通じて選手の活躍を応援した人も多かったと思われる.
今年のスコアボードは昨年以上に凝っていて,選手の名前が画面上を動いていて,加点すると画面の上部にふわふわと浮いてくるといった,見る者を楽しませる工夫もあった.スコアボードのサーバーが重く,更新に時間がかかるといった課題はあったが,選手の生の活躍の様子を多くの人に伝えることは,IOI を競技イベントとして盛り上げるために大切なことだと思う.
スコアボードの導入により,選手は競技終了直後に自分の得点だけでなく,自分の順位やメダルの色までも分かってしまうことになった.以前の IOI では,表彰式が行われるまでメダルのボーダーラインが分からず,それが表彰式の緊張感や価値を高めていたという面もあるため,スコアボードには賛否両論あってもおかしくない.しかし,実際には,スコアボードに対し否定的な意見はほとんど聞かれなかった.来年以降もスコアボードが継続される可能性はあると思う.
(5) 今年出題された課題は,標準的な形式だがよく練られた良問 (難問) が多く,さすが IOI と言えるものだった.分野としては,グラフアルゴリズムを問う課題が多く出題された.アルゴリズムの基礎をしっかりと身につけた日本選手にとっては,取り組みやすい課題が多かったと思う.それが今大会の好成績の一つの要因だと思う.もちろん,Dancing Elephants のような超難問もあり,競技のレベルはとても高いものだった.どうやって手を出したらよいのかさっぱり分からない奇抜な課題は出題されなかった.唯一,Parrots は昨年の Saveit を彷彿とさせる符号化・復号のアルゴリズムを問う課題だったが,これは本質的に組み合わせ論の古典的な問題に帰着されるもので,符号化・復号の発想力そのものを競う課題ではなかった.今年の競技課題は,選手の実力が得点に反映される良いセットだったと思う.
出力のみの課題 (output only task) や,カナダ大会の Language のような新傾向の課題は出題されなかった.採点方式も,解の質を公式を用いて採点する方式が一部 (Parrots の小課題 5) で採用されただけで,それ以外は提出プログラムがある基準に達したかどうかを小課題ごとに all or nothing で判定する方式だった.課題の種類や採点方式については,IOI の伝統的な方式に従ったものだったと言える.
(6) 競技中の不正行為への対策はより厳密に行われるようになった.例年,選手はプラクティスの時間中にキーボード,小さなマスコット,辞書 (電子辞書は不可) をテクニカルスタッフに預けることで,競技中に使用することができるが,今年はこれに加えて,当日使用する上着や筆記用具も事前に預けることが求められた.当日の選手は,財布も含めて全ての持ち物の持ち込みが禁止され,簡単なボディーチェックも行われたようだった.
こうした運用上の変更はルールには明記されておらず,若干戸惑うことになった.不正行為が許されないことは言うまでもないが,厳格すぎる対策は選手に余計な緊張を与えてしまいかねない.上着を預けてしまったらプラクティスの日の夜は選手は何を着ればよいのだろうか?幸いなことに,日本選手は特に混乱することもなく無事に競技を行うことができたが,事前の説明がもう少しあっても良かったと思う.
(7) IOI では伝統的に難しいアルゴリズムの設計に時間をかけて取り組む課題が出題される.得点は解答の正否や質によって決まり,早く解くことが評価されるものではない.他のコンテストの中には,プログラミングの技術や速度を競うものもあるから,これは IOI の大きな特徴と言える.ところが,今年は少し違う傾向も垣間見えた.定数倍オーダーの改良を要する小課題が出題された.表彰式で最も早く解いた人に特別賞が与えられた.これには賛否両論あるのではないだろうか.こうした試みを,『IOI らしくない』と思った人も少なからずいたと思う.