Files
mcm-26-b/docs/paper/README.md
T
2026-09-13 10:52:28 +08:00

4.8 KiB
Raw Blame History

论文与支撑材料

本目录为依据 issue 题目、2026 年论文格式规范和所给往届参考 PDF 重写的论文工程。四问对应 docs/algo-1.md 至 docs/algo-4.md,并对照当前源码说明实现及证明的适用范围。

交付文件

  • main.pdf:定稿 PDF,摘要 1 页,正文(含参考文献)29 页,未超过格式规范的 30 页; 之后为数据清单与完整源码附录(页数不限)。
  • main.tex、sections/:可编辑 LaTeX 源文件。
  • figures/:正文的矢量图源文件(正式累计耗时图)。
  • 正文的 11 张插图取自 ../figures/(PNG,由 scripts/build_figure_data.py 与 scripts/matlab/*.m 生成),main.tex 只通过 \graphicspath 引用,不重绘。
  • data/formal-results.json、formal-results.csv、audit.md:四份正式数据的匿名快照、复算结果及核对说明。
  • data/project-.tex、project-macros.tex:最优/基线配对对比的表格与数值宏, 由 scripts/build_paper_support.py 从 project/results/.json 生成,不手抄。
  • support-materials.zip:程序源码、正式原始日志、统计快照、论文源文件和逐文件哈希清单。
  • REWRITE_NOTES.md:重写范围、修正的论证和验证记录。

数据口径

正式成绩只使用 Jammers-simulator-full/test/q3 与 test/q4 下的四份正式导出。包与官方原始导出及结果侧文件进行 SHA-256 核对,再由公开头部的票据哈希关联官方正式统计队列。

日志负载没有解密。论文可读快照不含账号、设备或票据内容。两问各只有两份所选正式记录,第三份以未提供记录表示;正式源总数未知,故不计算全清率。四次均为主动退出且清除失败计数为零,这不能替代全清证明。正式包没有与当前策略提交版本绑定,不能据此作配对消融或因果比较。

论文另有两类非正式数据,均单独成节或单独标注,不与正式成绩合并:

  • 第 11 节「算法对比实验」用 project/results 的最优/基线配对结果, 运行在内存回环评测机上,源位置等分布是自建测试假设;
  • 问题三、四末节与时间分解中的演练局插图(BBM9…/GHSN…)、 以及问题一的演练观测算例(U5ZW…),只用于说明机制,图注均标注「演练」。

重算和编译

在项目根目录(Python 3.10 及以上)执行:

python scripts/audit_paper_formal.py
python scripts/build_paper_support.py

第一条需要原电脑的官方正式统计队列;仅使用随包匿名快照重算时执行:

python scripts/audit_paper_formal.py --snapshot docs/paper/data/formal-results.json

快照模式可重算表格并核对现有原始包的哈希,不能在缺少官方队列时再次独立验证来源匹配。

scripts/build_paper_support.py 还会读取 project/results/*.json, 生成第 11 节使用的 data/project-*.tex 与 data/project-macros.tex; 复跑对比框架本身执行 uv run python -m project.run。 正文插图的数据与出图命令见 ../figures/manifest.json:

uv run python scripts/build_figure_data.py

进入 docs/paper 后执行:

latexmk -xelatex -interaction=nonstopmode -halt-on-error main.tex

输出为本目录 main.pdf。VS Code 默认配方也已设为 latexmk (xelatex),自动编译直至交叉引用稳定;仅运行一次 XeLaTeX 会在首次构建时产生问号。 正文插图通过 \graphicspath{{../figures/}} 引用 docs/figures/, 因此需要 docs/paper 与 docs/figures 保持同级目录关系。

在项目根目录生成支撑压缩包:

python scripts/build_paper_support.py --package

打包会把 project/、docs/figures/ 与四份正式原始包一起写入 support-materials.zip; 缺少 Jammers-simulator-full/ 原件时该命令会报错,不会生成缺日志的压缩包。

需要 TeX Live 的 XeLaTeX、ctex、TikZ。mcm26b-paper.cls 已恢复原模板,文档类选项和标题、摘要、关键词的版式也恢复原用法。精简支撑包不包含大体积字体,编译前需从原项目补齐 docs/paper/fonts/,不提供会改变原版式的字体回退。源码附录中的数学符号仍采用 LaTeX 转义命令。data/listing-source/ 只是生成的排版副本,可执行的 src/ 文件保持原样。

版式与验证

A4、四边距 2.5 cm,电子版由摘要页起连续编号,不含目录、承诺书和编号专用页。正文按问题重述、分析、假设、符号、计时模型、四问模型与算法、正式结果、算法对比、评价、参考文献组织。源码附录列出全部 31 个策略及配套 Python 模块和两个论文处理脚本。

统计表、对比表与耗时图分别从匿名快照和 project/results 生成;几何示意图使用正文明确给出的参数。几何推导、离散覆盖证书、正式测试与自建对比分别说明。详见 REWRITE_NOTES.md。