baseline
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
"""问题二最优实现:保证接收盘内的最坏后验半径最小化选点(生产实现)。
|
||||
|
||||
复用 ``mcm26b.planner.select_measurement_point``:
|
||||
|
||||
1. 在"保证接收盘" B(mec_center, 1000-ρ) 内环形采样候选点;
|
||||
2. 对每个候选,用"目标边界点 × 读数区间端点(+near 分支)"估计
|
||||
最坏后验最小包围半径,并以移动时间同分决胜;
|
||||
3. 选定后按 1/4 间距加密复核,返回位置、后验半径与理由。
|
||||
|
||||
采样是启发式(不是连续问题全局最优证明),但保证接收是严格的。
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from mcm26b.config import ProblemConfig
|
||||
from mcm26b.planner import safe_disk_radius, select_measurement_point
|
||||
|
||||
from project.common import Method, problem_config
|
||||
from project.q2.region import first_bearing_region
|
||||
|
||||
METHOD = Method(
|
||||
key="optimal",
|
||||
name="保证接收盘内最小最坏后验半径",
|
||||
kind="optimal",
|
||||
note="生产实现 mcm26b.planner.select_measurement_point",
|
||||
)
|
||||
|
||||
|
||||
def candidate(case: dict, config: ProblemConfig | None = None) -> dict:
|
||||
config = config or problem_config()
|
||||
region = first_bearing_region(case, config)
|
||||
station = (case["station"][0], case["station"][1])
|
||||
plan = select_measurement_point(region, station, config)
|
||||
return {
|
||||
"method": METHOD.key,
|
||||
"position": [round(plan.position[0], 4), round(plan.position[1], 4)],
|
||||
"worst_posterior_radius_m": plan.worst_posterior_radius_m,
|
||||
"move_cost_s": plan.move_cost_s,
|
||||
"safe_disk_radius_m": safe_disk_radius(region, config),
|
||||
"initial_radius_m": region.mec()[1],
|
||||
"reason": plan.reason,
|
||||
}
|
||||
Reference in New Issue
Block a user