论文更改与图更改
Co-authored-by: Pengheng <Horldsence@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,205 @@
|
||||
\section{问题三:全向多源的覆盖搜索与滚动调度}
|
||||
\subsection{统一时间目标与任务状态}
|
||||
设整个会话移动距离为 $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^+$;
|
||||
不能用每次清除动作的固定 $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}[七点全向覆盖]
|
||||
当 $0<a/\sqrt3\le R$ 时,任意 $g\in\Omega$ 到最近站点的距离不超过
|
||||
\begin{equation}
|
||||
D_{\mathrm{cov}}(a)=
|
||||
\max\left\{\frac a{\sqrt3},\
|
||||
\sqrt{R^2+a^2-\sqrt3Ra}\right\}.
|
||||
\label{eq:coveragebound}
|
||||
\end{equation}
|
||||
\end{proposition}
|
||||
\begin{proof}
|
||||
设 $g$ 距原点为 $r$,其方位与最近环站的夹角不超过 $\pi/6$。
|
||||
若 $r\le a/\sqrt3$,选取原点即可。
|
||||
若 $r\ge a/\sqrt3$,由余弦定理,距最近环站的平方不超过
|
||||
$r^2+a^2-\sqrt3ar$。
|
||||
该凸二次式在 $[a/\sqrt3,R]$ 上的最大值于端点取得,
|
||||
分别为 $a^2/3$ 与 $R^2+a^2-\sqrt3aR$。
|
||||
\end{proof}
|
||||
当前 \texttt{bayes} 策略取 $a=1159.7$ m,
|
||||
由式~\eqref{eq:coveragebound} 得 $D_{\mathrm{cov}}=984.539136$ m,
|
||||
比最小接收半径小约 $15.461$ m。
|
||||
因此每个合法全向源至少在一站可被接收。
|
||||
某频道在七站全部为无信号,就构成该频道不存在源的严格证据。
|
||||
覆盖账本以“站点、频道”为索引,路过站点并不等于已检测该频道。
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\begin{tikzpicture}[x=0.0019cm,y=0.0019cm,font=\small]
|
||||
\begin{scope}
|
||||
\clip (0,0) circle (1800);
|
||||
\fill[inkblue!8] (0,0) circle (1000);
|
||||
\foreach \angle in {0,60,120,180,240,300}{
|
||||
\fill[inkblue!7] (\angle:1159.7) circle (1000);
|
||||
\draw[inkblue!30] (\angle:1159.7) circle (1000);
|
||||
}
|
||||
\draw[inkblue!30] (0,0) circle (1000);
|
||||
\end{scope}
|
||||
\draw[thick] (0,0) circle (1800);
|
||||
\draw[dashed,warmgray] (0,0) circle (1159.7);
|
||||
\foreach \angle in {0,60,120,180,240,300}{
|
||||
\fill[inkblue] (\angle:1159.7) circle (26);
|
||||
}
|
||||
\fill[inkblue] (0,0) circle (26) node[below left] {$O$};
|
||||
\draw[->] (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{七点全向覆盖构造。图示站点来自配置参数,不表示正式测试的实际轨迹。}
|
||||
\label{fig:seven}
|
||||
\end{figure}
|
||||
|
||||
顺次从原点访问六个环站的简单开放路线长为 $6a$,
|
||||
但实际路线还包含定位与清除偏移,不能将 $6a/5$ 当作任务总耗时。
|
||||
历史 $49$ 点方格与半径 $1200$ m 的七点批量策略仍保留在代码中作为对照;
|
||||
本文不引用它们在自建场景中的性能数字,以保持实验数据来源一致。
|
||||
|
||||
\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} 采用幸存网格上的信息评分。
|
||||
有安全盘时在其中生成环形候选,并增加与当前接近方向相关的候选;
|
||||
无安全盘时在网格最小圆附近生成探索环。
|
||||
当前位置也可参与评分,因而并非所有候选均具有算法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$;
|
||||
停滞、协议异常或预算耗尽时应如实报告未完成。
|
||||
程序以接口返回的现实预算为准,并预留退出时间,
|
||||
实际计时在整数微秒状态上累计,避免用实机运行秒数代替虚拟动作耗时。
|
||||
Reference in New Issue
Block a user