BNRプロローグ

BNR Prolog はCLP(BNR)とも呼ばれ、1980 年代から 1990 年代にかけてベルノーザン研究所で開発された関係区間演算に基づく宣言型制約論理プログラミング言語です。論理プログラミング言語に関係区間演算を埋め込むことは、記号処理を実行しないという点で、 CLP(R)や Prolog-III などの他の制約論理プログラミング (CLP) システムとは異なります。BNR Prolog は、論理プログラミング言語で区間演算を実装した最初の例です。[ 1 ]制約の伝播は実区間値に対して実行されるため、非線形方程式を表現し、部分的に解くことができます。[ 2 ]

ルールの例

同時方程式:

日焼け×y{\displaystyle \tan x=y}
×2+y25{\displaystyle x^{2}+y^{2}=5}

CLP(BNR)では次のように表されます。

?- { X >= 0 Y >= 0 tan ( X ) == Y X ** 2 + Y ** 2 == 5 }。

典型的な実装の応答は次のようになります。

X = _58::real(1.0966681287054703,1.0966681287054718), Y = _106::real(1.9486710896099515,1.9486710896099542). はい

参照

参考文献

  1. ^ Rossi, Francesco; Van Beek, Peter; Walsh, Toby編 (2006).制約プログラミングハンドブック(ハードカバー) . Elsevier. ISBN 9780444527264
  2. ^ Jaffar, Joxan; Maher, Michael J. (1994). 「制約論理プログラミング:概観」 . The Journal of Logic Programming . 19–20 . Elsevier: 503–581 . doi : 10.1016/0743-1066(94)90033-7 .

一般的な参考文献

  • JG Cleary、「論理演算」、Future Computing Systems、第2巻、第2号、pp. 125–149、1987年。
  • W. Older と A. Vellino、「実区間での制約演算による Prolog の拡張」、カナダ電気・コンピュータ工学会議論文集、1990 年。
  • Older, W.、および Benhamou, F.、「CLP(BNR) でのプログラミング」、制約プログラミングの原則と実践に関する第 1 回ワークショップ、1993 年。