スクリーンショット 2013-12-04 18.22.02

PROFILE

武田 源生(Takeda Gensei)・石河 純輝(Ishikawa Junki)

今年の全国高専プログラミング大会において、競技部門の優勝者である石河さんと武田さんにプロコンの勝利の秘訣を伺ってみた。(写真左から武田さん・石河さん・松田さん)

はじめに

ーーお二人はなぜ高専に入ったのですか?

 石河「小学校5年生のときに、パソコンが楽しいと思ったことがきっかけですね。しかし、母にはなぜかロボットが好きだと勘違いされて、高専を勧められました。また高専は就職率が高いことも、高専に入った理由の一つです。」
武田「今までいた場所とは違うところに行きたかったです。また、高専は入試の時期が早いからというのも理由の一つです。」

ーー高専に入ってよかったですか?

武田「プロコンで優勝したからよかったです(笑)」

プロコン

ーープロコン出場のきっかけってなんですか?

石河「先生に出場を誘われたことがきっかけでした。元からパソコン甲子園には出場していました。」

ーー武田君は競技プログラミングの経験はあったのでしょうか?

武田「石河と同様にパソコン甲子園に出場していました。パソコン甲子園は2人1組でチームを組むため、石河と組んで出場していました。」

ーーパソコン甲子園はいつから出場されていたんですか?

武田「高専1年の時に初めて出場したんですよ。先生が出場すると役に立つとおっしゃっていたので出場しました。」

ーーパソコン甲子園は鈴鹿高専の一学年の中でどのくらいの人数が出場するのですか?

武田「2人1組のチームが3組くらいですかね。」

ーープロコン競技のチーム三人の役割分担について教えてください

石河「武田はサイコロを撮影して、その画像を送る送信側、そして自分はその画像を受け取って解析する受信側、最後に松田はサイコロを並べる担当です(笑)」

takeda ishikawa matsuda

左から武田さん・石河さん・松田さん

ーー今回のプロコンの競技部門において、画像処理で難しいところってなんですか?

石河「手法選びの部分が難しかったです。サイコロの画像のテンプレートマッチングの部分が特にですね。あと、サイコロの並べ方も工夫しました。サイコロは6面あるので1つのサイコロで6通りの情報が表現できるじゃないですか。自分たちのチームは、サイコロを90度傾けることによって9通りの情報を表現できるようにしました。」

ーー他のプロコンのチームってどうだったんですか?

石河「画像処理の部分はいろいろありましたよ。準優勝のチームは3通りの情報だけで圧縮を行っていました。つまり、サイコロの赤白黒の3通りの情報です。最終的には、6通りの情報に落ち着いていたようですが。」

ーープロコンは2日間あると思いますが、競技部門で1日目や2日目にコーディングを頑張ることなどはあるのでしょうか?

石河「自分たちはあんまり頑張りませんでした。でもその期間に変更を加えた部分はテンプレートマッチングの部分ですね。学校では本番と同じ照明などの環境が作れないため、大会当日に調整などを頑張りました。テンプレートとサイコロを撮影した画像の大きさが違うと上手くいかないからです。画像の大きさ調節で苦労しました。」

ーー鈴鹿高専は受信側の情報の判定に誤り訂正を加えているとお聞きしました。詳しくはどうなってるのでしょうか?

武田「単純にn文字目間違いを見て埋めるだけですよ。開発は少しの手間でした。自分で考えてアルゴリズムを構築したためです」
石河「むしろ、難しかったのはサーバへのアップロードはC#のサンプルコードしかなく、僕はC++しか扱えないため、CLIを用いてサーバとのインターフェースを作りました。」

ーー石河君はこのチームのリーダーですよね。リーダーとしてチームをまとめる秘訣ってありますか?

石河「チームの作業を完全に分担する事ですね。」

ーー石河君は今回、画像処理を担当されたそうですが、画像処理は初めての経験だったとか?

石河「チームの中で自分が一番実力という自負があったため、今回の課題で一番難しい画像情報の受信の部分に取り組みました。その過程で画像処理が必要だったのですが、これは初めての経験でした。画像処理として、円検出、四角検出など物体の検出に関する論文は読みましたが、あまり今回の課題に使えそうなものはありませんでした。」

ーー結局はどこかの一部として使えたのですか?

武田「使えませんね。来年の授業では使えそうですが(笑)」
石河「自分でアルゴリズムを考えて実装する事の方が多いです」

ーー競技プログラミングは先輩や有志の方の教えがあると聞いた事があります。実際どうなのですか?

石河「特にないですね。あるとすれば、先生にパソコンを貸してもらい、自分たちで頑張れといわれたことぐらいでしょうか。しかし、先生に質問すると、一を聞くと五ぐらいのアドバイスを頂けるため、非常に助かりました。」

ーー今回の競技プログラミングはどれくらいの期間で作成されたのですか?

石河「あんまり時間をかけてないですね。他の参加者の中には、大会の4日前ぐらいからようやく画像処理を組み出したという高専もありました。それまでは理論を勉強していたそうです。僕らは、今回の課題の中で行うべき範囲をまず調べました。その上で、さまざまな理論を勉強しました。初めから理論を考えるよりもそちらのほうが効率的だと考えたからです。結局、僕らの最終的なプログラムは、動くレベルまでに至ったのが大会の3日前でした。若干焦っていましたが、運良く優勝することができました。」

ーー鈴鹿高専が強かった理由ってなんでしょうか?

武田「サイコロ並べ職人の松田くんの存在ですね(笑)」
石河「一般的に情報というのは、符号化を行うときに圧縮しやすいパターンというのがあるのですが、それをちゃんと見極めてアルゴリズムを作ることで、良いプログラムを作成することができるんですよ。しかし、今回のサイコロを用いた情報には、圧縮を行いやすいパターンというものが存在しないと結論づけたんですよ。ですので、下手に圧縮して、誤り訂正などを加えていくと、結局送信時に間違いが多くなったり、スピードが遅くなるだけだと思ったんですよね。そう考えた結果、無圧縮で勝負を挑むことにしました。それと、実はプロコンには「予行練習でうまくいったチームのアルゴリズムを真似すると勝てる」というジンクスがあるんですよ。だから、他のチームは他チームを分析し真似をするのですが、僕たちのチームの最大の強みは『サイコロ並べの松田』だったため、誰も彼のことを真似することができなかったんですよ。そのためでしょうか、僕たちは優勝することができました(笑)」

ーー人のリソースはどこのチームも真似できませんね。(笑)

最後に

ーー高専生に一言お願いします。

石河「テスト前日の勉強はやめましょう。あと、暗記ばっかりの勉強をしてると理論がわからなくなります。理論でわかってたら、その応用もすぐに思い出せますよね。数学なら公式暗記よりも、その公式の導きだし方が大事です。」
武田「いや、ないです。言うことがないです。やりたいことをやればいいと思います。」

ーー高専生にいうことなしですね(笑) インタビューありがとうございました。

インタビュアー紹介

abe

田口 拓明

石河君・武田君ともに若く才能に溢れていて、これからもぐんぐん成長していくんだろうなと思いました。成長の秘訣は、先生や周りで尊敬している人からの吸収力なのだと思います。先生や周りの人を信頼し、突き進んできたからこそ、プロコン優勝という大挙を成し遂げれたのかもしれませんね。インタビューありがとうございました。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>