叙事📖 故事版🎞 电影版🎬 ELI5文档🎯 蓝图📋 纪要⚙️ 引擎设计🏗 框架图🔁 时序图Demo🖱 交互v1▶️ 动画v1💥 场景v2📦 三阶段v3📅 日历v4

扰动调整 · 一次完整闭环

引擎黑盒 · 两段式求解 · 经理审批后写回(三决策落地版)

扰动调整 · 一次完整闭环 引擎黑盒 · 两段式求解 · 经理审批后写回(三决策落地版) 机房 R5 调试故障:4 天 → 6 天 扰动① POST /solve { 当前计划, op: change_duration, 冻结档位, 配置 } 两段式求解: Phase1 可行解(秒级) → Phase2 hint 优化(限时); 无解则 slack 松弛出诊断; 机房预占=F1 软冻结 { 新计划, diff(带归因), KPI, 诊断, 质量标记 } diff 审批卡:动 5 单 · 冻结区 24 单不动 · 0 延期 批复(可局部改后重算) 引擎只返回不写(决策③) 写回新计划(版本化,可回溯) commit ok 承诺窗内受影响装机单 + 缓冲状态 承诺窗外只改预占,不触发客户沟通 ① 扰动输入 ② 引擎黑盒求解 ③ 人工审批 ④ 写回与通知 排产经理 · 生产调试排产 · Sequence participant 排产经理 生产调试排产 MES UI · 双视图联动甘特 · Sequence participant MES UI 双视图联动甘特 排产引擎 · CP-SAT · 无状态纯函数 · Sequence participant 排产引擎 CP-SAT · 无状态纯函数 MES 工单库 · 唯一真相源 · 版本化 · Sequence participant MES 工单库 唯一真相源 · 版本化 装机厂排产员 · 2~3 周滚动承诺窗 · Sequence participant 装机厂排产员 2~3 周滚动承诺窗 Legend request return async trace default message

三个已锁定决策

  • • ① 机房预占 = F1 软冻结:默认跟随预排产,可解锁
  • • ② 无解诊断允许建议调休日加班(含延期/换人选项)
  • • ③ 引擎只返回不写回;经理批复后 MES 写入(版本化)

引擎不变式

  • • 无状态:不持有排产,MES 是唯一真相源
  • • 六种操作 = 同一模型 + 不同约束,一条代码路径
  • • 输出侧校验:重叠即报错拒发,不信求解器信校验
  • • 确定性:同输入必同输出(固定种子)

性能实测(模拟规模)

  • • 全月首排 < 7s · 增量重排 < 1s
  • • 超时返回当前最优 + 质量标记,不阻塞 UI
  • • 诊断示例:O026 延期 3 天或 10/10 加班即可全可行