Files
mcm-26-b/docs/figures
2026-09-13 18:43:25 +08:00
..
123
2026-09-13 10:27:09 +08:00
2026-09-13 18:05:59 +08:00
2026-09-13 18:05:59 +08:00
2026-09-13 18:05:59 +08:00
2026-09-13 18:43:25 +08:00
2026-09-13 18:05:59 +08:00
2026-09-13 18:43:25 +08:00
2026-09-13 18:05:59 +08:00

docs/figures —— 论文插图

本目录的 10 张 PNG 全部进入论文:docs/paper/main.tex 用 \graphicspath{{../figures/}} 直接引用,论文不重绘、也不手抄图内任何数字。 全部插图由同一脚本生成:

uv run python scripts/plot_paper_figures.py     # 依赖 numpy 与 matplotlib

数据来自 docs/paper/data/ 下的复算结果(practice-results.json、 practice-geometry.json、正式统计快照)与第四问覆盖计划; 逐图来源见 manifest.json。图注为中文,并注明数据取自演练局还是正式测试。

约定

  • 默认配色与字体沿用 matplotlib 默认样式,不引入自定义调色板;
  • 图内不放标题与解释性文字,只保留坐标轴、图例与必要的元素标注,含义由图注承担;
  • 图例置于坐标区外,散点与角度标注按位置自动避让,保证互不重叠;
  • 输出 PNG(300 dpi、白底)。

图清单

文件 内容 数据来源 论文位置
framework-decision-loop.png 观测—候选集—任务—动作的闭环决策过程 论文问题分析的结构 图 1
steps-state-machine.png 会话状态机(未进入 / 倒计时 / 接口开放 / 关闭) src/mcm26b/protocol/client.py 图 2
timing-attachment-example-105-111-194-199.png 附件计时示例:逐动作耗时构成与单步合计 题面附件 2 的计时示例 图 3
geo-q1-geometry.png 问题一三幅几何:角域交会、定位区域放大(直径圆与最小包围圆)、等边三角形反例 practice-geometry.json(演练局观测复算)、examples/q1/triangle.json 图 4
geo-q2-guaranteed-reception-disk.png 问题二:截断角域外接圆与安全候选盘,右侧为半径分解 src/mcm26b/config.py 图 5
geo-q4-minimum-cover-31-points.png 问题四:31 点最小命中集分布与定向源读图约定 src/mcm26b/guarantee/plans/q4_mincover_v2.json 图 6
selfbuilt-q3-search-clear-path.png 问题三演练局:全向源搜索与清除路径(含每次检测的位置、结果与示向度射线) referee-data/sessions/<问题三主局>/log.jsonl 图 7
selfbuilt-q4-search-clear-path.png 问题四演练局:混合源路径(含定向源朝向、±90° 可见范围与检测点) referee-data/sessions/<问题四主局>/log.jsonl 图 8
practice-virtual-time.png 44 局演练的总虚拟时间分布与全清局均值 practice-results.json 图 9
formal-time-bars.png 六次正式测试的累计虚拟耗时分解 formal-results.csv 图 10

论文主局案例编码不写死在脚本里:plot_paper_figures.py 读取 docs/paper/data/practice-macros.tex 中的 PractQThreeMainCase / PractQFourMainCase,与正文口径同源。

归档与回放

examples/replay/ 归档了论文主局的行为日志副本,便于在没有 referee-data/ 时仍能绘图; scripts/archive_replay_logs.py 用于把新的演练局追加归档:

uv run python scripts/archive_replay_logs.py --list        # 本机有哪些局
uv run python scripts/archive_replay_logs.py <案例编码>     # 追加归档