ICFP

2009年06月30日

300x(楕円軌道のやつ)で頑張って目標の衛星付近数百メートルあたりにへばり付き続けているのにScoreが0のまま。
→そこではまって2日目を潰したのが痛い
→エンジン切らないと900秒がカウントされない。シミュレータのバイナリを解析してて気づいた。

というわけで3日目は300xに再挑戦。
→問題ごとにパラメータを手書きするのではなく、同じプログラムで全て解けるように1から書き直す。
→2段階のホーマン遷移。中間軌道の半径をバイナリサーチで
→目標衛星に出会えないと思ったら軌道計算時の角度の向きが逆だったとか
→3001,3002,3004まで解けた。3003はGCが火を噴く。



今大会の本題である400xを触り始めたのは終了3時間前。
→あきらめムード
→とりあえずどういう配置になってるのかは確認した。最終的に月のあたりまで行くのか…燃料取りに戻ったりとか…あああ



問題をよく読んだら、最初の2秒で得られる情報をもとに(VMを動かすまでもなく)簡単かつ高速にシミュレートできることに今さら気づいた。1周回るのを観察してたけどその必要はない(はず)。
→シミュレーションのコードにバグがあって、観察していた版と食い違う
→終了数分前にバグが取れたので、時間短縮でスコアが上がった3001,3002を再アップ。60位台に上がったかも
→観察していた版ではメモリ不足で解けなかった3003も解けるはず…だが間に合わなかった

終了1時間後:
→3003のシミュレーションは燃料不足でアウト。目標衛星を追ってapogeeまで遠出してるし…

あ、ソースコード提出してない…トップ10でなくても関係あるのかな?失格?

ソースは非常に汚いままgithubに載せてます:
http://github.com/naoyat/ICFP-2009/tree/master
set!を乱発してるとかいう以前に処理を関数にまとめるとか無いのかと。

追記:
今みたら100xは最後で盛大に逆噴射してるっぽい…燃料の無駄遣い…



Weighted Total Score 2114.6114 (11 problems solved)

Scenario number Status Score
1001 verified 67.772513
1002 verified 60.976532
1003 verified 64.013141
1004 verified 83.28121

Scenario number Status Score
2001 verified 188.39919
2002 verified 181.83817
2003 verified 187.18098
2004 verified 188.2919

Scenario number Status Score
3001 verified 356.71389
3001 verified 363.72314
3002 verified 320.02271
3002 verified 362.45948
3003 not submitted ---
3004 verified 366.67515

Scenario number Status Score
4001 not submitted ---
4002 not submitted ---
4003 not submitted ---
4004 not submitted ---

----
Submissions History

Remember, only your most recent workingentries count! (scored above).
Solution ID Timestamp Scenario Status Score
8192 2009-06-29 12:57:11 3001 successful 363.72314
8188 2009-06-29 12:56:19 3002 successful 362.45948
7271 2009-06-29 08:40:49 3002 successful 320.02271
7228 2009-06-29 08:25:22 3004 successful 366.67515
3555 2009-06-28 02:15:06 3001 successful 356.71389
1572 2009-06-27 09:46:42 2003 successful 187.18098
1548 2009-06-27 09:32:26 2004 successful 188.2919
1547 2009-06-27 09:31:26 2001 successful 188.39919
1473 2009-06-27 09:08:32 2002 successful 181.83817
1286 2009-06-27 07:38:50 1004 successful 83.28121
1239 2009-06-27 07:16:46 1003 successful 64.013141
1237 2009-06-27 07:16:06 1002 successful 60.976532
1232 2009-06-27 07:14:57 1001 successful 67.772513



ICFP初参加は色々と良い勉強になった。次は誰かとチームを組んで参加してみたい。

(04:03) Φ

2009年06月28日

300x (Excentric Meet and Greet) に取り組み中。
とりあえず、3001で単純に追いかけてたらたまたまScoreが出たのでまず投稿。

ホーマン遷移を2段階にして、目標衛星に近づくまでは出来るが、そこからの追尾がうまくいかない。Scoreが0のまま…

あきらめムード。

(23:46) Φ

2009年06月27日

http://icfpcontest.org/

Gaucheで参戦中…

・問題に書かれた仕様どおりのVMを作る
 → mem[r2]ではなくr2を使ってたりとか
・ビジュアライザをOpenGLで作る
 → Gauche 0.8.14 だと gauche-gl がインストールできず、0.8.13にダウングレードした
・与えられたバイナリを逆アs(ry

1. Hohmann
指定された半径の円軌道に遷移する。
Hohmann transfer orbit (ホーマン遷移軌道?)の実装。



2. Meet and Greet
目標が軌道ではなく、動いている衛星に変わる。
→ 所要時間を算出しておいて、都合のよい時間まで待つ。



- 一瞬だが10位に入り、Leaderboardに表示された

Team Ikomaです。1人チームです。

(21:50) Φ