マラソンマッチ6/9記載ミス修正。hogeover30さんありがとうございます。マラソン初参加の前回(MM1)で53位/171人だった。今回は一気に上位2割を目標にしてみる。前回の反省点は次のとおり。問題を把握し、手元で考えてから組むWeb等を参考にしすぎない。アルゴリズムは自分で考え、しっかり理解したものを使うローカルのバッチ環境は早めに構築するビジュアライザも早めに作る。デバグ・調査しやすいように定数組み合わせがありそうなら、できればトライするバッチを作る。手でやらない問題の概略グリッドの中に基地がいくつかある。コストがきまったいくつかのタイプがある塔は、攻撃範囲にいる虫を攻撃する。今回はそうでもないが、こういう見落としは致命的。全部で2000ターン1ターンごと、塔を作ることができる(いくつでも)塔は、基地および道には作れない何回か、虫が一気に生まれることがある。虫のHPは、ターン500、1000、1500で倍になる基地のHP合計と、資金の合計がスコア最終スコアは相対評価まず最初に前回の反省を踏まえてローカルのバッチ環境(クリック1つで複数のテストを流し、CSVで結果を吐く)の構築、および独自ビジュアライザの作成を行った。ビジュアライザは、デバッグしやすいように、実行Log(メソッドへの引数が保存されている)を読み込んで、実際にメソッドを実行するようにした。グリッドをクリックすることで虫や塔などの情報を表示するようにし、また、前・次ステップへの遷移機能も付けた。ここまでで4日も使ったのは失敗だったろうか。残りの10日で実装した内容はこんな感じ。シミュレーションやモンテカルロは時間が厳しそうなので、貪欲にした。はじめに全虫発生ポイントから全基地までの最短経路リストを作る(パターンが多すぎるときは最短2つの基地までにしておく)そして、それぞれの塔パターンに、支配下にある経路、攻撃力、コストをもとにスコアを付ける各ターンごと、虫が盤上に居たら次のルーチンを回す1、今の塔ですべて殺せそうなら何もしない2、殺せなかった虫が通りそうな経路(最寄の塔までランダム)を支配下にもつ塔を選ぶ3、そこから、購入できるもので最もスコアが高いものを建築する4、まだ生きてる虫がいたら2へ暫定順位で61位/171人だった。ソースコードhttps://bitbucket.org/yambe2002/tco-2015-marathon-round-2反省点パラメタ調整にExampleケースを使ってしまった。今回の場合、せめて30ケースくらいは回すべきだった。上位に比べると、明らかに調整がレアケース(シード10)に引っ張られているテスタのコードをちゃんと読むべきだった。序盤、虫の経路について勘違いをしていて時間をロスしたパラメタ調整はやはり自動化したい問題をちゃんと読む。虫を殺した時に入るMoneyに誤りがあった次はRound3。今度こそ2割くらいに入りたい。月別アーカイブはてなブログをはじめよう!yambe2002さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。