Files
..

Ti-2 配方动态优化(recipe-optim)

对应 issue #78(问题建模)/ #79(求解器集成)/ #80(跨工序寻优)/ #81(可解释建议)。 PRD §5.3 ②「配方动态优化」:入:质量目标 + 约束;出:参数/配方建议,二期交付。

本目录沉淀配方优化的声明式模板资产 + 求解器无关的问题建模引擎,跨行业差异落 资产(YAML 模板),引擎零改动(PRD「超参包驱动」「模板化技术路径」)。

模块

  • problem.py — 优化问题建模(#78):决策变量 / 目标 / 约束的声明式规格 + 校验 + 可行性判定 + 零依赖 YAML 子集加载。
  • solver.py — 求解器集成(#79):SolverConfig + Solution + 网格枚举/ 坐标下降轻量求解器 + solve() 统一入口,求解器无关契约。
  • cross_process.py — 跨工序关联寻优(#80):纯标准库岭回归 + CrossProcessModel(上游指标→下游质量,fit/predict/evaluate R²/可解释权重/序列化)。
  • advisor.py — 优化建议生成与可解释性(#81):整合 #78/#79/#80 输出 可溯源建议报告(变量级/跨工序佐证/风险提示/溯源链路)。
  • config/recipe_optim.template.yaml — Template-Ti 配方优化模板资产。
  • tests/ — 单元测试(python -m unittest discover -s tests,76 用例)。
  • _sanity_check.py — 部署期一键自检(8 能力点)。

设计

  1. 决策变量 DecisionVariable:bounds(连续区间)/choices(离散枚举), 带 meaning/unit/initial,供 #81 可解释建议引用。
  2. 目标 ObjectiveSpec:线性加权(min/max)+ PRD 超参包 target 字段。
  3. 约束 ConstraintSpec:统一描述 box / linear / ratio / forbidden 工艺约束, 每条带 reason(工艺依据,对齐 PRD"可解释、可溯源、引用依据")。
  4. 问题 OptimizationProblem:validate 聚合静态校验、is_feasible / violated_constraints 做可行性判定,solve 留给 #79 注入求解器(求解器无关)。

与上下游的契约

  • 下游 #79 求解器:消费 OptimizationProblem,产出满足约束的最优取值。
  • 下游 #80 跨工序寻优:复用同一变量/目标/约束模型描述跨工序关联。
  • 下游 #81 可解释建议:读 violated_constraints + 变量 meaning + 约束 reason 产出"可溯源"建议。

运行

python -m unittest discover -s tests        # 单元测试
python _sanity_check.py                     # 部署期自检

零第三方依赖(纯标准库),与内核既有模块一致,便于离线/隔离网部署。