黄パフォ!!!!うおおお!!!!!!
解説書くぞ~
・・・と思ったんですが,みんな同じことしてたので後半にちょっとだけ書きます
前半で主に頑張ったところを紹介します!
頑張ったところ
環境構築
実はyu_w,3連敗中だったんです
- HTTF本選(大敗)
- AHC017(歴代最低記録)
- 皆解会004(役に立てず)(皆も参加しよう!)
そして連敗に連敗を重ね,悩み悩み抜いた結果
yu_wがたどりついたさきは
自分自身を育ててくれたビジュアライザーへの限りなく大きな恩
自分なりに少しでも返そうと思い立ったのが↓
一日目から環境構築!!!
今までは一日一万回web版ビジュアライザにコピペしてたんですが,ちょっとしたバッチファイルも書くことで音を置き去りにしました.
インタラクティブにもばっちり対応済み!(コードを内包)
これはインタラクティブに対応できずに
8時間虚無をしていたHTTF本選
と比べて大きな成長と言えます.
完璧すぎるスケジュール管理
やはり強い人が指摘するように,我々こそ焼きなまされないといけないんですよね(?)
なるべくアイデア出しと実験を繰り返そうと思って取り組みました↓
- 初日:実験高速化のための環境構築
- 中盤:アイデア出し,実験,考察
- 最終日:パラメーター調整
パラメーター調整は最終日まで封印しました!(逆に敗因かもしれないけど)
そのパラメーター調整でもしっかりバッチファイル作って半自動化!!
エクセルに手で打ち込むおじさんスタイルからは卒業しました!!!!!
以上,今回成長した点でした!!
以下,やったこと書きます.
やったこと解説
ヒープでクラスカル法
まずはクラスカル法の要領でどこを繋ぐか決めます(水と水以外)
ただし繋ぐ前に,硬さをチェックして,ダメなら後回しにします
具体的には辺の重み,上限値に適当な倍率をかけてヒープに戻しています.←(適当すぎるのが敗因?)
グリッドで管理
家と水源を含むグリッドを作って,隙間を11マス~で補完しています.(斜め無し)
seed=0のマップはグリッド幅9ぐらいがスコア高いのですが,seed=0~99の相対評価をローカルで模倣すると11に落ち着きました(上位陣は12っぽい)
固さチェックはこのグリッド点上で行います.
迂回について
これは反省点でもあるんですが,安く迂回するコードを実装できず,最短ルートをDFSで探索してます
その代わりに既に繋がったグリッド点に
新しく家が建つという,きしょい方法
で代用しています.
これを・・・
こう!!!
殴り方
初回は見積もり分の90%で一発殴って,その後細かい調整をします.
細かい調整パワーは√(2*C*残り固さ予想)
この見積もりを「多分隣と同じぐらいだろう法」でやると効率はもちろん,初回のパワーも80%ぐらいまで下げないと,「もう柔らかいのにフルパワーで殴り続ける現象」が発生したりするのですが
でも最小二乗法による平面近似で傾きを使えばかなり正確に見積もれますの図↓
見積もりに使用したデータの範囲は,殴る場所からx,y共に±2までです.
Q.逆行列なんか計算したら値が発散したりしませんか?
A,p=min(5000,p)
ヨシ!!!!!!!
おわり
こうやって書くと無駄を多く感じるので
次は本番中に軌道修正したいですね・・・
ということで次はトヨタ業務コンで会いましょう!BYE