गोल (GOAL) एजेंट प्रोग्रामिंग लैंग्वेज

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

सिंहावलोकन
GOAL की मुख्य विशेषताओं में शामिल हैं:
 * घोषणात्मक विश्वास: एजेंट अपने पास मौजूद जानकारी और अपने लक्ष्यों को प्राप्त करने के लिए जिस पर्यावरण पर कार्य करते हैं, उसके बारे में उनके विश्वास या ज्ञान का प्रतिनिधित्व करने के लिए एक प्रतीकात्मक, तार्किक भाषा का उपयोग करते हैं। यह ज्ञान प्रतिनिधित्व भाषा GOAL द्वारा निर्धारित नहीं है, लेकिन, सिद्धांत रूप में, प्रोग्रामर की आवश्यकताओं के अनुसार भिन्न हो सकती है।
 * घोषणात्मक लक्ष्य: एजेंटों के कई लक्ष्य हो सकते हैं जो निर्दिष्ट करते हैं कि एजेंट निकट या दूर के भविष्य में किसी क्षण क्या हासिल करना चाहता है। घोषणात्मक लक्ष्य पर्यावरण की एक स्थिति निर्दिष्ट करते हैं जिसे एजेंट स्थापित करना चाहता है, वे ऐसे कार्यों या प्रक्रियाओं को निर्दिष्ट नहीं करते हैं कि ऐसी स्थितियों को कैसे प्राप्त किया जाए।
 * अंध प्रतिबद्धता रणनीति: एजेंट अपने लक्ष्यों के लिए प्रतिबद्ध होते हैं और लक्ष्य तभी छोड़ते हैं जब वे हासिल हो जाते हैं। यह प्रतिबद्धता रणनीति, जिसे साहित्य में अंधा प्रतिबद्धता रणनीति कहा जाता है, GOAL एजेंटों द्वारा उपयोग की जाने वाली डिफ़ॉल्ट रणनीति है। माना जाता है कि संज्ञानात्मक एजेंटों के पास ऐसे लक्ष्य नहीं होते हैं जिनके बारे में उनका मानना ​​है कि वे पहले ही हासिल कर चुके हैं, एक बाधा जो लक्ष्य एजेंटों में एक लक्ष्य को छोड़ने के कारण बनाई गई है जब इसे पूरी तरह से हासिल कर लिया गया हो।
 * नियम-आधारित कार्रवाई चयन: एजेंट अपनी मान्यताओं और लक्ष्यों को ध्यान में रखते हुए, कार्रवाई का चयन करने के लिए तथाकथित कार्रवाई नियमों का उपयोग करते हैं। ऐसे नियम इस अर्थ में कार्रवाई की पसंद को कम निर्दिष्ट कर सकते हैं कि एजेंट के कार्रवाई नियमों को देखते हुए किसी भी समय कई कार्य किए जा सकते हैं। उस स्थिति में, एक GOAL एजेंट निष्पादन के लिए एक मनमाना सक्षम कार्रवाई का चयन करेगा।
 * नीति-आधारित इरादा मॉड्यूल: एजेंट अपना ध्यान केंद्रित कर सकते हैं और अपने लक्ष्यों के एक उप-समूह को प्राप्त करने पर अपने सभी प्रयास लगा सकते हैं, अपने कार्यों के एक उप-समूह का उपयोग करके, केवल उन लक्ष्यों को प्राप्त करने के लिए प्रासंगिक ज्ञान का उपयोग कर सकते हैं। GOAL विशिष्ट लक्ष्यों को प्राप्त करने के लिए समर्पित कार्रवाई नियमों और ज्ञान की संरचना के लिए मॉड्यूल प्रदान करता है। अनौपचारिक रूप से, मॉड्यूल को माइकल ब्रैटमैन के अर्थ में नीति-आधारित इरादों के रूप में देखा जा सकता है।
 * ज्ञान स्तर पर संचार: एजेंट जानकारी का आदान-प्रदान करने और अपने कार्यों का समन्वय करने के लिए एक-दूसरे के साथ संवाद कर सकते हैं। लक्ष्य एजेंट ज्ञान प्रतिनिधित्व भाषा का उपयोग करके संवाद करते हैं जिसका उपयोग उनके विश्वासों और लक्ष्यों को दर्शाने के लिए भी किया जाता है।
 * परीक्षण: आप GOAL के लिए परीक्षण भी लिख सकते हैं।

लक्ष्य एजेंट कार्यक्रम
एक GOAL एजेंट प्रोग्राम में छह अलग-अलग खंड होते हैं, जिनमें क्रमशः ज्ञान, विश्वास, लक्ष्य, कार्य नियम, कार्य विनिर्देश और अवधारणा नियम शामिल हैं। उदाहरण के लिए, ज्ञान, विश्वास और लक्ष्यों को ज्ञान प्रतिनिधित्व भाषा जैसे प्रोलॉग, उत्तर सेट प्रोग्रामिंग, एसक्यूएल (या संगणक वैज्ञानिक ), या योजना डोमेन परिभाषा भाषा में दर्शाया जाता है। नीचे, हम प्रोलॉग का उपयोग करके GOAL एजेंट प्रोग्राम के घटकों का वर्णन करते हैं।

