01 / 00 / 00
TimeFold 学习索引
30 秒速览#
Timefold Solver 是一个 Java 生态的规划求解器,适合处理排程、路径、分配、装箱、资源负载等组合优化问题。学习主线不是“先背 API”,而是先掌握 4 件事:
- 领域模型:哪些对象会被求解器改变,哪些只是事实。
- 约束评分:业务规则如何变成
Score。 - 搜索算法:求解器如何从初始解迭代到更好的解。
- 验证调优:如何用环境模式、解释分数和 Benchmark 证明模型可信。
版本说明#
- 这批笔记的原始知识骨架来自 Timefold Solver 1.31.0,适合用来建立领域建模、约束评分和求解流程的基础概念。
- 截至 2026-07-31,Timefold Solver 官方 latest 文档 -> 指向 2.3.0-rc-1;1.x 官方文档线 -> 为 1.33.0。
- 版本号、依赖坐标和 API 以目标版本的官方文档为准;1.x → 2.x 的破坏性变更见 破坏性变更详解:1.x → 2.x 升级手册。
- 商业版能力说明见 Plus 与 Enterprise 企业版功能详解。
学习路径#
| 顺序 | 主题 | 入口 | 目的 |
|---|---|---|---|
| 1 | 配置与运行 | TimeFold配置索引 | 先把 Solver 跑起来 |
| 2 | 领域建模 | 领域模型建模索引 | 把业务对象翻译成求解模型 |
| 3 | 约束评分 | 约束编程索引 | 把业务规则写成可优化的分数 |
| 4 | 算法配置 | 求解算法配置索引 | 理解 CH、LS、Move 和搜索边界 |
| 5 | Benchmark | Benchmark测试索引 | 用实验比较配置 |
| 6 | 调优扩展 | 调优与扩展索引 | 进入真实项目调优 |
先写完的核心笔记#
- TimeFold 是什么与适用场景
- 快速开始与项目依赖
- Solver 配置 XML 与代码配置
- 运行 Solver 与 SolverManager
- Spring Boot、Quarkus 与持久化集成
- 版本路线与升级注意
- 破坏性变更详解:1.x → 2.x 升级手册
- 规划问题建模总览
- ProblemFact、PlanningEntity、PlanningSolution
- PlanningVariable 与 ValueRange
- 影子变量与链式建模
- 时间建模模式
- 动态问题:插单与连续规划
- PlanningListVariable 与列表变量影子体系
- PlanningClone 与 SolutionManager / ScoreManager
- Score 体系:硬约束、软约束与权重
- Constraint Streams 总览
- 常用构件:forEach、filter、join、groupBy
- 约束权重运行时调整
- 公平性与负载均衡约束
- Score 解释:Analysis、Diff、HeatMap
- 约束性能优化
- ConstraintVerifier 约束单元测试
- 算法总览:CH、LS、ES
- 构建启发式 Construction Heuristic
- 局部搜索 Local Search
- MoveSelector 移动选择器
- 穷举搜索与适用边界
- 终止条件、环境模式与可复现性
- Benchmarker 总览
- Benchmark 配置文件
- SolutionFileIO 与数据集管理
- Benchmark 报告解读与关键指标
- 统计基准与矩阵测试
- 调优实验记录模板
- 性能调优清单
- 动态约束与权重调参
- 多线程与企业版边界
- 大规模排程建模策略
- 常见问题 FAQ
- ProblemChange 与实时增量更新
- Plus 与 Enterprise 企业版功能详解
待补#
- 把生产排程项目中的”产线、订单、模具、换型矩阵、插单”抽象为一套 Timefold 建模样例。