笔记 / Timefold Solver / 调优与扩展
01 / 06 / 02

动态约束与权重调参

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

30 秒速览#

动态调参要分清三层:权重变化、参数变化、逻辑变化。权重变化适合 ConstraintWeightOverrides,参数变化适合问题事实,逻辑变化才需要动态约束系统。

三层模型#

层级例子处理方式
权重变化延期更重要覆盖约束权重
参数变化最小休息 30/60 分钟参数问题事实
逻辑变化新工艺禁止 A 后接 B新约束或动态约束引擎

调参闭环#

  1. 跑 baseline。
  2. 用 Score Analysis 找主要扣分。
  3. 调整权重或参数。
  4. 重新求解。
  5. 用 Solution Diff 比较变化。
  6. 保存配置和结果。

与自定义约束系统的关系#

Java 静态约束适合高频、稳定、核心规则。Groovy 或动态规则适合变化快、业务试验期、低频规则。

性能优先级:

静态 Constraint Streams > 参数化约束 > 动态脚本约束
text

易错点#

  • 把所有变化都做成动态脚本,性能和维护都会变差。
  • 允许业务随意关闭 hard 约束。
  • 调权后不看方案差异。
  • 没有保存权重版本,导致结果无法复现。

关联笔记#