Prolog BNR

BNR Prolog , znany również jako CLP (BNR) to deklaratywny język programowania logiki ograniczeń oparty na relacyjnej arytmetyce przedziałów opracowany w Bell-Northern Research w latach 80. i 90. XX wieku. Osadzanie relacyjnej arytmetyki przedziałów w języku programowania logiki różni się od innych systemów programowania w logice z ograniczeniami (CLP), takich jak CLP (R) lub Prolog-III, tym, że nie wykonuje żadnego przetwarzania symbolicznego. BNR Prolog był pierwszą taką implementacją arytmetyki przedziałowej w języku programowania logicznego. Ponieważ propagacja ograniczeń odbywa się na rzeczywistych wartościach przedziałów, możliwe jest wyrażenie i częściowe rozwiązanie równań nieliniowych.

Przykładowa reguła

Równania równoczesne :

wyrażone są w CLP(BNR) jako:

 00       ?-  {  X  >=  ,  Y  >=  ,  dębnik  (  X  )  ==  Y  ,  X  **  2  +  Y  **  2  ==  5  }. 

a typowa odpowiedź implementacji byłaby następująca:



X = _58::rzeczywiste(1,0966681287054703,1,0966681287054718), Y = _106::rzeczywiste(1,9486710896099515,1,9486710896099542). Tak

  • JG Cleary, „Arytmetyka logiczna”, Future Computing Systems, tom 2, nr 2, s. 125–149, 1987.
  • W. Older i A. Vellino, „ Rozszerzanie prologu z arytmetyką z ograniczeniami w rzeczywistych przedziałach ”, w Proc. kanadyjskiej konf. z inżynierii elektrycznej i komputerowej, 1990.
  • Starszy, W. i Benhamou, F., Programowanie w CLP (BNR), w: 1st Workshop on Principles and Practice of Constraint Programming, 1993.

Linki zewnętrzne