aps-agent/docs/algorithm/scheduling-cp-v1.md

46 lines
1.1 KiB
Markdown
Raw Normal View History

# 排产算法 · CP-SAT / HYBRID v1(SC-03)
> 代码:`server/engines/cp_engine.py`
> 测试:`tests/golden/test_cp_engine.py`
> 工厂:`get_engine("CP"|"HYBRID")`
---
## 1. 范围
| 引擎 | 管线 |
| --- | --- |
| CP | CP-SAT 产线分配+排序 → 班次占槽 |
| HYBRID | RULE 策略序/选线 hint → CP-SAT 改良 → 班次占槽 |
诚实留痕:`engineType` + `solverMeta`(backend / pipeline / warmStart / status / gap / wallTimeSec)。
---
## 2. 模型摘要
- 决策:每订单恰好一条可行产线
- 区间:订单在所选产线上的连续工时估算
- 约束:同产线 `AddNoOverlap`
- 目标:加权延期最小化
- HYBRID:`AddHint` 仅注入 RULE 选线;有 hint 时单线程求解(避免多 worker + hint 不稳定)
---
## 3. 降级策略
| 场景 | CP | HYBRID |
| --- | --- | --- |
| 缺 ortools | `ENGINE_UNAVAILABLE` 空版本 | `DEGRADED_RULE` 物化 RULE 序 |
| 求解无可行解 | 保留启发式序 | 保留 warm 强制线 |
---
## 4. 未做
- 工序级 Interval / Cumulative / 换型矩阵进 CP
- LNS 大邻域
- GA / NSGA-II
见 [roadmap.md](./roadmap.md)。