2012-12-03 5 views

답변

3

어때? 이는 X+Y=Z에만 적용됩니다. 짧은을위한 CLP (FD)라고,

equation(5,X,7). 
X = 2 . 
?- equation(2,5,X). 
X = 7. 
?- equation(X,5,7). 
X = 2 
11

모든 심각한 프롤로그 시스템은 유한 한 도메인을 통해 제약 로직 프로그래밍을 제공하는 당신은 쉽게 많은 그런 방정식을 풀 수 있습니다

equation(X,Y,Z):- var(X),X is Z-Y. 
equation(X,Y,Z):- var(Y),Y is Z-X. 
equation(X,Y,Z):- var(Z),Z is X+Y. 

당신은 요청할 수 있습니다. 예를 들어, SICStus 프롤로그, SWI와 개 짖는 소리와 함께 :

?- use_module(library(clpfd)). 
true. 

?- 5+X #= 7. 
X = 2. 

분명히 대답은이 대신 -2이다. 또한 라이브러리가있는 rationalals (clpq)와 같은 다른 도메인에 대한 제약 논리 프로그래밍을 확인하십시오.

+0

비선형 방정식 (때때로)과 함께 작동하는 접근법은 [최적화] (http://stackoverflow.com/questions/37142066/optimisation-in-swi-prolog)를 참조하십시오. – mat

+0

[Prolog의 방정식 단순화] 구현이 있습니다 (http://cmu-ai-mirror.bvulpes.com/afs/cs/project/ai-repository/ai/lang/prolog/code/math/algebra/). 0.html). 또한 Prolog에서 [Knuth-Bendix 완료 알고리즘] (https://github.com/nick8325/completion)의 최신 구현을 발견했습니다. –

4

예, Prolog는 대수를 할 수 있습니다.

PrologCAS (컴퓨터 대수 시스템) Google을 사용하면 많은 결과를 얻을 수 있습니다.

Using Prolog as a CAS

이해하면 그 프롤로그 = Syntactic unification + backward-chaining + REPL, 다음

는 문제/방정식을 해결의 마음, 당신은 해결하기 위해 사용되는 등식 논리로 실행할 수있는 통일 것을 깨닫게

등호 (=)가 포함 된 문제 이 동일한 논리는 automated theorem proversproof assistants에도 사용됩니다.

here을 보면이 자동화 된 정리 정리자에서 통합 및 역방향 연결을 구현하는 prolog.ml을 찾을 수 있습니다.

또한 term rewriting을 확인하고 용어 재 작성을 검색하여 용어를 사용하여 방정식을 푸는 과학에 대해 자세히 알아볼 수 있습니다.

+0

아주 좋은 포인터! 더 많은 것을 알기 전에 그 개념을 간략하게 요약 할 수 있다면 답이 훨씬 더 유용 할 것입니다. – crackjack