Files
mcm-26-b/docs/paper/sections/appendix.tex
2026-09-13 19:59:33 +08:00

206 lines
12 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
\section{官方正式测试的效果验证}\label{app:formal}\aigcC
\subsection{数据选择及对应关系核对}
正文的机制论证与定量结论取自自建模拟器演练局,
本节则用官方模拟器的正式测试验证算法在正式环境下的效率与正文结论是否一致。
实验样本严格限定为官方模拟器
\pathtext{Jammers-simulator-full/test} 下的六份正式导出包,问题三、四各有三次。
文件名、案例编码与完整包校验值见表~\ref{tab:packages},核对说明见 \pathtext{docs/paper/data/audit.md}。
由于官方记录不公开真实源位置和机器人轨迹,本节不绘制搜索/清除路径,
只使用清除数量、总虚拟时间、程序运行时间与动作计数四类可直接观测的量。
这样处理的原因是:正式测试能够检验"算法是否在真实时限内完成清除",
但不能检验"定位是否收敛到真值",后者已由正文的演练局分析承担。
评价指标包括清除数量 $N_c^+$、总虚拟时间 $T$、程序运行时间 $T_{\mathrm{real}}$,
以及检测、换频和清除的动作次数。其中 $T$ 按整数微秒累计,
$T_{\mathrm{real}}$ 采用官方记录的毫秒值;
平均定位清除时间仅作辅助分析,不替代总虚拟时间与程序运行时间这两项直接指标。
六次测试均以主动退出(\texttt{user\_exit})结束,统计提交状态为已确认。
\subsection{问题三与问题四的正式结果}
\input{data/formal-q3-table}
三次正式测试分别清除 $13$、$15$、$10$ 个源,
总虚拟时间分别为 $3094.978$、$3493.335$、$2906.863$ s,合计 $\QThreeTotal$ s;
程序运行时间分别为 $5.596$、$3.024$、$2.680$ s,合计 $\QThreeProgramTotal$ s。
按清除数量加权的平均定位清除时间为 $\QThreeWeighted$ s/个,仅作辅助解释。
第三次的总虚拟时间最短($2906.863$ s),但其清除数也最少($10$ 个),
因此判断优化程度时应以总虚拟时间与清除数量并列报告,不能只看单一平均值。
\input{data/formal-q4-table}
表~\ref{tab:formal4} 给出问题四的三次正式结果。三次分别清除 $13$、$10$、$14$ 个源,
总虚拟时间合计 $\QFourTotal$ s,程序运行时间合计 $\QFourProgramTotal$ s,
加权平均定位清除时间 $\QFourWeighted$ s/个。
第三次清除数最多($14$ 个)且总虚拟时间最短($8608.382$ s),
与自建模拟器演练局中"可见性筛选加后备清除能够压缩定向场景耗时"的结论方向一致;
但三次案例的随机源分布与朝向不同,仍应以绝对时间与清除数量为准。
\subsection{正式测试的动作耗时分解}
按式~\eqref{eq:residual} 由动作计数反推移动时间,得到表~\ref{tab:formalcost}。
其中 Q3-1 表示问题三第一次正式测试,其余编号依此类推。
\input{data/formal-cost-table}
\begin{figure}[htbp]
\centering
\includegraphics[width=0.92\linewidth]{formal-time-bars.png}
\caption{六次正式测试的累计虚拟耗时分解(数据仅来自正式测试的原始动作计数与总虚拟时间)。}
\label{fig:formalbars}
\end{figure}
六次测试的清除失败计数均为零,移动时间占总虚拟耗时的
$\FormalMovementMin\%$ 至 $\FormalMovementMax\%$,与演练局的构成一致,
说明"移动是主要成本"这一结论在正式环境中同样成立。
由 $L_{\mathrm{eq}}=5T_{\mathrm{move}}$ 反推等效移动距离:
问题三依次为 $12.045$、$13.627$、$10.824$ km,
问题四依次为 $36.386$、$35.507$、$35.027$ km;
对照表~\ref{tab:q3practice} 与表~\ref{tab:q4practice},
正式测试的移动量级与演练局相符(问题三约 $12$--$15$ km,问题四约 $30$--$33$ km),
表明演练局并非经过挑选的乐观样本。
该等效距离由动作计数与移动速度换算得到,不是独立轨迹测得的长度。
\subsection{正式测试结论}
六次正式测试均主动退出且清除失败计数为零。
以题目要求的直接时间指标衡量:问题三累计清除 $\QThreeCount$ 个源,
总虚拟时间 $\QThreeTotal$ s,程序运行时间合计 $\QThreeProgramTotal$ s;
问题四累计清除 $\QFourCount$ 个源,总虚拟时间 $\QFourTotal$ s,
程序运行时间合计 $\QFourProgramTotal$ s;六次合计清除 $\FormalClearCount$ 个源、
总虚拟时间 $\FormalVirtualTotal$ s。
由此可得结论:
1. 全向源场景下,七点解析覆盖与逐频道网格幸存集使三次正式测试均在时限内完成,
总虚拟时间为 $2906.863$ 至 $3493.335$ s,与演练局量级一致;
2. 混合源场景下,前向半盘最小命中集、位置与朝向联合幸存集和后备清除使三次正式测试的
总虚拟时间为 $8608.382$ 至 $9362.226$ s,明显高于全向场景,
印证了正文关于"定向遮挡仍是主要时间成本"的判断;
3. 平均定位清除时间与移动时间分解只用于解释成本结构,
优化程度的结论应以总虚拟时间、程序运行时间和清除数量为准。
由于正式数据未公开源总数与类型组成,本文不据此计算全清率或做跨问题性能排名。
\input{data/formal-file-list}
\section{自建模拟器演练局数据清单}\label{app:practice}\aigcC
本节列出正文定量结论所依据的全部演练局,共 $\PractTotalCases$ 局,
由 \pathtext{scripts/run\_practice\_episodes.py} 采集、
\pathtext{scripts/build\_practice\_data.py} 从评测机行为日志复算得到,
复算口径为题面计时模型,与日志记录的最大偏差为 $\PractMaxGap$ s。
采集时以固定种子逐局运行生产策略,判定标准为
"清完全部源 $\wedge$ 无缺席误判 $\wedge$ 主动退出 $\wedge$ 零异常 $\wedge$ 零失败清除";
本表所列 $\PractTotalCases$ 局全部满足该标准。
\input{data/practice-summary-table}
\input{data/practice-all-table}
\input{data/practice-cost-table}
\section{支撑材料与运行方法}\aigcC
\begin{table}[H]
\centering\small
\caption{支撑材料目录及用途}
\begin{tabularx}{\linewidth}{p{5.8cm}X}
\toprule
文件或目录 & 用途\\
\midrule
\pathtext{src/mcm26b/} & 四问几何、信念、覆盖、调度与串行通信实现\\
\pathtext{src/mcm26b/guarantee/plans/} & 第四问已实现的覆盖计划及验证参数\\
\pathtext{project/} & 四问“最优实现 / 基线实现”配对对比框架与结果\\
\pathtext{referee/} & 自建模拟器(评测机)实现,与官方协议同一边界\\
\pathtext{referee-data/sessions/} & 正文引用的演练局行为日志(含真值)\\
\pathtext{scripts/build_practice_data.py} & 演练局计时复算与论文数据、宏文件生成\\
\pathtext{scripts/plot_paper_figures.py} & 正文插图 matplotlib 生成脚本\\
\pathtext{scripts/audit_paper_formal.py} & 正式文件对应核对、匿名快照及表格复算\\
\pathtext{docs/figures/manifest.json} & 插图来源与生成命令清单\\
\pathtext{docs/paper/data/} & 演练局与正式案例的可读统计、表格及校验值\\
\pathtext{docs/paper/sections/} & 分章论文源文件\\
\pathtext{Jammers-simulator-full/test/} & 六份原名官方正式日志\\
\pathtext{support-manifest.json} & 支撑包文件清单及逐文件 SHA-256\\
\bottomrule
\end{tabularx}
\end{table}
正文数据与插图的复算命令如下(在项目根目录执行):
\begin{lstlisting}[language={},numbers=none]
python scripts/build_practice_data.py # 演练局复算,生成正文数据与宏文件
python scripts/plot_paper_figures.py # 生成正文全部插图
python scripts/audit_paper_formal.py --snapshot docs/paper/data/formal-results.json
python scripts/build_paper_support.py # 附录正式数据表与支撑包
\end{lstlisting}
第一条命令读取 \pathtext{referee-data/sessions/} 下的行为日志,
按题面计时模型复算每局的移动、检测、换频与清除耗时,
并输出正文引用的宏、表格行与插图数据;
第二条命令据此与覆盖计划重新绘制插图,论文不手抄图内任何数字。
第三条命令按已有快照复算正式统计并核对正式包的校验值;
第四条命令生成附录的正式数据表并打包支撑材料。
Python 运行时需要 \texttt{requests},\texttt{numpy} 提供可选加速。
将 \texttt{src} 加入 Python 模块路径后,可调用
\texttt{python -m mcm26b.geometry} 进行问题一几何分析,
或通过 \texttt{mcm26b.cli} 运行在线策略。
在线测试由模拟器界面启动,接口就绪后执行策略入口。
具体运行指令和编译步骤见支撑包的 \texttt{README.md}。
\section{AIGC 使用逐节对照}\label{app:aigc}
本附录给出正文各章与 AI 工具使用情况的完整对照,供核查。
上标码 \aigcA 对应 ChatGPT/Codex 桌面版,\aigcC 对应 DeepSeek Harness,
两者的版本、开发机构与使用日期见参考文献~\cite{aigc-chatgpt,aigc-dsh}。
\begin{table}[htbp]
\centering\small
\caption{各章内容与 AI 工具使用情况对照\aigcC}
\label{tab:aigc-map}
\begin{tabularx}{\linewidth}{@{}p{0.30\linewidth} c X@{}}
\toprule
\textbf{论文位置} & \textbf{标注} & \textbf{AI 参与方式、模型与日期}\\
\midrule
摘要 & \aigcC & 文字组织与润色;\texttt{deepseek-flash},2026-09-13 \\
问题重述 & \aigcC & 文字组织;\texttt{deepseek-flash},2026-09-13 \\
问题分析 & \aigcC & 思路梳理与文字组织;\texttt{deepseek-flash},2026-09-13 \\
模型假设、符号说明 & \aigcC & 文字组织与符号统一;\texttt{deepseek-flash},2026-09-13 \\
计时模型与会话状态机 & \aigcC & 由题面与接口说明整理,含公式排版;\texttt{deepseek-flash},2026-09-13 \\
问题一 & \aigcA & 推导文档整理、定理与反例的公式编排;\texttt{gpt-6-astra},2026-09-10。LaTeX 定稿改写由 \texttt{deepseek-flash} 于 2026-09-13 完成 \\
问题二 & \aigcA & 推导文档整理、解析候选盘的公式编排;\texttt{gpt-6-astra},2026-09-10。LaTeX 定稿改写由 \texttt{deepseek-flash} 于 2026-09-13 完成 \\
问题三 & \aigcC & 算法描述重写、伪代码与公式排版;\texttt{deepseek-flash},2026-09-13 \\
问题四 & \aigcC & 算法描述重写、伪代码与公式排版;\texttt{deepseek-flash},2026-09-13 \\
实验结果与分析 & \aigcC & 数据表整理、插图绘制与文字组织;\texttt{deepseek-flash},2026-09-13 \\
模型评价与推广 & \aigcC & 文字组织;\texttt{deepseek-flash},2026-09-13 \\
附录 A(正式测试验证) & \aigcC & 正式导出包核对、表格复算与文字组织;\texttt{deepseek-flash},2026-09-13 \\
附录 B(演练局数据清单) & \aigcC & 数据清单生成与文字组织;\texttt{deepseek-flash},2026-09-13 \\
附录 C(支撑材料与运行方法) & \aigcC & 运行说明整理与去敏感化;\texttt{deepseek-flash},2026-09-13 \\
附录 D(核心程序代码) & \aigcC & 代码摘录由 \pathtext{scripts/build\_core\_notebook.py} 生成;正文实现由 \texttt{deepseek-flash} 与 \texttt{gpt-6-astra} 参与编写,2026-09-10 至 2026-09-13 \\
\bottomrule
\end{tabularx}
\end{table}
说明三点。
其一,表中日期为对应内容在 AI 会话中的生成或改写日期,逐条时间、提示词与操作细节
另见本项目的《AIGC 使用合规记录》(\pathtext{docs/aigc-compliance-record.tex})。
其二,上述 AI 参与均限于文字组织、公式与代码排版、程序实现和绘图;
模型的推导结论、算法取舍与实验判断由参赛队员确认,AI 生成的程序与数据均经队员
实际运行与复算(演练局复算与评测机记录的最大计时偏差为 $0.000000$ s,见附录~\ref{app:formal})。
其三,AI 客户端的内部推理过程不作为论文依据;论文中的命题均给出可复核的证明或可复现的实验,
不以 AI 输出本身作为论据。
\section{核心程序代码}\aigcC
四问的求解核心集中在约 $5000$ 行的单文件程序中,按\textbf{公共层、几何与集合估计层、
覆盖保证层、策略层}四层组织;评测机、命令行外壳、数据采集与绘图脚本、
单元测试以及未被采用的方案不属于求解核心,不在此列出。
完整可执行程序为支撑材料中的 \pathtext{mcm26b-核心代码.ipynb},
\pathtext{src/mcm26b/} 保留与之逐字对应的模块化版本,两者函数名一一对应。
下列代码为无改动的摘录:函数体与注释与程序一致,只按核心程度取舍。
未收录的部分包括独立评测机(按附件协议复现模拟器,与求解代码零耦合)、
命令行入口、数据采集与论文绘图脚本、单元测试,以及经实测未采用的候选方案。
\input{data/source-listings}