2012-12-03 50 views
7

कर सकता है, मैंने प्रोलॉग और लॉजिकल प्रोग्रामिंग के बारे में एक संक्षिप्त लेख पढ़ा है। अगर तर्कसंगत कार्यक्रम बीजगणित कर सकता है तो मैं उत्सुक हूं। जैसा कि आप पूछ सकते हैं कि एक्स के वेरिएबल समीकरण 5 + एक्स = 7 में क्या है और -2 का उत्तर प्राप्त करें?मुझे उत्सुकता है यदि लॉजिकल प्रोग्राम बीजगणित

उत्तर

3

इस बारे में कैसे? ध्यान दें कि यह केवल X+Y=Z के लिए काम करेगा।

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. 

आप पूछ सकते हैं:

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

सभी गंभीर Prolog सिस्टम परिमित डोमेन से अधिक बाधा तर्क प्रोग्रामिंग प्रदान करते हैं सीएलपी (FD) छोटे के लिए कहा जाता है, जिसके साथ आप आसानी से ऐसे कई समीकरणों को हल कर सकते हैं। उदाहरण के लिए, SICStus Prolog, SWI और याप के साथ:

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

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

जाहिर है, इस सवाल का जवाब 2 के बजाय -2 है। पुस्तकालय (clpq) के साथ राशन जैसे अन्य डोमेन पर बाधा तर्क प्रोग्रामिंग भी देखें।

+0

कृपया एक दृष्टिकोण के लिए [अनुकूलन] (http://stackoverflow.com/questions/37142066/optimisation-in-swi-prolog) देखें जो गैरलाइन समीकरणों (कभी-कभी) के साथ भी काम करता है। – mat

+0

एक [प्रोलॉग में समीकरण सरलीकृत] का कार्यान्वयन है (http://cmu-ai-mirror.bvulpes.com/afs/cs/project/ai-repository/ai/lang/prolog/code/math/algebra/ 0.html) जो 1 9 87 में लिखा गया था। मुझे प्रोलॉग में [Knuth-Bendix समापन एल्गोरिदम] (https://github.com/nick8325/completion) का हालिया कार्यान्वयन भी मिला। –

4

हां, प्रोल बीजगणित कर सकते हैं।

यदि आप Prolog और CAS (कंप्यूटर बीजगणित प्रणाली) के लिए Google आपको बहुत सारे परिणाम मिलेंगे।

उदा। Using Prolog as a CAS

यदि आप समझते हैं कि Prolog = Syntactic unification + backward-chaining + REPL,

तो पता चलता है कि यह एकीकरण है कि समस्याओं/समीकरणों को हल करने के दिल, आप संतुलन संबंधी तर्क जो हल करने के लिए प्रयोग किया जाता है में पड़ सकते हैं है समस्याएं जो बराबर होती हैं (=)। यह वही तर्क automated theorem provers और proof assistants के साथ भी प्रयोग किया जाता है।

यदि आप here देखते हैं तो आपको prolog.ml मिलेगा जो इस स्वचालित प्रमेय प्रदाता में एकीकरण और पिछड़े-श्रृंखला को लागू करता है।

आपको term rewriting को भी देखना चाहिए और शर्तों का उपयोग करके समीकरणों को हल करने के विज्ञान के बारे में अधिक जानने के लिए Google को पुनः लिखने के लिए Google की खोज करनी चाहिए।

+0

बहुत अच्छे पॉइंटर्स! अगर आप अधिक जानकारी के लिए पॉइंटर्स देने से पहले उन अवधारणाओं को संक्षेप में सारांशित कर सकते हैं तो आपका उत्तर और भी उपयोगी होगा। – crackjack

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^