高専プロコン2012の感想
私は課題部門予選落ち組なので、Ustで自宅から見てました。
うちの学校からも競技部門で参加していたので日記として。
決勝戦は最終的に全チーム人力(あるいは運)で回答するという自体になっていてとても驚きました。
決勝の後にあったインタビューで、
1位:宇部「パソコンのjklキーを押すと大中小の数を数えられるようなプログラムを作って計測した。隠れているところなども考えて中と小には係数を掛けた」
2位:都立産技(荒川)「画像処理のプログラムが使えなくなったので重量比で考えたが、決勝戦ではエラーが出たので、経験を元に数を求めた」
3位:石川「宇部とほぼ一緒で、写真を撮ってタッチペンでぽちぽち押して数えた」
4位:長野「宇部とほぼ一緒で、写真を撮ってマウスでぽちぽち押して数えた」
5位:鹿児島「画像処理で赤の目を調べて個数を求めようとしたが、赤の目自体は手動で数えた」
6位:松江「宇部とほぼ一緒で、写真を撮ってタブレットでぽちぽち押して数えた、それとサイコロへの愛を示した」
と言ったことが明かされました。(間違ってたら教えてください)
4月にプロコンのテーマが発表された時、絶対どこかの高専は野鳥の会戦法で来るぞって言ってる人がいた気がします。
優勝チームのコメントで「私達はこの半年間ひたすらサイコロの山を数える修行をしてきました」
— りひゅーと。(Extended Mix)さん (@refiute) 4月 8, 2012
サイコロを人間が数える1ch
— りひゅーと。(Extended Mix)さん (@refiute) 4月 8, 2012
まさかこれが本当になるとは思いませんでした。
ちなみに、うちの部活では「今回の競技は、如何に早く画像処理では無理だという悟りにたどり着くか、が勝負の鍵かもなー」なんてことを大会の直前に話していました。
さて、多くの学校が画像処理で解を探し出すことに挑んだはずです。
うちの部のチームもそうでした。
ところが、司会の人が連呼していたように、数学的に考えることもできます。
私は、準々決勝の1〜3試合目と決勝戦において、競技時間中に以下のようなサイコロの個数予想をしました。(自己予想、とあるところです)
(画像見えなさそうなのでPDF置きます:ここ)
個数を予想するのに使ったのは、
- 紙・鉛筆
- 電卓
- 総重量
- 第一回戦の結果
- Ustでちらっと映るサイコロの山の雰囲気
だけしかつかっていません。
プログラムはおろか、写真撮影すらなしで上位チームに迫る結果を出しました。
求め方は、
- 総重量が一番近い第一回戦の個数を探す
- 重量誤差の雰囲気から適当に加減して、電卓で質量×個数で検算
至って普通の方法です。
このことから何が言えるかというと、パターンマッチング的手法で十分な結果が出せてしまっている、ということです。
今回は20パターン(A・Oフィールドあったので)という非常に少ないサンプルで探索しましたが、これだけの精度で出せるということはいいことなのか悪いことなのか。
さて、今回の競技部門における問題点は次の2つだと思います。
- サイコロの個数が少ない
- 前提条件と異なる
まず一つ目の個数です。
今回、決勝戦であってもサイコロの合計が高々800個 (per field)しかなかったです。
フィールドに対し3分の観察時間があるので、1秒間に5個数えれば180秒で900個は数えられる計算です。(実際可能かどうかは別ですが、訓練すれば出来るでしょう)
そもそも、10,000個のサイコロを準備しました(ドヤァ 的なことを言っていたのに、その1/10以下しか使わないというのもどうなのでしょうか。
準決勝までの時点で、野鳥の会戦法がある程度の個数以下において十分に有効なことは分かったはずなのに、そこを臨機応変に対応し難易度をあげようとしないところに疑問が残ります。
そもそも、野鳥の会戦法を通用させたくないのであれば、最初から、もしくは準決勝のタイミングでもっと多くのサイコロをフィールドに展開しますよね。
もはやこれは「目で数えろ」と言ってるようにも捉えることが出来る気もします。
※どうでもいいですが、うちの部では2500個のサイコロを計測したりもしました(
二つ目の前提条件のことです。
これは先輩がつぶやいていたことなのですが、会場の照度がぜんぜん違うということです。
以下の公式FAQに、フィールドの様子と明るさに関する情報が公開されていました。
Q27.フィールドの様子がわかる画像の提供はしてもらえますか?
Q86.照明の高さや明るさなどは決定しておりますでしょうか?A86. 会場のテーブル上の平均的な照度は,170ルクスから200ルクス程度です。
しかし、実際には白い床、そしてその反射光を含め200lx以内だとは思えない程の明るさだったといいます。
また、質量の誤差も±0.1g程度ということでしたが、実際には余裕でオーバーしています。
他にも色々あったみたいですが...。
このように、様々な問題点があったように見受けられる今回の競技部門。
class of competition, PROgramming Count Of dice to humanN in 2012(人間にサイコロを数えさせるプログラミング2012年版)、通称プログラミングコンテスト2012 競技部門#procon2012
— びすたーん。さん (@vista_mac) 10月 14, 2012
このようにふざけたTweetをしたりしましたが、"厳格なルールに基づいて行われた"なんてのは半ば嘘じゃないの、と言いたいですね。
少なくとも、この日のために半年間必死に考えてきたことが無になるようなことがあっては悲しいな、なんて思います。
#まぁ部外者が言うなって言われそうですので、ただの愚痴ってことにしてください。
#来年こそは予選通してやる・・・!