Skip to main content

mathmodel-core

数学建模竞赛全流程主技能:按阶段零至阶段六编排全程(环境预检 → 赛题分析 → 工作目录 → 算法选择 → 代码实现 → 论文输出 → 评分优化),并把各环节路由到专项技能。用户提交赛题或提出建模需求时触发。算法与方法选型用 mathmodel-methods;论文写作与排版用 mathmodel-paper;数据图表与示意图用 mathmodel-figure / mathmodel-diagram;去 AI 与字符清理用 mathmodel-deai;结构自检与评分用 mathmodel-score。

Ir a la instalación

Datos de origen

Repositorio
Escap1ng/mathmodel-kit
Última actividad en el origen
14 de septiembre de 2026 a las 04:29
Idioma detectado de SKILL.md
chino
Estrellas
6
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
mathmodel-core
description
数学建模竞赛全流程主技能:按阶段零至阶段六编排全程(环境预检 → 赛题分析 → 工作目录 → 算法选择 → 代码实现 → 论文输出 → 评分优化),并把各环节路由到专项技能。用户提交赛题或提出建模需求时触发。算法与方法选型用 mathmodel-methods;论文写作与排版用 mathmodel-paper;数据图表与示意图用 mathmodel-figure / mathmodel-diagram;去 AI 与字符清理用 mathmodel-deai;结构自检与评分用 mathmodel-score。
allowed-tools
Bash(*), Read, Write, Edit, Grep, Glob
# 数学建模竞赛辅助技能 ## 核心定位 专为数学建模国赛(高教社杯)设计,覆盖**赛题理解 → 模型构建 → 算法实现 → 论文输出**全流程。 **核心风格**:学术语态、逻辑严谨、创新性强、结果可验证 *** ## 工作流(强制执行) ### 阶段零:环境预检(前置检查) **在开始建模前,必须检查以下环境依赖是否可用**: 1. **编译环境**: - 检查 `xelatex` 是否可用(用于生成PDF) - 若不可用,提示安装 TeX Live 或 MiKTeX 2. **Python依赖**: - 检查 `python-docx`(用于 Word 版式后处理微调) - 检查 `PyMuPDF`(用于读取PDF数据;降 AI 技能 `mathmodel-deai` 的 `strip_invisible.py` PDF 清理模式亦依赖) - 检查 `openpyxl`(用于读取 .xlsx 数据);若赛题附件含旧版 `.xls` 文件,另需 `xlrd`(openpyxl 不支持 .xls 二进制格式),缺失时安装 `pip install xlrd` - 若缺失,自动执行 `pip install python-docx pymupdf openpyxl` 3. **绘图库**: - 检查 `matplotlib`、`seaborn`、`numpy`、`pandas` - 若缺失,自动执行安装 - 若需 plotly 静态导出(桑基图等),检查 `kaleido`;缺失时安装 `pip install kaleido` 4. **Word 转换工具**: - 检查 `pandoc` 是否可用(LaTeX→Word 转换必需,公式自动转 OMML 原生数学格式) - 若缺失,提示安装 pandoc(`winget install pandoc` 或官网下载),并提醒其为系统级安装、非 pip 可装 - 示意图/流程图/架构图:使用 `mathmodel-diagram` 技能(matplotlib 渲染,无需额外系统依赖) **输出**:环境状态报告(哪些可用、哪些已自动安装、哪些需用户手动处理) ### 阶段一:赛题分析与背景调研 **不输出给用户**,仅作为建模依据: 1. **背景调研(联网)**:使用联网检索工具查询赛题出处、实际应用场景、行业术语、数据含义等背景资料,对问题背景进行认真分析;检索结果作为建模依据与论文"问题背景与重述"章节的材料来源。 2. **问题本质**:核心问题是什么?属于哪类问题(优化/预测/评价/分类/微分方程)? 3. **已知条件**:可用数据、约束条件(资源/时间/物理) 4. **输出目标**:每个子问题需要什么形式的结果(数值/曲线/方案/排序) 5. **数据与问题对应关系**:逐问列出其使用的数据表/文件;若一题一个数据,则数据处理融入对应问题的分析与求解中;若所有问题共用一套数据,则论文单独设一级标题"五、数据处理"集中处理。 ### 阶段二:工作目录创建 ```bash 第X题_赛题简称/ └── answer/ # 所有建模产出统一存放于 answer 文件夹下 ├── code/ # Python代码(按问题编号:q1_*.py, q2_*.py;含 plot_style.py 统一样式模块) ├── figures/ │ ├── final/ # 交付图(语义命名:fig{图号}_{题型}_{内容}.png/pdf,≥300 DPI,须被论文 .tex 引用) │ └── tmp/ # 调试图(与正式版同品质 300 DPI;交付/打包前整体删除) └── paper/ # 论文(paper.tex + paper.pdf + paper.docx) ``` ### 阶段三:算法选择(输出候选对比表,供用户选择) 1. **候选算法生成**:针对每个小问,结合问题类型、数据规模、约束条件,从 `mathmodel-methods` 的方法库中筛选 2–3 种可行算法,其中至少 1 种具有明显创新性(可引入交叉学科方法)。 2. **输出候选对比表**:以 Markdown 表格展示给用户,每行一个候选算法,列至少包含: | 候选算法 | 核心思路 | 创新度 | 可解释性 | 实现难度 | 预计耗时 | 精度/鲁棒性预期 | |---|---|---|---|---|---|---| | 例:熵权-TOPSIS | …… | 中 | 高 | 低 | 分钟级 | 中,对指标权重敏感 | 评级用「高/中/低」,耗时按数据规模给出量级(秒级/分钟级/小时级);表中须标注**推荐项及一句推荐理由**。 3. **用户选择**:等待用户确认或改选后再进入阶段四;用户明确委托代选时,按推荐项执行。 **论文中仅呈现最终采用的算法**:在“模型建立与求解”章节说明选择理由,简要提及 1 种未采用的替代方案及其不选原因,无需输出完整对比表格。 **要求**: - **算法选型核心原则:拟合性优先于高级性**——首选与问题结构、数据规模、约束条件最匹配的算法(保证可求解、结果可靠、可解释),再在匹配基础上考虑创新性;禁止为炫技强行引入与问题不适配的高深算法,导致求解困难或结论不可信 - 对比表基于本题的数据规模与约束如实评估,禁止夸大创新度或低估实现难度 - 最终方案的数学描述使用学术语态,公式独立呈现 - 形成逻辑闭环,控制字数 ### 阶段四:代码实现 **技术栈(按用途分类,无先后优先级,按题目需要选用)**: - 基础数值与可视化:numpy, scipy, pandas, matplotlib, seaborn - 优化建模:pulp, cvxpy, scipy.optimize - 机器学习:scikit-learn, xgboost - 数据读取:PyMuPDF(PDF)、openpyxl(.xlsx)、pandas **代码规范**: - 完整可运行,保存至 `code/` 文件夹 - 使用 numpy 向量化操作 - 关键参数通过注释说明 - 输出清晰的结果摘要 - 可视化保存至 `figures/final/`,学术风格,≥300 DPI;数据图表优先复用 `mathmodel-figure` 技能模板(统一样式模块 `plot_style.py` 随模板自动复制到工作区),模板不匹配时按该技能的 `docs/guides/nature-standard.md` 现绘,示意图用 `mathmodel-diagram` 技能 ### 阶段五:论文输出 **输出物(必须同时生成 PDF 与 Word)**: - `.tex` 源文件 + `.pdf` 成品论文 - `.docx` Word 文档 - 存放至 `paper/` 文件夹 - 图片路径使用相对路径 `../figures/final/fig2_surface_obj.png`(语义命名,见阶段二目录规范) **生成命令(PDF 与 Word 均需执行)**: ```bash # 0. 降 AI 门禁(脚本在 mathmodel-deai 技能 code/ 目录下执行): python3 code/check_phrasing.py paper.tex # 词表级:查模板腔/套话/空泛,命中即改写 python3 code/check_style.py paper.tex # 结构级:查长句/句式重复/段落节奏/小数位 python3 code/strip_invisible.py --clean paper.tex # 字符级:编译前清源文件,从源头杜绝零宽/不可见字符 # 1. 生成 PDF cd paper xelatex -interaction=nonstopmode paper.tex xelatex -interaction=nonstopmode paper.tex # 2. 生成 Word(pandoc 将 LaTeX 转为 .docx,公式自动转为 Word 原生数学格式 OMML) pandoc paper.tex -o paper.docx # 若公式/表格版式需进一步微调,再用 python-docx 后处理(禁止用文本模拟公式) # 3. 交付门禁:两道表述级检查须退出 0;最终 PDF 与 Word 都必须清理并复检零宽/不可见字符(退出码须为 0) python3 code/check_phrasing.py paper.tex python3 code/check_style.py paper.tex python3 code/strip_invisible.py --clean paper.pdf paper.docx python3 code/strip_invisible.py paper.pdf paper.docx ``` **技术栈**: - LaTeX:xelatex 编译 - Word:pandoc 从 LaTeX 转换生成 .docx(公式自动转为 OMML,见上方生成命令) - Word 版式微调:python-docx 补充页眉留空/页码/字体(公式勿用 python-docx 手工插入) ### 阶段六:论文评分与优化(强制执行) 论文生成后,**必须**调用专项技能 `mathmodel-score` 做交付前自检与百分制评分:**$S \geq 85$ 且无一票否决方可最终输出**。 - 五维权重与扣分细则:`mathmodel-score/docs/rubric.md`(摘要 30 / 算法模型 20 / 创新性 20 / 写作 15 / 排版 15,合计 100) - 章节结构门槛(评分前置):`python3 code/check_chapters.py <论文文件>`(hard 未过先补齐、不计分;逐条判据见 `mathmodel-score/docs/chapter-checklist.md`,可用 `--rules mcm` 切美赛口径) - 交付前逐项自检:`mathmodel-score/docs/self-check.md`(致命 / 严重 / 中等 / 轻微四级) - 评分卡校验与评分表渲染:`python3 code/score_card.py scorecard.json`(退出码 0 达标 / 1 需优化 / 2 输入错误;`--list-dimensions` 查看维度契约) - 优化循环:$S < 85$ 时按扣分从高到低逐项修改后重新评分;**熔断 3 轮**,仍未达标则输出当前版本并标注"未达 85 分标准,需人工复核";任一维度为 0 或触发一票否决(身份信息/页眉等红线)时强制处理 评分流程、评分表模板与全部扣分标准以 `mathmodel-score` 技能为唯一权威(本阶段只列强制项)。 *** ## 核心能力 ### 1. 建模方法与算法选型(引用专项技能) 算法库、选型依据与实现范式已拆分到专项技能 `mathmodel-methods`,**方法名与适用场景以该技能为唯一出处**, 本节不复制方法清单: - 方法清单(问题族索引 + 九类方法 + 收录标准):`mathmodel-methods/docs/method-library.md` - 选型流程、候选对比表、问题特征对照、按问题类型的验证方式:`mathmodel-methods/docs/selection-guide.md` - 推荐库、最小可运行骨架、实现纪律:`mathmodel-methods/docs/implementation-guide.md` 阶段三(算法选择)与阶段四(代码实现)按上述口径执行;本技能只保留三条强制原则: **拟合性优先于高级性**、**方法梯度(能用简单的不用复杂的)**、 **创新须回答「解决了旧方法解决不了的什么问题」**。 *** ### 2. 算法实现与 Word 后处理(引用专项技能) - 算法实现规范(推荐库速查、GA/SA/0-1 规划与数据读取的最小可运行骨架、输出要求): `mathmodel-methods/docs/implementation-guide.md` - Word 后处理(pandoc 转换后的版式微调,含「只调样式、不重建内容」红线): `mathmodel-paper/docs/typesetting-rules.md` *** ### 3. 论文写作规范(引用专项技能) 论文结构、章节编号、标题命名、摘要格式与五段式模板、模型建立三步法与表达五条、公式使用规范、 分析推导与模型求解规范、模型评价与附录规范、正文语言表述规范,均已拆分到专项技能 `mathmodel-paper`: - **唯一权威出处**:`mathmodel-paper/docs/writing-rules.md` - 正文语言表述与去 AI 口径以 `mathmodel-deai/docs/deai-rules.md` 为准 写作阶段只记三条硬约束:每个问题给出**具体数值结果**(小数点后 2–4 位)与误差 / 稳健性分析; 核心公式(目标函数、关键约束、状态方程)独立编号,检测量公式首次定义一次、后续只引用指标名与数值; 每问结尾给出结论段(直接回答 + 关键数值 + 达标判断)。 *** ### 4. 可视化规范(引用专项技能) 本章全部图表细则已拆分至专项技能,出图时按下表调用,**规范条文以 `mathmodel-figure/docs/guides/visualization-rules.md` 为唯一权威出处**: | 需求 | 使用技能 | | ---- | ---- | | 数据图表(三维曲面/热力图/拟合+残差/收敛/Pareto/折线/柱状/箱线/环形/条形/云雨/ROC/Taylor/SHAP 等 20 种模板) | `mathmodel-figure`:`python3 code/tools/render_template.py <模板id>` 直接渲染;统一样式模块 `code/style/plot_style.py`(色板/字体回退/save_fig)随模板复制到工作区 | | 模板库外的自定义图型(等高线、相图、堆叠面积、雷达、甘特、龙卷风、平行坐标、桑基、地图热力、小多图、双轴图等) | `mathmodel-figure`:按 `docs/guides/nature-standard.md` 的 Nature 出图标准现绘(六条硬标准 + 最小起图骨架 + 图型选择表),样式仍取自 `code/style/plot_style.py` | | 学术示意图(技术路线图、研究框架图、阶段流程图、任务流水线图、**第二章问题分析流程图**、算法/系统架构图) | `mathmodel-diagram`:5 个 JSON 驱动模板(含 `problem-flow`),matplotlib 渲染产出 PNG(300DPI)+PDF | **图型按需求选,不过度依赖模板库**:模板只是省时间的加速器,不是可选图型的边界。 先问「这份数据是什么结构、要论证什么结论、哪种图型最能证明它」,再决定套模板还是现绘; 20 个模板不匹配就按 `nature-standard.md` 起图,**禁止为套用模板而改数据语义、 禁止把不相干的图硬凑成多子图**,也禁止用图型堆砌代替论证。 **全文风格统一(模板图与现绘图一律同一套样式)**:颜色与字号只从 `plot_style.py` 取, 同一方法在全文所有图里同色(本文=主角蓝、对照方法=橙/紫/青、基准=中灰、背景信息=浅调), 坐标框架走 `style_axes()`、多子图标号走 `add_panel_label()`、导出走 `save_fig()`; 出图后按 `visualization-rules.md` 的渲染自检清单看产物,代码跑通不算通过。 **硬性要求(全流程强制,与专项技能一致)**:每道小题至少 1 张彩色图(建议 2–3 张);第二章问题分析必须插入问题分析图(用 `mathmodel-diagram` 的 `problem-flow` 模板);全文建议 6 张以上、保底 4 张;图片紧邻对应分析文字就近插入(图题在图下方),禁止集中堆放在文末;每张图前后必须有文字引导与解读;拟合结果与误差分析必须可视化;所有图表 ≥300 DPI 出版级质量(密度类图分级策略见 visualization-rules.md);配色、线型、图例、黑白打印等细则见 visualization-rules.md。 *** ### 5. 排版规范(LaTeX)(引用专项技能) 页面设置、排版强制规范(匿名与保密、图片完整性、编码、分页、公式与字体、图表、caption 等) 与 LaTeX 骨架说明见 `mathmodel-paper/docs/typesetting-rules.md`(唯一权威),可复制骨架见 `mathmodel-paper/templates/paper.tex`。 一票否决项(本技能保留):摘要页、正文、附录任何位置不得出现参赛者姓名、学校、赛区、队号、 指导教师等身份信息,且全文禁止页眉。 *** ### 6. 参考文献规范(引用专项技能) GB/T 7714 著录格式、引用数量建议与**引用查证流程**见 `mathmodel-paper/docs/references.md`(唯一权威)。 硬约束:正文引用 5–8 篇,至少 2 篇近 5 年、1 篇英文;所有引用必须逐条在线核实,严禁编造。 *** ### 7. 论文质量自检与评分(引用专项技能) 论文的**交付前自检**与**百分制评分**已收敛到专项技能 `mathmodel-score`,**唯一权威出处**:`mathmodel-score/docs/self-check.md`(四级自检清单)与 `mathmodel-score/docs/rubric.md`(五维评分细则)。写作阶段只需记住以下强制项,评分与自检一律按该技能执行: - **结构门槛**:章节结构 hard 项未过(缺符号说明三线表、缺模型评价优缺点、附录缺可运行源程序、正文含目录、出现身份信息等)先补齐,不进入评分;判据见 `mathmodel-score/docs/chapter-checklist.md` - **五维权重**:摘要 30 / 算法模型 20 / 创新性 20 / 写作 15 / 排版 15,合计 100;**$S \geq 85$ 方可最终输出** - **一票否决**:出现参赛者身份/学校/赛区信息或页眉等红线,直接淘汰、不计分,不进入优化循环 - **熔断**:最大优化轮次 3 轮;3 轮后仍未达标即输出当前版本并标注"未达 85 分标准,需人工复核" - **自检四级**:致命(匿名/编码)→ 严重(文件完整性、PDF/Word 一致性、摘要与正文一致、模型选择理由、附录、符号、文献查证)→ 中等(公式图表完整性、正文语言、误差分析)→ 轻微(表达规范) - **评分卡**:按五维填写评分卡 JSON,用 `python3 code/score_card.py scorecard.json` 校验并渲染评分表(退出码 0 达标 / 1 需优化 / 2 输入错误;`--list-dimensions` 查看维度契约) 完整扣分细则、评分表模板与优化触发规则见 `mathmodel-score/docs/rubric.md`;逐项自检清单见 `mathmodel-score/docs/self-check.md`。 *** ## 使用方式 **触发场景**: 1. 用户上传赛题文本或粘贴赛题内容 2. 用户提问"分析这道题"或"帮我建模" 3. 用户要求推荐算法或编写代码 4. 用户提交论文草稿要求润色 5. 用户要求先联网查证赛题背景再进行分析与建模 **输出风格**: - 默认使用中文输出 - 代码块标注语言类型 - 表格清晰对齐 - 关键结论突出显示 *** ## 快速参考 算法选择速查、算法实现速查与问题递进关系见 `mathmodel-methods` 技能 `docs/selection-guide.md`(问题特征 → 推荐方法、问题递进关系、常见误用)。 ### 常见错误速查 | 错误类型 | 解决方案 | | --------- | ----------------------------------- | | 中文乱码 | 使用 xelatex,删除 inputenc | | 图片文字不全 | 设置 SimHei,使用 bbox\_inches='tight' | | 图片中文显示方框 | 缺字体环境用字体检测回退(`mathmodel-figure` 的 `plot_style.pick_cjk_font`),安装 SimHei 或 Noto Sans CJK | | 折线图曲线过多难区分 | 同图≤5条,线型+标记区分,超限分图 | | 性能对比图Y轴不从0起 | 强制 `ax.set_ylim(0, ...)`,避免视觉误导 | | 黑白打印分不清组别 | 用学术低饱和配色+明暗/透明度区分;多组年份可用横线/竖线纹理 | | 只会套模板、图型与数据不匹配 | 图型按数据与结论选:按 `mathmodel-figure/docs/guides/nature-standard.md` 现绘,样式仍取自 `plot_style.py`,保证与模板图同风格 | | 文字超出纸张 | 使用 seqsplit,tabularx,[H]定位 | | caption报错 | 使用 font=small,禁止 font={font=10.5pt} | | 假设用列表非表格 | 改用 tabular 三线表,表题在上方,含合理性说明 | | 假设表格显示不全 | `tabular`的`l`列不换行,改用`tabularx`的`X`列 | | 正文AI痕迹过重(模板腔/套话/衔接生硬) | 见 `mathmodel-paper/docs/writing-rules.md`「正文语言表述规范」:直入主题、衔接句带信息量、结论个性化 | | Word中公式显示为普通文本/乱码 | 用 pandoc 从 paper.tex 生成 .docx,公式自动转 OMML 原生数学格式 | | 公式过度堆砌/检测量公式重复列式 | 见 `mathmodel-paper/docs/writing-rules.md`「公式使用规范」:推导从简、检测量公式仅首次定义 |
Ver en GitHub