13.2. 增量分数计算
增量分数计算也称为基于 delta 的分数计算。当解决方案发生变化时,增量分数计算通过评估当前状态和之前状态之间的更改来获取新的分数,而不是在每次解决方案评估中重新计算整个分数。例如,在 N Queens 问题中,当 queen A 从行 1
移动到 2
行时,incrementalScoreCalculation
类不会检查 queen B 和 C 是否可以相互攻击,因为它们都更改了位置,如以下图所示:
以下示例显示了员工购买的增量分数计算:
增量分数计算提供了显著的性能和可扩展性。约束流或 Drools 分数计算提供了此可扩展性收益,而不强制您编写复杂的增量分数计算算法。只需让引擎执行硬性工作。
请注意,计算速度的增长相对于您的规划问题的大小(您的 n)。这使得增量分数计算可扩展。