第 11 章 InitializingScoreTrend 类
您可以将 InitializingScoreTrend
类添加到优化算法中,以指定在附加变量初始化时分数的变化,并且已初始化的变量不会改变。某些优化算法,如结构 Heuristics 和 Exhaustive Search,在这些信息可用时更快地运行。
您可以为分数或每个分数级别分别指定以下趋势之一:
-
ANY
(默认):初始化额外变量可能会以正数或负面的方式改变分数。这种趋势不提供性能提升。 ONLY_UP
(rare):初始化额外变量只能以正的形式更改分数。ONLY_UP
趋势需要以下条件:- 只有正限制。
- 初始化下一个变量无法匹配之前初始化的变量匹配的正约束。
ONLY_DOWN
:初始化额外的变量只能更改分数。ONLY_DOWN
需要以下条件:- 只有负限制。
- 初始化下一个变量无法匹配之前初始化的变量匹配的负约束。
大多数用例只有负限制。许多用例都有仅停机的 InitializingScoreTrend
类,如下例所示:
<scoreDirectorFactory> <constraintProviderClass>org.optaplanner.examples.cloudbalancing.score.CloudBalancingConstraintProvider</constraintProviderClass> <initializingScoreTrend>ONLY_DOWN</initializingScoreTrend> </scoreDirectorFactory>
<scoreDirectorFactory>
<constraintProviderClass>org.optaplanner.examples.cloudbalancing.score.CloudBalancingConstraintProvider</constraintProviderClass>
<initializingScoreTrend>ONLY_DOWN</initializingScoreTrend>
</scoreDirectorFactory>
另外,您还可以单独指定每个分数级别的趋势,如下例所示:
<scoreDirectorFactory> <constraintProviderClass>org.optaplanner.examples.cloudbalancing.score.CloudBalancingConstraintProvider</constraintProviderClass> <initializingScoreTrend>ONLY_DOWN/ONLY_DOWN</initializingScoreTrend> </scoreDirectorFactory>
<scoreDirectorFactory>
<constraintProviderClass>org.optaplanner.examples.cloudbalancing.score.CloudBalancingConstraintProvider</constraintProviderClass>
<initializingScoreTrend>ONLY_DOWN/ONLY_DOWN</initializingScoreTrend>
</scoreDirectorFactory>