# RCPSP 升级实施进度

本文件记录已验证事实、当前阶段和下一步；任务说明中 M0–M9 的清单在代码、测试、数据和报告齐备前不勾选。更新时间：2026-10-23。

| 阶段 | 状态 | 已完成证据 | 下一验收门槛 |
| --- | --- | --- | --- |
| M0 约束差距审计 | 已完成 | [约束矩阵](constraint-gap-analysis.md)对照当前代码、PyJobShop、OR-Tools 和 PSPLIB；明确单模式子集和兼容方案。 | M0 文档已独立提交。 |
| M1 可再生资源、多资源、时窗模型 | 已完成核心实现 | `RcpspProblem`、容量/需求/时窗类型和旧模型显式映射；见[验证说明](rcpsp-v2-validation.md)。 | M5 公开实例验证约束转换。 |
| M2 独立验证器 | 已完成核心实现 | `inspect_rcpsp_schedule` 给出结构化违规，检查全部声明约束；`rcpsp_validation_test.mbt` 含超量、时窗、半开区间等反例。 | M4 导入求解器结果也接入同一验证器。 |
| M3 扩展启发式 | 已实现，待公开基准评价 | `solve_rcpsp` 三种排序、`optimize_rcpsp` 有预算的相邻交换；全部候选独立验证，报告次数与耗时；89 项测试四后端通过。 | M5/M6 比较大规模与竞争强度。 |
| M4 成熟求解器对照 | 三个自制场景已联调，待 PSPLIB 对照 | OR-Tools 9.15.6755 读同一 v2 JSON，按 CP-SAT interval/cumulative 建模，输出状态和界；三个结果由 MoonBit 独立验证。见[参照说明](ortools-reference.md)。 | M5 公开实例的结果也通过相同导入验证。 |
| M5 PSPLIB 公开基准 | 五个固定公开实例已转换验证 | [PSPLIB 说明](../benchmark/psplib/README.md)记录官方 J30/J60 来源、SHA-256、实例 ID、最优/界；转换器解析全部 960 个原文件，五个选定实例经 MoonBit 可行排程。原始数据不提交。 | M6 全算法同集实验、失败记录。 |
| M6 系统性实验 | 已完成固定集初版 | [实验说明](../benchmark/rcpsp/README.md)与[报告](rcpsp-experiment-report.md)：8 输入×5 算法×3 次，120 行原始 JSON/CSV、汇总、图和局部搜索消融；公开质量反例与未证明界分开报告。 | 扩大公开样本时沿用固定选择规则并重跑。 |
| M7 可复用 API/Schema | 已完成 v2 核心接口 | v2 JSON Schema、带求解参数的请求导入导出、求解、独立结果分析及外部结果验证；旧模型显式升级映射、Web v1 保持不变。见[交换格式](rcpsp-exchange.md)。 | M8 三场景失败例检验诊断。 |
| M8 三场景验收 | 已完成教学案例验收 | [场景说明](../examples/rcpsp/README.md)包含三个完整输入、三个失败输入、执行命令、预期结果、独立验证拒绝、CP-SAT 无解证明和 RTO/RPO 边界。 | 生产数据与真实部署不在本阶段声称范围。 |
| M9 工程开源验收 | 已完成 | README 重定位、[模型定义](rcpsp-mathematical-model.md)、Schema、公开基准复现、[第三方/数据核查](third-party-and-data.md)、三场景说明及 v2 CI 门禁已加入；[提交 `87d9833` 的远端 CI](https://github.com/lllg123/ContinuityForge/actions/runs/39911778845) 全部通过。 | 后续扩展另行评估。 |

**兼容承诺：** 原有根包恢复 API、`scheduling` 旧构造器、Web v1 输入和已提交的合成基准保持可运行。新约束通过显式 v2 接口引入；任何行为变化都需单独记录与测试。项目书和 `任务说明.md` 是本地文件，不纳入仓库。
