#寝る前に
#同じ高度、同じ円軌道上を飛んでいるとき
##追いかけるときは「逆噴射して減速する」
#だそうです。
#なるほど。面白いですね。
#減速して墜落しないときには。
#どのくらい減速するのがよいか。
#減速の話じゃないけど
#んー、時間の再計算がおかしいな。
#軌道の役に立つかもページ
##時間がたつにつれ、予定遷移時間がどんどん延びていく
#予定遷移開始時刻。
#あ、xの選び方が最小になってないのか。
#上のページに3ホーマン軌道というのがある。
#これの方がいいのかな。
#2段階なので誤差もでにくいかも。
#xの選び方を直しても変わらず。
#最初の計算ではt=15930にホーマン軌道に入るようにスケジュールされるけど、
#実際にはt=1360くらいで、t'が一度0になってる。
#今度こそ寝ます。
#誰か3ホーマン
#試してみて。
#t秒後位置計算もよろしく。
#2001解けた。
#角速度が実際には負であることに注意
#別話ですがLiftってどう訳すのがよさげ?
#オレ未だにliftのイメージって具体的に湧いてないので訳しにきーよー
#Generalized Lifting=>一般化されたLifting
#持ち上げって訳すこともあるけど、定着はしてないと思うし。
#やはり持ち上げかー
#スコア448.8218で現在169位。
#モナドの中へLiftするってのはsakaiさんはどういうイメージ?
#おお、順位がついてるのかー
##16個解いてるチームが全部解いたやつね
#fmapと同じで、
#どうも私はHaskellで自由にコードが書けない。
#なんか入出力を付け足したいと思った瞬間に凝固するorz
#f : a -> b に対して、m a の各成分(?) ni
#に対して適用する関数を作るイメージ
#同じだけど、モナドは自由生成を表すので、自由代数で生成元を f で写すような感じのイメージとか。
#写す関数を作るようなイメージ。
#自由生成?
#"モナドは自由生成を表す"これ始めて聞いた表現!
#free construction
#えーと
#m a ------> m b
A A
| |
| |
a ------> b
#オレの場合このAという矢印の頭がLiftに当るんだよねーというイメージしかない
#合ってるのかどーかもあやしい
#文字集合から文字列の集合を作ったり、基底の集合からベクトル空間を作ったりとか、そんなの > 自由生成
##あと、lifting一般のイメージだと、プリミティブな構造に対する操作から、より複雑な構造に対する操作を作るイメージかな。
#2004解けた。スコア633.1137で現在161位。
#もしかしてsakaiさん今日やすみ?
#うん、有給とったので。
#うわ、オレも来年は休み取ってやるかなー
#2003解けた。これでスコア818.2947、147位。
#グイグイ上がってるな
#いよいよ1000点台に載りそうだね
#しかしfree objectのページむずいよ。
#日本語でも難解そうなのに...
#なんか話がしりとりの圏みたいになってきたかな?
#それも似た話かな。
#たまたま電話があったので起きた。また寝たい。
#7問パスおめ。
#Eccentricの戦略は?
#次の段階の話だけど。
#まだ考えてないー
#今、Meet and Greet のバグとり中。
#最近点か最遠点にホーマン遷移かな。
#2003が通ってたのはバグのせいということが発覚。バグを外しても動くようにしなくちゃ。
#Meet and Greet はホーマンの後微調整遷移?
#バグのおかげでパス(W
#微調整してない
#なんか知らんけど、通るようになったw
#あ、角速度の正負を直したせいかな。
#あと1時間くらい寝ます。
#すみませんがしばらくよろしくです。
#Eccentricはまたよろしくね。
#うわってことは[1..100]>>=penさんも有休かー
#nobsunはあらわれないな、大学ってヒマなんじゃねーのー??
#ってあおったけど現れないな
#今のところ2002は微調整が必要。2004は微調整できれば得点アップできそう。
#Phisicsにシミュレーション用関数を追加しました。テストはしてません。
#ってつづり間違えてる。が、darcsでのリネーム方法がわからないので放置。
#EccentricMeetAndGreet.hs 追加。コントローラはまだないけど、シミュレーションさせて様子を見ることはできます。
#復帰
#しばらく家事をいろいろ
#おかえりー
#洗濯機もかけて今から遅い昼食。
#Eccentric 調べながら食べる。
#その後どうですか。
#とくにこれということもなくー
#最大距離どのくらいはなれてるすか。
#パスしないやつ。
#5kmくらい。
#ホーマン軌道での航続距離が長いから、その間に誤差がたまってるのかな。
#あ、2002は他の問題と比べて、約10分の1に縮小して表示してます。
#round で遷移タイミングずれるためではないかと
#遷移後微調整するしかないか。
#t秒後の位置計算を作りましょう。
#開始タイミングについては、途中で再計算しても、ずれてない。
#終了タイミングはわからんけど。
#いや理論上の値をroundするのでしょうがない誤差。
#0.5秒切られると3〜5kmぐらいずれる
#t秒後の位置計算はPhisics.hsに書いたので、見てみて。
#ああ、そういうことか。
#微調整遷移は今やってますか。
#最初の遷移後に
#やってないです。
#目標との高度の誤差は少ないと思っていいんですよね。
#前か後ろに5kmと。
#うん。一番近づくところで 2.3 km くらいまで近づく。
#しばらく調整方法考えます。
#3ホーマンちょっと見てきます。
#ホーマンは半周かかるから微調整には向かないすね。
#たしかに。
#あとはv1減速してt1待ってv2加速するとどうなるかを見積もらないといけないか。
#v1,v2をどう決めるか。
#10分くらい席を外します。
#v減速したときの角速度の増加係数と半径の減少係数を計算しとけばいいのかな。もしかしたら見えてきたかも。
#こっちでは複雑な動作を書きやすくするための複雑な準備をしてます。
#訳してて分らない>モナド関係の章
#わかりやすかったDBの章と比べると非常に苦痛
#ここまで頭が悪かったのか
#と少々ガックリ。
#最近水泳が楽しいのを考えたら、もしかして本来ガテン系だったのかもなーワシ
##見たら
#微調整に1、2周かけてる。
#現実にこれやってるとしたら
#短い時間の調整は無理ってことか。
#1周かけていいならホーマン遷移2回やりますか。
#おおーなるほど!わかりやすい
#「一歩さがって二歩すすむ」みたいな
#あるいは
#「遠くへ飛ばすために目一杯弓矢を引く」みたいな
#ホーマン遷移2回というよりは周期の違う楕円軌道に乗って1周回って位相調整すればいいだけか。
#そうみたいですね
#すごいなー
#うーん。
#煮詰まり中。
#というわけで楕円軌道にのる加速度を調べます
#が
#今から仕事に出かける準備をするので(W
#シャワーを浴びてきます。
#.ssh 以下を持っていけばいいのかな
#シャワーにじゃなくて仕事場に。
#少し書き方をかえた Hohmann2.hs というのを用意してみました。
#が、微妙。
#nobsunのみたいにスレッド化して、STMでやり取りというのがいいのかな。
#燃料のこと考えなければ左右にハンドル切りまくるみたいに1秒ごとにいろんな方向に噴射しまくるという手もあるのかな。900秒の最後の2、3秒ならやってもいいか。
#nobsunのはどこに問題があるのか知らないけど転ぶから進んでないはず。
#sakaiさんに期待
#あれってスレッド切ってるのか
#STMとか解んないatomicallyってのでそんなかほりがプンプンしてたけど
#シミュレーションゲームみたく人間操縦ね
#途中まで自動操縦にまかせて空港が近付いたら自分で着陸させるみたいな
#では場所移動します。
#19時過ぎにまた
#アクセスします。
#今のHohmann.hsとかは(制御の)状態を自分で管理しなくちゃいけなくて、書くのが面倒なので、スレッドを使えば流れが直接かけていいかなと。
#Hohmann2.hsの方は、Taskモナドというのを用意して、そんな感じで書けるようにはなっているんだけど。
#ああ、私はもう結構ばててます……
#また後で来ます。
#移動終わりました。
#darcs も確認。pull できました。
#今度は Windows に SDL の設定をしないといけない。
#SDL no
#SDLの設定めんどいのでやめた。デバッグ情報だけでやろう。
#make できて動くの確認。
#しばらくコード読んでます。
#位相遷移の加速度はわかりました。後で書きます。
#およ
#2002番問題遷移時間が round で 0.44秒切られてますね。
#これじゃ円軌道にも乗り損ねるか。
#加速度変えないといけないかな。
#1000番台問題にはこの影響出なかったのかなあ?
#2002版はたぶん速度もだいぶ速いんじゃないかな
#半径さえ同じだったら速度も同じはずだけど半径がだいぶ違うのだろうか。
#2003番は0.46秒切れ。
#2002番はSDLでも他のやつの10倍くらい半径あったような
#2001番は0.82から0.18秒足し。
#2004番は0.72から0.28秒足し。
#0.4秒ずれるときびしいのだろうな。
#ずれ考慮して加速度変えられるか考えてみる。
#場所かえたらGHCが軽いので助かる。
#そんな重かったのか。ならまじめに最適化してみればよかったな。
#コンパイルしてできたものよりGHC自身が重かった。
#なるほど。そりゃどうしようもない。
#リンク時が特に重くて。
#位相遷移方法はわかったんだけど円軌道に乗ってないと無意味かな。
#MeetAndGreet2.hs を追加。動いてはいるけど、なんか誤差が大きい。
#遷移終了時の加速度変えて円軌道に乗れるか今から計算してみます。
#最後の手段はホーマン遷移前に位相遷移して round の影響が少ないところに移動する。
#実装の方は一段落したので、私も「電卓で行う軌道解析・制御設計」を読んでみよう……
#ではしばらく席を離れてお茶しながら考えてきます。
#半径 r の円軌道の速度は v = sqrt (mu / r) と。1秒後の位置と速度がこの条件を満たすように解けば、一回の加速で円軌道に復帰できる?
#できそうな気がする。2度目の加速を調整して。
#いま2度目の加速の前後の速度を書かせて眺めてる。
#round でなく floor して調整した加速するのかな。
#round のままの方がいいか。ともかく加速度調整して
#今加速分をdv2で渡してるけど加速時に現在半径と現在速度から計算し直す。
#dv2使わずに。
#それはよさそう > dv2使わずに
#case state of 以下で現在の半径はどうやって参照できる?
#r1 使えばいい?
#あ、使えた。
#MeetAndGreet2 の方はもう少し簡単に色々できるよ。
#何故か精度はよくないけど。
#両方やってみます。
#単純に加速度計算し直しただけじゃダメみたい。
#勢いが残ってるからそれも考慮に入れないといけないかな。
#2次方程式かも。
#今から家に移動します。
#23時半くらいまでには帰り着くと思います。
#了解しました。
#2次方程式じゃないか。ともかく重力加速1秒分の考慮がいりそうな気がす。
#では一度チャットから出ます。
#dv2使わずに、を実現するためにMeetAndGreet2.hsを少しいじりやすくしておきました。
#帰り着きました。
#しばらく食事してます。
#おかえりー
#要は1秒後に速度ベクトルが地球と衛星を結ぶベクトルと直行して絶対値がsqrt (mu / r)になればいい。
#ように加速度を選べばよい。
#現在の速度ベクトルは単に今の位置から1秒前の位置を引くだけではずれがある。
#うんうん。
#めんどくさい。(W
#食事終わってからじっくりやろう。
#がーん。
#いじるとしたら MeetAndGreet2.hs の方がいいですか?
#あら、もう食べ終わったの?
#はい。
#MeetAndGreet2.hs の方がモナドで手続き的に書けて楽なんじゃないかとは思う。
#SDLつけなければGHCのリンクも軽い。
#遷移開始予定時間は出してないんですね。
#自分でいれます。
#今は1000秒毎の情報だけですね。
#やばい、後2時間ちょっとしか残り時間ないのか。
#MeetAndGreet2で、t_hのroundをceilingにしてみたら、通った w
#2000番台全部?
#たまたまでいいから通って(W
#2004がダメだった。
#ja
#でもいいや。submit (笑
#じゃ、2004だけroundにする(W
#こういうのもありなんだよね。
#決勝に進んだら、通用しないけどね
#うん。
#これでスコア合計がようやく1000を超えた。
#デバッグ情報は task = do の中で
#print すればよい?
#hohmannTransfer2 の中では trace
#で
#TaskモナドはIOじゃないので、printは使えないです。trace使ってください。
#デバッグ情報を吐く口をちゃんと用意しておくべきだったなぁ。
#では全部traceで
#やります。
#あと、hohmannTransfer2を別にわけたのも失敗だったかも。そこからだとあまり情報が見れないので。
#現在181位ですか。真ん中くらい。
#そのランキングはたぶん今はもう更新されてないです。
#ほんとだ、820点台のときのか。
#今は Weighted Total Score 1002.1329 (8 problems solved)
#順位はそんなに変わってない気がする。
#取りあえず2004番が当面の問題?
#あ2004パスしたのか。
#じゃeccentric?
#200xは一応全部通りました。インチキですけどw
#eccentricいきますか。
#ではまったりと300X に挑みましょう。
#これも、式さえあってれば、細かいことしなくても、半分ぐらいは解けるんじゃないかという気が。
#まず目標衛星の楕円軌道の特定方法を調べることですね。
#楕円が決まれば最遠点に向けてホーマンか。
#位置と速度から計算するんですよね。
#ホーマンでそのまま相手の楕円軌道に乗れます?
#最遠点か最近点でなければきつそう。
#なるほど
#2度目の加速度を前回のホーマンとずらすんでしょう。
#前回=円軌道の問題
#楕円の極座標の式を決定せねば。
#r = l/(1+e*cos(θ))らしいから
#cos(θ+α) だった。
#l,e,αを決定せねば。
#8問パスしたと聞いてガンバレ感がなくなってきた。(w
#あははw
#しかし16問パスする人達はすごいなあ。
#極座標での速度の求め方どうだっけ。
#すごいよね。ちなみに、Operation Clear Skies には燃料基地が逆回転しているやつとかあった。
#ぎゃー
#一応、衝突すれば補給OK?
#それともしばらく並走が必要?
#通過でOKらしい。
#なら、そんなに問題ないのか。
#誤差には十分注意が必要そうだけど。
#そういう意味では、2,3で逆回転の衛星があったりした方がよっぽど問題か。
#しばらく極座標考えます。
#このまま3時になったらごめんなさい。(w
#いえいえ。
#あ、速度って普通の速度なら、MeetAndGreet2.hs では v, v2 に入ってるので、そっからとってくればいいはず。
#たぶん、そういう話ではないのだと思うけど。
#http://en.wikipedia.org/wiki/Orbit_equation に In polar coordinates the orbit equation is: とか書いてある。 #ちょっと退席。
#うーん、位置と速度から一発で楕円軌道が求まらないかと思ったけどきつそう。
#t秒後の位置計算使ってシミュレートして最遠点もとめるぐらいしか重いつかない。
#今からそれやるの大変だからここまでかな。
#なるほど……
#シミュレーション自体は(テストしてないけど)実装済みなので、シミュレーションを使っていけそうだったら、それは書くよ。
#あとは、提出用のソースパッケージを用意せねば……
#とりあえずシミュレートした軌跡と実際の目標衛星の軌跡が一致するか見ては。
#軌跡=例えば10度ごとの位置とか
#そうだね
#と、思ったが、頭が働かない……
#3時までまったりと過ごし最後にカウントダウンするか。
#以下、Chaton で気づいたこと。
#うん。
#・半角で入力していると入力Text枠がスクロールする。
#・途中に全角が入っているとスクロールせずに折り返す。
#あ、でもこれはブラウザの仕様か。
#Chatonの仕様じゃないな。
#しかもVine Linux のWebブラウザの。
#ふたたびコンテストの話。
#日曜のうちにもっとがんばっておくべきでした。
#日曜なにやってたんだろう。
#上にスクロールして見てくる。
#w
#振り返っての結論は、土曜からもっとがんばっておくべき。(w
#darcsはコンテスト前にいれておくべきだった。
#まあ、土曜日は酔いつぶれてたわけですが
#W
#今回は darcs と HSDL のインストールの勉強になりました。
#明日からじっくり sakaiさんのコード見ないと。
#arrow と monad
#Haskell がコードを書きやすいのか書きにくいのか
#今回の経験を振り返らねば。
#ひとのコードをちょこっといじろうとしたときどうなのかとか。
#
お、3時まであと20分。
#あれ、なんで色変わった?
#
#2行以上一気に入力するとなるのだな。
#私も実はarrow真面目に使ったのはこれが初めて。面白いけど、なかなかうまく使うのは難しいなぁ。
#色変えるテスト。
#
失敗。これならどうだ。
#
こっちはダメかな。
#MeetAndGreet2.hs は 2004 をパスしてたと思ったら、また試したらだめだった。しょぼーん。
#あと15分がんばれ(w
#もう無理(w
#最終的には8問パス?
#どっちになるの?
#official なスコアのためにはソースコードも提出しないといかんのだけど
#すまん。ぜんぜん参加できんかった。
#一緒にカウントダウンしよう!(w
#その気力が……
#こんなわしがいうのもなんだけど。ソースだしちゃいませう。
#米国で動かせば2004番もパスするかも(W
#お(w
#CPUかGHCのバグでたまたま動きが変わってくるかも。
#README書いてないけど、アップロードしました。
#やたっー!お疲れさまです。
#おつかれさまです > sakai, [1..100]>>=pen
#あと3分。
#あれ、Submissions History に表示されないけど、いいのかな。
#まあいいや。
#あと2分
#うちのau携帯、自動時刻調整機能あるのかな。
#あと30秒
#10
#じゃなくて、端数があるんだっけか。
#明けましておめでとう!
#お疲れ様でしたー
#今年もよろしくお願い致します(w
#今回も一緒に参加してくれてありがとうございました > [1..100]>>=pen and nobsun
#来年もよろしくお願い致します(w
#来年は休みを確実に確保しよう > わし
#次回は技と環境をもっと研かねば。
#あとアルコールは控えめに。
#次回は数学をもっと何とかしたいなぁ > 私
#それではまたー
#ども。
#乙!
#コンテストの感想戦、後日しましょう。
#では私も抜けます。
#はい、是非に
#おやすみなさい。
#おやすみ
#おやすみなさい