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.