合并完成

This commit is contained in:
2026-09-10 21:37:28 +08:00
parent c57865edf5
commit 21e8a8bf52
14 changed files with 0 additions and 152 deletions
-152
View File
@@ -1,152 +0,0 @@
下面把现有《B题建模分析与实施计划》拆成可执行任务,并逐项检查设计思路。总体结论:**主线设计是对的,四问串联、保守几何、覆盖证明、协议幂等这些方向都合理;但有几个关键点需要补强,尤其是问题2候选区域非空性、定向源朝向不确定性、现实20分钟窗口下的请求数控制,以及正式测试时间安排。**
---
## 一、总体判断
现有方案的最大优点是:
1. **四问没有割裂**:问题1的定位区域和包围圆服务于问题2选点,问题3的覆盖发现与清除框架延伸到问题4。
2. **坚持保守性**:用有界误差、半平面交、最小包围圆、49点覆盖证明,避免“看起来能清”但实际漏源。
3. **协议与状态意识强**:强调 `accepted=false` 不更新状态、重试复用 `request_id`、`/clear` 不切换频道、虚拟时间公式。
4. **停止条件严格**:没有把“发现10个源”或“连续无信号”当成功。
主要风险:
- **问题2的候选区域 $\mathcal{Q}$ 可能为空**,需要补非空判断和退化策略。
- **定向源第4问中 `no_signal` 不能直接删除空间候选点**,现有基线保守但效率低,需明确后备清除的规模和请求预算。
- **现实20分钟窗口**下,49点×20频道最多980次检测,可能请求数过大;虚拟时间不是瓶颈,网络延迟和程序运行时间才是。
- **正式测试机会少**,9月13日截止,必须尽早演练并保留正式机会。
---
## 二、任务拆分:可执行清单
建议按下面 P0–P7 拆分,每阶段都有明确交付和验收。
| 阶段 | 任务 | 交付物 | 验收标准 | 优先级 |
|---|---|---|---|---|
| P0 规则固定 | 核对题目、附件1/2、协议、计时、日志要求 | 规则表、状态机、字段表 | 计时示例能逐步得到附件给定值;`/clear` 不切换频道;`accepted=false` 不更新 | 最高 |
| P1 协议基线 | 实现 `/enter`、`/detect`、`/clear`、`/exit`;串行、幂等重试、超时 | 可运行客户端、自建回放测试 | 失败重试不污染状态;虚拟时间与公式一致;能主动退出 | 最高 |
| P2 几何内核 | 角域半平面表示、半平面交、凸多边形、直径、最小包围圆 | `geometry` 模块、测试用例 | 处理 $0^\circ/360^\circ$ 跨界、空集/单点/线段/无界;等边三角形反例通过 | 最高 |
| P3 问题2选点 | 构造 $K_1$,计算候选区域 $\mathcal{Q}$,采样评估后验包围圆 | 第二检测点策略、候选区域算法 | 保证收到信号;$\mathcal{Q}$ 为空时有退化方案;`near` 分支处理 | 高 |
| P4 问题3全向闭环 | 49点覆盖、逐频道覆盖记录、发现—定位—清除—停止 | 全向演练版本、统计脚本 | 10源和16源都能正确退出;边界朝外不漏;停止条件正确 | 最高 |
| P5 问题4定向扩展 | 定向源覆盖证明、失去信号处理、20m圆盘后备清除 | 定向演练版本 | 边界朝外定向源能发现;失去信号后能清除;不误删真源 | 高 |
| P6 加速与消融 | 共享检测、自适应覆盖、目标排序、提前清除 | 消融实验记录 | 全清不退化;虚拟时间/请求数有改善证据 | 中 |
| P7 正式与论文 | 演练、正式各3次、日志原名、表1、论文 | 6次正式记录、原始日志 | 案例编码、程序版本、统计一致;日志上传成功 | 最高 |
时间紧时,**P6 可删减,P0–P5 必须保留**。
---
## 三、设计思路逐项检查
| 设计点 | 判断 | 需要补强/注意 |
|---|---|---|
| 四问统一框架 | 合理 | 问题1和2的几何结果要直接复用到3、4,避免重复建模 |
| 有界误差 $\pm 1^\circ$、示向度两位小数 | 正确 | 实现可加 $\pm 1.005^\circ$ 保守裕量,但不能写成题面规定 |
| 同地点误差固定 | 正确 | 不能原地重复测量取平均 |
| 角域半平面交 | 正确 | 必须处理 $0^\circ/360^\circ$ 跨界;区分空集、单点、线段、有限多边形、无界 |
| 直径枚举 | 正确 | 小规模枚举顶点对即可;无界区域不能截断后声称直径 |
| 以直径为直径的圆覆盖区域 | **不能保证** | 等边三角形反例正确;保证清除要用最小包围圆 $\rho(K)\le 20$ |
| 问题2候选区域 $\mathcal{Q}$ | 方向正确 | $K_1$ 应加 $\Omega$ 和 $B(s_1,1500)$ 约束;$\mathcal{Q}$ 可能为空,需退化策略 |
| 外包圆候选 $B(c,1000-r)$ | 正确 | 仅当 $r<1000$ 时非空;若 $r$ 接近 1000,区域很小 |
| “候选点距第一次检测点不超过1000米” | 错误表述 | 计划已指出,正确是“到 $K_1$ 中任意可能位置距离不超过 1000 米” |
| 49点覆盖 | 证明成立 | 需实现网格边/顶点规则;全向和定向都适用;全 no_signal 可证明该频道不存在 |
| 49点扫描规模 | 估算合理 | 虚拟时间约3.665小时,但现实20分钟受请求延迟约束 |
| 定向源 `no_signal` | 不能直接删除空间候选点 | 基线可只记录覆盖,不删点;加速版再维护朝向可行集合 |
| 定向源后备清除 | 思路可靠 | 候选集合有界后,用边长 20 米小方格中心,中心到格内点的距离满足 $d\le 10\sqrt{2}<20$ 米,逐点 `/clear` |
| 停止条件 | 严格正确 | 清除16个不同频道,或每频道清除成功/完整覆盖证明不存在 |
| `/clear` 不切换频道 | 正确 | 清除后当前测向频道不变,影响下一次切换耗时 |
| 协议幂等 | 正确 | 重试同 `request_id` 和完全相同内容;`accepted=false` 不更新状态 |
| 现实预算 | 关键风险 | 用 `remaining_real_duration_s` 管理;预留退出和故障恢复;日志不超过 2 MB |
| 正式测试 | 时间紧 | 问题3和4各3次;建议9月13日15:30前完成,17:30后不能启动新测试 |
---
## 四、重点补强建议
### 1. 问题2:候选区域必须明确非空处理
建议把第一次测向后的候选集合写清楚:
$$
K_1=\Omega\cap W(s_1,\theta_1\pm\delta)\cap B(s_1,1500)
$$
其中 $W$ 是角域,$\delta$ 取 $1.005^\circ$ 保守裕量。
然后:
$$
\mathcal{Q}=\left\{q:\max_{g\in K_1}\lVert q-g\rVert\le 1000\right\}
$$
若 $\mathcal{Q}\neq\varnothing$,在其中采样选点,评估最坏后验包围圆半径和移动成本。
若 $\mathcal{Q}=\varnothing$,则退化为:
$$
q^*=\arg\min_q\max_{g\in K_1}\lVert q-g\rVert
$$
即选一个使最坏接收距离最小的点,同时结合交会角筛选。
若 $K_1$ 的外包圆为 $B(c,r)$ 且 $r<1000$,则 $B(c,1000-r)$ 是更简单的充分候选区域。
### 2. 问题4:定向源不要过早依赖 `no_signal` 删点
第4问中,`no_signal` 只说明“当前位置、接收半径、朝向”联合假设下不可见,不能单独排除位置。
基线策略建议:
- 用49点覆盖保证发现;
- 发现后主动测向缩小候选;
- 若失去信号,不再强行靠 `direction` 追踪,而是对当前有界候选集合做20m圆盘覆盖,逐点 `/clear`;
- 若时间允许,再维护朝向可行集合,减少无效检测。
### 3. 现实20分钟:请求数比虚拟时间更关键
49点×20频道最多980次检测,若每次网络延迟0.5–1秒,现实时间可能超过8–16分钟。
建议:
- 已清除频道不再检测;
- 已发现待定位频道可暂停覆盖扫描;
- 共享检测位置:到一个点后顺便测多个未知频道;
- 自适应覆盖:根据 no_signal 覆盖记录跳点,但必须保持证明完整;
- 正式测试前实测接口延迟、日志大小、总请求数。
### 4. 问题1:直径圆覆盖判断可给更明确算法
对凸多边形 $P$:
- 先求直径 $D=\max_{i,j}\lVert v_i-v_j\rVert$;
- 枚举所有顶点对作为候选直径,检查其余顶点是否都在以该对为直径的圆内;
- 若存在一个直径对使所有顶点在圆内,则覆盖;否则不覆盖;
- 但保证清除时不要用直径圆,要用最小包围圆 $\rho(K)\le 20$。
---
## 五、建议的最小可行路线
如果时间不足,按这个顺序做:
1. **P0+P1**:协议、计时、状态更新、幂等重试。
2. **P2**:角域交、直径、最小包围圆。
3. **P3**:问题2候选区域和选点。
4. **P4**:问题3全向闭环,49点覆盖,发现—定位—清除—停止。
5. **P5**:问题4定向扩展,后备清除。
6. **P7**:演练后尽早正式测试。
可删减:P6中的复杂调度、朝向联合维护、学习型策略。
不可删减:覆盖证明、停止条件、协议幂等、日志、正式测试。
---
## 六、结论
现有设计思路**整体可行且偏保守**,适合竞赛中“先保证全清,再优化时间”的目标。
最需要立即补强的是:
1. 问题2中 $K_1$ 和 $\mathcal{Q}$ 的严格定义及空集处理;
2. 问题4中定向源朝向不确定性和 `no_signal` 的正确使用;
3. 现实20分钟窗口下的请求数控制;
4. 正式测试时间安排,务必尽早演练并保留正式机会。
下一步最有价值的工作仍然是:**协议计时基线 + 几何内核 + 全向闭环**。完成这条链路后,再用演练数据决定是否加入加速策略。
Binary file not shown.