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

From Vigyanwiki

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

सिंहावलोकन

गोल की मुख्य विशेषताओं में सम्मिलित हैं।

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

गोल एजेंट कार्यक्रम

border=0
उदाहरण विश्व समस्या को रोकता है

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

गोल एजेंट प्रोग्राम की समग्र संरचना इस प्रकार दिखती है।

main: <agentname> {
  <sections>
}

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

knowledge{
  block(a), block(b), block(c), block(d), block(e), block(f), block(g).
  clear(table).
  clear(X) :- block(X), not(on(Y,X)).
  tower([X]) :- on(X,table).
  tower([X,Y|T]) :- on(X,Y), tower([Y|T]).
}

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

विश्वास{

beliefs{                                                                                                                                                           on(a,b), on(b,c), on(c,table), on(d,e), on(e,table), on(f,g), on(g,table).
}

सभी ज्ञात ब्लॉक गोल अनुभाग में भी उपस्तिथ होता हैं जो गोल विन्यास निर्दिष्ट करता है जो सभी ब्लॉकों का पुन: उपयोग करता है।

गोल{

 goals{                                                                                                                                                        on(a,e), on(b,table), on(c,table), on(d,c), on(e,b), on(f,d), on(g,table).
}

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

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

a-goal(formula) ::= goal(formula), not(bel(formula))            goal-a(formula) ::= goal(formula), bel(formula)                         

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

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

main module{
  program{
    if a-goal(tower([X,Y|T])), bel(tower([Y|T])) then move(X,Y).
    if a-goal(tower([X|T])) then move(X,table).
  }
}

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

actionspec{
  move(X,Y) {
    pre{ clear(X), clear(Y), on(X,Z), not(X=Y) }
    post{ not(on(X,Z)), on(X,Y) }
}

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

event module{
  program{
    forall bel( percept(on(X,Y)), on(X,Z), not(Y=Z) ) do insert(on(X,Y), not(on(X,Z))).
  }
}

संबंधित एजेंट प्रोग्रामिंग लैंग्वेजएँ

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

यह भी देखें

संदर्भ

टिप्पणियाँ गोल की धारणा पर साहित्य
  • लार्स ब्रौबैक, अलेक्जेंडर पोकाहर, डैनियल मोल्ड्ट और विनफ्राइड लैमर्सडॉर्फ (2004)। बीडीआई एजेंट सिस्टम के लिए गोल प्रतिनिधित्व, प्रोग्रामिंग मल्टीएजेंट सिस्टम पर दूसरी अंतर्राष्ट्रीय कार्यशाला।
  • फिलिप आर. कोहेन और हेक्टर जे. लेवेस्क (1990)। प्रतिबद्धता के साथ इरादा विकल्प है। आर्टिफिशियल इंटेलिजेंस 42, 213-261।
  • एंड्रियास हर्ज़िग और डी. लॉन्गिन (2004)। C&l इरादे पर दोबारा गौर किया गया। इन: प्रोक. 9वें इंट के. ज्ञान प्रतिनिधित्व और तर्क के सम्मेलन सिद्धांत (केआर'04), 527-535।
  • कोएन वी. हिंड्रिक्स, फ्रैंक एस. डी बोअर, विबे वैन डेर होक, जॉन-जूल्स च. मेयर (2000)। घोषणात्मक गोलों के साथ एजेंट प्रोग्रामिंग। इन: प्रोक. 7वें अंतर्राष्ट्रीय का. इंटेलिजेंट एजेंट्स VII (ATAL'00) पर कार्यशाला, पृष्ठ 228-243।
  • आनंद एस. राव और माइकल पी. जॉर्जफ़ (1993)। इरादे और तर्कसंगत प्रतिबद्धता. टेक. प्रतिनिधि 8, ऑस्ट्रेलियाई कृत्रिम बुद्धिमत्ता संस्थान।
  • बिरना वैन रिम्सडिज्क, मेहदी दस्तानी, जॉन-जूल्स च। मेयर (2009)। संघर्ष में गोल: एजेंट प्रोग्रामिंग में गोलों की अर्थपूर्ण नींव। स्वायत्त एजेंटों और मल्टी-एजेंट सिस्टम के अंतर्राष्ट्रीय जर्नल।

बाहरी संबंध