소스 정보
- 저장소
- WuXinbo-bo/Math-model-skills
- 최근 소스 활동
- 2026년 8월 17일 02:54
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 70
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
SOC 직업 분류 기준
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/WuXinbo-bo/Math-model-skills --skill model-formulation명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
Meta-model-agent 致力于辅助研究者与参赛团队完成高质量数学建模研究和论文产出,提供从问题理解、模型构建、计算实验、证据可视化到论文写作、冠军级多轮审稿与提交验收的完整工程支持。适用于 CUMCM、51MCM、MCM/ICM 及同类数模研究任务,可用于启动或恢复项目、按证据门禁推进、修复薄弱环节并形成可复现、可验证、可提交的高质量数模论文。
Meta-model-agent 将数学机制落地为可运行程序、数值实验、结果合同与可复核证据。适用于计算实验实现。
Meta-model-agent 完成编译、版式、匿名、页数、引用与提交前合规验收。适用于提交质量验收。
| name | model-formulation |
| description | Meta-model-agent 基于问题契约建立数学机制、公式体系、求解路线与校验方案。适用于数学机制构造与算法规划。 |
有数据时,在 建模报告.md 单列“预处理合同”,定义原始文件、缺失值/异常值/编码/单位或标准化策略、处理前后质量指标、唯一 数据/processed/ 输出,以及数据泄漏边界。预测或学习任务必须先划分再拟合,变换参数只从训练数据估计;不适用时必须说明理由。具体处理方法根据题目数据和模型需求确定,禁止把通用脚本当作固定答案。无数据时保留明确跳过记录。
基于问题情境解构开展数学建模与求解:$ARGUMENTS
COMPETITION / PROBLEM_ID — 从 Additional Parameters 查阅
TOOLS — 默认 python
CUSTOM_REQUIREMENTS — 用户自定义要求
问题分析.md — 问题情境解构报告(务必出现)
用户数据/ — 赛题附件数据
当前环节务必产出 建模报告.md(≥ 1.5KB,完整的建模与求解报告)。
⛔ 结束前必跑产出校验:
[ -f 建模报告.md ] && SZ=$(wc -c < 建模报告.md) || SZ=0
[ "$SZ" -ge 1500 ] && echo "✅ 建模报告.md ($SZ bytes)" \
|| echo "❌ 建模报告.md 缺失或过小 ($SZ bytes) — 必须补全后重新跑验证, 不要结束本步骤"
提取子问题列表、推荐方法、变量定义、数据特征。
⛔ 对照 问题分析.md 的推荐方法: 若选取了不同于推荐的方法,务必在 建模报告.md 中清晰标明阐明理由(为什么推荐方法不适用、替代方法的优势)。不可无声地忽略推荐方法。
⛔⛔⛔ 强制审视问题情境解构的"经典问题升级"结论(防止升级被忽略):
关键要求:先完整审视问题情境解构的升级推荐 → 尽可能在建模中满足 → 如有异议务必给出充分理由。
问题情境解构阶段(Phase 5.6)会交付以下表格,建模阶段务必逐条审视:
覆盖度核验表(标注 ⚠️/❌ 的句子是需额外建模的机制)
反向对照核验(题目某句子指出需升级到某变体)
经典问题升级确认表(清晰标明标注"初步映射 X → 终版模型 Y")
⛔ 实施环节:
echo "=== 审视问题情境解构的升级结论 ==="
echo ""
echo "--- 标为⚠️/❌的覆盖度缺口(需要在建模中审视是否补上)---"
grep -A 1 '⚠️\|❌' 问题分析.md | head -40
echo ""
echo "--- 经典问题升级表(需要审视是否采用最终模型)---"
sed -n '/经典问题升级/,/^##/p' 问题分析.md | head -30
echo ""
echo "--- 反向对照的升级要求 ---"
sed -n '/反向对照/,/^##/p' 问题分析.md | head -30
⛔ 三段式决策过程(各个升级推荐都务必走完):
第一段:审视
逐条查阅问题情境解构的升级推荐(如 "Orienteering → Multi-Trip OP")
理解升级的触发缘由(如 ASSURANCE"可充电"→多架次飞行)
判定升级对终版结果的影响(如不用 Multi-Trip 会导致覆盖数被严重低估)
第二段:尽可能满足(默认行为)
若升级在技术上可实现 → 务必采用问题情境解构推荐的变体
若升级增加复杂度但不超出求解能力 → 务必采用
若升级是题目清晰标明要求的机制(如"可充电")→ 无论如何务必采用
第三段:有异议给理由(特殊情况)
若建模阶段认为某个升级不应采用,务必在 建模报告.md 中给出充分理由:
物理/业务不可行:如"题目说可充电但物理上无法实现(如太阳能电池)"
数据不支撑:如"题目没给充电时间参数" → ⛔ 这不是跳过升级的合法理由!务必做合理假设(如假设充电瞬时/固定X分钟/等于飞行时间的X%),随后继续建模升级版
超出求解能力:如"完整 Multi-Trip Stochastic OP 是 PSPACE-hard,简化为序贯单趟 OP,误差预计 < 15%"
评审标准考虑:如"简化后仍能回答题目的关键问题,且提升求解效率"
⛔⛔⛔ 尤其警告:以下理由不是跳过升级的合法理由(等同于无声忽略):
❌ "题目未给 XXX 参数" → 应做合理假设继续建模,不是跳过
❌ "子问题1可简化,留给子问题2/3扩展" → 子问题1也要考虑完整机制
❌ "通过其他方式实现类似效果"(如"多机接力代替充电")→ 这不等同于题目给定的机制
❌ "避免增加模型复杂度" → 复杂度本身不是跳过的理由
❌ "短续航无人机覆盖有限,就让它覆盖少" → 这恰恰是升级要解决的问题
⛔ 缺参数的无误处理过程:
识别缺失的参数(如充电时间)
做合理假设,假设值基于常识/文献/类似赛题
在假设列表中清晰标明声明"假设 XXX = Y,依据是 Z"
灵敏度分析中扰动该假设参数
用假设值完整建模升级版,而不是跳过全部机制
⛔ 禁止行为:
❌ 无声忽略升级推荐(连"审视"都没做,直接用简单模型)
❌ 不读问题情境解构的 7.2/7.3 节就启动建模
❌ 有异议但不写理由 → 等同于无声忽略
❌ 用"单次XXX作为基线,后续扩展"作为借口跳过升级
❌ 用"题目未给参数"作为借口跳过升级
⛔ 若采用了升级的简化版本(如"简化的 Multi-Trip OP"),务必在模型中不少于保留升级的关键机制:
Multi-Trip → 务必建模"多次访问同一 base 点"
带时间窗 → 务必建模"访问时刻 ∈ [a, b]"
随机/鲁棒 → 务必建模不少于 2 个场景并对比
多阶段 → 务必建模不少于 2 个阶段的转移
不可"简化"为名把升级完全去掉。
⛔ 防错复核(必做): 查阅 参考资料/error_prevention.md,依据本题涉及的题型(优化/微分方程/统计/评价/图论/几何/动态规划),对照相应章节的"务必做"和"禁止做"条目。在 建模报告.md 末尾写一行:本题涉及题型:[X, Y, Z],已对照防错手册审查。
各个假设务必有合理性阐明。假设要合理且必要,不做不切真实的简化。
⛔ 假设参数化原则: 关键假设务必在代码层面做成可切换的参数,而不是硬编码到逻辑里。这样发现假设错误时,改一个参数就能修正,不需重写全部求解逻辑。
在 建模报告.md 中,各个假设旁边务必写明:
假设 1: [假设内容]
- 理由: [为什么这样假设,不能留空]
- 参数化: [对应代码中的哪个变量/开关]
- 替代假设: [如果这个假设不成立,替代方案是什么]
示例:
假设 3: 每类设备允许多台并行分担同一工序的工程量
- 理由: 题目说"各类设备须分别完成该工序对应的工程量","各类"指设备类型而非单台设备;且问题四增加预算购买设备才有意义
- 参数化: ALLOW_PARALLEL = True(代码中的开关变量)
- 替代假设: 每类设备只用 1 台(ALLOW_PARALLEL = False),但这会导致问题四退化为问题三
⛔ 若某个假设写不出有力的理由,阐明这个假设需再推敲。 回到 问题分析.md 的假设预检结果重新审视。
各个子问题:
方法调研 — 用 WebSearch 搜索"[问题类别] 数学建模 方法"或"[problem type] optimization method",了解这类问题的主流求解方法。避免只凭训练知识选方法——同一类问题在不同规模下最优方法可能完全不同(如 TSP 小规模用精确求解,大规模用 LKH 启发式)
模型选取与理由 — 为什么选这个模型,与候选模型的优势对比,引用调研到的文献支撑
数学公式推导 — 完整严谨,采用 LaTeX 数学环境(目标函数+约束条件)
求解算法设计 — 伪代码或过程描述
⛔ 审计身份与论文表达卡(写入同一份 建模报告.md):
模型定义 Q1 | 正式名称: [题目机制 + 标准数学模型] | 标准模型族: [可识别的学术模型族] | 求解算法: [实际使用的算法]
模型结构 Q1 | 决策变量/状态量: [变量及含义] | 目标函数/统计关系: [优化目标或统计/动力学关系] | 核心约束/方程: [决定模型结构的约束或方程] | 定制机制: [题目特有机制]
论文表达 Q1 | 展示名称: [简洁可发表名称] | 问题角色: new_model | 继承模型: none | 核心方法: [摘要中需要保留的一个核心算法或方法]
正式名称必须让评委直接识别标准数学结构。推荐“考虑维护约束的机组承诺混合整数线性规划模型”“基于季节项与滞后项的动态回归模型”“带时间窗的取送货车辆路径模型”;禁止只写“聚合承诺模型”“超边修复模型”“优化模型”“决策模型”或“综合模型”。
论文展示名称不是审计名称的机械缩写。它应保留主要数学结构,删除运行模式、验证器、预算、冻结合同和过细约束清单,中文通常控制在 8--24 个汉字。核心方法 只登记摘要需要出现的主要求解算法;初始化、修复、加速和独立校验方法留在算法与验证章节。
先判定子问题角色:
new_model:新建数学模型,三行卡均必填;model_extension:扩展上游模型,三行卡均必填并写明继承模型;comparison、validation、application:不得为满足格式强造新模型,只写论文表达卡,展示名称改为“基于前述模型的方案比较/稳健性检验/情景应用”,并登记 继承模型: Q1,Q2 等真实依赖。模型、机制和算法必须分层:混合整数线性规划、动态回归、车辆路径、状态空间等是模型族;维护约束、预算平衡、滚动时域、超边修复是定制机制;HiGHS、Gurobi、分支定界、遗传算法、粒子群、匈牙利算法等是求解算法。DARP、VRP 等问题类别不得单独替代数学表达结构;多指标决策方法可登记为标准模型族时,必须同时写出指标、权重、归一化和聚合/排序关系,不能只报方法名称。
MCM/ICM 另写:PAPER EXPRESSION Q1 | DISPLAY NAME: ... | QUESTION ROLE: new_model | INHERITS FROM: none | CORE METHOD: ...。审计身份仍使用 MODEL DEFINITION 与 MODEL STRUCTURE 两行。
方法选取参考 参考资料/methods_table.md。
保证全部公式中的符号都有定义:
| 符号 | 含义 | 单位 | 取值界限 | 首次出现 |
|------|------|------|----------|----------|
模型检验:回代检验、交叉校验、残差分析
灵敏度分析:关键参数的变化界限和影响
鲁棒性检验:数据扰动下的稳定性
关键原则:物理约束 > 数据忠实度 > 计算正确性
编码阶段是纯实施者,遇到"结果不对"仅可按建模阶段的预案操作,严禁自行发明修正方法。由此建模阶段务必把全部决策做完。
实施环节:
对照防错手册复核模型:重新查阅 参考资料/error_prevention.md 中本题相应题型的"务必做"和"禁止做"条目,逐条确认模型是否满足。不满足的当场调整模型。
交付建模报告的 5 项必备内容(在 建模报告.md 末尾,computational-realization 务必对照实施):
① 结果约束清单(硬边界,超出即判定代码有误):
## 结果约束清单
- [变量名] ∈ [下界, 上界],物理含义:[为什么是这个范围]
- [变量名] 的符号/方向约束:[说明]
- [守恒量]:[应满足的恒等式或误差上限]
② 预期行为描述(定性描述合理结果的"形状"):
## 预期行为
- 时间尺度:系统应在 [X] 时间内达到 [什么状态]
- 稳态特征:[哪些量] 应趋于常数/周期/衰减
- 瞬态特征:[初始阶段应该看到什么现象]
- 单调性/对称性:[哪些量应该单调递增/对称/...]
③ 异常处理预案(每种异常只给一种修正方法,不留选取空间):
## 异常处理预案
若出现 [具体异常描述]:
→ 原因判断:[最可能的原因]
→ 唯一修正方法:[具体步骤]
→ 禁止:[不允许的替代方案]
④ 方法唯一性声明(各个计算环节指定唯一方法,涵盖预处理/后处理/插值/滤波):
## 方法指定
步骤 N:[做什么]
方法:[唯一指定的方法名 + 关键参数]
输入:[从哪来]
输出:[到哪去]
禁止替代:[不允许用的方法,以及为什么不用]
⑤ 验证检查点(编码阶段务必实施的 pass/fail checklist):
## 验证检查点
□ [检查项]:[判定条件],若 fail → [跳转到哪个异常预案]
□ [检查项]:[判定条件],若 fail → [跳转到哪个异常预案]
□ 最终:所有输出量均在约束清单范围内
⑥ 优化结果结构性校验输入(优化类子问题务必给出,编码阶段的 structural_validation() 依赖这些信息):
## 结构性验证输入(供 computational-realization 层级 5 使用)
### 约束活跃性预期
- [约束名1]:预期活跃/不活跃,理由:[为什么这个约束应该/不应该取等号]
- [约束名2]:预期活跃/不活跃,理由:[...]
- 如果所有约束都不活跃 → 说明 [什么情况],需要 [什么操作]
### 决策变量合理范围与预期行为
| 变量 | 物理含义 | bounds | 预期取值区间 | 若取到边界说明什么 |
|------|---------|--------|-------------|------------------|
| x_1 | [含义] | [lb, ub] | [预期在哪个子区间] | [取到上界=资源耗尽/取到下界=该资源无用] |
### 灵敏度方向表
| 决策变量 | 增大时目标函数方向 | 预期灵敏度量级 | 若方向相反说明什么 |
|----------|-------------------|---------------|------------------|
| x_1 | ↓(减小=更优) | 高(主导项) | 目标函数符号写反了 |
### 稳定性预期
- 问题是凸的/非凸的?
- 预期有几个局部最优?(1个=结果应完全稳定;多个=允许 CV<5%)
- 可接受的变异系数阈值:[X]%
### 资源利用率预期
- [资源1]:预期利用率 [X%-Y%],若为 0 说明 [什么问题]
- [资源2]:预期利用率 [X%-Y%],若为 0 说明 [什么问题]
⛔⛔⛔ 建模阶段强制修复原则(不可跳过):
复核中发现任何问题,务必当场修复模型再继续,不可留给 computational-realization 阶段:
模型缺少约束 → 立即补充约束条件
开环积分可能漂移 → 立即加入反馈/阻尼/去漂移机制
守恒律不满足 → 立即补充遗漏项
极端输入导致发散 → 立即加入饱和/截断/正则化
⛔ 禁止的做法:
❌ 发现问题但写"留给 computational-realization 阶段处理"
❌ 在预期界限表里写了修正方案但不调整模型本身
❌ 只在文字中提到"需注意XXX"但模型公式没变
⛔ 检测到问题 = 务必修复。解释缘由 ≠ 处理完毕。当前环节不准许带着已知问题交付 建模报告.md。
留存到 建模报告.md:模型假设、符号阐明、各个子问题的模型/公式/算法、检验方案、灵敏度分析方案、计算实验实现要点。
⛔ 务必将 问题分析.md 中的图形与表格预规划带入 建模报告.md。 在报告末尾附上图形与表格预规划章节(从 问题分析.md 复制或更新),保证 evidence-visualization 能读到完整的图形与表格清单。若建模过程中发现需额外的图形与表格(如灵敏度分析曲线、模型对比热力图),在此处补充。
⛔ MANDATORY: 交付前自检(写完 建模报告.md 后务必按项核验):
echo "=== 建模报告自检 ==="
[ -f 建模报告.md ] || { echo "❌ 建模报告.md 不存在!"; exit 1; }
# 1. 子问题覆盖度
PROB_COUNT=$(grep -c '问题[一二三四五六七八九十0-9]' 问题分析.md 2>/dev/null || echo 0)
MODEL_SECTIONS=$(grep -c '## .*问题[一二三四五六七八九十0-9]\|## .*Problem' 建模报告.md 2>/dev/null || echo 0)
echo "赛题子问题数: $PROB_COUNT, 建模报告覆盖: $MODEL_SECTIONS"
[ "$MODEL_SECTIONS" -lt "$PROB_COUNT" ] && echo "❌ 有子问题未建模!"
# 2. 每个子问题是否有目标函数或模型公式
OBJ_COUNT=$(grep -c '目标函数\|min\|max\|最小化\|最大化\|objective\|模型公式\|数学模型' 建模报告.md 2>/dev/null || echo 0)
echo "目标函数/模型公式出现次数: $OBJ_COUNT"
[ "$OBJ_COUNT" -eq 0 ] && echo "❌ 未找到任何目标函数或模型公式!"
# 3. 约束条件(优化类必须有)
CONSTRAINT_COUNT=$(grep -c '约束\|s\.t\.\|subject to\|限制条件\|≤\|≥' 建模报告.md 2>/dev/null || echo 0)
echo "约束条件出现次数: $CONSTRAINT_COUNT"
# 4. 符号说明表是否存在
grep -q '符号.*说明\|符号.*含义\|Symbol.*Description' 建模报告.md && echo "✅ 符号说明表存在" || echo "❌ 缺少符号说明表"
# 5. 灵敏度分析方案是否存在
grep -qi '灵敏度\|sensitivity\|鲁棒性\|robustness\|稳健性' 建模报告.md && echo "✅ 灵敏度/鲁棒性分析方案存在" || echo "⚠ 缺少灵敏度分析方案(评审加分项)"
# 6. 图表预规划是否带入
grep -qi '图表预规划\|fig_\|TABLE_\|DrawIO' 建模报告.md && echo "✅ 图表预规划已带入" || echo "❌ 缺少图表预规划(evidence-visualization 步骤需要)"
# 7. 计算实验实现要点是否存在
grep -qi '编程\|实现要点\|Python\|算法步骤\|伪代码' 建模报告.md && echo "✅ 计算实验实现要点存在" || echo "⚠ 缺少计算实验实现要点(computational-realization 步骤需要)"