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

75 lines
4.8 KiB
Markdown
Raw 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.
# 论文与支撑材料
本目录为依据 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。