13.2. インクリメント演算子によるスコア計算
インクリメント演算子によるスコア計算は、デルタベースのスコア計算とも呼ばれます。ソリューションが変更されると、インクリメント演算子によるスコア計算では、ソリューション評価ごとにスコア全体を再計算するのではなく、現在の状態と前の状態の間の変化を評価することによって新しいスコアを見つけます。たとえば、N クイーン問題では、次の図に示すように、クイーン A が行 1
から 2
に移動するとき、incrementalScoreCalculation
クラスはクイーン B と C が互いに攻撃できるかどうかをチェックしません。これは、どちらも位置を変更していないためです。

次の例は、従業員名簿のインクリメント演算子によるスコア計算を示しています。

インクリメント演算子によるスコア計算により、パフォーマンスとスケーラビリティが大幅に向上します。制約ストリームまたは Drools スコア計算により、複雑なインクリメント演算子によるスコア計算アルゴリズムを作成することなく、このスケーラビリティが向上します。面倒な作業はルールエンジンに任せてください。
計算速度の向上は、計画上の問題のサイズ (n) に比例することに注意してください。これにより、インクリメント演算子によるスコア計算が拡張可能になります。