第26回国際情報オリンピック 台湾大会 参加報告

日本選手団 団長 伊藤哲史

  1. 概要
  2.  第 26 回国際情報オリンピック台湾大会 (IOI2014) は 2014 年 7 月 13 日から 7 月 20 日まで台湾の台北市で開催された.
     開会式,競技,閉会式 (表彰式) の会場は台北の中心部にある国際会議場 Taipei International Convention Center (TICC) である.団長・副団長・随行員は TICC のすぐ近くの Grand Hyatt Taipei に宿泊し,選手は Fullon Hotel ShenKeng に宿泊した.TICC で行事がある時は,選手はホテルから貸切バスで移動した.Fullon Hotel ShenKeng から TICC まではバスで約 15 ~ 20 分の距離である.
     IOI2014 には 81ヶ国・地域から 311 名の選手が参加した (公式参加者数).競技は 7 月 15 日と 17 日の 2 日間にかけて行われた.各競技日の競技時間は 5 時間であり,出題された課題数はそれぞれ 3 題(2 日間で合計 6 題)である.競技結果に基づき上位者には金・銀・銅のメダルが授与された.全参加者の約半数にメダルが授与され,金・銀・銅の割合はおよそ 1:2:3 と定められている.今年は金メダルが 32 名(全参加者の約 10 %)に,銀メダルが 52 名(全参加者の約 17 %)に,銅メダルが 69 名(全参加者の約 22 %)に与えられた.例年より金メダル受賞者の割合が多いのは,金メダルのボーダー上の同点者が多かったためである.
     IOI2014 における日本代表選手の成績は,金メダル 1 個,銀メダル 2 個,銅メダル 1 個であった.選手全員が IOI 初参加ながら,全員がメダル受賞という素晴らしい成績をおさめることができた.
     
    IOI2014 日本選手団
     日本代表選手
    金メダル  髙谷悠太 開成中学校3年
      銀メダル 伊佐碩恭 開成高等学校1年
      銀メダル 小倉拳 灘高等学校3年
      銅メダル 佐藤竜馬 大阪府立茨木高等学校3年
     日本選手団役員
      団長 伊藤哲史  京都大学准教授(IOI 1994, IOI 1995 選手)
      副団長 保坂和宏 東京大学理学部数学科4年(IOI 2008, IOI 2009 選手)
      随行員 今西健介 東京大学理学部情報科学科3年(IOI 2010, IOI 2011 選手)
      随行員 城下慎也 東京大学理学部情報科学科3年(IOI 2011 選手)

     IOI は個人戦であり公式データとしての国別順位は存在しない.公表された成績に基づいて算出したところ,メダル獲得数による日本の国別順位は 11 位タイである.総得点による日本の国別順位は 8 位である.IOI2012 イタリア大会(金 1 個,銀 3 個,メダル獲得数 7 位タイ ,総得点 4 位)には及ばなかったものの,昨年の IOI2013 オーストラリア大会(金 1 個,銀 2 個,メダル獲得数 11 位 ,総得点 15 位)より成績を上げることができた.



  3. 競技について
  4.  今日では様々なプログラミングコンテストが行われているが,IOI の特徴としては中高生を中心とした大会であること (国によって教育制度は若干異なるが),世界各国から代表選手が集うオンサイトの国際大会であることが挙げられる.IOI で出題される課題の特徴としては,競技時間が長いこと (1 日 5 時間の競技を計 2 日間行う),個人戦であること,そして,アルゴリズムに関する数理的思考力を問う課題が多く出題されることが挙げられる.
     競技では,与えられた開発環境を用いてプログラム (C/C++ または Pascal) を作成してソースファイルを競技サーバから提出する.提出したプログラムは競技サーバ上でコンパイル・実行され,その実行結果に基づき得点が与えられる (過去の IOI ではこれ以外の採点方式の課題が出題されることもあったが,IOI2014 では出題されなかった).実行時の時間・メモリに制限があるため,効率の良いアルゴリズムの設計が重要となる.早く提出することへのボーナス点は無く,また,誤った解答を提出した場合のペナルティも無い.選手には,高度な課題に対して,5 時間の競技中にじっくりと取り組むことが要求される.競技時間内であれば解答の再提出も可能である (提出回数の制限は各課題ごとに 100 回である.5 時間の競技時間中に 100 回以上提出することは通常はあり得ないため,実質的に提出回数は無制限と言える).
     IOI2014 で出題された課題は以下の 6 題である.
               
    IOI2014 競技課題
     競技 1 日目    ゲーム (Game)
      鉄道 (Rail)
      壁 (Wall)
     競技 2 日目 友達 (Friend)
      ゴンドラ (Gondola)
      休暇 (Holiday)

     いずれも数理的思考力が問われる良問である.各課題はいくつかの小課題に分割されている.小課題の中には,単純な実装で得点が得られるものから,高度なアルゴリズムを実装しないと得点が得られないものまで含まれている.従って 1 つの課題を丸ごと落として 0 点になってしまう可能性は少ないが,満点を取るのは難しい.
     IOI はプログラムの作成技術を競う大会ではない.技術力があるに越したことはないが,それよりも IOI で重視されるのは数理的な思考力・洞察力である.実際,今年の出題された課題の中には,満点解答のプログラムがわずか数行~ 10 行程度というものもあった.競技では課題の本質を見抜く力が問われる.

     (1) 競技規則の変更 : IOI の競技規則は毎年少しずつ改訂されている.IOI2014 では競技規則のうち以下の 3 点が変更になった.
      ・最近の IOI では問題文を事前に印刷しない paperless contest として行われていたが,IOI2014 では事前に印刷された問題文(英語版と各国語版)が配布される旧来の方式で行われた.
      ・競技時間中の質問票の受け付けが,「競技開始後の最初の 2 時間 30 分」から「競技時間中」に変更された.
      ・ワイヤレス機能や電卓機能の付いたキーボード・マウスが競技中に使用できないことが競技規則に明記された.
     いずれの変更も IOI の競技の本質を変更するものではなく,選手への影響はほとんど無かった.3 番目については,特殊機能のついたキーボードやマウスの使用は昨年までも禁止されていたが,それを規則で明記するようになったということに過ぎない.
     選手は,昨年までと同様に,競技サーバより問題文の PDF ファイル(英語版と各国語版)をダウンロードして競技 PC 上で読むこともできる.

     (2) 競技実施方式 : 最近の IOI と同様,IOI2014 で出題された課題の形式は,与えられたデータを処理する関数(プロシージャ)を実装したソースファイルを提出する方式 (プロシージャ方式) である.
     提出されたソースファイルは競技システム上ですぐにコンパイル・実行される.競技参加者にフィードバックが返され,自分の得点を知ることができる.満点でなかった場合は,どの小課題で失点したかを知ることができる.
     競技の途中経過はスコアボードとしてリアルタイムに全世界に公開された.時差が少ないこともあり,日本から観戦した人も多くいたようである.ただし,競技時間中はスコアボードは選手には公開されない.選手が競技時間中に知ることができるのは,自分の得点だけである.
     過去の IOI では特殊な提出方式・採点方式の課題 (出力データのみを提出する課題 (output-only task) や相対評価の課題など) が出題されたこともあったが,IOI2014 ではそのような課題は出題されなかった.
     過去の IOI では,フィードバックが無い課題やフィードバックが制限された課題が出題されたこともあったが,IOI2014 ではそのような課題は出題されなかった.

     (3) 競技システム :  競技時間中,選手にはノート PC (Acer Aspire M3-580, CPU: Intel Core i3-3217U (1.8 GHz), RAM: 4GB, OS: Ubuntu 14.04 LTS) が 1 人 1 台与えられた.選手の PC には開発環境と,競技システムにアクセスすためのウェブブラウザがインストールされている.
     競技システムとしては,最近の IOI と同様,CMS (Contest Management System) が用いられた.CMS は,もともとイタリアが地域のコンテストのために開発したオープンソースの競技システムだが,IOI2012 イタリア大会で採用された後,IOI2013 オーストラリア大会でも採用され,IOI2014 でも採用された.現在では各国・地域のコンテストで広く使われているようである.日本では,最近では JOI 本選と春季トレーニング合宿で CMS を使用している.トレーニングにおいて IOI と同一の競技システムを使用することにより,選手は操作方法に戸惑うことなく課題に集中できるというメリットがある.
     IOI2014 の競技時間中に団長や情報科学教育関係者を対象に行われた IOI Conference では,CMS の開発者による講演が行われた.講演終了後には聴衆から盛大な拍手を受けていた.

     (4) 翻訳 : 競技日の前日の夜には団長・副団長により問題文の翻訳が行われた.翻訳システムについては,深夜の限られた時間内の作業ということもあり,トラブルが起こることもある.翻訳システムの改善は課題となっていたが,今年は事前に翻訳システムの概要を公開するなどの改善が図られていた.しかし,1 日目の翻訳開始後にシステムが正常に機能しなかった (深夜になってようやく復旧した) ことや,翻訳システムにより出力される日本語フォントの質に問題があったことから,日本選手団は翻訳システムを使わずに自前で PDF ファイルを生成して直接提出することになった.翻訳作業には予想外に時間がかかってしまったが,翻訳自体は何とか無事に終了した.

  5. IOI2018 日本開催決定について
  6.  IOI2014 期間中に開催された IOI 総会 (GA meeting) において,IOI2018 の日本開催が正式に決定した.

  7. その他・感想など
  8.  今年の IOI の運営は細部まで気配りの行き届いたものだった.ボランティアスタッフへの教育も行き届いていた.担当外のことを質問した場合も,責任者に確認してから回答する姿勢が徹底しており,安心して大会に参加することができた.IOI では平気で何時間も遅れることがあるが,今年は驚くほど順調にスケジュール通りに進行した.
     宿舎は高級ホテルであり,競技環境も申し分の無いものであった.また,競技自体についても大きなトラブルは無かった.
     IOI 期間中は,大会会場では Wifi 接続環境が提供されていた.また,日本選手団は Wifi ルータをレンタルして持参したため,大会中の選手団同士の連絡にストレスを感じることはほとんど無かった.
     IOI では競技時間以外には観光などの各種行事も企画されており,選手は世界中の同年代の選手と交流することができる.日本選手団ガイドの Joan Shen (沈子安) さんの細かな気配りもあり,選手たちはリラックスして競技に参加し,国際交流を楽しむことができたようである.日本からはお土産として日本情報オリンピックのロゴの入ったボールペンを持参した.これとは別に,選手の中には自作の名刺を配布して交流した人もいたようである.
     今年の IOI では様々な場面でタブレット PC が活用されていた点が印象的だった.全ての団長と副団長にはタブレット PC が 1 台ずつ貸与された.タブレット PC には IOI2014 公式アプリがインストールされており,Wifi を通じて様々な情報が入手できるだけでなく,競技中のスコアボードの確認や選手からの質問対応にタブレット PC が利用できたようである (ただし,日本選手からは質問が出なかったので,質問対応システムの実際の動作は確認できなかった).また,参加者に配られる名札(バッジ)には非接触型の IC チップが内蔵されていて,バス乗車時の出欠をボランティアスタッフのタブレット PC で管理していたようである.
     IOI ではプログラミング言語として Java を採用することが検討されていたが,IOI 総会 (GA meeting) において来年から Java を採用することが正式に決定した.C/C++ と Pascal は引き続き採用されるので,来年の IOI で使用可能なプログラミング言語は,C/C++, Pascal, Java の 3 種類となる.

  9. おわりに
  10.  今年の選手は 4 人とも IOI 初参加でしたが,全員がメダル受賞というすばらしい成績をおさめることができました.今回,IOI 2014 への選手団派遣を無事に終えることができましたのは,日頃より情報オリンピックの活動にご支援をいただいている皆様のお陰です.この場を借りてお礼を申し上げます.どうもありがとうございました.今年の GA meeting では IOI 2018 の日本開催が正式に決定しました.今後は様々な形で今まで以上にお世話になることも多いと思います.今後ともよろしくお願いします.