46
This commit is contained in:
@@ -33,28 +33,17 @@ python scripts/audit_paper_formal.py --snapshot docs/paper/data/formal-results.j
|
||||
\toprule
|
||||
文件或目录 & 用途\\
|
||||
\midrule
|
||||
<<<<<<< HEAD
|
||||
\pathtext{src/mcm26b/} & 几何计算、集合估计、覆盖优化、任务排序与通信实现\\
|
||||
\pathtext{src/mcm26b/guarantee/plans/} & 第四问站点方案与离散验证参数\\
|
||||
\pathtext{scripts/audit_paper_formal.py} & 正式文件核对、统计计算与表格生成\\
|
||||
\pathtext{scripts/build_paper_support.py} & 矢量图、源码附录与支撑包生成\\
|
||||
\pathtext{docs/paper/data/} & 六个正式案例的统计快照、表格及校验值\\
|
||||
\pathtext{docs/paper/sections/} & 分章论文源文件\\
|
||||
\pathtext{docs/paper/figures/} & 几何示意图与正式耗时图的矢量源文件\\
|
||||
\pathtext{Jammers-simulator-full/test/} & 六份原名官方正式日志\\
|
||||
=======
|
||||
\pathtext{src/mcm26b/} & 四问几何、信念、覆盖、调度与串行通信实现\\
|
||||
\pathtext{src/mcm26b/guarantee/plans/} & 第四问已实现的覆盖计划及验证参数\\
|
||||
\pathtext{project/} & 最优与基线配对对比框架及其冻结基准集结果\\
|
||||
\pathtext{scripts/audit_paper_formal.py} & 正式文件对应核对、匿名快照及表格复算\\
|
||||
\pathtext{scripts/build_paper_support.py} & 对比表、矢量图、源码附录与支撑包生成\\
|
||||
\pathtext{scripts/build_figure_data.py}、\pathtext{scripts/matlab/} & 插图数据准备与 MATLAB 出图脚本\\
|
||||
\pathtext{docs/paper/data/} & 仅四个所选正式案例的可读统计、表格及哈希\\
|
||||
\pathtext{docs/paper/data/} & 六个正式案例的可读统计、表格及校验值\\
|
||||
\pathtext{docs/paper/sections/} & 分章论文源文件\\
|
||||
\pathtext{docs/paper/figures/} & 正式累计耗时图的矢量源文件\\
|
||||
\pathtext{docs/figures/} & 正文插图(PNG)及其数据清单与生成命令\\
|
||||
\pathtext{Jammers-simulator-full/test/} & 四份原名官方加密正式日志\\
|
||||
>>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231
|
||||
\pathtext{Jammers-simulator-full/test/} & 六份原名官方正式日志\\
|
||||
\pathtext{support-manifest.json} & 支撑包文件清单及逐文件 SHA-256\\
|
||||
\bottomrule
|
||||
\end{tabularx}
|
||||
@@ -66,9 +55,13 @@ Python 运行时需要 \texttt{requests},\texttt{numpy} 提供可选加速。
|
||||
在线测试由模拟器界面启动,接口就绪后执行策略入口。
|
||||
具体运行指令和编译步骤见支撑包的 \texttt{README.md}。
|
||||
|
||||
\section{完整程序源码}
|
||||
以下列出当前策略、配套模块及论文数据处理程序的完整源码。
|
||||
附录通过生成的显示副本将数学符号转换为 LaTeX 命令,
|
||||
支撑包保留对应的可执行 Python 文件。
|
||||
实验结果见正文正式测试表及附录A的数据清单。
|
||||
\section{核心程序代码}
|
||||
四问的求解核心集中在约 $5000$ 行的单文件程序中,按\textbf{公共层、几何与集合估计层、
|
||||
覆盖保证层、策略层}四层组织;评测机、命令行外壳、数据采集与绘图脚本、
|
||||
单元测试以及未被采用的方案不属于求解核心,不在此列出。
|
||||
完整可执行程序为支撑材料中的 \pathtext{mcm26b-核心代码.ipynb},
|
||||
\pathtext{src/mcm26b/} 保留与之逐字对应的模块化版本,两者函数名一一对应。
|
||||
下列代码为无改动的摘录:函数体与注释与程序一致,只按核心程度取舍。
|
||||
未收录的部分包括独立评测机(按附件协议复现模拟器,与求解代码零耦合)、
|
||||
命令行入口、数据采集与论文绘图脚本、单元测试,以及经实测未采用的候选方案。
|
||||
\input{data/source-listings}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
\subsection{对比口径与有效性判定}
|
||||
本节数据来自仓库内的配对对比框架 \pathtext{project/},
|
||||
用于回答上述几何判据与闭环策略相对朴素做法改进在哪里;
|
||||
它与第~\ref{sec:formal} 节的四份官方正式导出完全分开,两类数字不合并、不相加。
|
||||
它与第~\ref{sec:formal} 节的六份官方正式导出完全分开,两类数字不合并、不相加。
|
||||
框架设三种角色:\textbf{最优实现}直接复用 \pathtext{src/mcm26b} 中已由测试固化的生产代码,
|
||||
只增加输入输出适配;\textbf{基线实现}是同题下更朴素但能独立跑通的对照,
|
||||
不共享最优实现的关键步骤;\textbf{独立参考}与分析算法正交,用于判定谁对谁错。
|
||||
@@ -116,7 +116,8 @@
|
||||
\end{tabular*}
|
||||
\label{tab:projq3}
|
||||
\end{table}
|
||||
三种方法在 $\ProjQThreeScenes$ 个冻结场景(源数 $10$、$13$、$16$,种子与源数版本化)
|
||||
表~\ref{tab:projq3} 汇总三种方法。它们在 $\ProjQThreeScenes$ 个冻结场景
|
||||
(源数 $10$、$13$、$16$,种子与源数版本化)
|
||||
上全部完成全清,缺席误判均为零,差别只在时间:
|
||||
默认 \texttt{bayes} 平均 $\ProjQThreeMeanOpt$ s,
|
||||
七点批量 \texttt{seven} $\ProjQThreeMeanSeven$ s,$49$ 点网格 \texttt{grid} $\ProjQThreeMeanBase$ s。
|
||||
@@ -144,7 +145,7 @@
|
||||
\end{tabular*}
|
||||
\label{tab:projq4}
|
||||
\end{table}
|
||||
$\ProjQFourScenes$ 个场景取自 core 与 boundary 两组,
|
||||
表~\ref{tab:projq4} 汇总三种方法。$\ProjQFourScenes$ 个场景取自 core 与 boundary 两组,
|
||||
boundary 全部是背离圆心发射的边界定向源,属最不利工况。
|
||||
\texttt{directional} 在 $\ProjQFourValidOpt$ 局上全部有效,全清率 $\ProjQFourClearOpt$,
|
||||
平均后备清除 $\ProjQFourFallbackOpt$ 次,对应遮挡导致的定位停滞。
|
||||
|
||||
@@ -95,9 +95,6 @@ $D\le\norm{a-z}+\norm{z-b}\le D$。
|
||||
等号迫使 $z=o$。反之,圆盘为凸集,包含全部顶点即包含它们的凸包。
|
||||
\end{proof}
|
||||
若条件不成立,输出圆外顶点及超出量
|
||||
<<<<<<< HEAD
|
||||
$e=\max_v\norm{v-o}-D/2$,用于量化该圆盘的覆盖误差。
|
||||
=======
|
||||
$e=\max_v\norm{v-o}-D/2$,即得到可独立检查的否定证据。
|
||||
不能仅以直径端点在圆周上判断整个区域被覆盖。
|
||||
图~\ref{fig:q1geometry}(a) 给出一组三点交会算例:左图为三条前向角域及其交集,
|
||||
@@ -107,7 +104,6 @@ $e=\max_v\norm{v-o}-D/2$,即得到可独立检查的否定证据。
|
||||
而最远顶点到圆心的距离为 $12.602$ m,故直径圆并不覆盖定位区域;
|
||||
其最小包围圆半径为 $12.069$ m,满足 $20$ m 的清除判据。
|
||||
这说明直径不超过 $40$ m 与能否清除是两个不同的判据,覆盖判定必须逐顶点检查。
|
||||
>>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231
|
||||
|
||||
\subsection{反例与可清除半径}
|
||||
构造等边三角形
|
||||
@@ -122,26 +118,6 @@ $40/\sqrt3\approx23.094$ m,同样大于清除半径。
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
<<<<<<< HEAD
|
||||
\begin{tikzpicture}[x=0.095cm,y=0.095cm,font=\small]
|
||||
\fill[inkblue!10] (0,0)--(40,0)--(20,34.641)--cycle;
|
||||
\draw[thick] (0,0)--(40,0)--(20,34.641)--cycle;
|
||||
\draw[warmgray,dashed,thick] (20,0) circle (20);
|
||||
\draw[inkblue,thick] (20,11.547) circle (23.094);
|
||||
\fill (0,0) circle (0.6) node[below left] {$A$};
|
||||
\fill (40,0) circle (0.6) node[below right] {$B$};
|
||||
\fill (20,34.641) circle (0.6) node[above] {$C$};
|
||||
\fill[warmgray] (20,0) circle (0.6) node[below] {$o$};
|
||||
\fill[inkblue] (20,11.547) circle (0.6) node[right] {$m$};
|
||||
\draw[->,warmgray] (49,-14)--(35,-13);
|
||||
\node[anchor=west,warmgray] at (49,-14) {直径圆:$r=20$};
|
||||
\draw[->,inkblue] (49,24)--(41,22);
|
||||
\node[anchor=west,inkblue] at (49,24) {最小包围圆:$\rho=40/\sqrt3$};
|
||||
\node at (20,-26) {$AB=BC=CA=40$ m};
|
||||
\end{tikzpicture}
|
||||
\caption{等边三角形的直径圆与最小包围圆。}
|
||||
\label{fig:triangle}
|
||||
=======
|
||||
\begin{minipage}[t]{0.49\linewidth}\centering
|
||||
\includegraphics[width=\linewidth]{geo-q1-convex-intersection-zoom.png}
|
||||
\end{minipage}\hfill
|
||||
@@ -154,7 +130,6 @@ $40/\sqrt3\approx23.094$ m,同样大于清除半径。
|
||||
(b) 等边三角形解析反例,虚线直径圆 $r=20$ m 不覆盖顶点 $C$,
|
||||
实线最小包围圆 $\rho=40/\sqrt3\approx23.094$ m 覆盖全部顶点,不是模拟器观测。}
|
||||
\label{fig:q1geometry}
|
||||
>>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231
|
||||
\end{figure}
|
||||
|
||||
该形状可由题设的 $\pm1^\circ$ 角域构造出来。例如检测点
|
||||
|
||||
@@ -1,23 +1,10 @@
|
||||
\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$ 即确立该频道存在源。
|
||||
@@ -57,7 +44,6 @@ $r^2+a^2-\sqrt3ar$。
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
<<<<<<< HEAD
|
||||
\begin{tikzpicture}[x=0.0019cm,y=0.0019cm,font=\small]
|
||||
\begin{scope}
|
||||
\clip (0,0) circle (1800);
|
||||
@@ -82,14 +68,10 @@ $r^2+a^2-\sqrt3ar$。
|
||||
{$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}
|
||||
|
||||
图~\ref{fig:seven} 给出站点构造与最小接收圆盘的关系。
|
||||
顺次从原点访问六个环站的开放路径长为 $6a$。
|
||||
任务总路径由覆盖站间移动以及定位、清除所需的局部移动共同构成。
|
||||
|
||||
@@ -209,9 +191,6 @@ C(\pi)=\frac{\norm{p-q_{\pi_1}}}{5}
|
||||
当前每轮追加有效定位测量上限为 $8$;
|
||||
停滞、协议异常或预算耗尽时,记录各频道状态并终止。
|
||||
程序以接口返回的现实预算为准,并预留退出时间,
|
||||
<<<<<<< HEAD
|
||||
虚拟动作耗时以整数微秒累计,程序运行时间由官方统计单独记录。
|
||||
=======
|
||||
实际计时在整数微秒状态上累计,避免用实机运行秒数代替虚拟动作耗时。
|
||||
|
||||
\subsection{运行过程示例}
|
||||
@@ -228,4 +207,3 @@ C(\pi)=\frac{\norm{p-q_{\pi_1}}}{5}
|
||||
该局为演练案例,非正式测试记录。}
|
||||
\label{fig:replay3}
|
||||
\end{figure}
|
||||
>>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231
|
||||
|
||||
@@ -182,11 +182,6 @@ $N_{\mathrm{cell}}\,t_{\mathrm{RTT},95}+t_{\mathrm{reserve}}$。
|
||||
\item 覆盖任务结束后处理未解决频道;主动退出时报告清除数及停止依据。
|
||||
\end{enumerate}
|
||||
\end{algorithmblock}
|
||||
<<<<<<< HEAD
|
||||
问题四采用站内批量检测与最近邻任务排序。
|
||||
算法结合位置集合、朝向约束和剩余预算确定测点及清除顺序,
|
||||
并以各频道的处理状态作为终止时的输出。
|
||||
=======
|
||||
问题四使用“本站批量扫频、最近候选圆心服务”的调度骨架,
|
||||
并未直接复用问题三的统一信息增益任务表。
|
||||
若要求严格的混合源全清证据,除采用连续覆盖计划外,
|
||||
@@ -208,4 +203,3 @@ $N_{\mathrm{cell}}\,t_{\mathrm{RTT},95}+t_{\mathrm{reserve}}$。
|
||||
紫色半盘为定向源的前向可见区域。该局为演练案例,非正式测试记录。}
|
||||
\label{fig:replay4}
|
||||
\end{figure}
|
||||
>>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231
|
||||
|
||||
@@ -1,21 +1,11 @@
|
||||
<<<<<<< HEAD
|
||||
\section{官方正式测试结果与时间分解}
|
||||
\subsection{实验数据与评价指标}
|
||||
实验采用官方模拟器 \pathtext{Jammers-simulator-full/test} 目录中的六份正式导出,
|
||||
包括问题三、四各三次测试。各文件经 SHA-256 校验后,与官方原始导出、
|
||||
结果侧文件及正式统计记录建立对应关系\cite{formal}。
|
||||
案例编码与文件校验值列于附录~\ref{app:data}。
|
||||
=======
|
||||
\section{官方正式测试结果与时间分解}\label{sec:formal}
|
||||
\subsection{数据选择及对应关系核对}
|
||||
本节实验样本严格限定为官方模拟器
|
||||
\pathtext{Jammers-simulator-full/test} 下四个正式导出包。
|
||||
问题三、四各有正式序号 $1$、$2$,文件名及案例编码见结果表和附录。
|
||||
\pathtext{Jammers-simulator-full/test} 下的六份正式导出包,问题三、四各有三次。
|
||||
文件名、案例编码与完整包校验值见结果表与附录~\ref{app:data}。
|
||||
本节表格不采用 \texttt{project/results} 中的自建评测数据,
|
||||
也不将历史演练案例当作正式测试补入;
|
||||
自建配对对比与演练局示例分别在第~\ref{sec:comparison} 节和各问的运行过程示例中单独陈述,
|
||||
两类数据不合并统计。
|
||||
>>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231
|
||||
也不将历史演练案例当作正式测试补入:自建配对对比见第~\ref{sec:comparison} 节,
|
||||
演练局示例见问题三、四的运行过程示例,三类数据分开陈述,不合并统计。
|
||||
|
||||
评价指标包括清除数量 $N_c^+$、平均定位清除时间 $\bar T$、程序运行时间
|
||||
$T_{\mathrm{real}}$,以及检测、换频和清除的动作次数。
|
||||
@@ -68,6 +58,7 @@ $T_{\mathrm{real}}$ 采用官方记录的毫秒值。
|
||||
\end{tabularx}
|
||||
\label{tab:formal4}
|
||||
\end{table}
|
||||
表~\ref{tab:formal4} 给出问题四的三次正式结果。
|
||||
三次测试分别清除 $13$、$10$、$14$ 个源,累计 $\QFourCount$ 个,
|
||||
平均定位清除时间分别为 $720.171$、$927.130$、$614.884$ s/个。
|
||||
总虚拟时间之和为 $\QFourTotal$ s,相应的加权平均时间为
|
||||
@@ -111,13 +102,6 @@ T_{\mathrm{move}}
|
||||
\end{table}
|
||||
\input{figures/formal-time-bars}
|
||||
|
||||
<<<<<<< HEAD
|
||||
六次测试中,移动时间占总虚拟耗时的 $\FormalMovementMin\%$ 至 $\FormalMovementMax\%$,
|
||||
是主要时间成本。问题三的检测次数为 $105$、$117$、$117$,
|
||||
问题四为 $349$、$361$、$264$;
|
||||
混合源案例中,朝向约束增加了观测与位置选择的复杂度。
|
||||
因此,后续优化可同时考虑减少移动距离与提高单次观测的信息增益。
|
||||
=======
|
||||
图~\ref{fig:timingmeasured} 按同一记账口径给出一局全向演练的累计时间构成:
|
||||
横轴为动作序号,堆叠高度为累计虚拟时间,
|
||||
移动项在整局中占主要部分,清除阶段表现为阶梯状跃升。
|
||||
@@ -132,18 +116,13 @@ T_{\mathrm{move}}
|
||||
\label{fig:timingmeasured}
|
||||
\end{figure}
|
||||
|
||||
四局移动时间占总虚拟时间的 $76.59\%$ 至 $78.02\%$。
|
||||
从这一组正式样本看,减少移动是影响总耗时的主要方向,
|
||||
检测与换频仍应同时计入路径选择。
|
||||
由 $L_{\mathrm{eq}}=5T_{\mathrm{move}}$ 得四局等效距离分别约为
|
||||
$12.045$、$13.627$、$36.386$、$35.507$ km。
|
||||
它们由已量化的移动时间反推,不是独立轨迹测得的长度。
|
||||
>>>>>>> 78e4420a3e496c43db8e06556e539fd7d2aaf231
|
||||
|
||||
由 $L_{\mathrm{eq}}=5T_{\mathrm{move}}$ 得问题三的等效移动距离依次为
|
||||
$12.045$、$13.627$、$10.824$ km,问题四依次为
|
||||
$36.386$、$35.507$、$35.027$ km。
|
||||
该距离由官方时间计数及移动速度计算。
|
||||
六次测试的移动时间占总虚拟耗时的 $\FormalMovementMin\%$ 至 $\FormalMovementMax\%$,
|
||||
是主要的时间成本,减少移动因而也是缩短总耗时的主要方向,
|
||||
但检测与换频仍需一并计入路径选择。
|
||||
由 $L_{\mathrm{eq}}=5T_{\mathrm{move}}$ 反推等效移动距离:
|
||||
问题三依次为 $12.045$、$13.627$、$10.824$ km,
|
||||
问题四依次为 $36.386$、$35.507$、$35.027$ km。
|
||||
该等效距离由官方动作计数与移动速度换算得到,不是独立轨迹测得的长度。
|
||||
所有平均值先以官方整数单位求和、相除,最后保留三位小数。
|
||||
|
||||
\subsection{实验结果分析}
|
||||
|
||||
Reference in New Issue
Block a user