国際情報オリンピックで金メダルgotしてきました。
報告が遅れましたが、去る8月14日から21日の間、カナダのWaterloo大学で開催された第22回国際情報オリンピック(22nd IOI)に行ってきました。
なんか早くも忘れかけているのですが、レポートを書きます。
国際情報オリンピック(IOI)について
国際情報オリンピックは、他の科学オリンピック(数学、化学、物理、生物、天文、あと地学と哲学と言語学を含むこともある)と同じように、地球上に生息する高校生を集めて問題を解かせて競わせる大会です。ちなみにIOIでは各国から最大4名まで参加できます。
「情報」というのは、おそらく「情報科学」「計算機科学」などと呼ばれる分野を指していて、コンピューターで計算するということについて数学的に考察を加えるような分野のことです。
情報オリンピックでは、ある計算課題が与えられて、その計算課題を解くプログラムを作成して、その優劣(答えの正確さ、速度)を競います。
このような形式のコンテストは他にも存在して、「プログラミングコンテスト」「競技プログラミング」などと呼ばれます。国内の高校生向けの大会としては「日本情報オリンピック」「SuperCon」「パソコン甲子園」「EPOCH@まつやま」などがあり、大学生向けであれば「ICPC」が最大手でしょう。主にインターネット上で開催される「TopCoder SRM」「TopCoder MM」は非常に大きなプラットフォームとなっているようですね。
IOIのスケジュールについて
IOIは一週間程度の長さで開催されますが、実際のコンテストは5時間を2日間だけです。他の時は何をしているかといいますと、観光をしたりしてます。(今年は講義もありました)
おそらくこのような長いスケジュールをもつ1つの理由として、数学オリンピックを意識したというのがあるのではないかと思います。(数学オリンピックは採点で結構もめるので、そのための時間が必要)まあ、普通に観光したいですしね。
IOIのコンテストについて
今年のIOIでは5時間で4問を2日行いました。
近年は「何々を実現する方法は何通りあるか」とか「カクガクシカジカを満たす方法のなかで最も評価の高いものを求めよ」とかそんな感じに答えが一意に定まる問題ばかりだったのですが、今年は大きく変更がありました。
- 4問は今までと同じような問題でした。
- 1問は採点システムと対話して答えを探す「数当てゲーム」の難しいバージョンでした。
- 1問は難しい最適化問題が与えられて、「できるだけ良い答えを出す」という問題でした。
- 1問は2つのプログラムを書き、その2つのプログラムの間の通信回数をできるだけ減らしながら問題を解く、という問題でした。
- 1問はInformation Retrieval(IR)の分野からの出題で、プログラムに学習させて、与えられた記事の言語を推測させる、という問題でした。
「今までと同じような」4問がかなり易しくなったので、後半4問での戦いだったのですが、このうち3問は非常に差がつきづらく、かなり接戦となりました。
またもう1つ、今回は解答を提出すると即座に点数がわかる仕組みになり、バグ死の心配なくコンテストに挑むことができました。
それと同時に、スコアボードがインターネット上に公開され、リアルタイムで観戦できるという仕組みが用意されました。
結果としてこれらが僕にとっては追い風になったので、僕はこの変更を歓迎します。
来年またゆり戻しがあるかもしれないですし、定着するかもしれませんが、僕はできれば定着してほしいです。
IOIのメダルについて
IOIには80カ国強の国々から300名弱の参加者があり、
- 約1/12(約25名)に金
- 約1/6(約50名)に銀
- 約1/4(約75名)に銅
が与えられます。
観光
遊園地と滝に行きました。
ジェットコースターはこわかったです。
おわりに
IOIはあっという間に終わったし疲れて記憶がどんどん抜けていく(!?)のですが、それにしても良い体験をしました。
僕がこのような経験をさせてもらっているのは、IOI、JOIの方々、IOIのスポンサー、JOIのスポンサー、などなど、いろいろな方のおかげです。本当にありがとうございます。
最後に、
- 高校2年以下の諸君は、ぜひ日本情報オリンピックの予選に参加してください!
- 高校生の諸君は、SuperConやパソコン甲子園にもぜひ参加してください!
- それ以外にも様々なプログラミングコンテストがあります。僕はこのようなさまざまなプログラミングコンテストがどれももっと大きくなればいいなあと望んでいます。
では。
なお、公式のレポートとしては以下がいいと思います。
第22国際情報オリンピック カナダ大会 速報