GOAL एजेंट प्रोग्राम की समग्र संरचना इस प्रकार दिखती है:  मुख्य: <एजेंटनाम> { <अनुभाग> } 

GOAL एजेंट की संरचना को दर्शाने के लिए उपयोग किया जाने वाला GOAL एजेंट कोड एक ऐसा एजेंट है जो ब्लॉक की दुनिया की समस्याओं को हल करने में सक्षम है। एजेंट की मान्यताएँ ब्लॉक दुनिया की वर्तमान स्थिति का प्रतिनिधित्व करती हैं जबकि एजेंट के लक्ष्य लक्ष्य स्थिति का प्रतिनिधित्व करते हैं। आगे सूचीबद्ध ज्ञान अनुभाग में ब्लॉक विश्व डोमेन से संबंधित अतिरिक्त वैचारिक या डोमेन ज्ञान शामिल है।

ध्यान दें कि ज्ञान अनुभाग में सूचीबद्ध सभी ब्लॉक विश्वास अनुभाग में फिर से दिखाई देते हैं क्योंकि ब्लॉकों की संपूर्ण कॉन्फ़िगरेशन को चिह्नित करने के लिए प्रत्येक ब्लॉक की स्थिति को निर्दिष्ट करने की आवश्यकता होती है।

 विश्वास{ ऑन(ए,बी), ऑन(बी,सी), ऑन(सी,टेबल), ऑन(डी,ई), ऑन(ई,टेबल), ऑन(एफ,जी), ऑन(जी,टेबल)। } 

सभी ज्ञात ब्लॉक लक्ष्य अनुभाग में भी मौजूद हैं जो एक लक्ष्य विन्यास निर्दिष्ट करता है जो सभी ब्लॉकों का पुन: उपयोग करता है।  लक्ष्य{ ऑन (ए, ई), ऑन (बी, टेबल), ऑन (सी, टेबल), ऑन (डी, सी), ऑन (ई, बी), ऑन (एफ, डी), ऑन (जी, टेबल)। } 

एक GOAL एजेंट के पास एक ही समय में कई लक्ष्य हो सकते हैं। ये लक्ष्य परस्पर विरोधी भी हो सकते हैं क्योंकि प्रत्येक लक्ष्य को अलग-अलग समय पर साकार किया जा सकता है। उदाहरण के लिए, एक एजेंट का लक्ष्य मूवी थिएटर में मूवी देखना और (बाद में) घर पर रहना हो सकता है।

GOAL में, लक्ष्य की विभिन्न धारणाएँ प्रतिष्ठित हैं। 'आदिम लक्ष्य' एक कथन है जो ज्ञान आधार में परिभाषित अवधारणाओं के साथ लक्ष्य आधार से अनुसरण करता है। उदाहरण के लिए,  एक आदिम लक्ष्य है और हम लिखते हैं   इसे दर्शाने के लिए. शुरू में,  यह भी एक उपलब्धि लक्ष्य है क्योंकि एजेंट यह नहीं मानता है कि a, e के शीर्ष पर है, e, b के शीर्ष पर है, और b टेबल पर है। उपलब्धि लक्ष्य आदिम लक्ष्य हैं जिनके बारे में एजेंट को विश्वास नहीं होता है और उन्हें दर्शाया जाता है. यह व्यक्त करने में सक्षम होना भी उपयोगी है कि एक लक्ष्य हासिल कर लिया गया है।  उदाहरण के लिए, टावर को व्यक्त करने के लिए उपयोग किया जाता है   ब्लॉक बी के शीर्ष पर ब्लॉक ई के साथ हासिल किया गया है। उपलब्धि लक्ष्यों के साथ-साथ प्राप्त लक्ष्य की धारणा दोनों को परिभाषित किया जा सकता है:

 ए-लक्ष्य(सूत्र) ::= लक्ष्य(सूत्र), नहीं(बेल(सूत्र)) लक्ष्य-ए(सूत्र) ::= लक्ष्य(सूत्र), बेल(सूत्र) 

एजेंट साहित्य में उपलब्धि लक्ष्य की अवधारणा को परिभाषित करने पर एक महत्वपूर्ण साहित्य है (संदर्भ देखें)।

