01 / 03 / 00
约束编程索引
这个文件夹解决什么#
本文件夹回答:如何把业务规则变成 Timefold 的 Score,并让分数可解释、可调权重、可测试、可优化。
笔记列表#
| 笔记 | 状态 | 一句话说明 |
|---|---|---|
| Score 体系:硬约束、软约束与权重 | 持续整理 | 分数层级、权重、可行解和业务优先级 |
| Constraint Streams 总览 | 持续整理 | 用声明式流写约束 |
| 常用构件:forEach、filter、join、groupBy | 持续整理 | 常见 Constraint Streams 构件 |
| 约束权重运行时调整 | 持续整理 | ConstraintWeightOverrides 与参数化约束 |
| 公平性与负载均衡约束 | 持续整理 | load balance 与公平分配 |
| Score 解释:Analysis、Diff、HeatMap | 持续整理 | 分数解释、方案差异和热力图 |
| 约束性能优化 | 持续整理 | 写高性能约束的规则 |
| ConstraintVerifier 约束单元测试 | 持续整理 | 约束单元测试工具与写法 |
约束设计顺序#
- 把业务语言改写为“匹配什么对象,奖励/惩罚什么”。
- 判断是硬约束、medium 约束还是软约束。
- 选择分数类型,例如
HardSoftScore或HardMediumSoftScore。 - 用 Constraint Streams 表达匹配模式。
- 用
ConstraintVerifier做约束单测。 - 用 Score Analysis 检查约束贡献是否符合直觉。