WA_TLE’s diary

競プロたのしい!

SuperCon2017

優勝した!楽しかった!

 

問題説明

音楽の生データが与えられる。

0と1に圧縮する。

なんか平均をとる。

元のデータも平均をとる。

誤差が小さいと勝ち!

 

詳しくはSuperConのホームページに載ってます。

  

1日目

・問題を見た。大体の方針(ベクトル化焼きなまし法)を立てた。

・実装をした。貪欲にやる部分は相方にまかせた。

・最大値を決定するために3分探索を組んだ。

・それを焼きなますコードを書いた。

gnuplotで方針あってそうなのを確認した。(gnuplotとは、みんなに配布される、グラフをプロットするアプリで、excelの折れ線グラフを早く書くみたいなものだと思ってください。)

・時間は20時までと決まっていたが、周りは20時になる前に帰っていた。

・僕たちが20時に帰って、夕食をとるためにホテル近くの空港に向かったところ、大体のレストランが閉まっていた。しまった。結局そばと丼を食べた 

 

2日目

・1日目にやったことのベクトル化をしようとした。

・そしたら内側の小さな11回のループの方がベクトル化されてしまって早くならなかった。

・仕方がないので†人力ループ展開†をした。

・これは初日だったかもしれませんが、supercon主催の先生が僕の本気のと同じぐらい良い値を「何もしないで」出せると全体に対する掲示板に書いていて、非常にビビった。(結局先生は1桁間違えていたのだが。

・でも、gnuplotでプロットしても、10倍もいい値を出せるとはとても思えないので、大いに困惑した。

・このあたりからいろんなパラメータの調整が始まった。

 

3日目

・焼きなましのバグを発見、修正した。誤差が2/3ぐらいによくなった。

・パラメータの調整をエクセル使ってひたすらやった。

・いろんな謎ヒューリスティックスを入れたらよくなった。

 

4日目

焼きなまし法の乱数を思ったよりも大きくしたらすごく(10%ぐらい)値が良くなった。

・競技が終了した。

・他チームといろいろ話した。(これは0bitの情報です)

 

最終日

・なんか優勝した。びっくりした。

 

おわり