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

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
'''लक्ष्य''' प्रोग्रामिंग [[संज्ञानात्मक एजेंट|संज्ञानात्मक एजेंटों]] के लिए एक एजेंट [[प्रोग्रामिंग भाषा]] होती है। इस प्रकार लक्ष्य एजेंट अपनी कार्रवाई का विकल्प अपने विश्वासों और लक्ष्यों से प्राप्त करते हैं। सामान्यतः भाषा प्रोग्रामिंग संरचनाओं द्वारा संज्ञानात्मक एजेंटों को डिजाइन और कार्यान्वित करने के लिए मूलभूत बिल्डिंग ब्लॉक प्रदान करती है, जो एक एजेंट की मान्यताओं और लक्ष्यों में हेरफेर करने और उसके निर्णय लेने की संरचना की अनुमति और सुविधा प्रदान करती है। अतः भाषा सामान्य ज्ञान या [[व्यावहारिक तर्क]] के आधार पर एक सहज प्रोग्रामिंग ढांचा प्रदान करती है।
'''लक्ष्य''' प्रोग्रामिंग [[संज्ञानात्मक एजेंट|संज्ञानात्मक एजेंटों]] के लिए एजेंट [[प्रोग्रामिंग भाषा]] होती है। इस प्रकार लक्ष्य एजेंट अपनी कार्रवाई का विकल्प अपने विश्वासों और लक्ष्यों से प्राप्त करते हैं। सामान्यतः भाषा प्रोग्रामिंग संरचनाओं द्वारा संज्ञानात्मक एजेंटों को डिजाइन और कार्यान्वित करने के लिए मूलभूत बिल्डिंग ब्लॉक प्रदान करती है, जो एजेंट की मान्यताओं और लक्ष्यों में हेरफेर करने और उसके निर्णय लेने की संरचना की अनुमति और सुविधा प्रदान करती है। अतः भाषा सामान्य ज्ञान या [[व्यावहारिक तर्क]] के आधार पर सहज प्रोग्रामिंग ढांचा प्रदान करती है।


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


== लक्ष्य एजेंट कार्यक्रम ==
== लक्ष्य एजेंट कार्यक्रम ==
{| border="1" | cellspacing=10px
{| border="1" | cellspacing=10px
|+ '''  '''
|+
|-  
|-  
| [[Image:blokken.png|475px|border=0]]
| [[Image:blokken.png|475px|border=0]]
Line 19: Line 19:
|+  
|+  
|-
|-
| {{center|An example blocks world problem}}
| {{center|उदाहरण विश्व समस्या को रोकता है}}
| {{center|Another Example: A GOAL Multi-Agent Elevator Controller<ref>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.</ref>}}
| {{center|एक और उदाहरण: लक्ष्य मल्टी-एजेंट लिफ्ट नियंत्रक<ref>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.</ref>}}
|-
|-
|}
|}
एक लक्ष्य एजेंट प्रोग्राम में छह भिन्न-भिन्न खंड होते हैं, जिनमें क्रमशः ज्ञान, विश्वास, लक्ष्य, कार्य नियम, कार्य विनिर्देश और अवधारणा नियम सम्मिलित हैं। उदाहरण के लिए, ज्ञान, विश्वास और लक्ष्यों को ज्ञान प्रतिनिधित्व भाषा जैसे [[प्रोलॉग]], [[उत्तर सेट प्रोग्रामिंग|उत्तर समुच्चय प्रोग्रामिंग]], [[एसक्यूएल]] (या [[ संगणक वैज्ञानिक ]]), या [[योजना डोमेन परिभाषा भाषा]] में दर्शाया जाता है। नीचे, हम प्रोलॉग का उपयोग करके लक्ष्य एजेंट प्रोग्राम के घटकों का वर्णन करते हैं।
लक्ष्य एजेंट प्रोग्राम में छह भिन्न-भिन्न खंड होते हैं, जिनमें क्रमशः ज्ञान, विश्वास, लक्ष्य, कार्य नियम, कार्य विनिर्देश और अवधारणा नियम सम्मिलित होते हैं। उदाहरण के लिए, ज्ञान, विश्वास और लक्ष्यों को ज्ञान प्रतिनिधित्व भाषा जैसे [[प्रोलॉग]], [[उत्तर सेट प्रोग्रामिंग|उत्तर समुच्चय प्रोग्रामिंग]], [[एसक्यूएल]] (या [[ संगणक वैज्ञानिक |संगणक वैज्ञानिक]] ), या [[योजना डोमेन परिभाषा भाषा|योजना कार्यक्षेत्र परिभाषा भाषा]] में दर्शाया जाता है। इस प्रकार नीचे, हम प्रोलॉग का उपयोग करके लक्ष्य एजेंट प्रोग्राम के घटकों का वर्णन करते हैं।
 
लक्ष्य एजेंट प्रोग्राम की समग्र संरचना इस प्रकार दिखती है।


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


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


<syntaxhighlight lang="prolog">
<syntaxhighlight lang="prolog">
Line 44: Line 42:
}
}
</syntaxhighlight>
</syntaxhighlight>
ध्यान दें कि ज्ञान अनुभाग में सूचीबद्ध सभी ब्लॉक विश्वास अनुभाग में फिर से दिखाई देते हैं क्योंकि ब्लॉकों की संपूर्ण कॉन्फ़िगरेशन को चिह्नित करने के लिए प्रत्येक ब्लॉक की स्थिति को निर्दिष्ट करने की आवश्यकता होती है।
ध्यान दीजिए कि ज्ञान अनुभाग में सूचीबद्ध सभी ब्लॉक विश्वास अनुभाग में फिर से दिखाई देते हैं जिससे कि ब्लॉकों की संपूर्ण कॉन्फ़िगरेशन को चिह्नित करने के लिए प्रत्येक ब्लॉक की स्थिति को निर्दिष्ट करने की आवश्यकता होती है।


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


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


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


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


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


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


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


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


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


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


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


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


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


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


