- तर्क प्रोग्रामिंग के लक्षण
- सत्य और तार्किक कटौती
- पहले तर्क दें
- क्लॉज़ल रूप
- कृत्रिम होशियारी
- तर्क प्रोग्रामिंग उदाहरण
- उदाहरण 1
- उदाहरण 2
- सवाल
- अन्य पूछताछ
- संदर्भ
तर्क प्रोग्रामिंग एक प्रोग्रामिंग प्रतिमान नियंत्रित करने के लिए तर्क के बजाय सर्किट सिर्फ गणितीय कार्य का उपयोग करता है कैसे तथ्य और नियम सेट कर रहे हैं।
नियंत्रण के सावधानीपूर्वक संरचित प्रवाह के बजाय जो कार्य करने या फ़ंक्शन कॉल या अन्य निर्देशों का मूल्यांकन करने के तरीके को निर्धारित करता है, कार्यक्रम के तार्किक नियमों को खंड या तार्किक विधेय के रूप में लिखा जाता है।
प्रोलॉग में लॉजिक प्रोग्रामिंग के उदाहरण। स्रोत: कुलदीपशोरन द्वारा - स्क्रीनशॉट, सीसी बाय-एसए 3.0, विकिमीडिया कॉमन्स
यह दृष्टिकोण, जिसे अक्सर आनुवांशिक और विकासवादी प्रोग्रामिंग में उपयोग किया जाता है, आमतौर पर एक मॉडल बताता है कि इसे प्राप्त करने के बजाय क्या लक्ष्य प्राप्त करना है।
प्रत्येक नियम में एक निष्पादन योग्य गणितीय कार्य के बजाय एक हेडर और एक औपचारिक तर्क के साथ एक निकाय होता है। उदाहरण के लिए, "और यह सच है (हैडर): यदि C1, C2, और C3 सत्य (शरीर) हैं।" तथ्यों या परिणामों को एक निकाय के बिना व्यक्त किया जाता है, जैसे "और यह सच है।"
हालांकि, प्रोलॉग जैसी कुछ प्रोग्रामिंग भाषाओं के साथ, कुछ समस्याओं को हल करने के तरीके को बताने के लिए अनिवार्य प्रोग्रामिंग को भी शामिल किया जा सकता है। उदाहरण के लिए, "Y को हल करने के लिए, C1, C2 और C3 जोड़ें।"
तर्क प्रोग्रामिंग के लक्षण
लॉजिक प्रोग्रामिंग अन्य मौजूदा प्रोग्रामिंग रणनीतियों से काफी अलग है। प्रोग्राम के साथ एक कंप्यूटर को निर्देश देने के बजाय, वस्तुओं के बीच संबंध स्थापित किए जाते हैं। इस तरह से कंप्यूटर इन संबंधों का कारण बन सकता है और इस तरह तार्किक समाधान तक पहुंच सकता है।
एक तर्क कार्यक्रम के भीतर कोड के दो मुख्य सेट होते हैं: तथ्य और नियम। नियमों को पर्यावरण के बारे में ज्ञान प्राप्त करने के लिए तथ्यों पर लागू किया जाता है।
सत्य और तार्किक कटौती
तर्क कार्यक्रमों को दो महत्वपूर्ण अवधारणाओं के माध्यम से समझा जा सकता है: सत्य और तार्किक कटौती। सच यह निकलता है कि कार्यक्रम के प्रतीकों के कार्यान्वयन के तहत कार्यक्रम में गणना सही है या नहीं। तार्किक कटौती यह निर्धारित करती है कि क्या तार्किक खंड कार्यक्रम का परिणाम है।
इन निर्देशों को हमेशा तार्किक वाक्यों और खंडों के रूप में व्याख्यायित किया जाएगा, उनके निष्पादन के परिणामस्वरूप होने वाली गणनाओं का तार्किक परिणाम होगा।
पहले तर्क दें
यह प्रस्तावक तर्क का एक हिस्सा है। विचार करें कि क्या ऑब्जेक्ट्स आंशिक दुनिया के दृष्टिकोण से सही या गलत हैं, जिन्हें एक डोमेन कहा जाता है। तर्क प्रोग्रामिंग पहले-क्रम तर्क के सामान्यीकरण पर आधारित है।
यह तर्क वाक्य रचना और शब्दार्थ से बना है। सिंटैक्स औपचारिक भाषा है जिसका उपयोग अवधारणाओं को व्यक्त करने के लिए किया जाता है। दूसरी ओर, पहले क्रम के तार्किक सूत्र के शब्दार्थ किसी भी सूत्र का सही मूल्य निर्धारित करने का संकेत देते हैं।
यह तर्क एक वर्णमाला और पहले क्रम की भाषा पर आधारित है, साथ ही साथ स्वयंसिद्ध और अनुमान नियमों का एक सेट भी है।
क्लॉज़ल रूप
यह प्रथम-क्रम तर्क का एक सबसेट है। इसका एक सामान्यीकृत रूप है, जहां एक कथन को एक सार्वभौमिक उपसर्ग या सार्वभौमिक क्वांटिफायर की श्रृंखला द्वारा परिभाषित किया जाता है, और क्लॉज में क्वांटिफायर का एक मुफ्त सेट होता है।
प्रोग्राम के लिए एक प्रश्न का अनुरोध करते समय, क्लॉज का शरीर जिसका शीर्षलेख संयोग हो सकता है, पर विचार किया जाएगा। यह तर्क में एक निषेध नियम लागू करने के समान है।
निष्कर्ष में एक कदम के रूप में, दो खंडों को चुना जाता है जिनके पास संपत्ति होती है जिसमें एक में एक एक्सजेक्टिव एक्स (एक सकारात्मक शाब्दिक) और दूसरे में एक डिस्जैक्टिव (X (एक नकारात्मक शाब्दिक) होता है। इन ट्रेडऑफ़ को पूरक के रूप में जाना जाता है।
इन दो प्रारंभिक खंडों से, पूरक लोगों को छोड़कर, सभी शाब्दिक अर्थों का उपयोग करके एक नया संकल्पात्मक खंड बनाया गया है।
कृत्रिम होशियारी
लॉजिक प्रोग्रामिंग एक पद्धति है जिसका उपयोग कंप्यूटरों को कम करने के लिए किया जाता है, क्योंकि यह ज्ञान का प्रतिनिधित्व करने के लिए उपयोगी है। तर्क का उपयोग ज्ञान और इसे संभालने के लिए निष्कर्ष का प्रतिनिधित्व करने के लिए किया जाता है।
ज्ञान का प्रतिनिधित्व करने के लिए इस्तेमाल किया जाने वाला तर्क क्लॉस रूप है। इसका उपयोग किया जाता है क्योंकि प्रथम-क्रम तर्क अच्छी तरह से समझा जाता है और सभी कम्प्यूटेशनल समस्याओं का प्रतिनिधित्व करने में सक्षम है।
प्रोलॉग एक प्रोग्रामिंग भाषा है जो लॉजिक प्रोग्रामिंग के विचारों पर आधारित है। Prolog का विचार तर्क को प्रोग्रामिंग भाषा की तरह बनाना है।
तर्क प्रोग्रामिंग उदाहरण
उदाहरण 1
- तथ्य: रूबी एक बिल्ली है।
- नियम: सभी बिल्लियों के दांत होते हैं।
- परामर्श: क्या रूबी के दांत हैं?
- निष्कर्ष: हाँ।
नियम "सभी बिल्लियों के दांत होते हैं" रूबी पर लागू किया जा सकता है, क्योंकि एक तथ्य यह है कि "रूबी एक बिल्ली है।" यह उदाहरण एक वास्तविक प्रोग्रामिंग भाषा के लिए किसी भी वाक्य रचना के साथ नहीं लिखा गया है।
उदाहरण 2
यह उदाहरण प्रोलॉग में लिखा देखा जा सकता है, क्योंकि यह सबसे लोकप्रिय लॉजिक प्रोग्रामिंग भाषाओं में से एक है:
- स्त्रीलिंग (alissa)।
- पुल्लिंग (बॉबी)।
- पुल्लिंग (कार्लो)।
- स्त्रीलिंग (डोरिस)।
- son_of (डोरिस, कार्लो)।
- son_of (कार्लो, बॉबी)।
- son_of (डोरिस, एलिसा)।
- पिता_फ (एफ, पी): - पुरुष (एफ), सोन_फ (पी, एफ)।
यह कार्यक्रम पढ़ना मुश्किल हो जाता है, क्योंकि प्रोलॉग अन्य भाषाओं से काफी अलग है। कोई भी कोड घटक जो "स्त्री (एलिसा)" जैसा दिखता है। यह सच है।
एक नियम "पिता_फ (एफ, पी): - पुरुष (एफ), चाइल्ड_ऑफ (पी, एफ)" है। प्रतीक ": -" के रूप में पढ़ा जा सकता है "सच है अगर"। कैपिटल अक्षरों का मतलब है कि चर को किसी भी वस्तु पर लागू किया जा सकता है, इसलिए एफ कार्लो, डोरिस, एलिसा या बॉबी के लिए खड़ा हो सकता है। इस कोड का अनुवाद इस प्रकार किया जा सकता है:
- अलीसा एक महिला हैं।
- बॉबी एक आदमी है।
- कार्लोस एक आदमी है।
- डोरिस एक महिला है।
- डोरिस कार्लोस की बेटी है।
- कार्लोस बॉबी के बेटे हैं।
- डोरिस एलिसा की बेटी है।
- «F, P का पिता है और यदि F एक पुरुष है तो P सच है।
सवाल
मान लीजिए आप अधिक जानकारी के लिए कार्यक्रम से परामर्श करना चाहते हैं। आप खोज करने के लिए पूछ सकते हैं कि किसका पिता बॉबी किसके साथ है:? - father_of (बॉबी, एक्स)। सिस्टम निम्नलिखित उत्तर का संकेत देगा: एक्स = कार्लोस।
इस मामले में, एक संबंध पारित किया जा रहा है जहां इसका एक मान एक चर है। जब तक कि उनमें से एक तार्किक रूप से ठोस नहीं था, तब प्रोलॉग ने इस संबंध में विभिन्न वस्तुओं को लागू किया।
कार्लोस का एकमात्र पिता बॉबी है, और बॉबी पुरुष है। इसने नियम को संतुष्ट किया "पिता_फ (एफ, पी): - पुल्लिंग (एफ), सोन_ऑफ (पी, एफ)।" जब एक्स "कार्लो" के बराबर होता है, तो तर्क ध्वनि है।
अन्य पूछताछ
अन्य सामान्य प्रश्न प्रोलॉग के लिए किए जा सकते हैं, जो सिस्टम को कई परिणाम उत्पन्न करते हैं:
-? - parent_of (पैरेंट, चाइल्ड)।
- पिता = बॉबी
- बच्चा = कार्लोस
- पिता = कार्लोस
- बच्चा = डोरिस
जैसा कि देखा गया है, लॉजिक प्रोग्रामिंग के लिए यह जानकारी होना आवश्यक नहीं है कि एलिसा या बॉबी उनके बारे में ज्ञान प्राप्त करने के लिए लोग हैं। वास्तव में, यह इंगित करना आवश्यक नहीं है कि व्यक्ति नामक एक अवधारणा है।
अधिकांश गैर-तार्किक प्रोग्रामिंग भाषाओं में, आपको पहले इन अवधारणाओं को परिभाषित करना होगा, इससे पहले कि आप उन कार्यक्रमों को लिख सकें जो लोगों के बारे में जानकारी की प्रक्रिया करते हैं।
संदर्भ
- डीप एआई (2020)। तर्क प्रोग्रामिंग। से लिया गया: deepai.org
- विकीवर्सिटी (2020)। प्रोग्रामिंग भाषाओं / लॉजिक प्रोग्रामिंग का सिद्धांत। से लिया गया: en.wikiversity.org
- इंपीरियल कॉलेज लंदन (2006)। तर्क प्रोग्रामिंग। से लिया गया: doc.ic.ac.uk
- जिया-हुआई यू (2020)। लॉजिक प्रोग्रामिंग का परिचय। अल्बर्टा विश्वविद्यालय। से लिया गया: eng.ucy.ac.cy.
- सी 2 विकी (2020)। तर्क प्रोग्रामिंग। से लिया गया: wiki.c2.com