\section{问题三:全向多源的覆盖搜索与滚动调度} \subsection{统一时间目标与任务状态} <<<<<<< HEAD 设整个会话移动距离为 $L$,检测、换频、成功和失败清除次数分别为 $N_m,N_s,N_c^+,N_c^-$。忽略每段移动时间的微秒量化时,总虚拟耗时为 \begin{equation} T=\frac{L}{5}+5N_m+N_s+5N_c^++3N_c^-. \label{eq:time} \end{equation} 优化目标是在全部源清除的约束下最小化 $T$。 题目统计的平均定位清除时间为 $\bar T=T/N_c^+$,包含搜索、定位与清除的全部耗时。 清除请求中的频道指定操作对象,测向机保持原频道; 进入与退出的虚拟耗时为零,因此采用终点自由的开放路径模型。 ======= 按式~\eqref{eq:time} 的计时记账,优化目标是在全部源清除的约束下最小化虚拟耗时 $T$。 题目统计的平均定位清除时间是 $\bar T=T/N_c^+$; 不能用每次清除动作的固定 $5$ s 代替。 清除请求中的频道是目标频道,不改变测向机频道; 进入与退出均不增加虚拟时间,因此路径终点自由,无需返回原点。 >>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231 各频道的状态按“未知、已发现、可清除、已清除、已证无源”管理。 首次获得 $\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}[七点全向覆盖] 当 $0] (0,0)--(1159.7,0) node[midway,above] {$a$}; \draw[->,warmgray] (0,0)--(30:1800) node[midway,above left] {$R$}; \node[anchor=west,align=left] at (2100,750) {实线:源位置边界\\虚线:六站所在圆\\浅色圆盘:$1000$ m 接收保证}; \node[anchor=west,align=left] at (2100,-650) {$a=1159.7$ m\\$R=1800$ m\\最坏距离 $\le984.539$ m}; \end{tikzpicture} \caption{七点全向覆盖的站点构造与接收圆盘。} ======= \includegraphics[width=0.42\linewidth]{geo-q3-seven-point-coverage.png} \caption{七点全向覆盖构造。站点取自配置参数 $a=1159.7$ m, 圆圈为 $1000$ m 接收盘,最差点位于 $(0,-1825)$ 附近,最坏距离 $\le984.539$ m。} >>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231 \label{fig:seven} \end{figure} 顺次从原点访问六个环站的开放路径长为 $6a$。 任务总路径由覆盖站间移动以及定位、清除所需的局部移动共同构成。 \subsection{正负观测的双重候选表示} 每个已发现频道维护凸外包 $P_c^{\mathrm{out}}$。 $\direction$ 将候选集与 $\B(s,1500)$ 外切多边形及测向角域相交; $\near$ 与 $\B(s,5)$ 外切多边形相交。 全向源的 $\sgnless$ 意味着 \begin{equation} \norm{g-s}>r_{\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} 进一步采用网格候选集上的信息增益。 存在保证接收圆盘时,在其内部生成环形候选并补充当前接近方向上的测点; 其余情况下,在网格最小包围圆附近生成环形采样点。 候选集合同时包含当前位置与探索点,分别根据预期信息增益和移动代价评分。 对候选 $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$ 与 $0.5$ m 共同提供附加数值裕量。 若负观测使网格更紧,也可使用 \begin{equation} \rho_{\mathrm{grid}}+\epsilon_g+0.5\le20 \label{eq:cleargrid} \end{equation} 的网格清除判据,其中 $\rho_{\mathrm{grid}}$ 为候选格心的最小包围半径。 满足任一充分条件即可选择清除点。 利用剩余距离裕量,可将圆心向当前位置平移 $\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$”利用题设数量上界。 对任意已存在的 $16$ 个不同频道,也可提前排除其余未知频道, 但已发现而未清除的源仍必须继续处理。 覆盖条件用于判定搜索范围,清除充分条件用于确定操作位置。 当前每轮追加有效定位测量上限为 $8$; 停滞、协议异常或预算耗尽时,记录各频道状态并终止。 程序以接口返回的现实预算为准,并预留退出时间, <<<<<<< HEAD 虚拟动作耗时以整数微秒累计,程序运行时间由官方统计单独记录。 ======= 实际计时在整数微秒状态上累计,避免用实机运行秒数代替虚拟动作耗时。 \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} >>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231