ECLiPSe CLP 言語のアクティブ制約とパッシブ制約の違いは何ですか? そして、いつ/どのように使用できますか?
1 に答える
1
この区別は、実行中に制約が使用される方法を指します。アクティブな制約は、それらに存在する変数に直接影響を与える可能性がありますが、パッシブな制約は影響しません。両方の構造の小さくて些細な例を考えてみましょう:
% Active
f(a,X) = f(Y,b)
% Passive
2*X < 3*Y+2
最初の例では、X または Y のいずれかがインスタンス化されると、「制約」がトリガーされ、すぐに両側を評価 (有効な場合は統合) = アクティブな動作になります。
一方、2 番目の例では、両側が互いに依存しているため、X または Y のどちらが最初にインスタンス化されるかは問題ではありません。両側の変数がインスタンス化されるまで評価を遅らせる必要があります = 受動的な動作。
(アクティブ/パッシブ制約の概念は、すべての制約ロジックベースのシステムに一般的に適用できるため、制約/言語固有の構文を使用せずに答えようとしたことに注意してください。また、ECLiPSeのような一部の言語は、有限整数に対するグローバル制約推論を提供することに注意してくださいドメインであり、実際にはいくつかの動作を必要に応じてアクティブ/パッシブにする場合があります.ただし、この質問の範囲外であるため、物事を単純にするためにこれ以上の動作は考慮されません.)
お役に立てれば!
于 2016-06-04T22:15:39.800 に答える