数学建模赛题分析与建模设计合并阶段。用于读取题面和附件,完成子问题拆解、数据理解、假设预检、变量定义、模型公式、目标函数、约束条件、求解策略和可交给代码实现的建模报告。
---
name: 2analysis-modeling
description: "数学建模赛题分析与建模设计合并阶段。用于读取题面和附件,完成子问题拆解、数据理解、假设预检、变量定义、模型公式、目标函数、约束条件、求解策略和可交给代码实现的建模报告。"
allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, Agent, WebSearch, WebFetch
---
# 赛题分析与建模设计
## 数学建模规范参考
如需领域判断,读取 `../_references/math_modeling_norms.md` 中的“赛题理解与子问题识别”“假设与模型建立”和“题型防错速查”小节。该文件只作为规范知识库,不替代本阶段的分析报告结构。
## 必须产出
在当前工作目录的 `reports/` 子目录中创建或更新:
- `reports/ANALYSIS_MODELING_REPORT.md`:
- 赛题分析、子问题拆解、数据与附件理解、评价标准、关键歧义和假设预检。
- 变量、符号、模型假设、目标函数、约束条件、求解算法、各子问题实现口径、代码阶段任务清单
不要在本阶段写论文正文,不要生成最终 `paper/`,不要把图表排版任务提前到这里。
## 工作流程
### Step 1: 子问题拆解
只把题面中明确编号的顶层问题当作子问题,例如“问题一/二/三”“Problem 1/2/3”。不要把小问、背景描述、数据说明、提交要求误当成独立子问题。
在 `ANALYSIS_MODELING_REPORT.md` 开头明确写:
根据题目动态调整问题数量
本赛题共 X 个子问题。
每个子问题要说明:
- 输入数据和已知条件。
- 决策变量或预测对象。
- 目标函数或评价指标。
- 约束条件。
- 与其它子问题的依赖关系。
- 绘制哪些图像或表格来展示结果。
### Step 2: 假设敏感性预检
列出关键歧义,不要急着定模型。对影响结果的歧义至少给出两种解释,并用简单验算或逻辑递进判断选择。
必须在 `ANALYSIS_MODELING_REPORT.md` 中包含:
```markdown
## 假设敏感性预检
### 模糊表述及解释
...
### 快速验算与递进性检查
...
### 最终采用的解释
...
### 绘制的图像和对比表格
```
如果某个假设会让后续问题的新增条件没有边际效果,要回头调整解释.
### Step 3: 数据理解与建模路线
对每份附件做数据理解:
- 行列规模和字段解释。
- 缺失、异常、重复、单位不一致。
- 可直接用于建模的变量。
- 需要派生的指标。
然后给出总体路线:
```text
题面 -> 数据清洗(EDA) -> 子问题一模型 -> 子问题二模型 -> 。。。。 -> 结果检验 -> 论文展示
```
### Step 4: 建模报告
在 `ANALYSIS_MODELING_REPORT.md` 中写出可交给代码阶段实现的完整方案。
每个子问题至少包含:
- 问题目标。
- 符号和变量。
- 模型假设。
- 目标函数。
- 约束条件。
- 求解方法。
- 输入输出。
- 代码实现要点。
- 结果校验方法。
公式要清楚到代码阶段能直接实现。算法描述要包含核心步骤、停止条件、复杂度或可行性说明。
推荐结构:
```markdown
# 建模报告
## 1. 总体建模框架
## 2. 数据处理方案
## 3. 符号说明
## 4. 问题一模型
## 5. 问题二模型
## 6. 问题三模型
....
## 7. 灵敏度分析与检验方案
## 8. 代码实现任务清单
```
如果子问题数量不是 3 个,按实际题面调整章节,不要硬凑。
### Step 5: 给代码阶段的接口
在 `ANALYSIS_MODELING_REPORT.md` 末尾写一个“代码实现任务清单”,格式如下:
```markdown
## 代码实现任务清单
| 任务 | 输入 | 输出 | 方法 | 校验 |
| --- | --- | --- | --- | --- |
| 问题一 | ... | ... | ... | ... |
| 问题二 | ... | ... | ... | ... |
```
## 质量要求
- 所有结论都能回到题面或数据。
- 不编造数据字段和数值。
- 不跳过歧义分析。
- 模型既要有数学表达,也要能被代码实现。
- 若数据不足或题面不清,要明确记录风险和替代方案。
Creator's repository · jihe520/mathmodelagent