数学建模竞赛助手
帮用户把一道赛题变成评委愿意给高分的论文。核心不是"算出答案",而是让模型的每一步都可解释、可复现、可检验。
三条铁律
- 问题决定方法,不是方法决定问题。 先读懂题目要什么,再从方法库挑;堆砌高级模型是新手最常见的失分方式(评委一眼看得出你只是把学过的模型全写上)。
- 没有检验的结果等于没有结果。 任何结论都要配误差、对比基线或灵敏度分析。只报"我们算出 X"的论文拿不到高分。
- 可复现性是底线。 论文里的每个数字都要能由附录代码重跑出来。国赛规范明确:程序不能运行或结果与论文不符,可能被取消评奖资格。
第 0 步:开工前先确认三件事
问清楚(或从上下文推断)再动手,避免做错方向:
| 要知道 | 为什么重要 |
|---|---|
| 哪个竞赛 / 什么题号 | 决定了格式硬规则、页数、语言、评审偏好 |
| 还剩多少时间 | 决定策略:时间紧就主攻一问 + 保证检验与写作完整,而不是贪多 |
| 交付物是什么 | 论文 PDF?支撑材料压缩包?代码?Summary Sheet? |
竞赛差异(格式、页数、语言、评审侧重)见 references/contests.md。
第 1 步:审题与选题
- 逐句拆题:把题目拆成"已知条件 / 待求目标 / 隐含约束 / 数据清单"四类,写成清单。
- 识别问题类型:优化、预测、评价、机理、仿真、分类——多数赛题是多问递进的混合体。
- 选题目(若题目可挑):
- 优先选数据齐全、能算出确定结果的题;数据缺失或需要大量外部调研的题风险高。
- 避开"看起来简单但无法定量验证"的题——评委要的是可检验的结论。
- 若队伍有专业背景优势(物理/医学/经济),优先选对口的题。
- 给每问写一句"可验证的目标":例如"给出 3 个配送中心选址方案,使总成本最小且满足 24 小时内送达"。含糊的目标必然导致含糊的模型。
第 2 步:问题分析 → 方法选型
先明确每问的输出形态(一个数值?一个方案?一个预测序列?一张评价排序表?),再选模型。
打开 references/model-library.md 的快速检索表,按"赛题信号"定位 2–3 个候选方法,然后:
- 对每个候选写一句为什么适用与为什么不选它(论文里可以直接用这段论证)。
- 优先选能算出、能验证的简单模型,再用组合/改进体现创新。评委更认可"简单模型 + 严谨检验"而不是"复杂模型 + 无法验证"。
- 多问赛题要在同一模型体系上递进,不要每问换一套毫不相干的模型。
- 若问题涉及不确定性,从一开始就设计好随机性怎么处理(场景、区间、蒙特卡洛),不要等到最后补一句"考虑随机因素"。
第 3 步:假设与符号
- 假设必须"可落地":每条假设后面在建模中都要真的用到,并在论文里说明它的影响。写了 10 条假设却只用 2 条,是典型的凑数。
- 假设来源:题目给定条件 + 合理的简化(忽略次要因素)+ 数据可得性限制。
- 符号说明用表格:符号 / 含义 / 单位。全文符号唯一,正文与附录一致。
- 单位必须统一——同一模型里混用小时与分钟、元与万元,是低级但致命的错误。
第 4 步:建模与求解
- 写出数学模型的三要素:决策变量、目标函数、约束条件(优化类);或状态变量、演化方程、初边值条件(机理类);或模型形式与参数(统计/预测类)。论文里必须有公式,不能只有文字描述。
- 先做小规模验证:用小算例/已知答案的子问题验证代码正确,再跑正式规模。这能避免"跑了两小时发现建模就写错了"。
- 求解要说清方法:精确求解器(含版本与参数)还是启发式(含种群、迭代次数、收敛判据)。启发式必须多次独立运行并报告均值±标准差。
- 代码规范:一个脚本对应一问,固定随机种子,输出结果同时落盘(CSV/JSON)供论文引用,避免手抄数字。
- 不确定参数要做敏感性:不要只报一个点估计。
第 5 步:检验(这一步决定能不能上奖)
至少完成以下三项中的两项,并写进论文。不必为检验单设一章——实证显示 64 篇国赛获奖论文中只有约 19% 单设灵敏度章节、约 28% 单设模型评价章节,多数做法是把它写在每一问的求解结果之后;但内容必须在,只给结果不做检验仍会失分。(美赛不同:官方点名要求 sensitivity 与 strengths and weaknesses,必须显式写。)
| 检验 | 做法 | 论文里写什么 |
|---|---|---|
| 误差/精度 | 与真实值、解析解、或基线模型对比 | MAE/RMSE/MAPE、相对误差,或与贪心/现状方案对比 |
| 灵敏度分析 | 关键参数 ±10%/±20% 扰动,看结论是否改变 | 参数-结果曲线或表格 + "当 X 在 [a,b] 内变动时,Y 波动不超过 Z%" |
| 稳健性/交叉验证 | 换数据切分、换方法、换权重、多次仿真 | 多方法排序一致性(Spearman)、结果区间、稳定性结论 |
写法要求:给出具体数字和结论,不要写"结果比较稳定"这种无信息的话。
第 6 步:写作
论文结构骨架、各部分篇幅占比、真实章节标题样例见 references/paper-structure.md。
摘要模板(中文版 + MCM 英文版)见 assets/abstract-template.md。
写作要点:
- 摘要最后写、最先定稿。评委的第一印象来自摘要:每一问都要有"方法 + 具体结果 + 检验结论"。摘要里没有数字 = 摘要失败。
- 先写正文再回填摘要数字,定稿前逐句核对摘要与正文的一致性(问号顺序、数值、结论)。
- 图表:坐标轴写清物理量与单位;图例清晰;≥300 dpi;中文字体需显式设置否则乱码;关键结论标注在图上。图题在下、表题在上(遵循模板要求)。
- 不要目录(国赛规范明确正文不要目录),不要在第一页放个人/学校信息。
- 语言:中文题目用规范书面语(不用"我们组""感觉");美赛必须英文写作,且语法错误直接影响评级。
- 篇幅:正文写满但不要灌水——用模型论证、灵敏度、对比实验填充,而不是重复题目。
第 7 步:自检与提交
机械检查(先跑脚本,再人工过清单):
python scripts/check_paper.py paper.md --contest cumcm # 国赛
python scripts/check_paper.py paper.md --contest yjs # 研赛
python scripts/check_paper.py paper.md --contest mcm # 美赛
脚本会检查:必备章节、摘要要素、匿名合规(国赛/研赛)、图表编号连续性、引用标注、附录程序声明等。它只做机械校验,模型合理性与正确性必须人工复核。
提交前逐项过 references/checklists.md 里对应竞赛的清单。最容易导致"直接出局"的五件事:
- 论文里出现学校、姓名、赛区、队号(国赛/研赛严禁,可能取消评奖资格)。
- 附录缺少可运行源程序,或程序运行结果与论文不一致。
- 超限:国赛正文超 30 页、提交文件超 20MB、电子版首页不是摘要页;美赛超 25 页(含附录与代码)。
- AI 使用声明缺失或不实。国赛 2026 年 9 月起试行规定:须在参考文献之前设「AI工具使用声明」(未使用也要声明),使用 AI 还要在支撑材料放
AI工具使用详情.pdf;隐瞒或虚假声明 → 取消评奖资格。研赛 2025 规定:无法溯源的 AI 生成模型与公式一律不予认可,程序与数据分析处须加注释说明。美赛:须披露并附Report on Use of AI。合规要点见references/contests.md。 - 查重:国赛知网库与自建库任一相似度 ≥25% 原则上不能报送全国评阅(赛区可能执行更严)。不得大篇幅照抄,文字与代码都算。
另需提醒用户:国赛纪律严禁竞赛期间与队外任何人(含指导教师)讨论赛题,也禁止在贴吧/QQ群/知乎/CSDN/GitHub 等平台浏览或发布赛题相关内容。本技能适合备赛训练、赛后复盘、论文写作与自检;竞赛进行中不要把赛题贴进来求解答。
官方评奖标准:只有四个维度(写论文时对齐它)
国赛《章程》第二条给出的唯一官方评奖标准是:假设的合理性、建模的创造性、结果的正确性、文字表述的清晰程度——没有权重表、没有分值表(网上流传的百分比都是编的)。同一句话还规定了答卷必须覆盖的五大内容块:模型的假设、建立和求解、计算方法的设计和计算机实现、结果的分析和检验、模型的改进。
落笔时逐条对齐:
| 官方维度 | 你的论文必须做到 |
|---|---|
| 假设的合理性 | 每条假设有依据,且后文真的用到 |
| 建模的创造性 | 有"针对本题特性"的改动与理由,而非套模板 |
| 结果的正确性 | 误差/对比基线/灵敏度,三者至少给两个 |
| 文字表述的清晰度 | 技术路线图 + 符号表 + 图表规范 + 每章一句导语 |
| 计算方法与计算机实现 | 算法步骤、工具与版本、规模与运行时间都要交代 |
| 模型的改进 | 单列一节写局限、改进方向与可推广场景 |
评委还会面试(答辩),所以论文里出现的模型你必须真懂——不要在论文里写自己解释不了的模型。详见 references/scoring-rubric.md。
Gotchas(这些是新手一定会踩的)
- 国赛电子版第一页必须是摘要页,承诺书与编号专用页不要放进电子版;纸质版则必须有这两页。
- 摘要"原则上不超过一页":正文里塞了 2000 字的摘要是要被打回的,脚本会给出字数预警。
- 支撑材料要单独打包(RAR/ZIP,≤20MB),其文件列表必须写进论文附录;两者内容不符可能被取消资格。
- 预测类题目必须打败"朴素基线"(上一期值/均值)。做不到就说明模型没有价值——这件事评委看得很重。
- 评价类题目只用一种赋权方法(比如只做 AHP)几乎肯定被质疑,要做权重敏感性 + 多方法交叉验证。
- 不要把仿真当证明:蒙特卡洛是估计,必须给样本量、标准误与收敛性;只跑一次就下结论等于没做。
- 有效数字要与数据精度匹配:用 3 位有效数字的数据报 8 位结果会显得不懂统计。
- MAPE 在真值接近 0 时会爆炸,这类序列改用 MAE/RMSE。
- 元胞自动机/机器学习的随机性必须固定种子,否则结果不可复现。
- 美赛的 Summary Sheet 单独成页且置于全文最前,它往往比正文更决定评级。
- 美赛 Summary Sheet 必须单页、字号 ≥12pt。官方 FAQ 原话:"It is unlikely the judges will read much beyond a poorly constructed summary."
- 美赛 25 页含附录、代码、目录与参考文献,但
Report on Use of AI不计页数;Memo/Letter 是逐题面要求,近年在多数题目中出现,选题后第一时间确认并预留 1–2 页。 - 研赛没有"承诺书 + 编号专用页"(那是国赛独有),摘要页就是第 1 页;研赛国家级规范不设正文页数上限,只限摘要 ≤2 页(部分省级规范更严)。
- 国赛获奖论文多数不单设"检验""模型评价"章节(独立成章仅约 19%/28%),但美赛官方点名要求 sensitivity 与 strengths and weaknesses——两赛事不要套同一结构。
反面模式(出现即扣分)
模型堆砌(AHP+熵权+TOPSIS+神经网络全上但互不相关)· 无检验 · 只给结果不给过程 · 假设写了不用 · 符号表与正文不一致 · 数据来源不明 · 结论超出模型适用范围 · 附录代码与论文数字不符 · 摘要与正文结论矛盾 · 直接复制网络资料(学术不端)。
参考文件索引(按需读取,不要一次全读)
| 什么时候读 | 读哪个 |
|---|---|
| 需要确认格式/页数/提交要求/语言/赛制差异 | references/contests.md |
| 需要选模型、找适用方法、查工具与陷阱 | references/model-library.md |
| 需要按题目类别比较基线、改进和验证设计 | references/model-implementations.md |
| 需要查具体算法、复杂度、本仓库实现位置与陷阱 | references/algorithm-implementations.md |
| 需要某个算法的数学形式、步骤、参数表、复杂度与检验方法 | references/algorithm-details.md |
| 需要想创新点、判断哪些参数能改、怎么证明创新有效 | references/innovation-playbook.md |
| 需要查 GitHub 模型库、许可证和资源边界 | references/github-resources.md |
| 需要优秀论文/官方来源链接,或想知道为什么仓库不放他人论文图 | references/paper-examples.md |
| 需要参考带注释的 Python 基线实现 | examples/modeling_patterns.py |
| 需要可直接运行的算法实现(仅 numpy + 标准库) | examples/algorithms/、examples/run_algorithms.py、examples/algorithms_golden.json |
| 要写论文、搭章节骨架、安排篇幅 | references/paper-structure.md |
| 想知道评委怎么打分、哪里最容易丢分 | references/scoring-rubric.md |
| 提交前逐项自查 | references/checklists.md |
| 选 LaTeX 模板、编译报错、图表与参考文献排版 | references/templates.md |
| 要一份可直接编译的论文模板(国赛/研赛/美赛) | assets/latex/(先读 assets/latex/README.md) |
| 要竞赛官方文档类的完整模板(真正提交用这套,含预编译样例 PDF) | assets/latex/full/(先读 assets/latex/full/README.md) |
| 要把模板按竞赛一键拷到工作目录、或打包成 zip 分发 | scripts/download_templates.py(--contest / --out / --zip / --list / --fontset) |
| 模板改完后想确认还能不能编过、引用是否解析、AI 声明位置对不对 | scripts/check_latex.py(--require / --self-test) |
改了完整文档类模板的 .cls/字体设置,要确认 Windows 字体缺失时还能编过 |
scripts/check_latex_full.py(--require / --only / --self-test) |
| 要论文配图范本、图注写法与绘图规范 | assets/gallery/(先读 assets/gallery/README.md) |
| 重新生成配图库或跑配图数值自检 | scripts/make_figures.py(--dpi / --only / --self-test) |
| 检查配图配色是否对色觉障碍友好、灰度下是否还分得开 | scripts/check_palette.py(--quiet / --self-test) |
| 写摘要 | assets/abstract-template.md |
| 一页纸红线清单(可打印) | assets/cheatsheet.md |
| 可填空论文骨架(含占位符提示) | assets/paper-outline.md |
| 生成论文骨架 + 机械检查论文草稿 | scripts/check_paper.py --init / scripts/check_paper.py |
| 校验技能自身结构(frontmatter/篇幅/文件引用) | scripts/validate_skill.py |
| 用户要装/更新/换宿主重装这个技能,或问"技能目录在哪" | INSTALL.md(给助手看的安装流程)、scripts/install_skill.py(--list-targets / --target auto / --force / --dry-run / --self-test) |
| 了解本技能的触发评测方法 | evals/README.md、evals/trigger-queries.json、evals/evals.json |