笔记 / Timefold Solver / 约束与评分
01 / 03 / 00

约束编程索引

状态
持续整理
来源
Obsidian
创建
2026/05/14
公开整理
2026/07/31

这个文件夹解决什么#

本文件夹回答:如何把业务规则变成 Timefold 的 Score,并让分数可解释、可调权重、可测试、可优化。

笔记列表#

笔记状态一句话说明
Score 体系:硬约束、软约束与权重持续整理分数层级、权重、可行解和业务优先级
Constraint Streams 总览持续整理用声明式流写约束
常用构件:forEach、filter、join、groupBy持续整理常见 Constraint Streams 构件
约束权重运行时调整持续整理ConstraintWeightOverrides 与参数化约束
公平性与负载均衡约束持续整理load balance 与公平分配
Score 解释:Analysis、Diff、HeatMap持续整理分数解释、方案差异和热力图
约束性能优化持续整理写高性能约束的规则
ConstraintVerifier 约束单元测试持续整理约束单元测试工具与写法

约束设计顺序#

  1. 把业务语言改写为“匹配什么对象,奖励/惩罚什么”。
  2. 判断是硬约束、medium 约束还是软约束。
  3. 选择分数类型,例如 HardSoftScoreHardMediumSoftScore
  4. 用 Constraint Streams 表达匹配模式。
  5. ConstraintVerifier 做约束单测。
  6. 用 Score Analysis 检查约束贡献是否符合直觉。

关联官方文档#