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

From Vigyanwiki

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

सिंहावलोकन

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

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

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

border=0 File:Elevatorworld.png
उदाहरण विश्व समस्या को रोकता है
एक और उदाहरण: लक्ष्य मल्टी-एजेंट लिफ्ट नियंत्रक[1]

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

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

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 गोलोग, जैक इंटेलिजेंट एजेंट, जादेक्स, और उदाहरण के लिए, जेसन। इस प्रकार लक्ष्य की विशिष्ट विशेषता घोषणात्मक प्रोग्रामिंग लक्ष्य की अवधारणा होती है। चूँकि लक्ष्य एजेंट के लक्ष्य यह बताते हैं कि एजेंट क्या प्राप्त करना चाहता है, न कि इसे कैसे प्राप्त करना है। अतः अन्य लैंग्वेजओं से भिन्न, लक्ष्य एजेंट अपने लक्ष्य के प्रति प्रतिबद्ध होते हैं और किसी लक्ष्य को तभी हटाते हैं जब वह पूर्ण प्रकार से प्राप्त हो जाता है। इस प्रकार लक्ष्य घोषणात्मक प्रोग्रामिंग और संज्ञानात्मक एजेंटों के लिए आवश्यक तर्क क्षमताओं पर शक्तिशाली फोकस के साथ प्रोग्रामिंग संरचना प्रदान करता है।

यह भी देखें

संदर्भ

  1. The elevator simulator is originally written by Chris Dailey and Neil McKellar and is available in its original form via http://sourceforge.net/projects/elevatorsim.
टिप्पणियाँ लक्ष्य की धारणा पर साहित्य
  • लार्स ब्रौबैक, अलेक्जेंडर पोकाहर, डैनियल मोल्ड्ट और विनफ्राइड लैमर्सडॉर्फ (2004)। बीडीआई एजेंट सिस्टम के लिए लक्ष्य प्रतिनिधित्व, प्रोग्रामिंग मल्टीएजेंट सिस्टम पर दूसरी अंतर्राष्ट्रीय कार्यशाला।
  • फिलिप आर. कोहेन और हेक्टर जे. लेवेस्क (1990)। प्रतिबद्धता के साथ इरादा विकल्प है। आर्टिफिशियल इंटेलिजेंस 42, 213-261।
  • एंड्रियास हर्ज़िग और डी. लॉन्गिन (2004)। C&l इरादे पर दोबारा गौर किया गया। इन: प्रोक. 9वें इंट के. ज्ञान प्रतिनिधित्व और तर्क के सम्मेलन सिद्धांत (केआर'04), 527-535।
  • कोएन वी. हिंड्रिक्स, फ्रैंक एस. डी बोअर, विबे वैन डेर होक, जॉन-जूल्स च. मेयर (2000)। घोषणात्मक लक्ष्यों के साथ एजेंट प्रोग्रामिंग। इन: प्रोक. 7वें अंतर्राष्ट्रीय का. इंटेलिजेंट एजेंट्स VII (ATAL'00) पर कार्यशाला, पृष्ठ 228-243।
  • आनंद एस. राव और माइकल पी. जॉर्जफ़ (1993)। इरादे और तर्कसंगत प्रतिबद्धता. टेक. प्रतिनिधि 8, ऑस्ट्रेलियाई कृत्रिम बुद्धिमत्ता संस्थान।
  • बिरना वैन रिम्सडिज्क, मेहदी दस्तानी, जॉन-जूल्स च। मेयर (2009)। संघर्ष में लक्ष्य: एजेंट प्रोग्रामिंग में लक्ष्यों की अर्थपूर्ण नींव। स्वायत्त एजेंटों और मल्टी-एजेंट सिस्टम के अंतर्राष्ट्रीय जर्नल।

बाहरी संबंध