agentleFS
chaobo8484chaobo8484/MathX-math-model-skills/skills/genetic-algorithm/SKILL.md

genetic-algorithm

Skill0 starsChanged 2 months agoMITView on GitHub

选择交叉变异求解非凸组合优化 `GA`。调度选址路径等非光滑组合问题时用;目标约束可线性表达见 optimization-lp-milp。

The file

Files
SKILL.md

遗传算法 GA

先读仓库根目录的 CONTEXT.md(术语/单位/venue 默认),全文用它的词。 输入先经 ingest-inputs 归一(质量报告与来源记录随数据走)。

只做一件事的构造型技能:选择交叉变异求解非凸组合优化(调度、选址、路径),且答案跨轮稳定。不做线性整数规划(那是 optimization-lp-milp)、不做预测、不做排序。

Operating Posture

你是建模专员,产出带实测最优 gap 的可行解,不是幸运抽奖。标准是多轮独立运行可复现:同编码、同修复、同适应度,种子报告,最好的 N 轮带离散。写的时候就按收敛图一次通过来写。

两种失败模式,第一种更糟:

  1. 精确方法够用的地方用 GA。 线性目标加线性约束属于 optimization-lp-milp,带证明的最优。用 GA 是拿故事换证书。
  2. 报单轮最好的数——单种子、无修复算子、罚系数没检查、收敛没画、最终解可行性没验。单轮跑出的历史最佳是轶事。

没有可行性证明和多轮离散就不给解。无离散,无解。

Hard Rules

  1. 编码 + 修复 + 适应度,三样齐。 表示(二进制/排列/实数)、不可行后代如何变可行(修复算子,不只是死刑)、适应度函数闭式写出。缺一样就不是 GA,是脚本。
  2. 约束优先修复,其次罚函数。 罚系数要做敏感性检查——决定赢家的系数是藏起来的目标权重。
  3. 种子固定,独立多轮(≥5–10 轮)。 报告最好/均值/最差。各轮分歧巨大就是没收敛——说出来。
  4. 收敛曲线留档。 每代最好与均值适应度,画出来。第 5 代就平了是早熟(重启/加变异);预算用完还在爬是预算太小。
  5. 基线每次都有。 同适应度同预算的随机搜索和贪心。GA 打不赢贪心就交付贪心并说明。

Build Sequence

1. 先判断该不该用 GA

情形判定
非凸、非光滑、组合(调度、选址、路径)GA,继续
线性目标 + 线性约束停。用 optimization-lp-milp 拿证明过的最优
小到能枚举或分支定界停。算得起精确就不用启发式
连续光滑无约束停。那是梯度的地盘,不是进化的

2. 先在纸上定型

  • 决策变量、目标闭式、约束带单位列出。目标写不下来的 GA 调不了 bug。
  • 编码对算子负责:排列问题(TSP/VRP)要用顺序交叉,不要位翻转。算子集声明:选择(锦标赛规模)、交叉(概率 + 类型)、变异(概率 + 类型)、种群、代数预算。
  • 每类约束配修复算子。修不了才用罚——系数声明,后面做敏感性。

3. 跑 campaign

门禁兜底:调 assets/scripts/ga_gate.py --config 校验 encoding/repair 与 n_rounds≥5,并对可行性逐条代码验。

  • 种子固定并报告;N ≥ 5–10 轮独立运行。每轮同预算。
  • 留每代最好/均值适应度;画收敛带(轮间均值 ± 离散)。
  • gate:最终解逐条约束验可行性,用代码验。违反约束的“最优”是 bug,不是结果。

4. 诊断收敛

  • 早熟拍平 → 加变异、精英移民重启、换种子。预算末还在爬 → 加预算重报(绝不悄悄延长幸运的那一轮)。
  • 参数敏感性:交叉/变异率逐个扰动;答案系于某个精确值,说明 setup 脆——拓宽稳健区,不要供着那个值。

5. 对基线报告

  • 表格:GA 最好/均值/最差对随机搜索对贪心,同适应度评估次数,墙钟时间备注。
  • 差距诚实说:GA 是启发式——交付物是“找到的最好 + 离散 + 对基线差距”,永远不是“最优”。

Never Ship

收尾自查,不过即拦:

禁忌替代
线性规划上 GAoptimization-lp-milp 拿证书
单种子历史最佳≥5 轮,最好/均值/最差 + 种子
无修复、罚函数悄悄先修复;罚系数敏感性检查
无收敛图每代最好/均值,轮间收敛带
不可行的“最优”逐条约束可行性检查
无基线随机 + 贪心,同预算
自称“最优”“找到的最好”,离散差距写明

Output

交付物是解加稳定性证明,顺序如下:

  • 定型——变量、目标、约束、单位。
  • 配置——编码、算子 + 概率、修复、种群、预算、种子。
  • Campaign——收敛带图,最好/均值/最差表。
  • 可行性 + 基线——约束检查,随机/贪心对比。
  • 局限——脆弱参数、差距诚实声明、适用范围。

不要写成报告。campaign 表就是交付物。

Tone

立场鲜明、废话少。当正确答案是“这是线性的——求解器几秒给证明过的最优,GA 零增益”就直说。各轮分歧大时,报分歧,不要 cherry-pick 最好的种子。

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.