You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Timefold过约束规划中InitializingScoreTrend的适用性与配置咨询

InitializingScoreTrend 在过约束规划中的适用性与配置方案

适用性结论

InitializingScoreTrend 完全适用于过约束规划场景,尤其匹配你这种含单个实体、单个可空规划值,且采用Hard/Medium/Soft三级惩罚式评分的需求,它能引导求解器按你预期的评分趋势完成初始化与解搜索。

配置方法

针对你描述的评分变化规律,按以下步骤配置即可:

1. 明确各维度评分趋势

结合你的需求,三个评分维度的趋势定义如下:

  • Hard评分:初始为0且始终无违反(维持0),趋势设为ONLY_UP(评分只允许提升或保持)
  • Medium评分:初始是极低负值,分配合规值后趋近0(评分从负向提升),趋势设为ONLY_UP
  • Soft评分:初始为0,后续通常变负但存在波动(可能下降或回升),趋势设为ANY(无固定限制)

2. 代码/配置文件示例

Java注解配置

在你的规划实体类中,通过@PlanningScore注解指定趋势:

@PlanningScore(
    definitionClass = HardMediumSoftScoreDefinition.class,
    initializingScoreTrend = "ONLY_UP,ONLY_UP,ANY"
)
private HardMediumSoftScore score;

XML配置

若使用XML配置求解器:

<scoreDefinitionType>HARD_MEDIUM_SOFT</scoreDefinitionType>
<initializingScoreTrend>ONLY_UP,ONLY_UP,ANY</initializingScoreTrend>

注:字符串顺序严格对应Hard、Medium、Soft三个评分维度,每个维度可选值为ONLY_UP(评分仅能变好)、ONLY_DOWN(评分仅能变差)、ANY(无趋势限制)。

3. 约束逻辑适配可空值

要实现你描述的初始与动态评分效果,需在约束中区分未分配值和已分配值的场景:

  • Hard约束:仅对已分配值中的违规情况扣分,未分配时不触发,因此初始Hard评分为0
  • Medium约束:对未分配值直接施加高额惩罚(极低负值),已分配值仅在违反对应规则时扣分,分配合规值后评分趋近0
  • Soft约束:未分配时不触发(得0),已分配值后根据规则扣分,因不同值的违规程度不同,会出现评分波动(比如部分值违规少,评分趋近0)

逻辑验证

  • 求解启动时,实体未分配规划值:Medium约束触发高额惩罚,Hard和Soft约束无触发,符合你说的初始评分状态
  • 分配值过程中:若值符合Medium约束要求,Medium评分从极低负向0提升;若分配的值违反Soft约束,Soft评分变负,后续调整到更优值时,Soft评分可能回升趋近0,匹配你提到的波动情况

内容的提问来源于stack exchange,提问作者Pezetter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:58:14