\section{算法对比实验:最优实现与基线}\label{sec:comparison} \subsection{对比口径与有效性判定} 本节数据来自仓库内的配对对比框架 \pathtext{project/}, 用于回答上述几何判据与闭环策略相对朴素做法改进在哪里; 它与第~\ref{sec:formal} 节的四份官方正式导出完全分开,两类数字不合并、不相加。 框架设三种角色:\textbf{最优实现}直接复用 \pathtext{src/mcm26b} 中已由测试固化的生产代码, 只增加输入输出适配;\textbf{基线实现}是同题下更朴素但能独立跑通的对照, 不共享最优实现的关键步骤;\textbf{独立参考}与分析算法正交,用于判定谁对谁错。 问题三、四在内存回环评测机上运行,与官方接口使用同一请求与响应边界: 源真值只在评测机一侧,策略端只读响应,因此全清率与缺席误判可以核查。 一局有效必须同时满足全清、无缺席误判、正常 \texttt{/exit}、零异常与逐微秒计时复算一致, 否则记为无效,失败样本不静默丢弃;所有对比按场景配对,并给出均值、中位与最大值。 源位置均匀、误差场逐点固定等分布属于自建测试假设,题面并未规定, 本节结论只描述各方法的相对行为。 \begin{table}[htbp] \centering\small \caption{四问最优实现与基线的核心指标总览(自建基准集)} \begin{tabularx}{\linewidth}{c X l l} \toprule 问 & 核心指标 & 最优实现 & 基线实现\\ \midrule \csname @@input\endcsname data/project-overview-rows.tex \bottomrule \end{tabularx} \label{tab:projoverview} \end{table} 表~\ref{tab:projoverview} 中问题二、四的基线分别取“候选圆心”与 “问题三策略直接搬用”,它们是各自问中最需要区分的对照, 其余各表的配对数字同样如此选择。 本节全部数字由 \pathtext{scripts/build_paper_support.py} 从 \pathtext{project/results/*.json} 生成,正文与表格均不手抄。 \subsection{问题一:直径与覆盖判定} \begin{table}[htbp] \centering\small \caption{问题一固定示例的直径与覆盖判定(单位:m,$\Delta D$ 为相对参考解的误差)} \setlength{\tabcolsep}{4.5pt} \begin{tabular}{lrrrrccc} \toprule 算例 & $D$参考 & $D$最优 & $D$基线 & $|\Delta D|$基线 & 覆盖参考 & 覆盖最优 & 覆盖基线\\ \midrule \csname @@input\endcsname data/project-q1-example-rows.tex \bottomrule \end{tabular} \label{tab:projq1case} \end{table} \begin{table}[htbp] \centering\small \caption{问题一的汇总指标(直径误差单位:m,耗时单位:ms)} \setlength{\tabcolsep}{5pt} \begin{tabular}{lrrrrr} \toprule 数据子集/方法 & 状态判定 & 直径平均误差 & 直径最大误差 & 覆盖判定 & 平均耗时\\ \midrule \csname @@input\endcsname data/project-q1-summary-rows.tex \bottomrule \end{tabular} \label{tab:projq1sum} \end{table} 表~\ref{tab:projq1case} 显示基线误差的来源是代理方式而非数值精度: 它以轴对齐包围盒的对角线代替区域直径,把边长 $40$ m 的等边三角形判成 $50$ m, 把零误差退化线段判成 $0$ m;覆盖判定以“包围盒中心加代理直径圆”代替逐顶点检查, 于是对任意包围盒几乎恒判覆盖。 在 $\ProjQOneExampleCases$ 个固定示例上,基线的状态判定准确率为 $\ProjQOneFixedStatusBase$, 平均直径误差 $\ProjQOneFixedMaeBase$ m,最大误差 $\ProjQOneFixedMaeMaxBase$ m, 覆盖判定准确率仅 $\ProjQOneFixedCoverBase$; 在 $\ProjQOneRandomCases$ 个随机交会算例上状态判定回到 $\ProjQOneRandStatusBase$, 但平均直径误差仍为 $\ProjQOneRandMaeBase$ m,最大误差 $\ProjQOneRandMaeMaxBase$ m, 覆盖判定准确率 $\ProjQOneRandCoverBase$。 最优实现与独立参考解在全部算例上的状态、直径与覆盖判定一致; 平均耗时为 $\ProjQOneRandMsOpt$ 与 $\ProjQOneRandMsBase$ ms(随机算例), 说明精确几何并未以计算量为代价。 \subsection{问题二:第二检测点选择} \begin{table}[htbp] \centering\small \caption{问题二各方法在 $\ProjQTwoCases$ 个随机首次示向度算例上的汇总 (半径与收缩单位:m,移动时间单位:s)} \setlength{\tabcolsep}{5pt} \begin{tabular}{lrrrrrr} \toprule 方法 & 保证接收率 & 最坏后验均值 & 中位 & 平均收缩 & 终值比 & 移动均值\\ \midrule \csname @@input\endcsname data/project-q2-rows.tex \bottomrule \end{tabular} \label{tab:projq2} \end{table} 表~\ref{tab:projq2} 的算例由随机首次示向度生成, 首次候选集的平均包围半径为 $\ProjQTwoInitialRadius$ m。 垂直 $1000$ m 的基线交会角最大,却忽略接收保证,保证接收率为 $\ProjQTwoGuaranteePerp$: 真源位于角域远端时第二点必然无信号,其最坏后验均值 $\ProjQTwoWorstPerp$ m 是在丢失样本上算出的,不能与其它方法直接比较。 候选圆心基线保证接收($\ProjQTwoGuaranteeMec$),但不增加横向基线, 最坏后验半径均值仍为 $\ProjQTwoWorstMec$ m,终值比 $\ProjQTwoRatioMec$,只收缩一半。 默认选点器在保证接收下取得最坏后验均值 $\ProjQTwoWorstOpt$ m、终值比 $\ProjQTwoRatioOpt$, 与保证接收盘内 $9\times9$ 网格枚举的参考解($\ProjQTwoWorstRef$ m)相差约 $2.3\%$, 说明 $37$ 点环形候选已接近该目标函数下的网格最优。 这里的最坏后验是对候选外包多边形的采样评估,不是连续极小极大的全局上界; “保证接收”一项由安全盘独立成立。 \subsection{问题三:全向闭环} \begin{table}[htbp] \centering\footnotesize \caption{问题三三种方法在 $\ProjQThreeScenes$ 个冻结场景上的汇总 (时间单位:s,位移单位:km)} \setlength{\tabcolsep}{3.5pt} \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lrrrrrrrrr} \toprule 方法 & 有效局 & 全清率 & 缺席误判 & $T$均值/s & $T$中位/s & $T$最大/s & 检测 & 位移/km & 后备清除\\ \midrule \csname @@input\endcsname data/project-q3-rows.tex \bottomrule \end{tabular*} \label{tab:projq3} \end{table} 三种方法在 $\ProjQThreeScenes$ 个冻结场景(源数 $10$、$13$、$16$,种子与源数版本化) 上全部完成全清,缺席误判均为零,差别只在时间: 默认 \texttt{bayes} 平均 $\ProjQThreeMeanOpt$ s, 七点批量 \texttt{seven} $\ProjQThreeMeanSeven$ s,$49$ 点网格 \texttt{grid} $\ProjQThreeMeanBase$ s。 按场景配对,\texttt{bayes} 相对 \texttt{grid} 的平均虚拟时间下降 $\ProjQThreeDropOpt$、 中位下降 $\ProjQThreeDropMedianOpt$,在 $\ProjQThreeFasterOpt$ 场景上更快, \texttt{seven} 相对 \texttt{grid} 下降 $\ProjQThreeDropSeven$。 分项上,默认策略检测 $\ProjQThreeMeasuresOpt$ 次、位移 $\ProjQThreeMoveOpt$ km, 网格基线需要 $\ProjQThreeMeasuresBase$ 次检测、$\ProjQThreeMoveBase$ km 位移; 单局在线计算均在 $1.6$ s 以内(默认策略 $\ProjQThreeWallOpt$ s),不构成瓶颈。 七点方案用解析覆盖保证发现,站点最少,但按站点批量扫频需要绕行,位移约为默认策略的两倍。 可见三者的差别不是“能否完成”,而是覆盖证明与信息增益选点各自省下了多少移动与检测。 \subsection{问题四:混合源闭环} \begin{table}[htbp] \centering\footnotesize \caption{问题四三种方法在 $\ProjQFourScenes$ 个场景上的汇总 (时间单位:s,位移单位:km)} \setlength{\tabcolsep}{3.5pt} \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lrrrrrrrrr} \toprule 方法 & 有效局 & 全清率 & 缺席误判 & $T$均值/s & $T$中位/s & $T$最大/s & 检测 & 位移/km & 后备清除\\ \midrule \csname @@input\endcsname data/project-q4-rows.tex \bottomrule \end{tabular*} \label{tab:projq4} \end{table} $\ProjQFourScenes$ 个场景取自 core 与 boundary 两组, boundary 全部是背离圆心发射的边界定向源,属最不利工况。 \texttt{directional} 在 $\ProjQFourValidOpt$ 局上全部有效,全清率 $\ProjQFourClearOpt$, 平均后备清除 $\ProjQFourFallbackOpt$ 次,对应遮挡导致的定位停滞。 把问题三的 \texttt{bayes} 直接搬用时全清率降到 $\ProjQFourClearBase$, 并出现 $\ProjQFourAbsentBase$ 次缺席误判:七站全向缺席证明把朝外发射的定向源判为不存在, 因此它用时最短($\ProjQFourMeanBase$ s),但结论是错的。 \texttt{grid} 的 $49$ 点覆盖对定向源发现完备,全清率 $\ProjQFourClearGrid$、 平均虚拟时间 $\ProjQFourMeanGrid$ s,却没有朝向推理与后备清除, 定位停滞时只能停在“已发现”状态,$\ProjQFourValidGrid$ 局通过有效性判定。 \texttt{directional} 平均 $\ProjQFourMeanOpt$ s,比 \texttt{bayes} 高 $\ProjQFourRiseOpt$, 位移 $\ProjQFourMoveOpt$ km 对 $\ProjQFourMoveBase$ km;由于基线 $11$ 局全部无效, 这一比值不构成“默认策略更慢”的证据,在定向源上应先保证判对、再比较快慢。 \subsection{对比实验的结论与边界} 四组配对比较支持的结论是:问题一的误差来自代理近似,改用精确顶点枚举与最小包围圆后消失; 问题二要求同时满足接收保证与横向基线,只取其一都会被表~\ref{tab:projq2} 的某一列暴露; 问题三的三种方法都能全清,默认策略的收益来自信息增益选点与滚动排序而非覆盖证明本身; 问题四的差别在正确性,搬用全向缺席证明会“快而错”, 只扩大覆盖而不补朝向推理与后备清除则“稳而不全”。 边界有四条。随机分布是自建测试假设,场景数、源数与种子见 \pathtext{project/results/*.json},不能据此推断官方测试的分布。 基线不是稻草人:候选圆心、七点批量与网格覆盖都能独立跑通并在部分场景有效, 它们暴露的是各自缺少的那一步。 问题二的最坏后验与问题四的可见性评分都是启发式评估量,不是全局最优值或校准概率。 本节指标与第~\ref{sec:formal} 节的官方统计口径不同,两组数字不可互相换算。