スコア計算の観点からは、シャドウ変数を使用しない場合よりも高速にシャドー変数がソリューションに到達するのに役立ちます。シャドー変数を使用したスコア計算のパフォーマンス
シャドー変数を使用すると、VariableListnerは依存エンティティの値を最終的な/最適な値に近い値にリセットできます。
スコア計算の観点からは、シャドウ変数を使用しない場合よりも高速にシャドー変数がソリューションに到達するのに役立ちます。シャドー変数を使用したスコア計算のパフォーマンス
シャドー変数を使用すると、VariableListnerは依存エンティティの値を最終的な/最適な値に近い値にリセットできます。
によって異なります。シャドー変数とスコア計算の両方で、増分計算を作成するためにデルタを使用します。これらのデルタは、スケールアウトして、のスコア計算速度が毎秒となるキーです(最後のINFOログラインとベンチマークレポートを参照してください)。あなたが何をしていても、少なくともサイズの異なるデータセットについてはその価値に注目してください。
理論的には、スコアルールを簡略化するためのシャドウ変数がある場合や、シャドウ変数がなくスコアルールがより複雑な場合(そしてinsertLogicals
などを使用する可能性があります)
実際には、車両のルーティングでは、IIRCのシャドウ変数arrivalTime
がパフォーマンスとスケーラビリティを大幅に改善していることがわかりました。
私の助言は、ドメイン上でそれを持つことが理にかなっているときには、シャドー変数を使用することです。たとえば、arrivalTimeなどです。しかし、必要な場合は、単純な計算ゲッター(ループなし)を使用してください:例えばdepartureTime(= arrivalTime + duration)。そして残りのスコアルールを使用します。
最終的にはデザインの選択です。スコアルールではdepartureTimeまたはarrivalTime自体を把握する必要がありますか、モデルをモデルに入れて抽象的に取り除くことができます。