Compare commits

...
2 Commits
Author SHA1 Message Date
sloray 8c18a1f499 Merge branch 'gpt' of git.simba-robotics.com:HelixCopex/mcm-26-b into gpt 2026-09-11 01:26:35 +08:00
sloray dbf4feec4e 编译错误修复 2026-09-10 23:44:13 +08:00
5 changed files with 995 additions and 104 deletions
+185
View File
@@ -0,0 +1,185 @@
# 问题一:有界测向误差下定位区域的直径与圆覆盖
## 摘要
针对同一干扰源在多个检测点处的带误差方位观测,建立前向角域交集模型,将定位区域表示为二维线性不等式组的可行域。首先推导角域的半平面表达,给出兼顾空集、点、线段和无界区域的几何构造算法;随后证明,有界定位区域的直径必由一对顶点取得,且判断是否存在直径等于区域直径的覆盖圆,只需检验任意一组最远顶点的中点。通过符合题设测向条件的等边三角形反例,说明直径圆一般不能覆盖定位区域。进一步以最小包围圆连接定位精度和后续清除条件,并给出算法复杂度、数值处理原则及既有演练观测的复算结果。全部结论以有界误差模型为前提,不引入误差独立、正态或均匀分布假设。
**关键词:** 交会定位;有界误差;半平面交;凸多边形直径;最小包围圆。
## 1. 问题界定与思路来源
题目要求由若干检测点坐标及同一干扰源的示向度,求交会定位多边形的直径,并判断以该直径为直径的圆能否覆盖定位区域。题面规定测向误差在 $[-1^\circ,1^\circ]$ 内,同一地点重复测量的误差不变;示向度从正东沿逆时针方向计量。[题面第1页、附录2第(1)、(3)项](C:/Users/HelixCopex/code/MATH/issue/B题.pdf)
由此得到三步建模思路。第一,单次观测不能确定一条精确射线,却可以确定一个包含真实方向的角域,因此采用集合相交而非直线最小二乘。第二,角域可以写成半平面交,问题随之转化为凸几何问题。第三,“两点最远距离”和“覆盖全部位置所需半径”是不同的优化量,应分别计算直径和最小包围圆。
半平面、凸组合和凸集交运算属于标准凸分析工具,其背景见 Boyd 与 Vandenberghe 的《Convex Optimization》第2章;本文针对测向模型给出独立推导,不将一般理论本身视为新的研究贡献。[文献2](https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf)
本文严格区分两个集合:问题一的 $P$ 仅表示测向角域之交;第二问及在线搜索中的 $K$ 可进一步结合源位置圆域和接收距离先验。向 $P$ 加入圆盘后,边界可能出现圆弧,不能继续把它当成原问题中的纯多边形。
## 2. 符号及基本假设
| 符号 | 含义 |
| --- | --- |
| $s_i=(s_{ix},s_{iy})$ | 第 $i$ 个检测点,坐标单位为米 |
| $\theta_i$ | 第 $i$ 次有效示向度 |
| $\delta_i$ | 误差半角,题设取 $1^\circ$ |
| $g=(x,y)$ | 未知干扰源位置 |
| $W_i$ | 第 $i$ 次测向对应的闭前向角域 |
| $P$ | 所有角域的交集 |
| $V=\{v_1,\ldots,v_m\}$ | 非空有界 $P$ 的顶点集 |
| $D(P)$ | 区域内任意两点距离的上确界 |
| $B(c,r)$ | 中心为 $c$、半径为 $r$ 的闭圆盘 |
| $\rho(P)$ | 覆盖 $P$ 的最小圆盘半径 |
假设各次有效示向度对应同一频道的同一个静止源。仅把 `direction` 观测代入角域模型,不能给 `near` 或 `no_signal` 人为赋予角度。理论推导允许 $0\le\delta_i<90^\circ$,用于讨论退化情况,题目主模型始终采用 $\delta_i=1^\circ$。
程序可额外计入两位小数舍入对应的 $0.005^\circ$ 裕量,但必须显式声明。题设的 $1^\circ$ 误差界与实现中的浮点容差是两个概念,均不能在结果解释时省略。
## 3. 由角域推导半平面约束
定义方向向量 $u(\alpha)=(\cos\alpha,\sin\alpha)$,二维叉积为 $[a,b]=a_xb_y-a_yb_x$。三角函数计算前将角度换成弧度。
令 $u_i^-=u(\theta_i-\delta_i)$、$u_i^+=u(\theta_i+\delta_i)$。当 $0<\delta_i<90^\circ$ 时,真实位置位于两条边界射线之间,等价于 $[u_i^-,g-s_i]\ge0$ 和 $[u_i^+,g-s_i]\le0$。第一条要求 $g-s_i$ 在下边界的左侧,第二条要求其在上边界的右侧。
将第一条展开,得到 $\sin(\theta_i-\delta_i)x-\cos(\theta_i-\delta_i)y\le\sin(\theta_i-\delta_i)s_{ix}-\cos(\theta_i-\delta_i)s_{iy}$。
将第二条展开,得到 $-\sin(\theta_i+\delta_i)x+\cos(\theta_i+\delta_i)y\le-\sin(\theta_i+\delta_i)s_{ix}+\cos(\theta_i+\delta_i)s_{iy}$。
同时保留前向约束 $u(\theta_i)\cdot(g-s_i)\ge0$。该约束在正半角情形下冗余,但当 $\delta_i=0$ 时,前两条只限定一条直线,加入它才得到正确的射线。角域顶点本身也包含在闭集合内,这是保守几何处理,并不表示该点仍能获得示向度。
因此,$P=\bigcap_{i=1}^{n}W_i=\{g:Ag\le b\}$。采用向量不等式后,$359^\circ$ 与 $0^\circ$ 跨界无需分段比较角度。每个 $W_i$ 是闭凸集,故 $P$ 也是闭凸集;它可能为空、为单点、为线段、为有界凸多边形,也可能无界。
## 4. 定位区域的构造与分类
### 4.1 边界交点与可行性
把约束统一写成 $a_jx+b_jy\le c_j$。两条边界的行列式为 $\Delta_{jk}=a_jb_k-a_kb_j$。当 $\Delta_{jk}\ne0$ 时,交点坐标为 $x=(c_jb_k-c_kb_j)/\Delta_{jk}$、$y=(a_jc_k-a_kc_j)/\Delta_{jk}$。保留满足全部约束的交点,再去重并构造凸包。
**命题1:** 至少有一次观测时,非空的角域交集一定存在极点,因此可通过可行边界交点枚举判空。
**证明:** 取第一个角域的轴向量 $u_1$,其中任意 $g$ 满足 $u_1\cdot(g-s_1)\ge\cos\delta_1\,\lVert g-s_1\rVert$,且 $\cos\delta_1>0$。在非空 $P$ 上最小化线性函数 $u_1\cdot(g-s_1)$;以任一可行点的函数值截取下水平集,得到非空紧集,故最小值能够取得。最小化点集位于一条支撑直线上,且有界,所以为点或线段。取该点或线段端点即得到 $P$ 的极点。二维线性约束的极点至少有两条法向量线性无关的有效边界,否则沿所有有效边界的公共切向可作双向小扰动,与极点定义矛盾。因此极点包含在上述交点枚举中。证毕。
无观测时,$P=\mathbb R^2$,应直接判为无界,不能用“没有交点”判断为空集。
### 4.2 无界性判定
对非空 $P$ 定义衰退锥 $\mathcal R=\{d:Ad\le0\}$。若存在 $d\ne0$,则任意 $g_0\in P$ 与 $t\ge0$ 都满足 $g_0+td\in P$,所以 $P$ 无界。
反之,若 $P$ 无界,可取 $g_k\in P$ 使 $\lVert g_k-g_0\rVert\to\infty$。单位向量 $(g_k-g_0)/\lVert g_k-g_0\rVert$ 存在收敛子列,极限 $d$ 满足 $\lVert d\rVert=1$。将 $Ag_k\le b$ 减去 $Ag_0$,再除以距离并取极限,得到 $Ad\le0$。因此 $P$ 有界当且仅当 $\mathcal R=\{0\}$。
本模型的衰退锥被一个小于 $180^\circ$ 的闭角域约束,若包含非零向量,必含一条极射线,该射线平行于某条有效约束边界。故只需检查每个法向量 $(a_j,b_j)$ 的两个切向方向 $(b_j,-a_j)$、$(-b_j,a_j)$ 是否满足所有齐次不等式。
### 4.3 分类约定
可行交点为空时返回空集;存在非零衰退方向时返回无界。否则求可行交点的凸包,按顶点数和仿射维数区分单点、线段和二维多边形。空集的直径在本文约定为未定义;无界集合的直径为 $+\infty$。程序使用空值及单独的无穷标志表示二者,避免写入非标准 JSON 数值。
显示窗口只用于绘图裁剪。任意大矩形都不能取代衰退锥判定,更不能把截断图形的直径称为原无界区域的直径。
## 5. 直径的顶点定理
**定理1:** 若 $P=\operatorname{conv}(V)$ 非空且有界,则 $D(P)=\max_{i,j}\lVert v_i-v_j\rVert$。
**证明:** 任取 $x,y\in P$,可写成 $x=\sum_i\lambda_i v_i$、$y=\sum_j\mu_jv_j$,其中权重非负且分别求和为1。于是 $x-y=\sum_{i,j}\lambda_i\mu_j(v_i-v_j)$。由三角不等式,$\lVert x-y\rVert\le\sum_{i,j}\lambda_i\mu_j\lVert v_i-v_j\rVert\le\max_{i,j}\lVert v_i-v_j\rVert$。最远顶点对又属于 $P$,上界可以达到,结论成立。证毕。
因此,小规模问题中直接枚举所有顶点对即可,计算复杂度为 $O(m^2)$。单点的直径为0,线段的直径为端点距离。这里的直接枚举不是近似算法;其缺点仅在于大规模时计算量较高。
## 6. 直径圆覆盖的充要条件
**定理2:** 取任意一组最远顶点 $a,b$,令 $D=\lVert a-b\rVert$、$o=(a+b)/2$。存在直径为 $D$ 的覆盖圆,当且仅当所有顶点均满足 $\lVert v_i-o\rVert\le D/2$。
**证明:** 若半径为 $D/2$、中心为 $z$ 的圆同时包含 $a,b$,则 $D\le\lVert a-z\rVert+\lVert z-b\rVert\le D$。两个不等式必须同时取等号,所以 $z$ 在两点连线上,且到两点距离相等,只能是中点 $o$。当 $D=0$ 时结论直接成立。另一方面,圆盘是凸集,包含全部顶点等价于包含它们的凸包。因此只需在这个唯一可能的圆心处检查全部顶点。证毕。
该定理不仅回答“以某条直径线段为直径的圆是否覆盖”,也回答“能否移动一个同样大小的圆使其覆盖”。若检查失败,移动圆心或更换最远顶点对均不能解决。
定义最大超出量 $E=\max_i\lVert v_i-o\rVert-D/2$。在精确算术下,$E=0$ 表示覆盖成立,$E>0$ 表示失败;不会出现严格负值,因为最远点对就在圆周上。取达到最大值的顶点,即得到一份可以独立复核的覆盖失败证据。
## 7. 符合测向条件的反例
取误差半角均为 $1^\circ$,三个检测点及读数如下。
| 检测点 | 坐标(米) | 示向度 |
| --- | --- | --- |
| $s_1$ | $(-1000,0)$ | $1^\circ$ |
| $s_2$ | $(540,-500\sqrt3)$ | $121^\circ$ |
| $s_3$ | $(520,520\sqrt3)$ | $241^\circ$ |
每个角域的下边界方向分别为 $0^\circ,120^\circ,240^\circ$。对应的三个左半平面是 $y\ge0$、$\sqrt3x+y\le40\sqrt3$、$y\le\sqrt3x$,交集为顶点 $A=(0,0)$、$B=(40,0)$、$C=(20,20\sqrt3)$ 的等边三角形。
还需验证每个角域的另一条边不会切去这个三角形。以 $s_1$ 为例,到三个顶点的方向分别为 $0^\circ,0^\circ,\arctan(20\sqrt3/1020)$,最后一项约为 $1.945^\circ<2^\circ$,均在 $[0^\circ,2^\circ]$ 内。其余两站由绕三角形中心旋转 $120^\circ$ 的对称性成立。因此三个完整前向角域之交恰为上述三角形。
将真实源取为三角形中心 $g_*=(20,20\sqrt3/3)$。以第一站为例,真实方向约为 $0.649^\circ$,与 $1^\circ$ 的读数偏差小于 $1^\circ$;检测距离约为1020米,小于1500米。另两站同理。该反例符合题设方位误差和可能的有效接收半径。
此时 $D=40$ 米,而以 $AB$ 为直径的圆中心为 $(20,0)$,到 $C$ 的距离为 $20\sqrt3>20$ 米,不能覆盖。三角形外接圆即最小包围圆,其中心为 $(20,20\sqrt3/3)$,半径为 $40/\sqrt3\approx23.094011$ 米。这也证明了“直径不超过40米”不足以保证一次清除。
## 8. 最小包围圆及其清除含义
### 8.1 存在性、唯一性与支撑点
定义 $f(z)=\max_{v\in V}\lVert v-z\rVert$,则 $\rho(P)=\min_z f(z)$。由于 $V$ 有限,$f$ 连续且随 $\lVert z\rVert\to\infty$ 而趋于无穷,最小值存在。
若两个不同中心 $c_1,c_2$ 都以半径 $r$ 覆盖 $V$,中点 $c$ 对每个顶点满足 $\lVert v-c\rVert^2=(\lVert v-c_1\rVert^2+\lVert v-c_2\rVert^2)/2-\lVert c_1-c_2\rVert^2/4<r^2$,与最小性矛盾。因此最小包围圆唯一。
在最优中心 $c$ 处,令 $T$ 为圆周上的顶点集。若 $c$ 不在 $T$ 的凸包中,可沿严格分离方向小幅移动中心,使所有圆周点的距离同时减小;其余有限个点有严格余量,仍被稍小圆覆盖,产生矛盾。故 $c\in\operatorname{conv}(T)$。二维凸组合经仿射相关权重消元,最多保留3个点。因此最小包围圆由至多3个圆周顶点支撑。
更具体地,若支撑点 $p_j$ 的权重满足 $c=\sum_j\lambda_jp_j$,则对任意 $z$ 有 $\sum_j\lambda_j\lVert p_j-z\rVert^2=r^2+\lVert c-z\rVert^2\ge r^2$。这给出了任何覆盖圆半径不能小于 $r$ 的直接证据。
### 8.2 求解方法与来源
由支撑点性质,可以枚举单点零半径圆、两点直径圆和三点外接圆,再检查全体顶点。这是便于核查的基准方法,最坏复杂度为 $O(m^4)$。
当前实现采用 Welzl 的随机增量算法:打乱点序,若当前圆不包含新点,则在该点成为边界点的约束下递归求解较小问题;边界点至多3个。程序用显式栈避免递归深度限制,并固定随机种子以复现结果。理论期望线性依赖随机排列分析,不等于任意固定排列的最坏时间保证。3个强制边界点应使用外接圆,不能替换成其无约束最小圆。算法来源为 Welzl 的原论文,CGAL 文档提供了定义与实现背景。[文献3](https://people.inf.ethz.ch/emo/PublFiles/SmallEnclDisk_LNCS555_91.pdf)、[文献4](https://doc.cgal.org/latest/Bounding_volumes/classCGAL_1_1Min__circle__2.html)
### 8.3 与一次清除的关系
所有能够保证一次清除的位置构成 $C_{20}(P)=\bigcap_{g\in P}B(g,20)=\bigcap_{v\in V}B(v,20)$。第二个等号来自圆盘凸性。该集合非空当且仅当 $\rho(P)\le20$。
因此,最小包围圆中心是保证清除的充分选择,但不一定是移动距离最短的选择。若后续需要优化路径,可以在 $C_{20}(P)$ 内寻找距离机器狗最近的位置。相比之下,$D(P)\le40$ 只是必要条件。
## 9. 算法流程与计算量
**算法1:角域交、直径及覆盖证据。**
1. 校验观测并进行坐标平移、尺度归一化,保留原误差半角。
2. 生成每次观测的三条半平面约束。
3. 枚举非平行边界交点,保留满足全部约束的点;无观测和空集分别处理。
4. 检验非零衰退方向;存在时报告无界并停止有限圆计算。
5. 对可行点去重并求凸包,识别点、线段或多边形。
6. 枚举顶点对求直径及任意一组最远点。
7. 检查其中点到全部顶点的距离,输出最大超出量与失败顶点。
8. 求最小包围圆,换回原坐标,重新检查顶点包含性,输出清除半径余量。
令半平面数 $k=3n$,顶点数为 $m$。边界交点枚举及全约束检查为 $O(k^3)$,衰退方向检查为 $O(k^2)$,交点排序上界为 $O(k^2\log k)$,直径计算为 $O(m^2)$,覆盖证据检查为 $O(m)$。随机增量最小圆在随机排列下期望为 $O(m)$;整个算法仍由半平面交点枚举主导,不能因此称为总体线性算法。
## 10. 数值实现与已有观测复核
数学结论使用精确不等式。浮点实现先平移、归一化,再用位置容差、平行判定阈值和衰退方向容差分别处理不同问题。接近平行或退化输入应进行精度与容差敏感性检查;任意追加一个固定小数裕量都不能替代严格的误差传播上界。
当前程序输出 `diameter_circle` 中的圆心、半径、最大超出量和反例顶点,以及 `minimum_enclosing_circle`。清除判断采用 $\rho+\varepsilon_m\le20$,其中 $\varepsilon_m$ 是工程数值裕量。它是观测及几何计算可靠这一前提下的决策条件,不是一次真实清除成功记录。
既有官方演练案例 `U5ZW-P9KN-TCAG-R7ST` 的三次不同位置观测如下。
| 检测点 | $x$ / 米 | $y$ / 米 | 示向度 / 度 |
| --- | ---: | ---: | ---: |
| 1 | 0 | 0 | 131.52 |
| 2 | -613.7618853216 | 391.5307754525 | 34.92 |
| 3 | -314.2721344680 | 656.6833525352 | 227.19 |
| 误差半角 | 直径 / 米 | 最小包围半径 / 米 | 直径圆最大超出 / 米 |
| --- | ---: | ---: | ---: |
| $1^\circ$ | 23.996723 | 12.068583 | 0.604002 |
| $1.005^\circ$ | 24.119088 | 12.130377 | 0.608486 |
两种口径下直径圆均不覆盖区域,最小包围半径均小于20米。该演练未公开源坐标,且没有执行清除,故只用于观测交会和计算一致性复核,不能据此声称实测定位误差或全清成功率。数据见[原始三点观测](C:/Users/HelixCopex/code/MATH/output/q1/practice/U5ZW-P9KN-TCAG-R7ST_observations.json),敏感性数值见[已有复算报告](C:/Users/HelixCopex/code/MATH/output/q1/optimization_report.json)。
## 11. 结论与实现对应
问题一的准确答案为:将测向角域表示为半平面交,先判断非空性及有界性,再由最远顶点对得到直径;以该直径为直径的圆一般不能覆盖定位区域,覆盖的充要条件是任意一组最远顶点的中点到全部顶点的距离均不超过半径。最小包围圆提供独立且适合后续清除的精度指标。
对应实现为 [localization.py](C:/Users/HelixCopex/code/MATH/geometry/localization.py)。在项目根目录可运行 `python -m geometry examples/q1/triangle.json`;追加 `--rounding-margin-deg 0.005` 可复算额外舍入裕量。本文整理理论与已有计算结果,不改变原始观测或既有程序。
## 参考文献
1. 全国大学生数学建模竞赛组委会. 2026年高教社杯全国大学生数学建模竞赛B题:无线电干扰源的快速自动定位与清除[Z]. 2026. [本地题面](C:/Users/HelixCopex/code/MATH/issue/B题.pdf),第1页、附录2。
2. BOYD S, VANDENBERGHE L. Convex Optimization[M]. Cambridge: Cambridge University Press, 2004. [作者公开版本](https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf),第2章。用于凸几何背景,本文的题目化证明在正文给出。
3. WELZL E. Smallest enclosing disks (balls and ellipsoids)[C]//MAURER H. New Results and New Trends in Computer Science. Lecture Notes in Computer Science, vol. 555. Berlin: Springer, 1991: 359–370. [作者公开论文](https://people.inf.ethz.ch/emo/PublFiles/SmallEnclDisk_LNCS555_91.pdf)。用于随机增量最小包围圆算法来源。
4. CGAL Project. CGAL::Min_circle_2: Bounding Volumes[EB/OL]. [在线文档](https://doc.cgal.org/latest/Bounding_volumes/classCGAL_1_1Min__circle__2.html),访问日期:2026-09-10。用于最小圆及支撑点定义的交叉核对。
+248
View File
@@ -0,0 +1,248 @@
# 问题二:具有接收保证的第二检测点选择
## 摘要
针对只获得一次全向干扰源示向度的情形,提出以接收保证为约束、以后验最小包围半径为主要指标的主动选点方法。首先将源位置圆域、首次角域与有效接收距离上界相交,构造包含真实源的位置候选集;随后把第二检测点的安全条件写成一族闭圆盘的交,并证明其非空性等价于候选集最小包围半径不超过最小有效接收半径。利用首次角域狭窄的题设特征,进一步推导截断角域的最小包围圆,得到半径约250米、能够直接计算的安全候选圆盘。为比较候选点的定位效果,建立兼顾 `direction` 和 `near` 的保守后验模型,推导交会角的局部几何意义,并给出采用外包多边形及观测区间划分的有限候选评估算法。严格接收保证与启发式性能优化分别陈述,不将有限采样结果解释为连续问题的全局最优解。
**关键词:** 主动测向;鲁棒选点;安全候选区域;最坏后验半径;保守几何近似。
## 1. 问题界定与思路来源
题目第二问给定某全向干扰源在一个检测点处的示向度,要求提出第二检测点的选择策略、说明其定位效果并给出候选区域。这里的源类型明确为全向,不能混入第四问的朝向可见性条件。[题面第1页问题2](C:/Users/HelixCopex/code/MATH/issue/B题.pdf)
本问有两个先后不同的问题:第二点是否仍能收到信号;在能收到信号的点中,如何使新测量更有价值。如果只追求较大交会角而不控制到真实源的距离,第二次测量可能返回 `no_signal`,预期几何收益无法实现。因此先构造保证接收的可行域,再优化测向后的不确定区域。
方法来源分为三部分。候选位置集合来自题设有界误差与接收距离,沿用问题一的角域约束;安全选点来自“对每个可能源位置都满足距离条件”的鲁棒可行性;定位收益来自主动测量设计,以最坏后验半径代替未经题面支持的平均误差。凸函数与鲁棒建模的一般背景参见 Boyd 与 Vandenberghe 的《Convex Optimization》第3章、第6.4节;本题的安全圆盘公式、扇形推导及区间评估方法在下文逐步建立。[文献3](https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf)
需要强调:本题没有给出源位置概率分布,也没有给出可直接使用的独立高斯测向噪声模型。因此不能把卡尔曼滤波、协方差或费舍尔信息计算直接作为严格保证。交会角仍有明确几何意义,但应作为局部解释和候选筛选依据。
## 2. 符号、题设事实与建模约定
| 符号 | 含义 |
| --- | --- |
| $s$、$\theta$ | 首次检测位置与示向度 |
| $\delta$ | 误差半角,默认 $1^\circ$ |
| $g$ | 未知的全向干扰源位置 |
| $\Omega=B(0,1800)$ | 干扰源位置圆域 |
| $R_g\in[R_-,R_+]$ | 未知有效接收半径,$R_-=1000$、$R_+=1500$ 米 |
| $K_1$ | 首次观测后的保守位置候选集 |
| $q$ | 第二检测点 |
| $\mathcal Q(K_1)$ | 对 $K_1$ 内所有位置均保证接收的第二点区域 |
| $\rho(K)$ | 非空有界集合 $K$ 的最小包围半径 |
| $J(q)$ | 第二点的最坏保守后验半径 |
采用以下题设事实:有效接收半径在1000至1500米之间;检测点到全向源距离不超过5米时无法得到示向度,可直接光学定位并清除;清除距离不超过20米;机器狗移动速度为5米/秒,检测需要5秒,同一频道连续测量不发生额外频道切换。[题面附录2第(2)、(4)至(9)项](C:/Users/HelixCopex/code/MATH/issue/B题.pdf)
1800米圆域限制的是源位置,不是机器狗的搜索位置。检测点可以位于该圆域外;接口坐标分量的绝对值上限属于数值防护限制,不能误解成要求 $q\in\Omega$。[题面第4页](C:/Users/HelixCopex/code/MATH/issue/B题.pdf)
如果把读数舍入额外计入误差预算,可显式采用 $\delta=1.005^\circ$。下文解析推导对 $0\le\delta\le45^\circ$ 成立,但这一扩展区间不是题目误差范围。
## 3. 首次观测对应的源位置集合
设 $u=u(\theta)=(\cos\theta,\sin\theta)$。由第一次有效示向度,真实位置属于前向角域 $W(s,\theta,\delta)$;由已经收到信号,必有 $\lVert g-s\rVert\le R_g\le R_+$;由源位置限制,又有 $g\in\Omega$。故定义 $K_1=\Omega\cap W(s,\theta,\delta)\cap B(s,R_+)$。
该集合为闭凸紧集。真实观测一致时 $g\in K_1$,所以它非空。首次返回 `direction` 还意味着 $\lVert g-s\rVert>5$,但若把这个开圆盘排除,会破坏凸性。本文暂不使用该排除信息,保留包含真源的凸外包集合;由此得到的保证可能更保守,不会误删真实位置。
这一区别决定了后续结论的口径:本文给出的保证对较大的 $K_1$ 中所有位置成立,因而对实际源成立;但在 $K_1$ 上定义的最坏后验指标可能比利用全部观测细节的精确模型更悲观。
若计算得到 $K_1=\varnothing$,说明输入、频道、误差界或数值处理与题设不一致。此时应返回不一致状态,不能继续给空集计算圆心。问题一的纯角域求解器也不能直接把上述圆弧边界当作直线边界处理。
## 4. 安全候选区域的精确定义及基本性质
### 4.1 接收距离条件
若第二检测点满足 $\lVert q-g\rVert\le R_-$,由于 $R_g\ge R_-$,即可保证全向源信号能够接收。因此定义 $F_K(q)=\max_{g\in K}\lVert q-g\rVert$,并令 $\mathcal Q(K)=\{q:F_K(q)\le R_-\}=\bigcap_{g\in K}B(g,R_-)$。
这里限制的是第二点到所有可能源位置的距离,而不是到第一次检测点的距离。保证接收也不等于保证返回示向度,因为距离不超过5米时可能返回 `near`;该分支的定位效果更好,不能视为策略失败。
### 4.2 凸性、稳定性和非空条件
**命题1:** 对任意非空紧集 $K$,函数 $F_K$ 为凸函数,且满足 $\lvert F_K(q_1)-F_K(q_2)\rvert\le\lVert q_1-q_2\rVert$。
**证明:** 对每个固定的 $g$,距离函数关于 $q$ 凸;逐点取最大值保持凸性。又由三角不等式,$\lVert q_1-g\rVert\le\lVert q_2-g\rVert+\lVert q_1-q_2\rVert$,对 $g$ 取最大值得到一个方向的不等式,再交换两点即得结论。证毕。
因此 $\mathcal Q(K)$ 是闭凸集。非空时,它包含在任一 $B(g_0,R_-)$ 内,所以也有界。
**定理1:** $\mathcal Q(K)\ne\varnothing$ 当且仅当 $\rho(K)\le R_-$。
**证明:** 最小包围半径的定义为 $\rho(K)=\min_q F_K(q)$。存在 $q$ 使 $F_K(q)\le R_-$,与其最小值不超过 $R_-$ 完全等价。最小值存在,因为 $F_K$ 连续且随 $\lVert q\rVert\to\infty$ 趋于无穷。证毕。
当 $\rho(K)=R_-$ 时,安全区域仅包含唯一最小包围圆中心;唯一性可由两个候选中心的中点距离恒等式证明,见[问题一第8节](C:/Users/HelixCopex/code/MATH/docs/algo-1.md)。因此应使用不严格不等式,不能把等号情形误判为空。
### 4.3 外包圆给出的充分区域
若已知 $K\subseteq B(c,r)$ 且 $r\le R_-$,则任意满足 $\lVert q-c\rVert\le R_--r$ 的点,都有 $\lVert q-g\rVert\le\lVert q-c\rVert+\lVert c-g\rVert\le R_-$。因此 $B(c,R_--r)\subseteq\mathcal Q(K)$。
这给出了容易计算的充分候选区域,但一般不等于整个安全区域。一个宽松外包圆若满足 $r>R_-$,只能说明该外包圆不能提供证书,不能证明真实的 $\mathcal Q(K)$ 为空。
## 5. 首次截断角域的解析最小包围圆
### 5.1 坐标变换
暂时去掉只会缩小集合的 $\Omega$ 约束,考虑完整截断角域 $S=W(s,\theta,\delta)\cap B(s,R_+)$。平移并旋转,使 $s$ 成为原点、$u$ 成为横轴。其点可写成 $g=s+t\,u(\theta+\varphi)$,其中 $0\le t\le R_+$、$-\delta\le\varphi\le\delta$。
令 $a=R_+/(2\cos\delta)$,并取 $c=s+au$。
### 5.2 包含性证明
**定理2:** 对 $0\le\delta\le45^\circ$,截断角域 $S$ 的最小包围圆为 $B(c,a)$。
**证明的第一部分:** 对任意 $g\in S$,有 $\lVert g-c\rVert^2=t^2+a^2-2at\cos\varphi$。固定 $\varphi$ 时,右侧关于 $t$ 为凸二次函数,区间最大值在端点取得。当 $t=0$ 时等于 $a^2$;当 $t=R_+$ 时,由 $\cos\varphi\ge\cos\delta$ 得其不超过 $R_+^2+a^2-2aR_+\cos\delta=a^2$。故整个 $S$ 被该圆覆盖。
### 5.3 最小性证明
取角域中的三个点 $p_0=s$、$p_+=s+R_+u(\theta+\delta)$、$p_-=s+R_+u(\theta-\delta)$。它们均在 $B(c,a)$ 的圆周上。
令 $\lambda_+=\lambda_-=1/(4\cos^2\delta)$,$\lambda_0=1-1/(2\cos^2\delta)$。由于 $\delta\le45^\circ$,三权重非负且和为1,直接代入可得 $c=\lambda_0p_0+\lambda_+p_++\lambda_-p_-$。
对任意中心 $z$,利用加权距离恒等式,有 $\sum_j\lambda_j\lVert p_j-z\rVert^2=a^2+\lVert c-z\rVert^2\ge a^2$。若半径为 $r$ 的圆覆盖这三个点,则左侧不超过 $r^2$,故 $r\ge a$。任何覆盖 $S$ 的圆都必须覆盖这三个点,结合第一部分的包含性,得到最小半径恰为 $a$。当 $\delta=0$ 时两个远端点重合,结论退化为长度 $R_+$ 的线段直径圆,仍成立。证毕。
该推导不依赖源位置先验,也不依赖位置概率分布。它给出的是完整截断角域的精确最小圆;与 $\Omega$ 相交后,真实 $K_1$ 的最小圆可能更小。
## 6. 本题可直接采用的第二点候选区域
由 $K_1\subseteq S\subseteq B(c,a)$ 和第4.3节,可取 $\mathcal Q_0=B(c,b)$,其中 $c=s+au$、$a=1500/(2\cos\delta)$、$b=1000-a$。
| 误差半角 | 轴向中心距离 $a$ / 米 | 安全候选半径 $b$ / 米 |
| --- | ---: | ---: |
| $1^\circ$ | 750.114246 | 249.885754 |
| $1.005^\circ$ | 750.115391 | 249.884609 |
两种口径下 $b>0$,故本题首次有效测向后的安全候选区域可以直接证明非空。无需将“若安全区域为空就去最小圆圆心”作为正常流程的保底步骤。
几何上,$\mathcal Q_0$ 位于首测示向方向前方约750米,以约250米为半径。位于圆盘轴向前后端的点、两侧横向点以及圆心都保证接收。横向点只是可供比较的候选点,并未被证明总是最优。
为抵消坐标计算和动作提交中的工程舍入,可取缩小区域 $\mathcal Q_\eta=B(c,b-\eta)$,其中 $0<\eta<b$。若圆心和提交位置合计偏差不超过 $\eta$,三角不等式保证仍有 $\lVert q-g\rVert\le1000$。例如先取 $\eta=0.01$ 米属于可调工程选择,不是题面要求,也不是未分析数值误差的自动上界。
若有更精细的 $K_1$ 外包圆,可得到更大的充分区域;若精确处理其圆弧边界,也可直接搜索 $\mathcal Q(K_1)$。这些扩展是性能优化,不影响 $\mathcal Q_0$ 的正确性。
## 7. “较好的定位效果”的数学定义
### 7.1 保守后验集合
对候选点 $q\in\mathcal Q_0$,若返回 `direction` 及示向度 $\beta$,定义保守后验 $K_d(q,\beta)=K_1\cap W(q,\beta,\delta)$。这里继续忽略距离大于5米所提供的非凸排除信息。真实源一定属于 $K_d$。
若返回 `near`,定义 $K_n(q)=K_1\cap B(q,5)$,故 $\rho(K_n(q))\le5$。在此分支直接以当前位置进行光学定位和清除,满足20米的清除条件,不必强行再取得一个角度。
设圆周角距离为 $d_{\mathbb S^1}(\alpha,\beta)=\min_{k\in\mathbb Z}\lvert\alpha-\beta+360^\circ k\rvert$。对 $\lVert g-q\rVert>5$ 的候选位置,令真实方位为 $h_q(g)=\operatorname{atan2}(g_y-q_y,g_x-q_x)$。可能出现的读数集合定义为 $\mathcal B(q)=\{\beta:\exists g\in K_1,\ \lVert g-q\rVert>5,\ d_{\mathbb S^1}(\beta,h_q(g))\le\delta\}$。
这里用所有允许误差描述可能读数,不是假设各地点的误差可以随机独立重抽样。同一个位置的重复检测不产生新的独立信息;所构造的 $\mathcal Q_0$ 与首测位置相距至少约500米,天然避免原地重复测量。
### 7.2 最坏后验半径指标
定义 $J(q)$ 为所有可能 `direction` 分支的 $\rho(K_d(q,\beta))$,以及非空 `near` 分支的 $\rho(K_n(q))$ 的上确界。等价地,它是未来所有允许观测下最坏的保守最小包围半径;不存在的观测分支不参与取最大值。
选点的主要目标为在安全候选区域中降低 $J(q)$。该指标直接服务于一次清除要求:若 $J(q)\le20$,则每个可能分支都有半径不超过20米的保守定位圆。它比仅比较面积更符合任务,因为面积较小的集合仍可能十分狭长。
对于任意有效分支,后验都是 $K_1$ 的子集。集合包含关系给出 $\rho(K_2)\le\rho(K_1)$,故 $J(q)\le\rho(K_1)$。但不一定严格小于,因此不能仅由“增加一次观测”推断定位精度必然严格改善,更不能保证只需两次测向便达到20米阈值。
### 7.3 移动成本的引入
连续测量同一频道时,本次动作的虚拟时间增量为 $C(q)=\lVert q-s\rVert/5+5$ 秒。推荐先按后验半径择优,再在几何效果接近的候选点中比较移动成本,以避免任意混合米和秒。
用 $\widehat J(q)$ 表示实际计算的评估量,在第10节的保守方案中取为上界 $\overline J(q)$。设有限候选点中的最小评估值为 $J_{\min}$。可先保留满足 $\widehat J(q)\le J_{\min}+\tau$ 的点,再选择其中 $C(q)$ 最小者,其中 $\tau\ge0$ 是显式给定的定位容忍量,单位为米;$\tau=0$ 对应严格的字典序选择。本文不预设一个未经实验支持的最优 $\tau$。
## 8. 交会角的局部几何解释
在某个假定真实位置 $g$ 附近,令两站距离为 $r_1,r_2$,真实视线单位向量为 $u_1,u_2$,对应法向量为 $n_1,n_2$。当角误差很小且位置扰动相对站距较小时,方位函数的一阶展开给出 $n_i\cdot\Delta g\approx r_i e_i$,其中 $e_i$ 用弧度表示,满足 $\lvert e_i\rvert\le\delta_{\rm rad}$。
于是局部不确定区域近似由两条带状约束限定:$\lvert n_1\cdot\Delta g\rvert\le r_1\delta_{\rm rad}$、$\lvert n_2\cdot\Delta g\rvert\le r_2\delta_{\rm rad}$。若视线交会角为 $\phi$,法向量矩阵的行列式绝对值为 $\lvert\sin\phi\rvert$。对法向坐标中的矩形作线性逆变换,得到近似面积 $A_{\rm loc}\approx4r_1r_2\delta_{\rm rad}^2/\lvert\sin\phi\rvert$。
这解释了两点:近于平行或反向的视线使误差显著放大;在距离不变的局部比较下,接近直角的交会较有利。然而真实源位置未知,$r_2$ 和 $\phi$ 随 $g$ 改变,且有限角域并非无限带状区域。因此不能由该近似推出“总应横移固定距离”或“在某个假定源位置形成90度就是全局最优”。本文只将其用于优先考虑轴线两侧候选点,最终仍以后验集合指标评价。
## 9. 圆弧先验的保守离散
### 9.1 外包切线多边形
直接将圆周采样点连接得到的是内接多边形,会错误排除圆盘边缘的真实位置。为了复用第一问的半平面工具,选择 $M\ge3$ 个均匀法向量 $v_j=u(2\pi j/M)$,定义 $P_M(o,R)=\{x:v_j\cdot(x-o)\le R,\ j=0,\ldots,M-1\}$。
由柯西不等式,任意 $x\in B(o,R)$ 都满足所有约束,因此 $B(o,R)\subseteq P_M(o,R)$。相邻切线交点到圆心的距离为 $R\sec(\pi/M)$,故单个圆盘外包的最大径向超出不超过 $R[\sec(\pi/M)-1]$。
令 $\widetilde K_1=P_M(0,1800)\cap W(s,\theta,\delta)\cap P_M(s,1500)$,便有 $K_1\subseteq\widetilde K_1$。对任何第二读数再求半平面交,仍然保留真实源。上述单圆径向误差不能未经论证直接当成最终定位半径的误差界;靠近切触或退化时尤其需要加密检查。
安全选点仍使用第6节的解析 $\mathcal Q_\eta$。即使粗糙外包多边形的最小圆偏大,也不能据此推翻解析安全区域的非空结论。
### 9.2 多边形安全区域的可选扩展
若采用任意有界凸外包多边形 $\widetilde K=\operatorname{conv}\{v_j\}$,则 $\max_{g\in\widetilde K}\lVert q-g\rVert=\max_j\lVert q-v_j\rVert$,证明与第一问的凸组合论证相同。因此其保证接收区域由有限个约束 $\lVert q-v_j\rVert\le1000$ 给出,是圆盘交。
也可先解最小包围圆问题,再构造充分安全圆盘。由于 $\widetilde K$ 是外包集合,得到的区域可能更小,但其中每个点仍安全。若该离散区域为空,优先加密或回到解析候选盘,不把离散失败误报为真实问题无解。
## 10. 未来读数的保守区间评估
直接枚举少量假定源位置和误差端点,只得到被枚举情形的最大值,可能漏掉真正最坏读数。为了使评估输出具有上界意义,可以划分全部可能方位角,而非仅点采样。
将整周按圆周意义划分为若干区间 $I_j$,中心为 $\beta_j$,宽度为 $h_j$,要求 $\delta+h_j/2<90^\circ$。跨越 $0^\circ$ 的区间按圆周距离处理。
**命题2:** 对任意 $\beta\in I_j$,有 $W(q,\beta,\delta)\subseteq W(q,\beta_j,\delta+h_j/2)$。
**证明:** 对左侧任意非顶点位置,其方向到 $\beta$ 的圆周距离不超过 $\delta$;而 $\beta$ 到区间中心的距离不超过 $h_j/2$。由圆周距离的三角不等式,其方向到中心的距离不超过两者之和。顶点在两个闭角域中均被保留。证毕。
因此定义 $U_j(q)=\widetilde K_1\cap W(q,\beta_j,\delta+h_j/2)$,则任何落在该区间的真实读数所对应的保守后验,都包含于 $U_j(q)$,从而 $\rho(K_d(q,\beta))\le\rho(U_j(q))$。
对于 `near` 分支,可以取统一上界 $\min\{5,\rho(\widetilde K_1)\}$。该上界不需要精确计算圆弧交集;即使某点实际不会触发 `near`,纳入此上界只增加保守性。
令 $\overline J(q)$ 等于所有非空 $U_j(q)$ 的最小包围半径,以及上述 `near` 上界的最大值,即得到 $J(q)\le\overline J(q)$。该结论在精确几何计算下成立。浮点实现还需给出包含性和数值误差处理,不能把无误差预算的计算值称为机器可验证的严格上界。
通过将某个角区间二分,子区间扩张后的角域包含于父区间的扩张角域,所以相应方向上界不会增大。通过保留旧切线并增加新切线,也可使外包多边形嵌套缩小。这给出稳定的自适应加密方向,但没有在本文中证明连续选点的统一收敛速率。
该评估可能较慢,实际可先用少量读数采样粗筛,再对入围点使用完整角区间上界。前一阶段仅决定计算资源分配;最后报告的保守上界必须来自完整覆盖的区间,不能来自粗筛样本最大值。
## 11. 可执行的第二点选择算法
**算法2:安全区域内的有限候选主动测向。**
1. 输入 $s,\theta,\delta$,核验首次观测为同一全向源的有效示向度,构造 $K_1$ 或其保守表示。
2. 计算 $a=1500/(2\cos\delta)$、$c=s+au(\theta)$、$b=1000-a$,选择满足误差预算的缩小半径 $b-\eta$。
3. 构造有限候选集:包含圆心 $c$,并取 $q_{\ell j}=c+r_\ell[\cos\psi_j\,u+\sin\psi_j\,u_\perp]$,其中 $0<r_\ell\le b-\eta$、$\psi_j=2\pi j/N_\psi$、$u_\perp=(-\sin\theta,\cos\theta)$。所有候选点自动满足接收距离保证。
4. 对每个候选点构造第9节的外包后验,按第10节评估 $\overline J(q)$,保存最坏角区间及对应包围圆作为评估依据。
5. 优先选择 $\overline J$ 较小的点;按预先声明的 $\tau$ 筛选近优点,再按移动检测代价选择,必要时用固定顺序消除完全同分。
6. 在现实计算预算内,对入围候选附近加密位置、细分最坏角区间并增加外包切线。保留当前已验证安全的可用点,预算耗尽时返回当前结果。
7. 在所选位置测量同一频道。若为 `near`,在当前位置清除;若为 `direction`,用实际读数更新候选集合并复算最小包围圆;若其半径仍大于20米,继续后续测向,不能宣称两次定位已经完成。
8. 若在距离保证条件下意外得到 `no_signal`,核查动作是否被接受、频道是否正确、源是否仍存在及坐标和模型是否一致。未知原因解决前不按正常 `direction` 分支更新位置候选。
例如可从3层半径、每层16个方向及1个圆心开始,共49个候选点;这是位置搜索的数值分辨率示例,与第三问49点全域覆盖网格无关,也不是已优化参数。外包切线数、角区间宽度、加密次数及 $\tau$ 均应在论文实验部分显式记录。
设候选数为 $N_q$、角区间数为 $N_\beta$、每个后验的半平面数为 $k$。复用第一问的边界枚举时,主计算量约为 $O(N_qN_\beta k^3)$,另加顶点直径或最小圆计算。该方法提供清楚的正确性结构,但需通过缓存首次约束、局部加密和计算预算控制实现成本。不能用“只需一次新的测量”忽略选点器自身的运行时间。
算法输出保证的是:所选点位于已证明安全的区域,并在给定有限候选及评估精度下按既定规则择优。本文未证明 $q\mapsto J(q)$ 是凸函数,也未证明有限候选的最优点就是整个 $\mathcal Q(K_1)$ 中的全局最优点。
## 12. 边界情形与适用范围
| 情形 | 正确处理 |
| --- | --- |
| $K_1$ 为空 | 报告模型或数据不一致,不构造虚假圆心 |
| 首次结果已经为 `near` | 直接清除,不再套用“已知示向度”的第二问流程 |
| 一般集合满足 $\rho(K)=1000$ | 安全区域为最小包围圆中心这个单点 |
| 一般集合满足 $\rho(K)>1000$ | 不存在对该集合全部位置保证接收的点;圆心仅是最小化最坏距离的探索选择 |
| 外包圆半径大于1000 | 只能判定该证书不足,不能直接判真实安全区域为空 |
| 测量轴接近 $0^\circ/360^\circ$ | 使用向量约束和圆周区间,避免角度断点错误 |
| 两次测向交会较差 | 保留完整后验并继续测量,不将小面积当成小直径 |
| 源类型为定向 | 距离证书仍成立,但接收还受朝向限制,不能直接沿用本问的接收保证 |
对于一般集合无安全点的情形,最小包围圆中心确实解 $\min_q\max_{g\in K}\lVert q-g\rVert$,但其最坏距离仍可能大于1000米。改善交会角若要求偏离该中心,还会牺牲最坏距离最优性,必须明确是另一个多目标探索策略,不能把两项互相冲突的要求同时称为已保证。
## 13. 验证设计及当前实现边界
本问的验证分为数学证书与策略性能两层。数学层检查:截断角域被解析圆覆盖;安全候选到所有允许位置的距离不超过1000米;外包离散不删除真实点;角区间扩张包含所有区间内读数。数值抽样只能辅助检查这些证明,不能取代它们。
性能层应在相同自建源位置与确定的空间误差场上,比较轴向点、两个横向点、有限候选最坏后验策略。误差场在同一位置保持固定;不得让每次调用重新独立生成误差。记录第二次测量类型、后验直径和包围半径、额外移动、计算耗时及是否达到20米清除阈值。至少包含误差边界、源域边界、接收半径1000米、近距离和近共线案例。没有这些实验前,不报告未经验证的性能提升比例。
目前 [planning.py](C:/Users/HelixCopex/code/MATH/geometry/planning.py) 中的 `first_bearing_candidate_disk` 已实现第5至6节的解析证书;问题一内核可用于纯半平面区域的顶点和最小圆计算。第9至11节描述的是完整选点器的数学方案,包括本次补充的保守区间评估方法,尚未在现有仓库中实现为完整第二问优化器,也没有相应正式成绩。该实现边界不影响解析候选区域的证明。
对后续实现而言,应新增接收任意半平面约束的交集入口,或使用独立的多边形裁剪函数,再复用第一问的最小包围圆。不能把圆盘先验伪装成额外测向观测传入现有 `solve(measurements)` 接口。
## 14. 结论
第二问的候选区域可以明确取为前方约750米处、半径约250米的圆盘,其解析式为 $\mathcal Q_0=B(s+au(\theta),1000-a)$,其中 $a=1500/(2\cos\delta)$。这一候选区域对题设全向源提供接收保证,且在首次有效测向条件下严格非空。
在该区域内,以最坏保守后验最小包围半径为主指标、移动代价为次指标,采用有限候选和逐步加密进行选择。交会角解释局部几何优劣,外包多边形和读数区间扩张保证不低估相关后验集合;全局最优和“两次即可清除”均不作为未经证明的结论。
## 参考文献
1. 全国大学生数学建模竞赛组委会. 2026年高教社杯全国大学生数学建模竞赛B题:无线电干扰源的快速自动定位与清除[Z]. 2026. [本地题面](C:/Users/HelixCopex/code/MATH/issue/B题.pdf),问题2、附录2及第4页坐标约束。
2. 模拟器配套材料. 附件2:模拟器通信接口说明及编程指南[Z]. 2026. [本地附件](C:/Users/HelixCopex/code/MATH/issue/附件/附件2.docx)。用于 `direction`、`near`、`no_signal` 等程序观测字段与动作接口的对应。
3. BOYD S, VANDENBERGHE L. Convex Optimization[M]. Cambridge: Cambridge University Press, 2004. [作者公开版本](https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf),第3章、第6.4节。用于凸性及鲁棒建模的一般背景,不作为本题候选圆盘公式的出处。
4. 本项目. 问题一:有界测向误差下定位区域的直径与圆覆盖[Z]. 2026. [algo-1.md](C:/Users/HelixCopex/code/MATH/docs/algo-1.md)。用于角域半平面表示、顶点判定和最小包围圆的衔接。
**来源说明:** 第5节的截断角域最小圆及第6节的安全圆盘,是结合题设参数在本文中推导的结果;第8节的交会角关系由方位函数一阶展开推得;第9至11节是据集合包含关系构造的保守计算方案。以上陈述说明本项目的推导路径,不宣称这些一般几何思想在既有文献中首次出现。
+2 -1
View File
@@ -35,7 +35,8 @@ xelatex main.tex && xelatex main.tex
- 摘要页含标题与关键词,不超过一页,无需英文。 - 摘要页含标题与关键词,不超过一页,无需英文。
- 摘要页、正文、附录中不得出现姓名、学校、赛区等信息。 - 摘要页、正文、附录中不得出现姓名、学校、赛区等信息。
- 附录含支撑材料文件列表与完整源码:源码以 `\lstinputlisting` 引用仓库内 - 附录含支撑材料文件列表与完整源码:源码以 `\lstinputlisting` 引用仓库内
`geometry/` 等模块(相对路径 `../../../`),提交前须确认与支撑材料压缩包一致。 `src/mcm26b/geometry/` 等模块(相对路径 `../../`),提交前须确认与支撑材料
压缩包一致。
## 待办(正文中红色【待填/待补】标记) ## 待办(正文中红色【待填/待补】标记)
Binary file not shown.
+560 -103
View File
@@ -155,26 +155,27 @@
\end{center} \end{center}
针对无线电干扰源的快速自动定位与清除问题,本文以测向观测的三值反馈 针对无线电干扰源的快速自动定位与清除问题,本文以测向观测的三值反馈
\texttt{no\_signal}、\texttt{near}、\texttt{direction} 为唯一信息来源,建立了 \texttt{no\_signal}、\texttt{near}、\texttt{direction} 为唯一信息来源,建立
\textbf{有界误差交会定位—主动选点—覆盖证明搜索—动作耗时调度}的统一框架:四个问题 \textbf{有界误差交会定位—主动选点—覆盖证明搜索—动作耗时调度}的统一框架:四个问题
复用同一几何内核,以覆盖证明与严格停止条件保证“清除所有干扰源”这一硬约束, 复用同一几何内核,以覆盖证明与严格停止条件保证“清除所有干扰源”的硬约束,再优化
在此之上再优化时间指标。 时间指标。
\textbf{针对问题~1},将 $\pm 1^{\circ}$ 有界误差下的测向观测建模为以检测点为顶点的 \textbf{针对问题~1},将 $\pm 1^{\circ}$ 有界误差下的测向观测建模为以检测点为顶点的
前向角域 $W_i$,交会定位区域即诸角域的半平面交 $P=\bigcap_i W_i$,给出定位区域直径 前向角域 $W_i$,交会定位区域即诸角域的半平面交 $P=\bigcap_i W_i$,给出直径
$D(P)=\max_{i,j}\|v_i-v_j\|$ 的顶点对枚举算法,并处理空集、单点、线段与无界区域等 $D(P)=\max_{i,j}\|v_i-v_j\|$ 的顶点对枚举算法,并处理空集、无界区域等退化情形。
退化情形。对“直径为 $D$ 的圆能否覆盖区域”,以等边三角形给出否定反例,进而给出 对“直径圆能否覆盖定位区域”,给出只需检查最远顶点对中点的充要判定,并以符合题设
只需检查一组最远顶点对的覆盖判定算法;以最小包围圆半径 $\rho(K)\le 20$ 米作为 测向条件的等边三角形反例给出否定回答;以最小包围圆半径 $\rho(K)\le 20$ 米为可保证
可保证清除的充分判据,采用 Welzl 随机增量算法求解并以枚举法对照。对官方演练的 清除的充分判据,用 Welzl 算法求解并以支撑点枚举对照。官方演练三点观测复算:
三点观测离线复算,$\delta=1^{\circ}$ 时 $D=23.9967$ 米、$\rho=12.0686$ 米: $\delta=1^{\circ}$ 时 $D=23.9967$ 米、$\rho=12.0686$ 米,直径圆不覆盖定位区域,
直径圆不覆盖定位区域,但存在一点可保证清除。 但存在一点可保证清除。
\textbf{针对问题~2},首次测向后取候选集合 \textbf{针对问题~2},首次测向后取保守候选集合
$K_1=\Omega\cap W(s_1,\theta_1\pm\delta)\cap \overline{B}(s_1,1500)$,并给出安全 $K_1=\Omega\cap W(s_1,\theta_1\pm\delta)\cap B(s_1,1500)$,将接收保证写成一族闭
候选区域恒非空的解析证明:记 $a=R/(2\cos\delta)$、$c=s_1+a\bm{u}$,则 圆盘之交并给出非空判据;进而证明截断角域的最小包围圆恰为 $B(c,a)$
$K_1\subseteq B(c,a)$,从而 $B(c,1000-a)\subseteq\mathcal{Q}$($\delta=1^{\circ}$ ($a=R/(2\cos\delta)$、$c=s_1+a\bm{u}$),故安全候选圆盘
时安全圆盘半径约 $249.88$ 米)。在安全区域内以“最坏后验包围圆半径”为主目标、 $B(c,1000-a)\subseteq\mathcal{Q}$ 严格非空($\delta=1^{\circ}$ 时半径约 $249.89$
移动与检测成本为次目标主动选取第二检测点,交会角仅作同分筛选指标。 米)。在安全区域内以“最坏保守后验包围半径”为主目标、移动与检测成本为次目标
主动选点,交会角仅作局部解释与同分筛选指标。
\textbf{针对问题~3},建立以虚拟时间 \textbf{针对问题~3},建立以虚拟时间
$T=L/5+N_{\mathrm{switch}}+5N_{\mathrm{measure}}+5N_{\mathrm{clear}}^{\mathrm{s}} $T=L/5+N_{\mathrm{switch}}+5N_{\mathrm{measure}}+5N_{\mathrm{clear}}^{\mathrm{s}}
@@ -193,7 +194,7 @@ $N\le(\lceil w/20\rceil+2)(\lceil h/20\rceil+2)$,并纳入现实时间预算
最后对模型的保守性与效率进行评价:几何内核可复用、覆盖保证可验证;局限在于 最后对模型的保守性与效率进行评价:几何内核可复用、覆盖保证可验证;局限在于
主动选点为采样启发式、后备清除请求数较大,可通过共享测点与自适应覆盖加速。 主动选点为采样启发式、后备清除请求数较大,可通过共享测点与自适应覆盖加速。
\vspace{0.8em} \vspace{0.4em}
\noindent{\heiti 关键词:}交会定位;半平面交;最小包围圆;覆盖证明;主动选点;动作调度 \noindent{\heiti 关键词:}交会定位;半平面交;最小包围圆;覆盖证明;主动选点;动作调度
\clearpage \clearpage
@@ -236,17 +237,27 @@ $\Omega=\{(x,y):x^2+y^2\le 1800^2\}$,干扰源按覆盖角度范围分为全
条件下,把定位几何组织成“全域覆盖发现—逐个定位—清除—证明完成”的闭环调度问题。 条件下,把定位几何组织成“全域覆盖发现—逐个定位—清除—证明完成”的闭环调度问题。
因此不必为每问单独建模,而是复用同一几何内核与观测更新机制。 因此不必为每问单独建模,而是复用同一几何内核与观测更新机制。
\textbf{问题~1 的分析}。误差有界意味着单次测向只能确定源位于以示向度方向为轴、 \textbf{问题~1 的分析}。题面附录~2 第(1)项把测向误差限定在
半角 $1^{\circ}$ 的前向角域内;多检测点角域的交集即为定位区域。求交即半平面交, $[-1^{\circ},1^{\circ}]$,且同一地点重复检测不改变误差:没有误差分布可利用、
是经典计算几何问题;直径在凸多边形顶点上取得,可用顶点对枚举求得。“直径圆能否 原地重复测量不产生新信息,故采用有界误差的集合相交建模——单次测向只能确定源
覆盖区域”需要区分“直径”与“外接”两个概念,等边三角形说明直径圆一般不覆盖, 位于以示向度方向为轴、半角 $1^{\circ}$ 的前向角域内,多检测点角域的交集即为
正确的保证清除工具是最小包围圆。 定位区域。题目要求“采用交会定位法”计算“多边形定位区域”的直径(附录~2 第(3)
项图~2),角域边界为直线,求交即半平面交这一经典计算几何问题;直径在凸多边形
顶点上取得,可用顶点对枚举精确求得。对“直径圆能否覆盖区域”的追问,需要区分
“直径”与“外接”两个概念:先给出只需检查最远顶点对中点的充要判定,再构造符合
题设测向条件的等边三角形反例说明一般不覆盖。最后,清除以 $20$ 米距离为判据
(附录~2 第(8)项),正确的保证清除工具是最小包围圆。
\textbf{问题~2 的分析}。第二检测点的选取是在目标位置未知条件下的主动测量设计: \textbf{问题~2 的分析}。题目要求同时给出第二检测点的“选择策略”与“候选区域”,
无论真实源位于当前候选集合何处,新检测点都必须保证能接收到信号(距离不超过其有效 这是在目标位置未知条件下的主动测量设计,方法取舍由两条题设决定。其一,有效接收
接收半径),否则该次检测将退化为无效动作。因此先构造保守候选集合,再解析证明存在 半径在 $1000$ 至 $1500$ 米之间且具体值未知(附录~2 第(2)项):无论真实源位于
“任何情况下都接收到信号”的安全区域,在安全区域内按最坏情形的后验包围半径最小化 当前候选集合何处,新检测点都必须保证落在其接收半径内,否则该次检测退化为无效
选取检测点。 动作,故先构造保守候选集合,再解析证明存在“任何情况下都收到信号”的安全区域。
其二,题面只给有界误差而无误差分布与源位置分布(附录~2 第(1)项),概率类方法
没有严格依据,故在安全区域内以最坏情形的后验包围半径为主目标、移动与检测成本
(附录~2 第(5)、(6)项)为次目标选取检测点,交会角仅作局部几何解释与同分筛选。
此外,$1800$ 米圆域限制的是源位置而非机器狗(附录~3),安全选点允许越出圆域;
返回 \texttt{near} 的分支按附录~2 第(9)项就地清除,不视为策略失败。
\textbf{问题~3 的分析}。全清是硬约束:发现 $10$ 个源或连续多次无信号都不构成停止 \textbf{问题~3 的分析}。全清是硬约束:发现 $10$ 个源或连续多次无信号都不构成停止
依据。需要一组对任何源位置都能保证“至少一个检测点落在其有效接收范围内”的覆盖点集, 依据。需要一组对任何源位置都能保证“至少一个检测点落在其有效接收范围内”的覆盖点集,
@@ -297,6 +308,10 @@ $\Omega=\{(x,y):x^2+y^2\le 1800^2\}$,干扰源按覆盖角度范围分为全
$K$ & 某频道源的可能位置候选集合 \\ $K$ & 某频道源的可能位置候选集合 \\
$\rho(K)$ & $K$ 的最小包围圆半径 \\ $\rho(K)$ & $K$ 的最小包围圆半径 \\
$\mathcal{Q}$ & 第二检测点的安全候选区域 \\ $\mathcal{Q}$ & 第二检测点的安全候选区域 \\
$B(c,r)$ & 以 $c$ 为圆心、$r$ 为半径的闭圆盘(米) \\
$R_-,\ R_+$ & 有效接收半径的下、上限,$1000$、$1500$ 米 \\
$J(q)$ & 第二检测点 $q$ 的最坏保守后验包围半径(米) \\
$C(q)$ & 在 $q$ 处完成一次检测的虚拟时间增量(秒) \\
$L$ & 机器狗移动总路程(米) \\ $L$ & 机器狗移动总路程(米) \\
$N_{\mathrm{switch}},N_{\mathrm{measure}},N_{\mathrm{clear}}$ & 频道切换、检测、清除动作次数 \\ $N_{\mathrm{switch}},N_{\mathrm{measure}},N_{\mathrm{clear}}$ & 频道切换、检测、清除动作次数 \\
$T$ & 完成任务的虚拟总时间(秒) \\ $T$ & 完成任务的虚拟总时间(秒) \\
@@ -306,114 +321,554 @@ $\Omega=\{(x,y):x^2+y^2\le 1800^2\}$,干扰源按覆盖角度范围分为全
\section{问题~1:有界误差交会定位模型} \section{问题~1:有界误差交会定位模型}
\subsection{测向误差的前向角域建模} \subsection{建模思路来源}
设第 $i$ 个检测点 $s_i$ 处测得示向度 $\theta_i$。由假设~1,真实方位角位于 本问每种方法的取舍都由题面描述直接确定,对应关系如下。
$[\theta_i-\delta,\theta_i+\delta]$ 内,故源必然落在以 $s_i$ 为顶点、以该方向区间
为边界的前向角域 \textbf{由误差描述确定集合模型。}题面附录~2 第(1)项指出:示向度与真实方位角之间
的误差“在一段时间内,同一地点的电磁环境干扰是固定的,所以重复检测不会改变检测
误差”,且“从目标区域全局来看,所有这些误差在 $[-1^{\circ},1^{\circ}]$ 范围内”。
因此单次观测不能确定一条精确射线,却可以确定一个必含真实方向的角域;题面没有
给出误差的分布形式,原地重复测量又不产生新信息,故采用有界误差下的集合相交,
而非直线最小二乘或多次读数平均——后两者既不能保证真源不被排除,也与“同点误差
不变”的题设相悖。
\textbf{由交会定位的规定确定半平面交。}问题~1 要求“采用交会定位法(见附录~2)
计算多边形定位区域直径”,附录~2 第(3)项的图~2 把定位区域画成两个检测点示向度
实线两侧各 $1^{\circ}$ 虚线所夹的四边形。角域边界是直线,故定位区域是二维线性
不等式组的可行域,可用半平面交显式构造,问题随之成为凸几何问题\cite{boyd}。
\textbf{由直径的定义确定顶点枚举。}题目规定直径是“区域内任意两点之间距离的最大
值”。两点距离关于其变元是凸函数,在紧凸集上的最大值必在极点处取得,故只需在
顶点对上枚举,无需任何近似。
\textbf{由覆盖之问确定“先判定、后反例”。}题目追问“以定位区域直径为直径的圆能否
覆盖此定位区域”。“直径”是最长弦概念,与“外接”并非同一对象,因此先给出存在
覆盖圆的充要判定,再构造符合题设测向条件的反例,据此回答“不一定”。
\textbf{由清除条件确定最小包围圆。}附录~2 第(8)项规定光学精确定位与清除“在距离
干扰源不超过 $20$ 米”时进行,且成功与否仅与清除点到干扰源的距离有关。定位精度的
最终判据因而是“存在一点到所有可能源位置都不超过 $20$ 米”,即最小包围圆半径
$\rho\le 20$,而非直径不超过 $40$ 米。
\subsection{测向观测的前向角域与半平面约束}
设第 $i$ 个检测点 $s_i=(s_{ix},s_{iy})$ 处测得示向度 $\theta_i$(题面附录~2
第(1)项:示向度自 $x$ 轴正向逆时针计量,范围 $[0^{\circ},360^{\circ})$)。
由假设~1,真实方位角位于 $[\theta_i-\delta,\theta_i+\delta]$ 内,故源必然落在
以 $s_i$ 为顶点、以该方向区间为边界的前向角域
\begin{equation} \begin{equation}
W_i=\bigl\{s_i+t\,(\cos\varphi,\sin\varphi):t\ge 0,\ \varphi\in[\theta_i-\delta,\theta_i+\delta]\bigr\} W_i=\bigl\{s_i+t\,u(\varphi):t\ge 0,\ \varphi\in[\theta_i-\delta,\theta_i+\delta]\bigr\},
\qquad u(\varphi)=(\cos\varphi,\sin\varphi)
\label{eq:wedge} \label{eq:wedge}
\end{equation} \end{equation}
内。$W_i$ 由两条过 $s_i$ 的线性不等式表示,实现时须正确处理 $0^{\circ}/360^{\circ}$ 内。记二维叉积 $[a,b]=a_xb_y-a_yb_x$ 与 $u_i^{\pm}=u(\theta_i\pm\delta)$。当
跨界。示向度读数保留两位小数时,可取 $\delta=1.005^{\circ}$ 作保守裕量;本文推导 $0<\delta<90^{\circ}$ 时,“位于两条边界射线之间”等价于
对任意 $\delta\in(0,45^{\circ})$ 成立。
\subsection{定位区域:角域的半平面交}
交会定位区域为
\begin{equation} \begin{equation}
P=\bigcap_i W_i . [\,u_i^-,\,g-s_i\,]\ge 0,\qquad [\,u_i^+,\,g-s_i\,]\le 0,
\label{eq:cross}
\end{equation}
即 $g-s_i$ 位于下边界射线的左侧、上边界射线的右侧。展开即标准线性约束
\begin{align}
\sin(\theta_i-\delta)\,x-\cos(\theta_i-\delta)\,y
&\le \sin(\theta_i-\delta)\,s_{ix}-\cos(\theta_i-\delta)\,s_{iy},\\
-\sin(\theta_i+\delta)\,x+\cos(\theta_i+\delta)\,y
&\le -\sin(\theta_i+\delta)\,s_{ix}+\cos(\theta_i+\delta)\,s_{iy}.
\end{align}
另保留前向约束 $u(\theta_i)\cdot(g-s_i)\ge0$:它在 $0<\delta<90^{\circ}$ 时冗余,
但 $\delta=0$ 时前两条约束只限定一条直线,加入它才得到正确的射线。角域顶点本身
包含在闭集合内,这是保守处理,并不表示在该点仍能获得示向度。采用向量不等式后,
$359^{\circ}$ 与 $0^{\circ}$ 跨界无需分段比较角度。示向度读数保留两位小数时,可
取 $\delta=1.005^{\circ}$ 作显式声明的保守裕量;本节推导对任意
$\delta\in(0,90^{\circ})$ 成立,本题算例始终取 $\delta=1^{\circ}$。
\subsection{定位区域的构造与分类}
交会定位区域为诸角域之交
\begin{equation}
P=\bigcap_i W_i=\{g:Ag\le b\}.
\label{eq:polygon} \label{eq:polygon}
\end{equation} \end{equation}
求各边界直线交点并筛除不可行点,再按极角排序即得凸多边形 $P$。算法必须区分五种 每个 $W_i$ 都是闭凸集,故 $P$ 也是闭凸集;它可能为空、为单点、为线段、为有界凸
情形:空集(观测矛盾,应核查频道与数据)、单点、线段、有界多边形与无界区域; 多边形,也可能无界,算法必须显式区分这五种情形,不得混同处理。
对无界区域不能截断后声称得到真实直径。
\subsection{定位区域直径的算法} \textbf{边界交点枚举。}把约束统一写成 $a_jx+b_jy\le c_j$,两条边界的行列式
$\Delta_{jk}=a_jb_k-a_kb_j\ne0$ 时,交点为 $x=(c_jb_k-c_kb_j)/\Delta_{jk}$、
$y=(a_jc_k-a_kc_j)/\Delta_{jk}$。保留满足全部约束的交点,去重后构造凸包即得
$P$ 的顶点集。
凸函数 $\|x-y\|$ 的最大值在紧凸集的极点处取得,故当 $P$ 为有界多边形 \textbf{命题~1}(极点存在保证判空)\quad 至少有一次观测时,非空的角域交集一定存在
$P=\mathrm{conv}\{v_1,\dots,v_n\}$ 时 极点,因此可通过可行边界交点枚举判空。
\textbf{证明}\quad 取第一个角域的轴向 $u_1$,其中任意 $g$ 满足
$u_1\cdot(g-s_1)\ge\cos\delta_1\,\|g-s_1\|$,且 $\cos\delta_1>0$。在非空 $P$ 上
最小化线性函数 $u_1\cdot(g-s_1)$:由该不等式,以任一可行点的函数值截得的下水平
集有界,从而是非空紧集,最小值可达;最小化点集位于一条支撑直线上且有界,因而是
点或线段,取其点或端点即得 $P$ 的极点。二维线性约束的极点至少有两条法向量线性
无关的有效边界(否则沿所有有效边界的公共切向可作双向小扰动,与极点定义矛盾),
故必出现在上述交点枚举中。\hfill$\square$
无观测时 $P=\R^2$,应直接判为无界,不能用“没有交点”判为空集。
\textbf{有界性判定。}对非空 $P$ 定义衰退锥 $\mathcal{R}=\{d:Ad\le0\}$。若存在
$d\ne0$,则任取 $g_0\in P$ 都有 $g_0+td\in P$($t\ge0$),$P$ 无界;反之若 $P$
无界,取 $g_k\in P$ 使 $\|g_k-g_0\|\to\infty$,将 $Ag_k\le b$ 减去 $Ag_0\le b$、
除以 $\|g_k-g_0\|$ 并取极限,知单位向量 $(g_k-g_0)/\|g_k-g_0\|$ 的任一聚点 $d$
满足 $Ad\le0$。故 $P$ 有界当且仅当 $\mathcal{R}=\{0\}$。本模型的衰退锥被一个小于
$180^{\circ}$ 的闭角域约束,若含非零向量必含一条极射线,该射线平行于某条有效
约束边界,故只需检查每个法向量 $(a_j,b_j)$ 的两个切向方向 $(b_j,-a_j)$、
$(-b_j,a_j)$ 是否满足全部齐次不等式。
\textbf{分类约定。}可行交点为空时返回空集;存在非零衰退方向时返回无界;否则对
可行交点去重求凸包,按顶点数与仿射维数区分单点、线段和二维多边形。空集的直径
约定为无定义,无界区域的直径为 $+\infty$。显示窗口只用于绘图裁剪:任何大矩形都
不能取代衰退锥判定,更不能把截断图形的直径称为原无界区域的直径。
\subsection{定位区域直径的顶点定理}
\textbf{定理~1}(直径在顶点上取得)\quad 若 $P=\mathrm{conv}\{v_1,\dots,v_m\}$ 非空
且有界,则
\begin{equation} \begin{equation}
D(P)=\max_{1\le i<j\le n}\|v_i-v_j\| . D(P)=\max_{1\le i<j\le m}\|v_i-v_j\|.
\label{eq:diameter} \label{eq:diameter}
\end{equation} \end{equation}
$n$ 很小(等于检测点数的常数倍),直接枚举顶点对即可,复杂度 $O(n^2)$,结果可靠;
规模确有需要时可换用旋转卡壳算法 $O(n)$\cite{preparata,toussaint,mcgill}。本文以
顶点对枚举为基准实现,旋转卡壳仅作对照。
\subsection{直径圆能否覆盖定位区域} \textbf{证明}\quad 任取 $x,y\in P$,写成凸组合 $x=\sum_i\lambda_iv_i$、
$y=\sum_j\mu_jv_j$(权重非负且各自求和为 $1$),则
$x-y=\sum_{i,j}\lambda_i\mu_j(v_i-v_j)$。由三角不等式,
$\|x-y\|\le\sum_{i,j}\lambda_i\mu_j\|v_i-v_j\|\le\max_{i,j}\|v_i-v_j\|$;最远顶点对
本身属于 $P$,上界可达。\hfill$\square$
\textbf{结论:不一定。}反例:边长为 $D$ 的等边三角形,其直径为 $D$,但最小包围圆 $m$ 很小(为检测点数的常数倍),直接枚举顶点对即可,复杂度 $O(m^2)$;这是精确
半径为 $D/\sqrt{3}>D/2$,直径圆不能覆盖三角形区域。 算法而非近似,缺点仅在于大规模时的计算量,确有需要时可换旋转卡壳算法
$O(m)$\cite{preparata,toussaint,cgrl}。本文以顶点对枚举为基准实现,旋转卡壳仅作
对照。单点的直径为 $0$,线段的直径为端点距离。
直径圆覆盖判定可一次完成:设 $A,B$ 为 $P$ 的一对最远顶点,$\|A-B\|=D$。若存在直径 \subsection{直径圆覆盖的充要条件与反例}
为 $D$ 的圆覆盖 $P$,其圆心必为 $(A+B)/2$(因该圆须同时包含相距 $D$ 的两点)。故
只需检查全部顶点到 $(A+B)/2$ 的距离是否不超过 $D/2$;若失败,换任何一组直径对也 \textbf{定理~2}(覆盖判定)\quad 取任意一组最远顶点 $a,b$,记 $D=\|a-b\|$、
不可能成功,同时输出最坏超出距离与圆外顶点作为反例证据。 $o=(a+b)/2$。存在直径为 $D$ 的圆覆盖 $P$,当且仅当所有顶点满足
$\|v_i-o\|\le D/2$。
\textbf{证明}\quad 若半径 $D/2$、圆心 $z$ 的圆同时包含 $a,b$,则
$D\le\|a-z\|+\|z-b\|\le D$,两处不等号必须同时取等,故 $z$ 在 $a,b$ 连线上且到
两点等距,只能是中点 $o$;$D=0$ 时结论直接成立。又圆盘是凸集,包含全部顶点等价
于包含其凸包,故只需在这唯一可能的圆心处检查全部顶点。\hfill$\square$
该判定同时回答“以某条直径线段为直径的圆能否覆盖”与“能否移动一个同样大小的圆
使其覆盖”:检查失败时,移动圆心或更换最远顶点对均不可能成功。定义最大超出量
$E=\max_i\|v_i-o\|-D/2$:精确算术下不会出现严格负值(最远顶点对就在圆周上),
$E>0$ 即覆盖失败,取达到最大值的顶点即得可独立复核的失败证据。
\textbf{结论:直径圆不一定覆盖定位区域。}反例如表~\ref{tab:counterexample} 所示
(误差半角均取 $1^{\circ}$,符合题设测向条件)。
\begin{table}[htbp]
\centering
\caption{符合题设测向条件的反例:三点观测}
\label{tab:counterexample}
\begin{tabular}{ccc}
\toprule
检测点 & 坐标(米) & 示向度 \\
\midrule
$s_1$ & $(-1000,0)$ & $1^{\circ}$ \\
$s_2$ & $(540,-500\sqrt{3})$ & $121^{\circ}$ \\
$s_3$ & $(520,520\sqrt{3})$ & $241^{\circ}$ \\
\bottomrule
\end{tabular}
\end{table}
三个角域的下边界方向分别为 $0^{\circ},120^{\circ},240^{\circ}$,对应左半平面
$y\ge0$、$\sqrt{3}\,x+y\le40\sqrt{3}$、$y\le\sqrt{3}\,x$,其交为顶点 $A=(0,0)$、
$B=(40,0)$、$C=(20,20\sqrt{3})$ 的等边三角形。以 $s_1$ 为例,它到三顶点的方向分别
为 $0^{\circ},0^{\circ},\arctan(20\sqrt{3}/1020)\approx1.945^{\circ}$,均在
$[0^{\circ},2^{\circ}]$ 内,故上边界不切去该三角形;其余两站由绕三角形中心旋转
$120^{\circ}$ 的对称性同理成立,三个完整前向角域之交恰为该三角形。取真实源为
三角形中心 $g_*=(20,20\sqrt{3}/3)$:以 $s_1$ 为例,真实方位约 $0.649^{\circ}$,与
读数 $1^{\circ}$ 的偏差不超过 $1^{\circ}$,检测距离约 $1020$ 米,不超过 $1500$ 米,
另两站同理,故该反例符合题设的误差界与有效接收半径范围。此时 $D=40$ 米,以 $AB$
为直径的圆中心为 $(20,0)$,到 $C$ 的距离为 $20\sqrt{3}>20$ 米,不能覆盖;换任何
最远顶点对亦然。该三角形的最小包围圆即其外接圆,半径
$40/\sqrt{3}\approx23.094011$ 米。这同时说明“直径不超过 $40$ 米”不足以保证一次
清除。
\subsection{最小包围圆与可保证清除} \subsection{最小包围圆与可保证清除}
定位的最终目的是清除:清除半径为 $20$ 米,故正确判据是最小包围圆 定位的最终目的是清除(附录~2 第(8)项的 $20$ 米距离判据),故正确工具是最小
包围圆
\begin{equation} \begin{equation}
\rho(K)=\min_{z}\max_{g\in K}\|g-z\|\le 20 . \rho(K)=\min_{z}\max_{g\in K}\|g-z\|.
\label{eq:mec} \label{eq:mec}
\end{equation} \end{equation}
$\rho(K)\le 20$ 时,最小包围圆圆心即可作为清除点;更一般地,所有可保证清除的位置 对有限顶点集 $V$,$f(z)=\max_{v\in V}\|v-z\|$ 连续且随 $\|z\|\to\infty$ 趋于无穷,
组成 $C_{20}(K)=\bigcap_{g\in K}B(g,20)$,非空时可取其中距机器狗最近者以节省移动。 最小值存在;若两个不同中心 $c_1,c_2$ 都以半径 $r$ 覆盖 $V$,则中点 $c=(c_1+c_2)/2$
$D\le 40$ 只是必要条件。最小包围圆采用带固定随机种子的 Welzl 增量算法\cite{welzl} 对每个顶点满足
计算,保留全支撑点枚举法作独立对照,并对 $20$ 米阈值保留数值余量。 $\|v-c\|^2=(\|v-c_1\|^2+\|v-c_2\|^2)/2-\|c_1-c_2\|^2/4<r^2$,
与最小性矛盾,故最小包围圆唯一。在最优中心处,圆周上的顶点集 $T$ 满足
$c\in\mathrm{conv}(T)$(否则沿严格分离方向小幅移动中心,可使所有圆周点的距离同时
减小,产生矛盾);二维凸组合经仿射相关权重消元至多保留 $3$ 个点,故最小包围圆由
至多 $3$ 个圆周顶点支撑。进而若 $c=\sum_j\lambda_jp_j$ 为支撑点凸组合,则对任意
$z$ 有 $\sum_j\lambda_j\|p_j-z\|^2=r^2+\|c-z\|^2\ge r^2$,给出任何覆盖圆半径不能
小于 $r$ 的直接证据。
\textbf{演练验证。}对官方演练的三点观测离线复算:$\delta=1^{\circ}$ 时 求解采用带固定随机种子的 Welzl 随机增量算法\cite{welzl,mcgill}:打乱点序,若当前
$D=23.996723$ 米、$\rho=12.068583$ 米;$\delta=1.005^{\circ}$ 时 圆不包含新点,则在该点成为边界点的约束下求解较小子问题,边界点至多 $3$ 个;实现
$D=24.119088$ 米、$\rho=12.130377$ 米。两种口径下直径圆均不覆盖定位区域, 用显式栈避免递归深度限制,$3$ 个强制边界点必须用外接圆,不能替换成其无约束最小
但最小包围圆半径均小于 $20$ 米,即一点可保证清除,与可视化结果一致 圆。其期望线性复杂度依赖随机排列分析,不等于任意固定排列的最坏时间保证;另保留
\todonote{此处可补充定位区域图(figures/)}。 支撑点枚举法(单点零半径圆、两点直径圆、三点外接圆,最坏 $O(m^4)$)作独立对照。
$\rho(K)\le20$ 时,最小包围圆圆心即可作为清除点;更一般地,所有可保证清除的位置
组成
\begin{equation}
C_{20}(K)=\bigcap_{g\in K}B(g,20)=\bigcap_{v\in V}B(v,20),
\label{eq:c20}
\end{equation}
第二个等号来自圆盘的凸性;该集合非空当且仅当 $\rho(K)\le20$,非空时可取其中距
机器狗最近者以节省移动。相比之下,$D\le40$ 只是必要条件(见上节反例)。
\subsection{算法流程与演练复算}
综合上述结果,问题~1 的完整算法如下。
\textbf{算法~1}(角域交、直径与覆盖证据)
\begin{enumerate}[label=\arabic*.,leftmargin=2.5em]
\item 校验观测并进行坐标平移、尺度归一化,保留原误差半角;
\item 按 \eqref{eq:cross} 生成每次观测的半平面约束(含前向约束);
\item 枚举非平行边界交点,保留满足全部约束的点;无观测与空集分别处理;
\item 检验非零衰退方向;存在时报告无界并停止有限圆计算;
\item 对可行点去重并求凸包,识别单点、线段或多边形;
\item 枚举顶点对求直径及任意一组最远顶点;
\item 检查其中点到全部顶点的距离,输出最大超出量 $E$ 与失败顶点;
\item 求最小包围圆,换回原坐标,重新检查顶点包含性,输出清除半径余量。
\end{enumerate}
设半平面数为 $k$(约为观测数的 $3$ 倍)、顶点数为 $m$:边界交点枚举及全约束检查
为 $O(k^3)$,衰退方向检查为 $O(k^2)$,交点排序上界为 $O(k^2\log k)$,直径计算为
$O(m^2)$,覆盖证据检查为 $O(m)$;随机增量最小圆在随机排列下期望为 $O(m)$。整体仍
由半平面交点枚举主导,不能称为总体线性算法。数值实现上,数学结论使用精确不等式,
浮点计算先平移、归一化,再以位置容差、平行判定阈值和衰退方向容差分别处理不同
问题;接近平行或退化的输入应作精度与容差敏感性检查,任意追加固定小数裕量不能
替代严格的误差传播分析。清除判断采用 $\rho+\varepsilon_m\le20$,其中
$\varepsilon_m$ 为工程数值裕量。
\textbf{演练复算。}对官方演练案例 \texttt{U5ZW-P9KN-TCAG-R7ST} 的三点观测离线复算,
结果如表~\ref{tab:q1practice}。两种口径下直径圆均不覆盖定位区域($E>0$),但最小
包围圆半径均小于 $20$ 米,即存在一点可保证清除,与可视化结果一致。该演练未公开
源坐标且未执行清除,故仅用于观测交会与计算一致性复核,不能据此声称实测定位误差
或清除成功率。\todonote{此处可补充定位区域图(figures/)}
\begin{table}[htbp]
\centering
\caption{官方演练三点观测的离线复算结果}
\label{tab:q1practice}
\begin{tabular}{cccc}
\toprule
误差半角 & 直径 $D$ / 米 & 最小包围半径 $\rho$ / 米 & 直径圆最大超出 $E$ / 米 \\
\midrule
$1^{\circ}$ & 23.996723 & 12.068583 & 0.604002 \\
$1.005^{\circ}$ & 24.119088 & 12.130377 & 0.608486 \\
\bottomrule
\end{tabular}
\end{table}
\section{问题~2:第二检测点的主动选点模型} \section{问题~2:第二检测点的主动选点模型}
\subsection{首次测向后的候选集合} \subsection{建模思路来源}
设在 $s_1$ 处首次测得 \texttt{direction},示向度 $\theta_1$。记 问题~2 给定“某全向干扰源在一个检测点处测得的示向度”,要求“给出第二个检测点的
选择策略,以获得关于该干扰源较好的定位效果,并给出第二个检测点的候选区域”。
注意源类型明确为全向,不能混入问题~4 的朝向可见性条件。本问方法的取舍同样由
题面描述逐项确定。
\textbf{先接收、后优化。}附录~2 第(2)项规定各源有效接收半径在 $1000$ 至 $1500$
米之间且具体值未知。真实源位置未知时,若第二检测点距真源超过其实际接收半径,
第二次检测将返回 \texttt{no\_signal},任何定位收益都无从谈起。因此把本问拆成
先后两个问题:先构造“无论真源在候选集合内何处都能收到信号”的安全候选区域,
再在其中优化定位效果。若只追求较大交会角而不控制到真实源的距离,预期几何收益
可能根本无法实现。
\textbf{由误差描述确定最坏情形指标。}题面只给出有界误差(附录~2 第(1)项),没有
给出源位置的概率分布,也不存在可独立重抽样的测向噪声模型(同一地点误差固定,
重复检测不产生新信息)。因此不能把卡尔曼滤波、协方差传播或费舍尔信息直接用作
严格保证,本文以最坏情形的后验包围半径作为选点主目标\cite{boyd};交会角仍有
明确的几何意义,但只作局部解释与候选筛选依据。
\textbf{由区域描述确定活动范围。}题面第~1 页的 $1800$ 米圆域限制的是干扰源位置;
附录~3 说明机器狗位置通常不构成约束(接口坐标分量绝对值上限仅为数值防护)。
故第二检测点允许位于 $\Omega$ 之外,安全候选区域不受源位置圆域限制。
\textbf{由 near 机制确定分支处理。}附录~2 第(9)项规定检测点距源不超过 $5$ 米时
“无法获得示向度信息,此时可直接进行光学精确定位并清除干扰源”。返回
\texttt{near} 不是策略失败,而是定位效果更好的分支(不确定半径不超过 $5$ 米),
应单独建模并就地清除。
\textbf{由动作耗时确定成本项。}附录~2 第(5)、(6)项规定检测耗时 $5$ 秒、移动
速度 $5$ 米/秒,故第二点的成本取移动与检测耗时之和,作为后验半径择优之后的次
目标,避免任意混合米与秒。
\subsection{首次观测后的候选集合}
设在 $s_1$ 处首次测得 \texttt{direction},示向度 $\theta_1$,记 $u=u(\theta_1)$。
由角域模型、题面第~1 页的源位置圆域与附录~2 第(2)项的接收半径上界,真实源
$g$ 满足
\begin{equation} \begin{equation}
K_1=\Omega\cap W(s_1,\theta_1\pm\delta)\cap \overline{B}(s_1,1500), g\in K_1=\Omega\cap W(s_1,\theta_1,\delta)\cap B(s_1,R_+),
\qquad R_+=1500,
\label{eq:k1} \label{eq:k1}
\end{equation} \end{equation}
即目标区域、角域与最大可能接收圆盘的交。保留整个距离圆盘是保守处理:即使 即保守位置候选集合 $K_1$ 为闭凸紧集;观测一致时它必含真源,从而非空。首次返回
\texttt{direction} 还隐含“距离超过 $5$ 米”的排除,忽略它也不会丢失真源。 \texttt{direction} 还意味着 $\|g-s_1\|>5$(附录~2 第(9)项),但排除这个开圆盘
会破坏凸性,本文暂不使用该信息,保留包含真源的凸外包集合:由此得到的保证可能
更保守,但绝不误删真实位置。若计算得到 $K_1=\varnothing$,说明输入、频道、误差
界或数值处理与题设不一致,应返回不一致状态,不能继续给空集计算圆心。
\subsection{安全候选区域的解析非空证明} \subsection{安全候选区域的定义与非空判据}
第二个检测点 $q$ 必须保证:无论真实源位于 $K_1$ 内何处,$q$ 都落在其有效接收半径 第二个检测点 $q$ 必须保证:无论真源位于 $K_1$ 内何处,都有 $\|q-g\|\le R_-$
内(任何 $R_c\ge 1000$)。故安全候选区域定义为 ($R_-=1000$),从而对任何 $R_c\ge R_-$ 都能收到信号。定义
\begin{equation} \begin{equation}
\mathcal{Q}=\Bigl\{q:\max_{g\in K_1}\|q-g\|\le 1000\Bigr\} . F_K(q)=\max_{g\in K}\|q-g\|,\qquad
\mathcal{Q}(K)=\{q:F_K(q)\le R_-\}=\bigcap_{g\in K}B(g,R_-).
\label{eq:Q} \label{eq:Q}
\end{equation} \end{equation}
对一般的 $K_1$,$\mathcal{Q}$ 非空当且仅当 $\rho(K_1)\le 1000$。本题首次测向条件下 保证接收不等于保证返回示向度:距离不超过 $5$ 米时可能返回 \texttt{near},该分支
有更强的解析结论:取 $R=1500$、$\bm{u}$ 为示向度方向单位向量, 定位效果更好(见 6.6 节),不能视为策略失败。
\begin{equation}
a=\frac{R}{2\cos\delta},\qquad c=s_1+a\,\bm{u},
\end{equation}
则 $K_1\subseteq B(c,a)$。事实上任意候选 $g=s_1+t\,\bm{u}_\varphi$
($0\le t\le R$,$|\varphi-\theta_1|\le\delta$)满足
\begin{equation}
\|g-c\|^2=t^2+a^2-2at\cos(\varphi-\theta_1),
\end{equation}
该式关于 $t$ 为凸函数,最大值在 $t=0$ 或 $t=R$ 取得;$t=0$ 处值为 $a^2$,
$t=R$ 处由 $a=R/(2\cos\delta)$ 知其不超过 $a^2$。于是
$B(c,1000-a)\subseteq\mathcal{Q}$。取 $\delta=1.005^{\circ}$ 时
$a\approx 750.115391$ 米,安全圆盘半径约 $249.884609$ 米,严格为正;题设
$\delta=1^{\circ}$ 时同样成立。即使 $c$ 位于 $\Omega$ 外也合法,因为机器狗不受
源位置圆域限制。
\subsection{选点目标与算法} \textbf{命题~1}($F_K$ 的凸性与稳定性)\quad 对任意非空紧集 $K$,$F_K$ 为凸函数,
且 $|F_K(q_1)-F_K(q_2)|\le\|q_1-q_2\|$。
在安全圆盘内以“信息收益—成本”双指标选点:主目标为最坏情形后验包围圆半径 \textbf{证明}\quad 对每个固定的 $g$,距离函数关于 $q$ 凸,逐点取最大值保持凸性;
$\sup_{\theta'}\rho\bigl(K_1\cap W(q,\theta')\bigr)$,其中 $\theta'$ 取遍与 $K_1$ 由三角不等式 $\|q_1-g\|\le\|q_2-g\|+\|q_1-q_2\|$,对 $g$ 取最大得到一个方向的
及误差界一致的读数;次目标为移动与检测成本。实现上对目标位置与误差区间端点采样 不等式,再交换两点即得 Lipschitz 性。\hfill$\square$
并加密检查,交会角只作同分筛选指标,不为改善交会角越出已证明安全的候选区域。
若返回 \texttt{near},则源位于当前点 $5$ 米以内,可直接在当前位置尝试清除。 故 $\mathcal{Q}(K)$ 为闭凸集;非空时它含于任一 $B(g_0,R_-)$ 内,因而有界。
\textbf{定理~1}(非空判据)\quad $\mathcal{Q}(K)\ne\varnothing$ 当且仅当
$\rho(K)\le R_-$。
\textbf{证明}\quad 由定义 $\rho(K)=\min_q F_K(q)$;$F_K$ 连续且随 $\|q\|\to\infty$
趋于无穷,最小值可达,故“存在 $q$ 使 $F_K(q)\le R_-$”与“该最小值不超过 $R_-$”
完全等价。\hfill$\square$
当 $\rho(K)=R_-$ 时,安全区域仅含最小包围圆中心这个单点(唯一性见 5.6 节),因此
判据必须使用不严格不等式,不能把等号情形误判为空。
\textbf{外包圆给出的充分区域。}若已知 $K\subseteq B(c,r)$ 且 $r\le R_-$,则对任意
$\|q-c\|\le R_--r$ 的点都有 $\|q-g\|\le\|q-c\|+\|c-g\|\le R_-$,故
\begin{equation}
B(c,R_--r)\subseteq\mathcal{Q}(K).
\label{eq:sufficient}
\end{equation}
这给出容易计算的充分候选区域;但一个满足 $r>R_-$ 的宽松外包圆只能说明该外包圆
不能提供证书,不能据此判定真实的 $\mathcal{Q}(K)$ 为空。
\subsection{截断角域的解析最小包围圆}
首次角域狭窄($\delta=1^{\circ}$)这一题设特征,使 \eqref{eq:sufficient} 所需的
外包圆可以解析地算到最小。暂时去掉只会缩小集合的 $\Omega$ 约束,考虑完整截断
角域 $S=W(s_1,\theta_1,\delta)\cap B(s_1,R_+)$,其点可写成
$g=s_1+t\,u(\theta_1+\varphi)$($0\le t\le R_+$,$|\varphi|\le\delta$)。令
\begin{equation}
a=\frac{R_+}{2\cos\delta},\qquad c=s_1+a\,u.
\label{eq:ac}
\end{equation}
\textbf{定理~2}(截断角域的最小包围圆)\quad 对 $0\le\delta\le45^{\circ}$,$S$ 的
最小包围圆恰为 $B(c,a)$。
\textbf{证明}\quad 先证包含。对 $g=s_1+t\,u(\theta_1+\varphi)\in S$,
\begin{equation}
\|g-c\|^2=t^2+a^2-2at\cos\varphi.
\label{eq:dist}
\end{equation}
固定 $\varphi$ 时右端关于 $t$ 为凸二次函数,区间最大值在端点取得:$t=0$ 时等于
$a^2$;$t=R_+$ 时由 $\cos\varphi\ge\cos\delta$ 得
$\|g-c\|^2\le R_+^2+a^2-2aR_+\cos\delta=a^2$,最后一步代入了
$a=R_+/(2\cos\delta)$。故 $S\subseteq B(c,a)$。
再证最小。取 $p_0=s_1$、$p_{\pm}=s_1+R_+u(\theta_1\pm\delta)$,三点都在 $B(c,a)$
的圆周上。令 $\lambda_+=\lambda_-=1/(4\cos^2\delta)$、
$\lambda_0=1-1/(2\cos^2\delta)$;$\delta\le45^{\circ}$ 时三权重非负且和为 $1$,
直接代入得 $c=\lambda_0p_0+\lambda_+p_++\lambda_-p_-$。于是对任意中心 $z$,由加权
距离恒等式
\begin{equation}
\sum_j\lambda_j\|p_j-z\|^2=a^2+\|c-z\|^2\ge a^2,
\end{equation}
故任何覆盖这三点的圆半径不小于 $a$;而覆盖 $S$ 的圆必须覆盖这三点,结合包含性
知最小半径恰为 $a$。$\delta=0$ 时两个远端点重合,结论退化为长度 $R_+$ 的线段
直径圆,仍成立。\hfill$\square$
该推导不依赖源位置先验与任何概率分布;它给出完整截断角域的精确最小圆,与
$\Omega$ 相交后,真实 $K_1$ 的最小圆可能更小。
\subsection{本题可直接采用的安全候选圆盘}
由 $K_1\subseteq S\subseteq B(c,a)$ 与 \eqref{eq:sufficient},取
\begin{equation}
\mathcal{Q}_0=B(c,b),\qquad b=R_--a=1000-\frac{1500}{2\cos\delta},
\label{eq:Q0}
\end{equation}
数值见表~\ref{tab:q2disk}。
\begin{table}[htbp]
\centering
\caption{安全候选圆盘的解析参数}
\label{tab:q2disk}
\begin{tabular}{ccc}
\toprule
误差半角 $\delta$ & 轴向中心距离 $a$ / 米 & 安全候选半径 $b$ / 米 \\
\midrule
$1^{\circ}$ & 750.114246 & 249.885754 \\
$1.005^{\circ}$ & 750.115391 & 249.884609 \\
\bottomrule
\end{tabular}
\end{table}
两种口径下 $b>0$,故本题首次有效测向后的安全候选区域由解析证明严格非空,无需把
“若安全区域为空就去最小包围圆圆心”作为保底步骤(对一般候选集合,$\rho(K)>R_-$
时根本不存在保证接收的点)。几何上 $\mathcal{Q}_0$ 位于首测示向方向前方约 $750$
米处、半径约 $250$ 米,与首测点相距至少约 $500$ 米,还天然避免了同点重复测量不
产生新信息的问题(附录~2 第(1)项)。机器狗不受源位置圆域限制,即使 $c$ 位于
$\Omega$ 外,选点也合法。为抵消坐标计算与动作提交中的工程舍入,可取缩小区域
$\mathcal{Q}_\eta=B(c,b-\eta)$($0<\eta<b$,如 $\eta=0.01$ 米):若圆心与提交位置
的合计偏差不超过 $\eta$,三角不等式保证仍有 $\|q-g\|\le1000$;这是可调工程选择,
不是题面要求。若有更精细的 $K_1$ 外包圆,可得更大的充分区域;这些扩展均属性能
优化,不影响 $\mathcal{Q}_0$ 的正确性。
\subsection{“较好的定位效果”的数学定义}
\textbf{保守后验集合。}对 $q\in\mathcal{Q}_0$,若返回 \texttt{direction} 及读数
$\beta$,定义 $K_d(q,\beta)=K_1\cap W(q,\beta,\delta)$(继续忽略距离超过 $5$ 米的
非凸排除信息),真源必在其中;若返回 \texttt{near},定义
$K_n(q)=K_1\cap B(q,5)$,故 $\rho(K_n)\le5$,可直接在当前位置光学定位并清除,满足
$20$ 米清除条件,不必强行再取一个角度。以 $d_{\mathbb{S}^1}$ 记圆周角距离,对
$\|g-q\|>5$ 的候选位置记真实方位 $h_q(g)=\operatorname{atan2}(g_y-q_y,g_x-q_x)$,
则可能读数集合为
$\mathcal{B}(q)=\{\beta:\exists\, g\in K_1,\ \|g-q\|>5,\ d_{\mathbb{S}^1}(\beta,h_q(g))
\le\delta\}$。这里用所有允许误差描述可能读数,而不是假设误差可以随机独立重抽样。
\textbf{最坏后验半径指标。}定义 $J(q)$ 为所有可能 \texttt{direction} 分支
$\rho(K_d(q,\beta))$ 与非空 \texttt{near} 分支 $\rho(K_n(q))$ 的上确界,即未来所有
允许观测下最坏的保守包围半径;不存在的观测分支不参与取最大。选点主目标即在安全
候选区域内降低 $J(q)$。该指标直接服务一次清除要求:$J(q)\le20$ 时每个可能分支都
有半径不超过 $20$ 米的保守定位圆;它比面积更贴合任务——面积较小的集合仍可能
十分狭长。注意后验总是 $K_1$ 的子集,故 $J(q)\le\rho(K_1)$,但不一定严格小于:
不能仅由“增加一次观测”推断精度必然严格改善,更不能保证两次测向即达 $20$ 米
阈值。
\textbf{移动成本与字典序。}连续测量同一频道时,本次动作的虚拟时间增量为
\begin{equation}
C(q)=\|q-s_1\|/5+5\ \text{秒}.
\label{eq:cost}
\end{equation}
以 $\widehat{J}(q)$ 表示实际计算的评估量(6.8 节取保守上界 $\overline{J}(q)$),
推荐先按后验半径择优,再保留满足 $\widehat{J}(q)\le J_{\min}+\tau$ 的近优点并取
其中 $C(q)$ 最小者,其中 $\tau\ge0$ 是显式声明的定位容忍量(米),$\tau=0$ 对应
严格字典序;本文不预设未经实验支持的最优 $\tau$。
\subsection{交会角的局部几何解释}
在假定真实位置 $g$ 附近,记两站距离为 $r_1,r_2$,真实视线单位向量为 $u_1,u_2$,
对应法向量为 $n_1,n_2$。角误差很小且位置扰动相对站距很小时,方位函数的一阶展开
给出 $n_i\cdot\Delta g\approx r_ie_i$($|e_i|\le\delta_{\mathrm{rad}}$,弧度),即
局部不确定区域近似由两条带状约束 $|n_i\cdot\Delta g|\le r_i\delta_{\mathrm{rad}}$
限定。若视线交会角为 $\phi$,法向量矩阵的行列式绝对值为 $|\sin\phi|$,对法向坐标
中的矩形作线性逆变换,得近似面积
\begin{equation}
A_{\mathrm{loc}}\approx\frac{4\,r_1r_2\,\delta_{\mathrm{rad}}^{2}}{|\sin\phi|}.
\label{eq:anglearea}
\end{equation}
这解释了两点:视线近于平行或反向时误差被显著放大;在距离不变的局部比较下,接近
直角的交会较有利。但真实源位置未知,$r_2$ 与 $\phi$ 随 $g$ 改变,且有限角域并非
无限带状区域,故不能由此推出“总应横移固定距离”或“对某个假定源位置成
$90^{\circ}$ 即全局最优”。本文仅用它优先考虑轴线两侧的候选点,最终仍以后验集合
指标评价,交会角只作同分筛选指标。
\subsection{圆弧先验的保守离散与读数区间评估}
\textbf{外包切线多边形。}直接连接圆周采样点得到的是内接多边形,会错误排除圆盘
边缘的真实位置。为复用问题~1 的半平面工具,取 $M\ge3$ 个均匀法向量
$v_j=u(2\pi j/M)$,定义
\begin{equation}
P_M(o,R)=\{x:v_j\cdot(x-o)\le R,\ j=0,\dots,M-1\}.
\end{equation}
由柯西不等式,$B(o,R)\subseteq P_M(o,R)$;相邻切线交点到圆心的距离为
$R\sec(\pi/M)$,故单个圆盘外包的最大径向超出不超过 $R[\sec(\pi/M)-1]$。令
$\widetilde{K}_1=P_M(0,1800)\cap W(s_1,\theta_1,\delta)\cap P_M(s_1,1500)$,则
$K_1\subseteq\widetilde{K}_1$,对任何第二读数再求半平面交仍保留真源。靠近切触或
退化情形须加密检查,不能把单圆径向误差未经论证直接当成最终定位半径的误差界。
安全选点仍使用解析的 $\mathcal{Q}_\eta$:即使粗糙外包多边形的最小圆偏大,也不能
据此推翻解析安全区域的非空结论。若改用任意有界凸外包多边形
$\widetilde{K}=\mathrm{conv}\{v_j\}$,则
$\max_{g\in\widetilde{K}}\|q-g\|=\max_j\|q-v_j\|$(与 5.4 节相同的凸组合论证),
其保证接收区域由有限个圆盘约束 $\|q-v_j\|\le1000$ 给出;离散区域为空时优先加密
或回到解析候选盘,不把离散失败误报为问题无解。
\textbf{读数区间的保守评估。}仅枚举少量假定源位置与误差端点,只得到被枚举情形的
最大值,可能漏掉真正最坏的读数。将整周按圆周意义划分为若干区间 $I_j$(中心
$\beta_j$、宽度 $h_j$,要求 $\delta+h_j/2<90^{\circ}$,跨 $0^{\circ}$ 的区间按
圆周距离处理)。
\textbf{命题~2}\quad 对任意 $\beta\in I_j$,有
$W(q,\beta,\delta)\subseteq W(q,\beta_j,\delta+h_j/2)$。
\textbf{证明}\quad 左侧角域内任意非顶点位置,其方向到 $\beta$ 的圆周距离不超过
$\delta$,而 $\beta$ 到区间中心的距离不超过 $h_j/2$,由圆周距离的三角不等式,其
方向到中心的距离不超过两者之和;顶点在两个闭角域中均被保留。\hfill$\square$
定义 $U_j(q)=\widetilde{K}_1\cap W(q,\beta_j,\delta+h_j/2)$,则落在该区间的任何
真实读数对应的保守后验都含于 $U_j(q)$,从而
$\rho(K_d(q,\beta))\le\rho(U_j(q))$;\texttt{near} 分支取统一上界
$\min\{5,\rho(\widetilde{K}_1)\}$。令 $\overline{J}(q)$ 为所有非空 $U_j(q)$ 的最小
包围半径与该上界的最大值,则 $J(q)\le\overline{J}(q)$(精确几何计算下成立;浮点
实现还须另行给出包含性与数值误差处理)。二分角区间或增加外包切线都使相应上界
单调不增,给出稳定的自适应加密方向。实际可先以少量读数采样粗筛,再对入围点使用
完整区间上界:粗筛只决定计算资源分配,最终报告的保守上界必须来自完整覆盖的
区间,不能来自粗筛样本最大值。
\subsection{选点算法与边界情形}
\textbf{算法~2}(安全区域内的有限候选主动测向)
\begin{enumerate}[label=\arabic*.,leftmargin=2.5em]
\item 核验首次观测为同一全向源的有效示向度,构造 $K_1$ 或其保守表示;
\item 按 \eqref{eq:ac} 计算 $a$、$c$ 与 $b=1000-a$,选取满足误差预算的缩小半径
$b-\eta$;
\item 构造有限候选集:圆心 $c$ 及
$q=c+r_\ell(\cos\psi_j\,u+\sin\psi_j\,u_\perp)$($0<r_\ell\le b-\eta$、
$\psi_j=2\pi j/N_\psi$、$u_\perp=(-\sin\theta_1,\cos\theta_1)$),全部候选
自动满足接收距离保证;
\item 对每个候选点构造外包后验并评估 $\overline{J}(q)$,保存最坏角区间及对应
包围圆作为评估依据;
\item 优先取 $\overline{J}$ 较小者,按预先声明的 $\tau$ 筛出近优点后比较移动
检测成本,必要时以固定顺序消除完全同分;
\item 在计算预算内对入围候选附近加密位置、细分最坏角区间并增加外包切线;预算
耗尽时返回当前已验证安全的最好点;
\item 在所选位置测量同一频道:若 \texttt{near} 则就地清除;若 \texttt{direction}
则用实际读数更新候选集合并复算最小包围圆,半径仍大于 $20$ 米时继续测向,
不宣称两次定位已经完成;
\item 若在距离保证条件下意外返回 \texttt{no\_signal},核查动作是否被接受、频道
是否正确、源是否仍存在及坐标模型是否一致;原因查明前不按正常
\texttt{direction} 分支更新候选。
\end{enumerate}
例如可取 $3$ 层半径、每层 $16$ 个方向加圆心共 $49$ 个候选点起步;这只是位置搜索
的数值分辨率示例,与问题~3 的 $49$ 点覆盖网格无关,也不是已优化参数。设候选数为
$N_q$、角区间数为 $N_\beta$、每个后验的半平面数为 $k$,复用问题~1 的边界枚举时
主计算量约为 $O(N_qN_\beta k^3)$,另加直径或最小圆计算;选点器自身的运行时间不能
忽略。算法输出保证的是:所选点位于已证明安全的区域内,并在给定有限候选与评估
精度下按既定规则择优;本文未证明 $q\mapsto J(q)$ 为凸函数,也未证明有限候选的
最优点就是整个 $\mathcal{Q}(K_1)$ 中的全局最优点。
\textbf{边界情形。}(i)$K_1$ 为空:报告模型或数据不一致,不构造虚假圆心;
(ii)首次结果已是 \texttt{near}:直接清除,不再套用本问流程;
(iii)一般集合满足 $\rho(K)=1000$:安全区域退化为最小包围圆中心这个单点;
(iv)$\rho(K)>1000$:不存在对该集合全部位置保证接收的点,圆心仅是最小化最坏
距离的探索选择,改善交会角若要求偏离该中心还会牺牲最坏距离最优性,两项冲突的
要求不能同时称为已保证;(v)外包圆半径大于 $1000$:只能说明该证书不足,不能
判真实安全区域为空;(vi)测量轴接近 $0^{\circ}/360^{\circ}$:使用向量约束与
圆周区间,避免角度断点错误;(vii)两次测向交会较差:保留完整后验并继续测量,
不把小面积当成小直径;(viii)源类型为定向:距离证书仍成立,但接收还受朝向
限制,不能直接沿用本问的接收保证(见问题~4)。
\todonote{候选区域示意图与选点对比实验待补} \todonote{候选区域示意图与选点对比实验待补}
\section{问题~3:全向干扰源的搜索定位与清除调度} \section{问题~3:全向干扰源的搜索定位与清除调度}
@@ -555,6 +1010,8 @@ $1000$ 米、\texttt{no\_signal} 对定向源不删位置、停止条件需覆
\url{https://doc.cgal.org/latest/Bounding_volumes/}, 2026. \url{https://doc.cgal.org/latest/Bounding_volumes/}, 2026.
\bibitem{cgrl} McGill School of Computer Science. Rotating Calipers[EB/OL]. \bibitem{cgrl} McGill School of Computer Science. Rotating Calipers[EB/OL].
\url{https://www-cgrl.cs.mcgill.ca/~godfried/research/calipers.html}, 2026. \url{https://www-cgrl.cs.mcgill.ca/~godfried/research/calipers.html}, 2026.
\bibitem{boyd} Boyd S, Vandenberghe L. Convex Optimization[M]. Cambridge:
Cambridge University Press, 2004.
\end{thebibliography} \end{thebibliography}
\clearpage \clearpage
@@ -585,12 +1042,12 @@ $1000$ 米、\texttt{no\_signal} 对定向源不删位置、停止条件需覆
以下为支撑模型计算的核心源代码,完整可运行代码以支撑材料压缩包为准。 以下为支撑模型计算的核心源代码,完整可运行代码以支撑材料压缩包为准。
\subsection{\texttt{geometry/localization.py}:交会定位几何内核} \subsection{\texttt{src/mcm26b/geometry/localization.py}:交会定位几何内核}
\lstinputlisting[language=Python]{../../../geometry/localization.py} \lstinputlisting[language=Python]{../../src/mcm26b/geometry/localization.py}
\subsection{\texttt{geometry/planning.py}:问题~2 安全候选区域} \subsection{\texttt{src/mcm26b/geometry/planning.py}:问题~2 安全候选区域}
\lstinputlisting[language=Python]{../../../geometry/planning.py} \lstinputlisting[language=Python]{../../src/mcm26b/geometry/planning.py}
\end{document} \end{document}