デンターの雑記帳

アニメ、電子工作、ソフトウェアなど

プログラミングコンテスト競技部門の感想

二千字くらい書いて間違って消して萎えた…
あとであげようと思って忘れてました。

今回、高専プログラミングコンテストに競技部門として参加したのですが様々出来事があったので記録も兼ねて報告をしておきたいと思います。

結果は混沌としていました。

今回のプロコンは優勝、準優勝がプログラムを使わなかったという事態になってしまい、競技として成り立っていたか疑問に残る試合となりました。その訳などがいくつかあるので今回の良く無いところをいくつかまとめておこうと思います。

1.ルール上解答プログラムのアルゴリズム化が難しかった点
これは、ルールがてきt…、明確でなかったために実際にアルゴリズムを組む際、このような場合どうなるかといった条件が非常に多くなってしまい、アルゴリズムで完全解答を求めるのは難しかった印象があります(個人差あります)。
2.材質にMDFを選択してしまった点
今回のプロコンでは問題であるパズルが現物で与えられそれを各自スキャン等を施しプログラムで解答を導きパズルを完成させるというのが大まかな流れだったのです。が、大会当日。MDFが環境により膨張や変形する可能性が指摘され、会場でどよめきがおきました。これは素直にプラスチック用いたりデジタルデータで提供する等で良かったのではと思います。
3.パズルが現物で与えられた点
上にも述べたように問題であるパズルは現物で与えられるました。これにより、
・ピースをデジタル化させるために画像解析等のデジタルデータ化処理を施す必要が生まれたこと。このため、私たちは制限時間の半分くらいはスキャンに時間を割くという不安が溜まりました。
・デジタル化する際、誤差が生まれてしまうこと。これは結構重要な課題で、例えばピースの角を求めようとした際。基本的には角の点に交わる2つの辺の傾きを求め、その角を得る手順をとります。しかし辺が短いと傾きを求めるために必要なサンプル数(辺長)が足りない為、精度の悪い傾きを検出してしまいます。結果、辺が短いほど角度の誤差が大きくなりがちです。これは、角度に1度単位で傾きをつけている等、せめてその程度の条件があれば多少は改善できたのですが、何故かそういうのはありませんでした。
・人力に有利なルールだった事。これは大変不満でした。今回の順位づけは枠内にはめたピース多い=上位というルールでした。機転の利くひとはもう分かったと思いますが、これは大きいピースを1枚棄てて残りのピースを全てなんとか人力で埋めれば完全解答のチームの次に立てるのです。 この事から完全解答できなかった場合に人力チームには圧倒的不利になることが容易に想像できるでしょう。
4.ルール設定が甘かった点
・角度に制限を求めなかった事。これは実際に試合中に遭遇して混乱しました。ルールでは角度の最小最大制限がなく、私はほとんど直線の角(170度くらい?)があり認識できませんでした。基本的に鈍角を認識するには長い線(多いサンプル数)が必要なのですがほぼ直線となるともう無理です。


とここまで書いてあって残りが見つかりません
つーことで中途半端ですが(備忘録だし)とりあえずこれをアップしておきます。