\section{问题三:全向多源的覆盖搜索与滚动调度} \subsection{统一时间目标与任务状态} 按式~\eqref{eq:time} 的计时记账,优化目标是在全部源清除的约束下最小化虚拟耗时 $T$。 题目统计的平均定位清除时间是 $\bar T=T/N_c^+$; 不能用每次清除动作的固定 $5$ s 代替。 清除请求中的频道是目标频道,不改变测向机频道; 进入与退出均不增加虚拟时间,因此路径终点自由,无需返回原点。 各频道的状态按“未知、已发现、可清除、已清除、已证无源”管理。 首次获得 $\direction$ 或 $\near$ 即确立该频道存在源。 几何证书仅决定能否清除,成功响应才将状态改为已清除。 无源频道必须有覆盖或候选集排空的证据,不能由连续几次无信号直接推断。 \subsection{七点覆盖的解析证明} 取站点集合 \begin{equation} S(a)=\{(0,0)\}\cup \left\{a\left(\cos\frac{k\pi}{3},\sin\frac{k\pi}{3}\right):k=0,\ldots,5\right\}. \label{eq:seven} \end{equation} \begin{proposition}[七点全向覆盖] 当 $0r_{\mathrm{eff}}\ge1000, \end{equation} 其排除圆盘会使候选集非凸,因此凸表示不直接扣除负观测圆盘, 而由另一套网格幸存集 $\mathcal G_c$ 处理。 网格边长为 $\ell=14.65$ m,每格中心与格内点的最大距离为 $\epsilon_g=\ell/\sqrt2$。初始保留所有可能与 $\Omega$ 相交的格, 按以下充分排除条件更新格心 $z$: \begin{equation} \begin{array}{ll} \sgnless: & \norm{z-s}\le1000-\epsilon_g\ \Rightarrow\ \text{删除};\\ \near: & \norm{z-s}>5+\epsilon_g\ \Rightarrow\ \text{删除};\\ \direction: & \norm{z-s}>1500+\epsilon_g\ \Rightarrow\ \text{删除}. \end{array} \label{eq:gridupdate} \end{equation} 方向观测另外检查角差。若 $d=\norm{z-s}>\epsilon_g$, 源所在格引起的方位偏差可由 $\arcsin(\epsilon_g/d)$ 上界; 实现使用更保守的距离内缩版本,并在测点附近不作方位删格。 只有角差超过 $\delta_{\mathrm{eff}}$ 加格内角裕量时才删除。 在上述整格排除条件下,真源所在格不会被合法观测删除。 因此幸存集为空可证明该频道不存在源。 若全部幸存格心均满足 $\norm{z-s}>1500+\epsilon_g$, 则在 $s$ 测量必无信号,且所有幸存格已在最小接收圆盘外, 该观测不能带来进一步排除,可跳过并在账本中记录推断依据。 这避免了为已知无信息的“站点、频道”对重复支付检测与换频时间。 \subsection{信息增益选点与清除证书} 问题二的算法2用于基线定位和安全后备; 默认 \texttt{BayesLoop} 采用幸存网格上的信息评分。 有安全盘时在其中生成环形候选,并增加与当前接近方向相关的候选; 无安全盘时在网格最小圆附近生成探索环。 当前位置也可参与评分,因而并非所有候选均具有算法2的接收保证。 对候选 $q$ 计算 \begin{equation} J_{\mathrm{IG}}(q)= \widehat{\mathbb E}\!\left[ \log\frac{|\mathcal G_c^{\,\mathrm{post}}(q,Y)|}{|\mathcal G_c|} \right] \lambda\left(\frac{\norm{p-q}}5+\frac{\norm{q-m_c}}5\right), \label{eq:ig} \end{equation} 其中 $\lambda=0.05$,空分支用正的小值截断。 较小的对数幸存比例意味着较大信息收益,移动项则限制为测量而产生的绕行。 评分最多取 $800$ 个子样本及 $7$ 个代表假设, 并以均匀 $r_{\mathrm{eff}}\in[1000,1500]$ 估计接收概率。 这里的“贝叶斯”体现对假设分支的加权决策,不等同于已知官方先验下的精确后验推断。 安全判断使用完整候选集合,而非上述评分样本。 凸候选集的清除判据为 \begin{equation} \rho_c+b_c+0.5\le20, \label{eq:clearpoly} \end{equation} 其中 $b_c\ge0$ 为代码的累计附加余量。 凸多边形本身已外包真源,$\rho_c$ 是该实际多边形的包围半径; $b_c$ 的具体记账近似不作为外包正确性的必要依据。 若负观测使网格更紧,也可使用 \begin{equation} \rho_{\mathrm{grid}}+\epsilon_g+0.5\le20 \label{eq:cleargrid} \end{equation} 的网格证书,其中 $\rho_{\mathrm{grid}}$ 为幸存格心的最小包围半径。 满足任一证书即可选择清除点。 若证书尚有余量,可将圆心向当前位置平移 $\Delta$, 只要 $\rho+\Delta$ 不超过证书允许半径,包含关系仍由三角不等式成立。 \subsection{开放路径上的滚动任务排序} 统一任务表包含三类任务:覆盖站的批量扫频、已发现源的定位测量、 已有证书的清除。站内检测优先使用测向机当前频道,减少不必要的第一次换频。 对任务序列 $\pi$,排序代价为 \begin{equation} C(\pi)=\frac{\norm{p-q_{\pi_1}}}{5} +\sum_{j=1}^{k-1}\frac{\norm{q_{\pi_j}-q_{\pi_{j+1}}}}5 +\sum_{j=1}^{k}t_{\pi_j}(c_{j-1}), \label{eq:route} \end{equation} 其中服务时间 $t_{\pi_j}$ 依赖进入任务时的频道,清除不改变该频道。 从最近邻初序开始,默认最多进行 $4$ 轮开放路径 2-opt 改进; 每次只执行当前序列的首任务,得到新观测后重新生成和排序。 这样新发现的源、收缩后的清除点和已证无源的频道都能及时改变路线。 当前未启用精确任务序动态规划及路线感知探点开关, 因此不将这些可选功能写为默认策略的既有性能来源。 已停靠位置可以顺带补测:要求此前未在该位置测过、距离保证成立、 尚无清除证书,且预测半径有足够收缩。一次机会测量仍支付检测和换频费用, 收益来自避免额外移动。同地测向误差固定,反复原地测量不能当作独立样本平均。 \subsection{算法三与完成条件} \begin{algorithmblock}{算法3:七点覆盖、网格更新与滚动调度(对应 algo-3)} \textbf{输入:}题设参数、七站计划、合法观测接口。\quad \textbf{输出:}逐频道处理状态与会话统计。 \begin{enumerate}[leftmargin=2em,itemsep=1pt,topsep=4pt] \item 检验七点解析覆盖界,初始化频道状态、覆盖账本和网格幸存集。 \item 进入后同步记录位置、频道及剩余现实预算,必要时执行有信息的机会测量。 \item 构建覆盖、定位和清除任务;跳过能够证明无信息的检测。 \item 按最近邻与开放路径 2-opt 排序,执行首任务,更新候选集和频道状态。 \item 若出现清除证书,安排清除;清除失败后先补充观测,不直接宣称完成。 \item 若已清除 $16$ 个源,或每个频道均已清除或有严格无源证据,则退出。 否则返回步骤2;预算不足或异常时退出并报告未解决频道。 \end{enumerate} \end{algorithmblock} “清除数达到 $16$”利用题设数量上界; “发现并清除 $10$ 个”只达到数量下界,不能作为完成证明。 对任意已存在的 $16$ 个不同频道,也可提前排除其余未知频道, 但已发现而未清除的源仍必须继续处理。 覆盖证明保障发现,清除证书保障单次动作的正确性, 两者均不自动保证在有限预算内完成全部定位。 当前每轮追加有效定位测量上限为 $8$; 停滞、协议异常或预算耗尽时应如实报告未完成。 程序以接口返回的现实预算为准,并预留退出时间, 实际计时在整数微秒状态上累计,避免用实机运行秒数代替虚拟动作耗时。 \subsection{运行过程示例} 图~\ref{fig:replay3} 回放一局全向演练(案例 \texttt{BBM9-HZG2-77N5-NKKC},$10$ 个源): 左图为移动轨迹、检测示向度与已清除频道,右上方为事件流水, 下方为虚拟时间轴上的检测与清除时刻。 该局说明覆盖扫描、定位测量与清除三类任务的交替关系, 以及为接收向外发射的源而短时越出 $\Omega$ 边界的路径形态;它属于演练留档,不计入正式成绩。 \begin{figure}[htbp] \centering \includegraphics[width=0.85\linewidth]{replay-webui-q3-omnidirectional.png} \caption{全向源演练局(\texttt{BBM9-HZG2-77N5-NKKC})的运行回放。 该局为演练案例,非正式测试记录。} \label{fig:replay3} \end{figure}