== संबंधित एजेंट प्रोग्रामिंग भाषाएँ ==
== संबंधित एजेंट प्रोग्रामिंग भाषाएँ ==
लक्ष्य एजेंट प्रोग्रामिंग भाषा अन्य एजेंट प्रोग्रामिंग भाषाओं से संबंधित है, किन्तु उनसे भिन्न है जैसे कि [https://wayback.archive-it.org/all/20130302203951/ftp://db.stanford.edu/pub/cstr/reports/cs/tr/91/1389/CS-TR-91-1389.pdf AGENT0], [[AgentSpeak]], [[2APL]], [http://www.cs .toronto.edu/cogrobo/main/systems/index.html Golog], [[जैक इंटेलिजेंट एजेंट]]्स, [https://web.archive.org/web/20090317072231/http://jadex.informatik.uni-hamburg.de/bin/view/About/Overview Jadex], और, उदाहरण के लिए, [http://jason.sourceforge.net/ जेसन]। लक्ष्य की विशिष्ट विशेषता [[घोषणात्मक प्रोग्रामिंग]] लक्ष्य की अवधारणा है। एक लक्ष्य एजेंट के लक्ष्य यह बताते हैं कि एक एजेंट क्या प्राप्त करना चाहता है, न कि इसे कैसे प्राप्त करना है। अन्य भाषाओं से भिन्न, लक्ष्य एजेंट अपने लक्ष्य के प्रति प्रतिबद्ध होते हैं और किसी लक्ष्य को तभी हटाते हैं जब वह पूरी तरह से प्राप्त हो जाता है। लक्ष्य घोषणात्मक प्रोग्रामिंग और संज्ञानात्मक एजेंटों के लिए आवश्यक तर्क क्षमताओं पर एक शक्तिशाली फोकस के साथ एक प्रोग्रामिंग ढांचा प्रदान करता है।
लक्ष्य एजेंट प्रोग्रामिंग भाषा अन्य एजेंट प्रोग्रामिंग भाषाओं से संबंधित होती है, किन्तु उनसे भिन्न होती है जैसे कि [https://wayback.archive-it.org/all/20130302203951/ftp://db.stanford.edu/pub/cstr/reports/cs/tr/91/1389/CS-TR-91-1389.pdf एजेंट0], [[AgentSpeak|एजेंटस्पीक]], [[2APL|2एपीएल]], [http://www.cs .toronto.edu/cogrobo/main/systems/index.html गोलोग], [[जैक इंटेलिजेंट एजेंट]], [https://web.archive.org/web/20090317072231/http://jadex.informatik.uni-hamburg.de/bin/view/About/Overview जादेक्स], और उदाहरण के लिए, [http://jason.sourceforge.net/ जेसन]। इस प्रकार लक्ष्य की विशिष्ट विशेषता [[घोषणात्मक प्रोग्रामिंग]] लक्ष्य की अवधारणा होती है। चूँकि लक्ष्य एजेंट के लक्ष्य यह बताते हैं कि एजेंट क्या प्राप्त करना चाहता है, न कि इसे कैसे प्राप्त करना है। अतः अन्य भाषाओं से भिन्न, लक्ष्य एजेंट अपने लक्ष्य के प्रति प्रतिबद्ध होते हैं और किसी लक्ष्य को तभी हटाते हैं जब वह पूर्ण प्रकार से प्राप्त हो जाता है। इस प्रकार लक्ष्य घोषणात्मक प्रोग्रामिंग और संज्ञानात्मक एजेंटों के लिए आवश्यक तर्क क्षमताओं पर शक्तिशाली फोकस के साथ प्रोग्रामिंग ढांचा प्रदान करता है।


==यह भी देखें==
==यह भी देखें==

Revision as of 22:05, 5 August 2023

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

सिंहावलोकन

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

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

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

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

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

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

मुख्य: <एजेंटनाम> {

 <अनुभाग>

}

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

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]).
}

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

विश्वास{

 ऑन(ए,बी), ऑन(बी,सी), ऑन(सी,टेबल), ऑन(डी,ई), ऑन(ई,टेबल), ऑन(एफ,जी), ऑन(जी,टेबल)।

}

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

लक्ष्य{

 ऑन (ए, ई), ऑन (बी, टेबल), ऑन (सी, टेबल), ऑन (डी, सी), ऑन (ई, बी), ऑन (एफ, डी), ऑन (जी, टेबल)।

}

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

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

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

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

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

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

मुख्य मॉड्यूल{

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

}

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

क्रियाविशेषता{

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

}

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

इवेंट मॉड्यूल{

 कार्यक्रम{
 सभी के लिए bel( अवधारणा(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.
Notes

Literature on the notion of a लक्ष्य:

  • Lars Braubach, Alexander Pokahr, Daniel Moldt and Winfried Lamersdorf (2004). लक्ष्य 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 लक्ष्यs. 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). लक्ष्यs in Conflict: Semantic Foundations of लक्ष्यs in Agent Programming. International Journal of Autonomous Agents and Multi-Agent Systems.


बाहरी संबंध