順位は4位でした。
オーダーの移動(挿入)の焼きなましをしました。他にも交換してみたり試しましたが、スコアが上がらなかったので、高速化だけしました。
高速化は設備ごとの更新で済むようにとかいろいろしましたが500万回ほどしか回りませんでした。
少しでも高速化しようと#pragma GCC optimize ("fast-math")を付けていましたが、間違えてこのオプションをコメントアウトしたものを提出したところ、何故かスコアが上がり300131930624点が出ました。(縁起が悪いので)次からはこのオプションを使わないようにしたところ300132249618点が出たので、時間まで微調整しながら提出し続けました。
焼きなましの温度は153780 -> 0, 102520 -> 0, 51260 -> 0
他と比べなぜ上位なのかよくわかりませんが、たぶん、かなり高温なのと近傍が1種類のみなのが良かったのかなと思います。
ヤマトコンでは色々な近傍を作ると明らかに強くなって、このコンテストではあってもなくてもほぼ変わらない程度だったので取り除きました。
・表彰式懇親会
ヤマトコンの懇親会で端っこで突っ立ってるをやってかなりの精神的ダメージを受けたのですが、今回も行こうと思いました。
中卒でひきこもりが表彰されるのはかなり嬉しく、そして人見知りは最高レベルですが、他のひきこもりと比べそれほど行くこと自体が無理という感じでもないので、こういう機会があれば参加したくなってしまいます。
しかし懇親会の日の朝にニキビが2か所くらいできてて台風の被害すごいだろうし延期にならないかなとか、行きたくないなと少し思っていました。
懇親会が予定通り行われるとツイッターでつぶやかれたのが13時でかなりギリギリでした。品川から乗り換えれば時間に間に合ったかもしれませんが、2キロ程度なら歩きでも30分あればつきそうだから歩こうと前から予定していたため歩いて会場へ向かい、少し遅刻しました。
会場に着くと席はどこでも良いと言われたので一番近いとこに座りましたが、失敗でした。周りに他の参加者が居ませんでした。
・入賞者による解説
あらかじめメールで断っていたのですが、コンテストの感想でも、とか最初言っていたので順番が来たらどうしようって思っていましたが、感想も言わずに何とかすみました。
・表彰式
表彰式っぽいBGMが流れていました。
・懇親会
最初やはりボッチでしたが、前の席の人がかなり気を使ってくれて話しかけてきてくれて助かりました。
ヤマトコンの懇親会と違い椅子にすわれたので、このまま2時間でもまだ何とかなるなとかかんがえていました。(ヤマトコン懇親会は椅子があったけど荷物置き場になっていて誰も座っていなかったので座りづらかった)
chudanuさんやts_さんが話しかけてきてくれて、ここで完全にボッチから抜け出せた様な気がしました。
ただ色々うまく答えられたかよくおぼえていません。
聞かれた内容もあまり覚えていないのですが、
・焼きなまし以外を使うマラソン
自分はビームサーチは1回Pythonで(paiza ロジックサマナー)書いたことある程度でほぼ使ったことが無く、逆にそのおかげでtopcoder MM100でかなり良い成績でした。この問題は盤面の評価が途中では出すことができない感じで、最初はビームサーチが正解だろうけどC++で実装面倒くさそうとなり、一度最後まで乱択で進めそれを巻き戻してまた乱択で最後までを繰り返すをすると、かなり強かったので、これが正解かと思い最後までそれで行きました。
MM98, MM99, MM101, MM104, MM105, MM110
焼きなましはよく使うのですが思い返すとtopcoderMMのうち半分は使ってない気がします。
・第4回Asproconどれくらい取り組んだか、どのように取り組んだか
最初数日間でやったのは、問題を読む、簡単な山登り、焼きなまし、近傍をいくつかの種類を作るを何度も睡眠をはさみながら少しずつしました。
近傍色々試してもスコアが良くならないので高速化するしかないだろうなと思い、どうしたら簡単に高速化できるかなとか考えながら、やはり寝ました。
頭の中で完全に作り終わって高速化を実装したら10位以内に入れました。ここからはあまり考えずに微調整(調整はローカルで120件のテスト)しながらずっと提出し続けてたので。他の人なら2日あれば何とかできそうだなとかは思ったりします。
とにかく最初は期限に余裕があるのと、頭が問題になれてないのと混乱しやすいので、数十分コードをいじり数時間寝るを繰り返してました。期限が迫ると、後半だれてくるのと、あと少ししかないという焦りから何もできなくなり、いつも調整しかしていませんが眠くてもできる作業なのでここからはあまり寝ません。(最終日がヤマトコンの表彰式懇親会と同じだったでそのまま寝ずに向かいました。)
・最近急に入賞しだして強くなった
様な気もしますが、topcoderマラソンのランキングを外国人抜きで持ってくると大体いつもの順位(調子が良い時の)くらいだと思います。あと2年前からほぼ成長していません。ここから強くなるにはやはり短期のアルゴリズム問題に取り組まないとだめな気がします。
第3回も参加していましたが確かtopcoderマラソンとか(延長したtopcoder MM110)とかぶっていて、topcoderはレーティングやtcoポイントランキングがあるのでそっちを優先(新プラットフォームに切り替わって1回目のトラブルでレーティングは付きませんでした)してしまいます。ただ今回の第4回asproconはヤマトコンに続いて入賞出来たらかなりの実績になるんじゃないだろうかとか、ヤマトコン懇親会とかぶっていたり(topcoder MM111の最終日が)したので第4回asproconを優先しました。自分ほど時間があれば両方取り組むこともできるかもしれませんが、たいして強くもないのに、そんなことをしてどっちも良い結果が残せないと必ず後悔するので、どちらかしかしません。(atcoderマラソンならランキング1ページ目, topcoderならレーティングが下がらない程度が目標)
・帰り
ホテル代が出ないので今回は日帰りで、新幹線はどんなに遅れても乗れるだろうなと思っていました。もし梅田につくのが遅く終電を逃してしまうことがあればそこから歩いて甲子園に帰ろうと思っていましたが、懇親会が早めに解散となったので23時半くらいに自宅につくことができましたが、表彰状の写真をアップロードすると疲れで身動きが取れなくなりました。
TCO19 JAPAN REGIONAL EVENTに行きました。
ヤマト運輸プログラミングコンテスト2019に参加しました。
ヤマト運輸プログラミングコンテスト2019の表彰式、懇親会に行きました。
第4回 Asprova プログラミングコンテストに参加しました。表彰式、懇親会に行きました。
コメント
コメントを投稿