chokudaiのブログ

chokudai(高橋直大)のブログです

ICFPC2016ぷち参戦記

国際関数型言語学会(ICFP)の併設コンテスト、ICFPC2016に、Unagi、というチーム名で参加してました。4年連続です。

最終結果はまだ出てませんが、72時間コンテストで、66時間時点での順位表まで公開されているのを見る限り、まず間違いなく優勝してるんじゃないのかなあ、と思ってます。

f:id:chokudai:20160814135255j:plain

メンバー

並べる順番に悩んだのでアルファベット順で。

  • chokudai(ソルバー担当)
  • imos(インフラ系担当)
  • iwi(リーダー。何でも担当)
  • sulume(インフラ系担当)
  • tos(数学・関数型担当)
  • wata(ソルバー担当)

割と反則級のメンバーだと思ってます。過去3年間の戦績は

問題内容

折り紙の完成形(必ずぺちゃんこになっている)が与えられるので、展開図を作成する問題。

与えられるのは以下の2つ

  • 外周、および穴を示す多角形
  • 折り目・境界線が存在する部分の線分

最初24時間は運営から与えられた問題のみでコンテストが行われ、残りの48時間は、1時間に1回各チームが出題することが出来る。(出題によってもポイントが得られる。)

自分のやったこと

多分まとめとかはiwiさんのブログとかでやってくれるので、あくまで自分がやったことだけ。ICFP前にどれくらいネタバレしていいのかよく判らないので割とざっくりと。

  • wataさんの探索に関するアイデア出し(外周の長さが1であることを利用して、外周をヒントとして与える、など)
  • 探索アルゴリズムでカバーしきれない問題の個別AI作成(ショートコーディング要素が必要な問題。複雑な問題の合同・相似形に対する対応・手動ソルバなど)

ってな感じで、割と、メインアルゴリズムというよりは、メインアルゴリズムに横から口を出しながら、メインアルゴリズムで取れない部分をやっつける、回収担当でした。

良い感じに役割分担が出来たのか、1問残して全ての問題を解くことが出来ました。わーい。

ただ、残り1問も、手動ソルバの方をもうちょっとちゃんと作っておけば解けたので、そこは割と悔しい感じ。ICFPCで全完なんてまず出来ないだろうから、もったいなかったなぁ・・・。

 

感想

自分がチーム戦で出るコンテストってICFPCくらいなのだけど、やっぱり楽しかったです。72時間コンテストなので、iwiさんのおうちに全員が泊まり込みで参加なので(途中離脱者もいますが)、普段のコンテストでは味わえない楽しみがあります。

特に今回の問題は完成度も高く、これまでのICFPCで最も楽しく参加できました。いつもの「問題の仕様を調べる」みたいな必要がほぼなく、明快なルールで良かったです。

半端な気持ちで参加できるコンテストじゃないですが、来年はぜひぜひ今年出ていなかった人にも出てもらいたいなと思います!