GOAL एक नियम-आधारित प्रोग्रामिंग भाषा है। नियम मॉड्यूल में संरचित हैं। GOAL एजेंट का मुख्य मॉड्यूल क्रिया नियमों के माध्यम से क्रियाओं के चयन के लिए एक रणनीति निर्दिष्ट करता है। नीचे दिए गए पहले नियम में कहा गया है कि ब्लॉक दूसरे नियम में कहा गया है कि यदि ब्लॉक X गलत स्थान पर है तो ब्लॉक X को टेबल पर ले जाना एक विकल्प है।

 मुख्य मॉड्यूल{ कार्यक्रम{ यदि ए-लक्ष्य(टावर([एक्स,वाई|टी])), बेल(टावर([वाई|टी])) तो आगे बढ़ें(एक्स,वाई)। यदि एक-लक्ष्य(टॉवर([X|T])) तो आगे बढ़ें(X,टेबल)। } } 

कार्रवाइयां, जैसे कि ऊपर उपयोग की गई चाल कार्रवाई, पूर्व शर्तों और उत्तर शर्तों के स्टैनफोर्ड अनुसंधान संस्थान समस्या समाधानकर्ता विनिर्देश का उपयोग करके निर्दिष्ट की जाती है। एक पूर्व शर्त निर्दिष्ट करती है कि कार्रवाई कब की जा सकती है (सक्षम है)। एक पोस्टकंडिशन निर्दिष्ट करती है कि कार्रवाई करने के प्रभाव क्या होंगे।

 क्रियाविशेषता{ चाल(एक्स,वाई) { पूर्व {स्पष्ट(एक्स), स्पष्ट(वाई), पर(एक्स,जेड), नहीं(एक्स=वाई) } पोस्ट {नहीं(पर(एक्स,जेड)), पर(एक्स,वाई) } } 

अंत में, ईवेंट मॉड्यूल में पर्यावरण से प्राप्त अवधारणाओं जैसे ईवेंट को संसाधित करने के नियम शामिल होते हैं। नीचे दिया गया नियम निर्दिष्ट करता है कि प्राप्त सभी धारणाओं के लिए जो इंगित करती हैं कि ब्लॉक

 इवेंट मॉड्यूल{ कार्यक्रम{ सभी के लिए bel( अवधारणा(on(X,Y)), on(X,Z), not(Y=Z) ) do Insert(on(X,Y), not(on(X,Z))). } } 

संबंधित एजेंट प्रोग्रामिंग भाषाएँ
GOAL एजेंट प्रोग्रामिंग भाषा अन्य एजेंट प्रोग्रामिंग भाषाओं से संबंधित है, लेकिन उनसे अलग है जैसे कि AGENT0, AgentSpeak, 2APL, .toronto.edu/cogrobo/main/systems/index.html Golog, जैक इंटेलिजेंट एजेंट्स, Jadex, और, उदाहरण के लिए, जेसन। GOAL की विशिष्ट विशेषता घोषणात्मक प्रोग्रामिंग लक्ष्य की अवधारणा है। एक GOAL एजेंट के लक्ष्य यह बताते हैं कि एक एजेंट क्या हासिल करना चाहता है, न कि इसे कैसे हासिल करना है। अन्य भाषाओं से भिन्न, GOAL एजेंट अपने लक्ष्य के प्रति प्रतिबद्ध होते हैं और किसी लक्ष्य को तभी हटाते हैं जब वह पूरी तरह से हासिल हो जाता है। GOAL घोषणात्मक प्रोग्रामिंग और संज्ञानात्मक एजेंटों के लिए आवश्यक तर्क क्षमताओं पर एक मजबूत फोकस के साथ एक प्रोग्रामिंग ढांचा प्रदान करता है।

यह भी देखें

 * एजेंट संचार भाषा
 * स्वायत्त एजेंट
 * संज्ञानात्मक वास्तुकला
 * घोषणात्मक प्रोग्रामिंग
 * व्यावहारिक तर्क
 * तर्कसंगत एजेंट

संदर्भ
Literature on the notion of a goal:
 * Notes
 * Lars Braubach, Alexander Pokahr, Daniel Moldt and Winfried Lamersdorf (2004). Goal Representation for BDI Agent Systems, in: The Second International Workshop on Programming Multiagent Systems.
 * Philip R. Cohen and Hector J. Levesque (1990). Intention Is Choice with Commitment. Artificial Intelligence 42, 213–261.
 * Andreas Herzig and D. Longin (2004). C&l intention revisited. In: Proc. of the 9th Int. Conference Principles of Knowledge Representation and Reasoning (KR’04), 527–535.
 * Koen V. Hindriks, Frank S. de Boer, Wiebe van der Hoek, John-Jules Ch. Meyer (2000). Agent Programming with Declarative Goals. In: Proc. of the 7th Int. Workshop on Intelligent Agents VII (ATAL’00), pp. 228–243.
 * Anand S. Rao and Michael P. Georgeff (1993). Intentions and Rational Commitment. Tech. Rep. 8, Australian Artificial Intelligence Institute.
 * Birna van Riemsdijk, Mehdi Dastani, John-Jules Ch. Meyer (2009). Goals in Conflict: Semantic Foundations of Goals in Agent Programming. International Journal of Autonomous Agents and Multi-Agent Systems.

बाहरी संबंध

 * The GOAL Agent Programming Language home