- name
- problem-intelligence
- description
- Meta-model-agent 将竞赛题面转换为子问题、变量、约束、证据和后续工作契约。适用于问题情境解构与建模前置分析。
# 问题情境智能解构
## 条件数据准备入口
在 `问题分析.md` 明确写出 `数据模式: supplied/collected/none`。有附件或采集数据时,递归登记真实数据文件、来源、字段、单位、缺失、异常、编码和潜在泄漏风险,并规划“审计—预处理—质量复核—冻结输入”;无数据时写明 `预处理: skipped` 及原因,不得虚构数据清洗过程。
## 稳定执行契约
- **执行目标**:把原始赛题转化为可执行、可追溯的问题契约,为后续建模提供唯一问题口径。
- **调用参数**:[competition-problem-text]。
- **权威输入**:赛题原文、附件与用户补充要求;已有的用户数据和参考资料。
- **允许交付**:问题分析.md,以及当前工作与必要的状态记录。
- **禁止写入**:不得越权修改已冻结的上游事实、用户原始文件或本协议未授权的目录。
- **可用工具边界**:Bash(*), Read, Write, Edit, Grep, Glob, WebSearch, WebFetch, Agent。
- **最小交付**:完整子问题拆解、变量与约束表、数据需求、证据需求、歧义与风险清单。
- **恢复入口**:优先读取当前工作、状态记录和已有产物,从最近一次通过门禁的位置继续。
- **失败回退**:题面或附件不完整时明确缺口并采用保守假设;发现关键歧义时停止向下游传播未经确认的结论。
- **收口顺序**:先核对输入,再完成产物,再运行本环节门禁,最后登记状态;门禁未通过不得宣告完成。
对以下赛题开展深度分析:**$ARGUMENTS**
## 常量
- **COMPETITION** / **PROBLEM_ID** / **LANGUAGE** — 从 Additional Parameters 查阅
- **TOOLS** — 默认 `python`
- **CUSTOM_REQUIREMENTS** — 用户自定义要求
## 输入
1. 赛题文本($ARGUMENTS 或 `用户数据/` 中的 PDF/Word 文件)
2. 附件数据(`用户数据/*.csv` 等)
## ⛔⛔⛔ 完成铁律(最高优先级,违反则当前环节失败)
**当前环节务必产出 `问题分析.md`(≥ 1.5KB,完整的问题情境解构)**。
⛔ **结束前必跑产出校验**:
```bash
[ -f 问题分析.md ] && SZ=$(wc -c < 问题分析.md) || SZ=0
[ "$SZ" -ge 1500 ] && echo "✅ 问题分析.md ($SZ bytes)" \
|| echo "❌ 问题分析.md 缺失或过小 ($SZ bytes) — 必须补全后重新跑验证, 不要结束本步骤"
```
## 工作过程
### 工作节点 0:查阅赛题原文 + 上游规划
**⛔ 赛题查阅优先级(严格按此次序,避免跳过):**
```bash
# 第一步:检查是否有 Vision OCR 提取的文本(公式最准确)
echo "=== 检查赛题文本 ==="
for f in 用户数据/*_extracted.txt; do
[ -f "$f" ] || continue
echo "找到提取文本: $f"
head -3 "$f" # 查看是否有 "Vision OCR" 标记
done
```
1. **`用户数据/*_extracted.txt`(最高优先级)** — 系统已用 Vision AI 识别 PDF 产出,公式为 LaTeX 格式(如 `$k = 2 \times 10^7$`),直接 Read 查阅
2. `用户数据/*.pdf` — **⛔ 禁止直接用 Read 工具读 PDF!** PDF 的数学公式会变成乱码(如 `7210` 真实是 `$7 \times 10^2$`)。若未 `_extracted.txt`,用下面的脚本提取
3. `$ARGUMENTS` 文本 — 用户在建立工作流时输入的文字
**⛔ 绝对避免直接 Read PDF 文件。** PDF 中的上标、下标、数学符号无法无误提取,会导致参数值错误(如 $10^7$ 变成 "107")。务必读 `_extracted.txt`。
**若 选题规划.md 出现(统计建模选题规划),优先查阅它**,保证分析方向与选题规划保持一致:
```bash
[ -f 选题规划.md ] && echo "=== 选题规划.md exists ===" && cat 选题规划.md || echo "No 选题规划.md (normal for math modeling competitions)"
```
只有在没有 `_extracted.txt` 时才尝试提取:PDF 用 pdftotext 或 PyPDF2,Word 用 python-docx。
### 工作节点 1:赛题全文解读
提取:背景信息、关键问题、已知条件、评价标准。
**⛔ 子问题数量识别准则(务必严格遵守):**
- 只有赛题中清晰标明编号的顶层问题才算子问题。常见格式:
- "问题一"、"问题二"、"问题三"(中文编号)
- "问题1"、"问题2"、"问题3"(阿拉伯数字)
- "Problem 1"、"Problem 2"(英文)
- "(一)"、"(二)"、"(三)"(带括号中文编号)
- **避免把子问题内部的小问 (1)(2)(3) 或 a/b/c 当成独立子问题**——它们是同一个子问题的不同部分
- **避免把背景描述、数据阐明、提交要求当成子问题**
- 若赛题只有 2 个问题,就是 2 个,避免凑成 3-4 个
- 识别完后在报告开头清晰标明写出:"本赛题共 X 个子问题"
### 工作节点 1.5:假设敏感性预检(⛔ 必做,防止全盘方向错误)
**关键原则:拿到题后先花时间做"假设预检",避免急着建模。一个关键假设选错,后续全部结果都会偏离题目设计意图。**
**1. 识别模糊表述,列出多种解释:**
逐句读题目,找出全部可能有歧义的表述。对各个模糊点,列出不少于两种合理解释:
```
模糊表述清单:
1. "[原文引用]"
- 解释A: ...
- 解释B: ...
- 初步倾向: A/B,理由: ...
2. "[原文引用]"
- 解释A: ...
- 解释B: ...
```
常见歧义类别:
- 数量歧义:"各类设备完成工程量"→ 每类 1 台 vs 每类多台并行?
- 界限歧义:"优化方案"→ 只优化次序 vs 与此同时优化数量和次序?
- 约束歧义:"不超过预算"→ 总预算 vs 每期预算?
- 时间歧义:"完成时间最短"→ 最后一个完成的时间 vs 全部工作项总时间?
**2. 对关键歧义做快速验算(两种解释都算一遍问题一):**
对影响最大的 1-2 个歧义点,用最简单的方法(手算/Excel/10 行 Python)把两种解释都在问题一上算一遍:
```
假设预检结果:
- 解释A: 问题一结果 = XXX
- 解释B: 问题一结果 = YYY
- 选择: B,理由: [结果更合理 / 更符合后续问题递进设计 / ...]
```
**3. 核验问题递进性(最关键的校验手段):**
竞赛题的问题一般层层递进。在你选定的假设下,预判各个问题的结果应如何变化:
```
问题递进性预判:
- 问题一(基础场景)→ 结果: 基准值
- 问题二(增加约束/扩大规模)→ 结果应该: 比问题一差/好,因为...
- 问题三(进一步变化)→ 结果应该: 比问题二有明显变化,因为...
- 问题四(花钱/加资源)→ 结果应该: 比问题三明显改善,因为...
```
**⛔ 递进性退化检测:** 若在你的假设下,某个后续问题的结果和前一个问题几乎相同(新增的变量/资源对目标函数没有边际效益),阐明你的假设大概率有问题。**立刻回头核验基础假设,避免继续往下做。**
**4. 在 问题分析.md 中明示登记假设预检结果:**
```markdown
## 假设敏感性预检
### 模糊表述及解释
[列出每个歧义点和选择的解释]
### 快速验算对比
[两种解释在问题一上的结果对比]
### 问题递进性预判
[每个问题的预期结果变化方向]
### 最终假设选择及理由
[选择了哪种解释,为什么]
```
### 工作节点 2:子问题拆解
各个子问题清晰标明:
- 输入/交付
- 难度(简单/中等/困难)
- 推荐方法
- 与其他子问题的关系(依赖/独立/递进)
### 工作节点 3:数据探索
核验 `用户数据/` 中是否有附件数据。
**有数据**:分析数据规模、字段含义、数据质量、数据特征。
**无数据(纯建模题)**:标注"本题无附件数据",在建模思路中阐明需自行构造参数/初始条件(如优化问题的约束参数、微分方程的初始值、蒙特卡洛的分布假设等)。
**⛔ 数据探索的边界:** 当前环节只做描述性统计和初步特征识别(数据规模、缺失率、分布形态、有关性矩阵、异常值检测),避免做数学机制构造。以下行为属于越界:
- 拟合模型(线性回归、周期函数拟合、移动平均预测等)→ 留给 model-formulation
- 写独立的 .py 文件留存到 程序/ 目录 → 留给 computational-realization
- 优化求解(遗传算法、线性规划等)→ 留给 computational-realization
- 若需用 Python 做简单的描述性统计(如 `df.describe()`、`df.isnull().sum()`),可用 Bash 内联一次性脚本,但避免建立独立文件
### 工作节点 4:变量定义与符号表
| 符号 | 含义 | 单位 | 类别 |
|------|------|------|------|
### 工作节点 5:建模思路规划
各个子问题 1-2 种候选方法,标注推荐方案。
常用模型类别:优化类、预测类、评价类、分类/聚类、图论/网络、随机/统计、微分方程。
### 工作节点 5.5:范例感知 + 图形与表格预规划
在交付分析报告前,**优先查阅参考资料了解可用的图形与表格类别**:
```bash
# 1. 读范例和套餐:了解各方法类型推荐的图表组合
cat 工具/figure_exemplars.md 2>/dev/null || cat skills/shared-scripts/figure_exemplars.md
# 2. 读选择指南:了解每种图表的适用场景、数据特征匹配、配色规则
cat 工具/figure_style_guide.md 2>/dev/null || cat skills/shared-scripts/figure_style_guide.md
```
**图形与表格规划方法(按分析环节推导,避免套模板):**
先读 `figure_exemplars.md` 中的"按研究方法的图形与表格套餐":
- 匹配套餐(A-F)→ 以必选项为基础,依据具体选题增减
- 不匹配 → 用下面的"数据形态推导法"
再读 `figure_style_guide.md` 的 "By data shape" 决策表,对各个分析环节做推导:
| 分析环节交付 | 数据形态 | 推荐图形与表格 |
|------------|---------|---------|
| 多变量时间趋势 | 时间×值 | 折线图 basic #3 |
| 变量有关系数矩阵 | N×N 矩阵 | 聚类热力图 advanced #14 |
| 多模型多指标数值 | 方法×指标矩阵 | 分组柱状图 basic #1 或 方法对比热力图 advanced #16 |
| 系数±标准误 | 系数+CI | 森林图 empirical #1 |
| 正负方向效应值 | 正负差值 | 发散柱状图 advanced #20 |
| 多组分布形态 | 多组连续值 | Ridgeline advanced #23 或 Grouped Violin advanced #24 |
| 地理空间数据 | 地理×值 | 地图热力图 competition #7 |
| 排名数据 | 名称×单一数值 | 棒棒糖图 advanced #1 |
| 模块增量贡献 | 环节×增量 | Waterfall advanced #6 |
**⛔ 每张图务必写明配方编号和选取理由**,格式:
`fig_xxx — 发散柱状图 (advanced #20) — 效应分解有正有负,发散柱状图能直观展示方向 — 章节: 实证结果`
**⛔ 配方编号是必填项!** 格式为 `(类别 #编号)`,如 `(advanced #1)`、`(basic #3)`、`(empirical #1)`、`(competition #7)`。系统会依据配方编号自动化注入相应的代码模板到 Meta-model-agent 的 prompt 中。若不写配方编号,Meta-model-agent 将无法获得配方代码,仅可从零写图形与表格脚本,质量无法保证。若图形与表格类别不在配方库中,写 `(custom)` 标注。
配方库是"菜单"不是"菜谱"——知道有哪些图形与表格可用,但依据你的数据和选题自主决定。若你认为某种不在配方库里的图形与表格更适合,也可用。
**硬准则(只有这几条务必遵守):**
- 同一读者任务优先复用同一种清晰图形;禁止为了图表多样性强行更换图形类别
- 每张图务必指定具体类别(不可写"对比图",要写"分组柱状图"或"发散柱状图"或"雷达图")
- 不少于 1 张 DrawIO 技术路线图(放问题重述章节末尾 `1_restatement.tex`)
- 若涉及空间数据,务必有空间分布可视化(地图热力图/LISA图)
- 若涉及模型对比(≥3个模型),不少于用 2 种不同的对比图形与表格类别
- 若涉及前后/分组对比,考虑发散柱状图、Back-to-Back Bar、配对点图等方向性图形与表格
**在 问题分析.md 中交付图形与表格预规划清单:**
```markdown
## 图表预规划
### 数据图表清单
对每张图写明:文件名 — 具体图表类型 (配方编号) — 展示什么数据/传达什么信息 — 放在哪个章节
示例(根据实际选题自由发挥,每张图必须带配方编号):
- fig_xxx — 棒棒糖图 (advanced #1) — 方法排名对比 — 章节: 模型对比
- fig_yyy — 森林图 (empirical #1) — 回归系数及置信区间 — 章节: 实证结果
- fig_zzz — 可行域图 (competition #28) — 约束条件与最优解 — 章节: 模型求解
- TABLE_xxx — [表格描述] — [章节位置]
### DrawIO 架构图清单
对每张 DrawIO 图写明:编号 — 图类型 — 展示什么内容 — 放在哪个章节。
**⛔ 语言规则:DrawIO 图中的所有文字(节点标签、箭头标注、分组框标题)必须与论文语言一致。**
- 中文赛题(国赛/数维杯中文/MathorCup/长三角/五一/华为杯等)→ 图中文字用中文
- 英文赛题(MCM/ICM/APMCM/数维杯英文/认证杯英文等)→ 图中文字用英文
必须规划(所有赛题):
- DrawIO-1: 技术路线图 — 整体求解思路 → 问题重述章节末尾 (1_restatement.tex)
竞赛多问题赛题额外规划(每个子问题都需要求解流程图):
- DrawIO-2: 问题一求解流程图 → 问题流程图_1.drawio → 问题一章节开头
- DrawIO-3: 问题二求解流程图 → 问题流程图_2.drawio → 问题二章节开头
- DrawIO-4: 问题三求解流程图 → 问题流程图_3.drawio → 问题三章节开头
- ...(有几个子问题就规划几张,一一对应)
按需规划(根据赛题特征判断,写明理由):
- DrawIO-N: [模型架构图/变量关系图/算法流程图/Pipeline图/概念框架图] — [展示什么] → [章节位置] — 理由: [为什么需要这张图]
### 图表多样性检查
[列出每种图表类型的使用次数,确认无重复超过 3 次]
总计: ~X 数据图 + ~Y 表 + Z DrawIO + P TikZ + W AI Image
```
#### AI Image / DrawIO 图预规划
**AI Image 只用于场景示意图**(物理/工程类赛题的问题背景图)。技术路线图、求解过程图、架构图等结构化图形与表格采用 DrawIO。
**AI Image 场景示意图(按需,仅物理/工程类赛题):**
- 仅当赛题有具体的物理/工程空间场景时才规划(光学、无人机、传感器网络、交通流、热传导、管道网络等)
- 纯数据/统计类赛题(蔬菜定价、人口预测等)不需
- 最多 1-2 张,放在问题重述章节(`1_restatement.tex`)的问题背景描述此后
**DrawIO / TikZ / AI Image 图类别与适用场景(按赛题特征选取):**
| 图类别 | 推荐工具 | 适用场景 | 放置位置 | 是否务必 |
|--------|---------|---------|---------|---------|
| 技术路线图 | DrawIO | 全部赛题 | 问题重述章节末尾(`1_restatement.tex`),国赛/竞赛没有独立问题分析章节时放问题重述 | ✅ 务必(1张) |
| 子问题求解过程图 | DrawIO | 竞赛多问题赛题,各个子问题一张 | 各子问题章节开头 | ✅ 各个子问题务必 |
| 数据处理 Pipeline | DrawIO | 涉及多阶段数据清洗/特征工程 | 数据预处理章节 | 按需 |
| 概念框架图(简单分层) | DrawIO | 涉及理论模型/研究框架构建(无复杂连线) | 引言或理论分析章节 | 按需 |
| 指标体系层次图 | DrawIO | 涉及 AHP/熵权法/TOPSIS/模糊综合评价等评价类问题 | 模型构建章节 | 评价类务必 |
| 模型选取决策树 | DrawIO | 涉及多种候选模型需对比选取 | 模型构建章节 | 按需(≥3候选模型时推荐) |
| 甘特图/调度方案图 | DrawIO | 涉及排程/调度/资源分配/时间规划 | 求解结果章节 | 调度类务必 |
| 网络拓扑图(≤15节点) | DrawIO | 涉及图论/物流网络/社交网络 | 问题描述或求解结果章节 | 图论类务必 |
| 方法对比矩阵图 | DrawIO | 涉及多方法优缺点对比 | 模型构建章节 | 按需 |
| 模型架构图 | TikZ | 涉及神经网络/深度学习/集成模型 | 模型构建章节 | 按需 |
| 变量关系/因果路线图 | TikZ | 涉及因果推断/中介效应/SEM | 理论框架或模型设定章节 | 按需 |
| 算法过程图(带公式) | TikZ | 涉及自定义算法/迭代优化/启发式搜索 | 算法描述章节 | 按需 |
| 几何示意图(2D 平面) | TikZ | 涉及平面几何关系(三角形、圆、角度标注、坐标系) | 问题描述章节 | 按需 |
| 几何示意图(3D 空间) | AI Image | 涉及 3D 空间几何(圆柱体、球面、反射/折射、空间坐标系) | 问题描述章节 | 按需 |
| 概念框架图(复杂连线) | TikZ | 有跨层箭头+标注系数的理论框架 | 理论框架章节 | 按需 |
| 网络拓扑/路线图(>15节点或需标注路线) | TikZ/matplotlib | 节点多或需精确标注最优路线+权重 | 求解结果章节 | 按需 |
| 场景示意图 | AI Image | 涉及物理/工程空间场景(无人机/传感器/交通等) | 问题重述章节 | 按需(仅物理/工程类) |
**速查:需公式→TikZ,需精确连线→TikZ,需写实渲染→AI Image,其余→DrawIO**
**⛔ TikZ vs AI Image 判定(几何示意图务必过这条准则):**
- 图中有圆柱体、球体、锥体、曲面等 3D 立体 → **AI Image**(TikZ 画 3D 透视会变形、标注重叠)
- 图中有反射/折射光线在 3D 空间中传播 → **AI Image**
- 图中只有 2D 平面元素(圆、三角形、直线、角度标注、坐标轴)→ **TikZ**
- 不确定时 → **AI Image**(比 TikZ 画 3D 安全得多)
**⛔ 按赛题特征自动化判定(规划时务必逐条过一遍,符合条件的务必规划):**
一、全部赛题务必:
- 技术路线图(1张)— 展示整体求解思路
二、按赛题类别触发(逐条核验,符合就加):
- 赛题有多个子问题 → 各个子问题都务必有一张求解过程图,放在相应章节开头。简单问题的过程图可简化(3-4 个节点),但不可省略
- 赛题涉及评价/排名/打分(AHP/熵权法/TOPSIS/模糊综合评价/灰色关联) → 加指标体系层次图(目标层→准则层→指标层)
- 赛题涉及深度学习/集成学习/多模型融合 → 加模型架构图(TikZ)
- 赛题涉及因果推断/路线分析/中介效应/SEM → 加变量关系图(TikZ)
- 赛题涉及自定义迭代算法(遗传算法/模拟退火/强化学习/粒子群/蚁群) → 加算法过程图(TikZ,带公式)
- 赛题涉及复杂多阶段数据预处理(爬虫→清洗→特征工程→建模) → 加 Pipeline 图
- 赛题需构建理论框架(经管/社科类,有假设推导) → 加概念框架图
- 赛题涉及图论/网络优化/物流配送/社交网络 → 加网络拓扑图或路线图
- 赛题涉及排程/调度/资源分配/生产计划 → 加甘特图
- 赛题涉及物理/工程空间场景(光学/无人机/传感器/交通/热传导) → 加场景示意图(AI Image)或几何示意图(TikZ)
- 赛题有 ≥3 种候选模型需对比选取 → 加模型选取决策树(展示选模型的逻辑)
- 赛题涉及空间数据/地理分布 → 加空间分布示意图(可用 matplotlib 地图热力图代替)
**⛔ 每张 DrawIO 图务必在清单中写明文件名**,格式为 `fig_xxx.drawio`,`系统逻辑制图` 环节会按此清单逐条产出并校验。
**在 问题分析.md 中交付:**
```
### AI Image / DrawIO / TikZ 图清单
**语言: [中文/English]**(与论文语言一致,图中所有文字使用此语言)
DrawIO 图(技术路线图/流程图/Pipeline/指标体系/决策树/甘特图/网络图):
- DrawIO-1: 技术路线图 → 技术路线图.drawio → 问题重述章节末尾 (1_restatement.tex) [必须]
- DrawIO-2: 问题一求解流程图 → 问题流程图_1.drawio → 问题一章节开头 [按需]
- DrawIO-3: 指标体系层次图 → fig_index_hierarchy.drawio → 模型构建章节 [评价类必须]
- DrawIO-4: 数据处理Pipeline → fig_pipeline.drawio → 数据预处理章节 [按需]
- DrawIO-5: 模型选择决策树 → fig_model_decision.drawio → 模型构建章节 [按需]
- DrawIO-6: 甘特图/调度方案 → fig_gantt.drawio → 求解结果章节 [调度类必须]
- DrawIO-7: 网络拓扑/路径图 → fig_network.drawio → 问题描述或结果章节 [图论类必须]
- DrawIO-8: 概念框架图 → fig_framework.drawio → 理论分析章节 [按需]
TikZ 图(模型架构图/变量关系图/算法流程图/几何示意图,需要精确连线或公式):
- TikZ-1: [图类型] → 结构示意图.tex → [章节位置] [按需]
AI Image 场景示意图(仅物理/工程类赛题):
- AIIMG-1: {场景名}示意图 → 场景示意图.png → 问题重述章节 (1_restatement.tex) [按需]
总计: N 张 DrawIO + P 张 TikZ + M 张 AI Image
```
### 工作节点 5.6:⛔ 问题情境解构自检协议(逐句扫描,通用防遗漏)
**关键问题:问题情境解构遗漏一个关键句子,后续建模/编码/论文全部基于错误前提,不可逆地传播到终版结果。**
**以下是完全通用的自检过程,不依赖任何具体赛题。务必逐句实施。**
#### 第一步:逐句拆解题目
把赛题原文按句号/分号/冒号切成独立的句子单元,每一句都打上标签:
Auf GitHub ansehen