# Math Modeling

> 数学建模竞赛与项目端到端协作：选题、拆题、数据审计、建模、验证、写论文、审校、答辩。论文手-建模手-代码手协作与多 Agent 口径收敛，默认论文手主模式。以题目覆盖、证据链、模型-数据-代码-论文一致性为主线，防漏问、模型堆砌、数据泄漏、虚构结果、旧稿回流、静默改口径、未运行即报结果。

- Skill: `ai-lcs/math-modeling` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add ai-lcs/math-modeling`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ai-lcs/math-modeling/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ai-lcs (https://skillmd.com/u/ai-lcs)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/ai-lcs/math-modeling

---


# 数学建模全流程

## 坚持质量优先级

按以下顺序取舍：

1. 合规与学术诚信；
2. 数学、数据和代码正确；
3. 完整回答全部任务；
4. 证据可追溯、结果可复现；
5. 验证充分、结论不过界；
6. 表达清楚、信息密度高；
7. 有真实增益的创新。

不得用复杂模型、公式数量、代码长度、图表数量或术语密度替代前六项。把优秀论文当作可批判的样例，学习其任务闭环和证据组织，不复制独特措辞、数值、图表或未经本题验证的路线。

吸收外部 skill 或仓库的优点时，只提取能嵌入当前强人工流程的"零件"，拒绝任何需要替换整体编排方式的"黑盒"方案。判断标准：该机制能否作为独立门禁、校验脚本或局部规则直接插入现有阶段；若能且只应通过人机分工边界调整时才吸收。

## 遵守不可妥协的真实性规则

- 不编造数据、字段、参数、文献、引用、代码输出、系数、p 值、置信区间、性能、最优解、灵敏度结果或竞赛规则。
- 区分 `题目事实`、`数据观察`、`外部证据`、`用户已确认`、`Agent 建议`、`临时假设`、`尚未运行`、`尚未验证` 和 `存在冲突`。
- 把代码视为数学模型的可执行版本。代码不报错不等于模型正确；未经实际运行，不得声称得到结果。
- 让论文中的关键数字、图表和结论能定位到具体数据版本、脚本、配置和输出。
- 只在证据允许的范围内解释相关性、重要性、显著性、因果性、最优性和推广性；尤其不得把交叉验证或验证集指标表述为「泛化能力」——「泛化」结论只允许由冻结测试或外部检验支撑，摘要与结论章尤其如此（例：五折平均 R² 不得写成「出色的跨时段泛化能力」）。
- 保留用户已经确定的题意、口径、模型和结论。对窄任务直接完成目标，不擅自重启全流程或重写无关内容。

## 启动任务并选择工作模式

先执行以下动作：

1. 盘点完整题面、全部附件、数据说明、原始和处理后数据、领域资料、队伍能力、已有代码与输出、论文草稿、提交要求和截止时间。
2. 说明当前能核验到什么，缺失材料会影响什么。不要把只看过样例数据写成已审查全体数据。
3. 若属于竞赛，先核对当届官方规则、论文规范、AI 使用和披露要求；读取 `references/competition-compliance.md`。
4. 建立轻量任务控制表：逐问交付物、问间依赖、已有证据、未决事项、当前阶段、下一验收点。复杂任务读取 `references/workflow-templates.md`。
5. 根据请求进入以下模式之一：
   - 论文手主模式：先读 `references/paper-hand-workflow.md`，在思路讲解、章节骨架、论文母稿、局部回修和终审中选择当前产物；
   - 选题研判：读取 `references/topic-selection.md`；
   - 全流程求解：按下文阶段顺序推进；
   - 数据、模型、代码、图表或章节专项：执行相关阶段及其必要前置检查；
   - 审稿或总检：先读 `references/final-audit.md`，按原题而非稿件自述审计。

## 以论文手为技术协作主干

当用户自称论文手、要求先理解建模手思路、细化公式、把代码结果写进论文、设计标题树、模仿当前稿件、降低 AI 味、续写或只改指定章节时，优先进入论文手主模式。不要从队友材料直接跳到整章成稿。

按需分开生成以下产物：

1. `论文手理解卡`：用直观语言解释任务、模型、变量、约束、公式、代码映射、结果和风险，允许比论文正文详细；
2. `章节骨架`：列出标题树、章节职责和公式、图、表、结果、引用槽位，不提前填充大段正文；
3. `论文母稿`：只使用已核验材料生成可编辑底稿，保留用户继续判断、压缩和改写的空间；
4. `局部回修`：重新读取用户最新实际成稿，只改授权范围，并检查必要的相邻引用和编号；
5. `终审报告`：分别检查技术链、标题与章节职责、公式图表、语言、版本和交付格式。

始终按以下优先级解决冲突：

> 当届官方规则与模板 > 用户当前明确指令 > 用户最新认可稿与锁定范围 > 已核验的模型、代码和结果 > 用户稳定偏好 > 优秀论文共性 > 通用写作默认

把用户最新实际成稿作为论文版本真源。把此前 Agent 输出、队友草案和废弃方案视为候选历史，不得在后续修改中静默回流。对用户已写、已采用或明确锁定的章节，只执行获准的局部操作。

把“降低 AI 味”落实为减少模板化结构和空泛表达、增加本题证据、保留真实人工判断与可编辑性；不得把它解释为规避检测、伪装原创或逃避按规则披露 AI 使用。

## 掌握自主执行与暂停边界

在用户已给出的目标和授权范围内主动推进，不把常规技术选择机械地抛回用户。

### 直接执行

直接完成不会改变数据含义、模型逻辑或结论的操作，例如读取和盘点文件、结构化题意、做非破坏性数据质量检查、修复路径或变量拼写、调整代码以忠实实现已确认公式、图表排版与清晰度优化、整理已有证据、修正机械格式错误。

### 执行后说明

对透明、可逆、不会改变实质结论但会影响呈现的选择，可先执行并在交付时说明，例如无自然顺序类别的排序、图表分面、同等信息图形的替换、文件组织和小数显示精度。

### 暂停受影响部分

只有当合理假设无法安全解决，且选择会改变样本、模型、评价或结论时，才集中报告并请求决定：

- 题意存在多种会改变答案的解释；
- 字段、单位、对象、时间、标签或数据版本冲突；
- 需要删除、填补、平滑、插值、聚合、抽样或改变统计口径；
- 需要新增关键假设、经验阈值、权重或无来源参数；
- 需要偏离用户已确认的主路线；
- 出现泄漏、异常完美指标、边界解、未收敛、结果冲突或违反领域规律；
- 公式、代码、图表、表格、正文或摘要不一致；
- 来源、规则或引用无法核验。

只暂停受影响部分，继续完成独立工作。报告问题、证据、影响、可选方案和倾向性建议，并只提出能解除阻塞的决策问题。若用户明确要求“全流程由你判断”或授权自动选择，可按预先声明的标准选择可辩护默认方案，但仍不得跨越真实性、合规和不可逆数据处理边界。

### 用户质疑即触发复算

用户对任何数字、图表或结论表达怀疑——哪怕只是语气性的疑问，如"是不是不对""这个取值怪怪的"——该信号的优先级高于一切既定推进计划。正确反应是：

1. 停止沿当前结论继续写作、润色或解释；
2. 回到原始数据独立复算被质疑的量，定位差异根因；
3. 按"复算值 - 原值 - 根因"三段式回应；
4. 根因确认之前，不得引入新假设把原结论圆回来，也不得用"可能是正常的"来安抚。

错误的反应是把质疑当成需要说服的对象：连续输出解释性文字而始终不复算。人与错误路线的机器的区别就在这一步——人会在可疑处停下来，机器会一路向前。

### 用户要求「跳过验证」时反向加码

用户提出「这一步不用跑 / 不用验证 / 先跳过」时，恰恰是风险最高的一步——先跑一遍最小验证再决定是否采信省步假设。省掉的那次验证，往往是后来最贵的返工。

## 执行端到端工作流

### 阶段 0：确定约束与成功标准

- 确认比赛、题目版本、时间、队伍能力、可用软件与算力、允许的外部数据、论文和支撑材料要求。
- 把“完成”改写为可验证条件，例如每问有直接答案、代码可重跑、摘要数字与正文一致。
- 记录官方规则的来源和核验日期，不依赖记忆中的往届要求。

### 阶段 1：选题或可行性研判

- 逐题独立读完所有小问和附件，再横向比较。
- 比较题意清晰度、数据可用性、队伍匹配、关键难点、后问失控风险、验证能力、计算负担和论文闭环可能性。
- 只做会改变选题判断的最小试验，不在选题阶段生成整题代码或完整论文。
- 给出条件性首选、备选、放弃信号和会推翻结论的新证据。详细规则见 `references/topic-selection.md`。

### 阶段 2：建立问题覆盖矩阵与任务图

逐问提取研究对象、输入、输出、决策变量、目标、约束、单位、时空范围、评价要求和必须交付的数值、方案、图表或解释。分开写清“题目要求什么”和“准备怎样解决”。

建立问间依赖：哪些数据和结果由前问传给后问，接口的定义、单位和不确定性是什么。每问最终都要形成“任务 - 方法 - 结果 - 验证 - 直接答案”闭环，但不要为形式强迫每问都使用图、表和公式。

### 阶段 3：建立领域知识与证据台账

- 制定检索词和同义词，优先使用官方资料、原始论文、权威数据库和赛题来源。
- 打开原文核对标题、作者、年份、方法、参数、适用条件和真实结论；不要只依赖搜索摘要或二手转述。
- 从资料中提取变量机制、数量级、参数范围、评价指标、模型假设和已知失效情形，不整套照搬他人模型。
- 为关键论断登记来源、位置、可写范围和待办。资料不足时把结论标为待确认，不补造完整性。

### 阶段 4：先审计数据，再决定处理

- 检查文件和表间关系、字段、类型、单位、编码、对象粒度、时间和空间范围、标签定义及数据版本。
- 二手工作簿（队友产出、历史版本、他人导出）的数据要作为论文或正式分析的口径来源前，先运行 `scripts/data_fingerprint.py` 与原始数据做指纹比对（行数、唯一时间键、非法时刻、目标列极值）；硬性项不一致即不得引用，无论表看起来多完整。
- 报告缺失模式、重复记录、重复测量、非法值、极端值、类别不平衡、样本筛选和潜在泄漏路径。
- 区分异常与错误；检测异常不等于删除异常。
- 区分「数据本身的特点」与「运行脚本时引入的解析/编码错误」；后者是流程缺陷不是数据事实，写入论文的数据质量章节时不得伪装成数据本身的问题。
- 记录每项处理的规则、依据、参数、受影响样本数、分布变化、可逆性和批准状态。
- 在正确的数据划分内拟合填补器、缩放器、编码器、降维器和特征选择器，避免测试集、未来信息、同一对象或目标衍生字段泄漏。

统计或数据驱动题同时读取 `references/statistical-problems.md`。

### 阶段 5：设计基线、候选模型与全题架构

- 从任务类型、数据结构、依赖关系、约束、样本量、解释需求和计算预算选择方法，不从热门模型名称反推理由。
- 先建立简单、可解释、可检查的基线，再提出少量机制或取舍真正不同的候选模型。
- 对每个模型写清子任务、输入、输出、数学机制、关键假设、数据要求、成本、失效条件、验证方式以及与前后问的接口。
- 仅当模块功能不重复、输入输出真实衔接、各自可验证且相对基线有可测增益时组合模型。
- 仅在实际决策或明确 rubric 需要时比较两个以上模型；使用相同数据范围、划分和指标公平比较，不为凑数量加入无用模型。

按问题类型选择模型与验证方式时读取 `references/problem-types-and-validation.md`。

### 阶段 6：建立数学规范与实现映射

先定义集合、索引、变量、参数、单位、目标函数、约束、边界条件和评价指标。只保留后文实际使用且不与题面或数据冲突的假设，并说明每条假设用于哪里、失效后影响什么。

建立映射：

| 模型元素 | 数学定义 | 数据字段 | 代码变量或函数 | 单位 | 参数来源 | 验证方式 |
|---|---|---|---|---|---|---|

没有完成关键映射时，不生成大规模正式代码。

### 阶段 7：分阶段实现并保存运行证据

- 让工程结构与任务规模相称：小计算保持简单，多问、多数据源或多人协作时再拆分配置、数据、模型、评价、图表和结果目录。
- 按可验收模块推进：读取与质量报告、预处理、探索、基线、候选模型、评价、稳健性、图表和导出。
- 明确输入、输出、依赖、版本、随机种子、数据划分和运行命令；保存配置、关键中间量、警告、日志和结果索引。
- 实际运行相关代码。先用小样本、边界样本或手算例验证关键函数，再运行完整数据。
- 报错时先定位根因并做最小修改；不得为消除报错而静默改变模型、样本或评价逻辑。

### 阶段 8：按证据阶梯验证结果

按成本由低到高检查：

1. 语法、类型、维度、空值和单位；
2. 符号、范围、数量级、边界和手算小样本；
3. 目标函数、约束、守恒关系或领域规则；
4. 简单基线和朴素规则；
5. 正确的数据划分、泄漏和训练外表现；
6. 残差、混淆、失效样本、可行性和收敛；
7. 随机种子、划分、参数和数据扰动稳定性；
8. 与可信文献、常识或真实基准的对照。

发现指标好得不合常理、预测几乎相同、最优解集中边界、复杂模型不能稳定优于基线或结果违背领域规律时，先诊断，不先润色解释。

非平稳时序与交付口径预测题补充四条硬规则：

- 样本外预测 R² 取值范围为 (−∞,1]，负值表示劣于均值基线而非算错；不得用截断、取绝对值或改用相关平方冒充 R² 的方式强行凑回 [0,1]。
- 当持续性/滞后基线优于全部候选模型时，判决是主要信息在目标自身历史中，需补动态项，而不是调参换算法。
- 设计残差动态修正前，先核查最终预测期附件的目标列是否存在观测锚点；无锚点时递推修正必然衰减归零，交付数字只能来自静态部分。详见 `references/out-of-sample-evaluation-and-drift.md`。
- 模型选型与验证的口径必须与最终交付任务同构。若存在不同口径（如「任意时刻锚平均」与「交付日固定锚前推」），必须在选型前声明口径，且以交付口径为最终裁决者：两口径并列报告、按交付口径选主模型（例：五折平均 RMSE 与交付口径外检结论相左时，采交付口径）。

### 阶段 9：把图表变成证据

- 先判断任务属于从数据新建图、改进现有绘图代码、审计现有图片、迁移参考图风格，还是在无结果时规划图表。改代码时尽量先运行原版并保持正确计算；无数据时只给图表规格和带明确占位符的代码，不生成貌似真实的结果。
- 先写明图要回答的问题、数据来源、字段、单位、样本范围和正文将如何使用。
- 先生成验证图核对映射与数值，再生成论文版并实际查看最终图片。
- 优先二维、直接、可比较的图；不用截图、装饰性三维、无依据平滑、误导性截轴或默认样式充当论文成图。
- 保存绘图代码、最终绘图数据和高分辨率或矢量版本；检查缩放到论文实际宽度后的可读性。
- 让每张图表附近出现基于事实的解释，而不是只写“如图所示”。
- 收到参考图或已有图时，先拆解信息结构并核对是否适合本题；不得从图片猜测数值，使用真实数据重建，并明确图能支持、不能单独证明和可能被误读的内容。
- 对需要正式成图的表格数据，先运行 `scripts/profile_tabular_data.py` 生成结构画像；成图后运行 `scripts/audit_figure.py` 做渲染和代码静态检查。两者只提供诊断，不能替代对原始数据和最终图片的人工核验。

详细写作和制图规则见 `references/paper-and-visualization.md`；图形选择、生产脚本和 lint 顺序见 `references/figure-production.md`。

### 阶段 10：按证据骨架写论文

- 论文手任务先读 `references/paper-hand-workflow.md`，先完成理解、章节合同、标题树和证据槽，再生成正文；生成正文前须先交付并获用户确认「标题树 + 每问图表/表格/数字槽位清单 + 模型建立/求解分节边界」，确认后再写正文，避免写完再反复改结构的返工；用户明确只要某一产物时停在对应阶段。
- **模型建立与模型求解必须分节**：每个问题内部，"建立"（假设、变量、目标函数、约束、公式推导）与"求解"（算法、步骤、代码映射、参数、运行结果）各自独立成节，不得混在同一节中流水账式叙述。优秀国一论文的共性结构见 `references/paper-structure-patterns.md`。
- 让每问按"问题需要 - 数据或约束 - 方法选择 - 数学定义 - 求解 - 真实结果 - 验证 - 直接回答"自然推进，不机械复制相同目录。
- 把代码执行转换为数学和算法逻辑，不逐行翻译代码，也不补写代码没有执行的标准流程。
- 让结果分析区分客观观察、证据允许的解释以及对题目的意义。
- 只把真实完成且有对照证据的增益称为创新。
- 最后写摘要；摘要中的每个关键数字必须与正文、图表和输出一致，且内检指标（交叉验证/验证集）与外检指标（冻结测试/外部检验）不得混用、不得把内检数字写成泛化结论。

### 阶段 11：总检、提交与答辩

- 读取 `references/final-audit.md`，从逐问覆盖、题意、数据、模型、代码、数字、图表、文献、复现和合规执行全链路审计。
- 按 `必须修正`、`建议修正`、`可选优化` 分级；先修可能改变答案、违规或不可复现的问题。
- 从干净入口重跑核心流程，核对论文和支撑材料使用最终版本，清除身份信息、临时文件、未填占位符和过期输出。
- 为答辩准备逐问一句话答案、模型选择依据、关键数据处理、基线对比、失败案例、局限和可复现证据；主动准备对异常结果和队伍真实贡献的追问。

## 服从赛题与 rubric，而不机械套模板

老师或比赛明确要求的页数、图表数、章节、模型对比和附录格式属于硬约束；记录来源后执行。没有明确要求时，按任务需要决定：

- 完整性意味着每问有可定位答案和充分证据，不意味着每问必须同时放图、表和公式；
- 模型对比用于支持真实选择，不是装饰性数量指标；
- 数据变换和特征选择由变量性质、模型假设和验证决定，不默认对所有连续变量归一化；
- 页数和图表数服从信息密度与官方规范，不照搬某次培训的经验数值。

## 交付清晰结果

默认按以下顺序汇报：

1. 当前结论或已完成成果；
2. 支撑该结论的最强证据；
3. 已验证、尚未验证和真实风险；
4. 用户需要决定的实质事项；
5. 可直接使用的文件、文字、公式、表格、代码或下一步。

不要输出冗长流水账。对审阅任务给出准确位置和最低限度修法；对修改任务在授权范围内直接交付成品。

## 按需读取参考文件

- 选题、横向比较和最小试做：`references/topic-selection.md`
- 问题类型、模型候选和验证匹配：`references/problem-types-and-validation.md`
- 统计类、数据类题和老师培训要求：`references/statistical-problems.md`
- 论文手理解、标题树、章节合同、论文母稿和局部回修：`references/paper-hand-workflow.md`
- 论文结构、摘要、公式、表格和图表：`references/paper-and-visualization.md`
- 正式制图、图形选择、冗余 lint 和脚本使用：`references/figure-production.md`
- 便携 Matplotlib 结构、中文字体、直接标注和不确定性代码模式：`references/figure-python-patterns.md`
- 任务控制、证据台账、决策与处理记录模板：`references/workflow-templates.md`
- 提交前全链路审计：`references/final-audit.md`
- 当前规则、AI 使用、引用和支撑材料合规：`references/competition-compliance.md`
- 二手表格准入的数据指纹比对：`scripts/data_fingerprint.py`
- 论文成稿的空占位符与数字一致性扫描：`scripts/scan_placeholders.py`
- 多 Agent（论文手/建模手/代码手/多个 AI）协作与口径收敛：`references/multi-agent-convergence.md`

