|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| assignment.md | ||
README.md
बहु-एजेण्ट प्रणालीहरू
बुद्धिमत्तालाई प्राप्त गर्ने संभावित तरिकाहरू मध्ये एक हो यति भनिने आपत्कालीक (वा समन्वयात्मक) दृष्टिकोण, जुन यस तथ्यमा आधारित छ कि धेरै सरल एजेन्टहरूको संयुक्त व्यवहारले प्रणालीको समग्र बढी जटिल (वा बुद्धिमान) व्यवहार निम्त्याउन सक्छ। सैद्धान्तिक रूपमा, यो सामूहिक बुद्धिमत्ता, आपत्कालीकता र विकासात्मक साइबरनेटिक्स का सिद्धान्तहरूमा आधारित छ, जुन भन्छन् उच्च-स्तरका प्रणालीहरूले उचितरीत्या निम्न-स्तरका प्रणालीहरूबाट संयोजन हुँदा कुनै थप मूल्य प्राप्त गर्छन् (यति भनिने मेटासिस्टम संक्रमणको सिद्धान्त)।
पाठ अघि क्विज
बहु-एजेण्ट प्रणालीहरू को दिशा १९९० दशकमा इन्टरनेट र वितरित प्रणालीहरूको वृद्धिलाई प्रतिक्रिया स्वरूप एआईमा उभिएको हो। एक स्वीकृत एआई पुस्तक, Artificial Intelligence: A Modern Approach, बहु-एजेण्ट प्रणालीहरूको दृष्टिकोणबाट परम्परागत एआईलाई हेर्छ।
बहु-एजेण्ट दृष्टिकोणको केन्द्रीय अवधारणा हो एजेण्ट — त्यो इकाई जुन कुनै परिवेशमा बस्छ, जसलाई यो बुझ्न र कार्य गर्न सक्छ। यो एक धेरै व्यापक परिभाषा हो, र एजेन्टहरूको धेरै प्रकार र वर्गीकरणहरू हुन सक्छन्:
- तिनीहरूको तर्क क्षमताको आधारमा:
- प्रतिक्रियाशील एजेन्टहरूले साधारण अनुरोध-प्रतिक्रिया प्रकारको व्यवहार प्रदर्शन गर्छन्
- परिकलनात्मक एजेन्टहरूले कुनै न कुनै तर्कसंगत योजना निर्माण र/वा तर्क क्षमताहरू प्रयोग गर्छन्
- एजेन्टले कोड कहाँ कार्यान्वयन गर्छ भन्ने आधारमा:
- स्थिर एजेन्टले समर्पित नेटवर्क नोडमा कार्य गर्छ
- गतिशील एजेन्टहरूले आफ्नो कोड नेटवर्क नोडहरूको बीच सार्न सक्छन्
- तिनीहरूको व्यवहारको आधारमा:
- निष्क्रिय एजेन्ट हरू सटीक लक्ष्य राख्दैनन्। यस्ता एजेन्टहरूले बाह्य उत्तेजनामा प्रतिक्रिया दिन सक्छन्, तर आफ्नै पहलमा कुनै कार्य शुरू गर्दैनन्।
- सक्रिय एजेन्ट हरू केहि लक्ष्यहरू पछ्याउँछन्
- संज्ञानात्मक एजेन्ट हरू जटिल योजना र तर्कमा संलग्न हुन्छन्
बहु-एजेण्ट प्रणालीहरू आजकाल विभिन्न अनुप्रयोगहरूमा प्रयोग हुन्छन्:
- खेलहरूमा, धेरै गैर-खेलाडी पात्रहरूले केहि प्रकारको एआई प्रयोग गर्छन्, र तिनीहरूलाई बुद्धिमान एजेन्ट मान्न सकिन्छ
- भिडियो उत्पादनमा, भीड समावेश गर्ने जटिल 3D दृश्यहरूको रेंडरिंग सामान्यतया बहु-एजेण्ट अनुकरण प्रयोग गरेर गरिन्छ
- प्रणाली मोडलिंगमा, बहु-एजेण्ट दृष्टिकोणले जटिल मोडलको व्यवहार अनुकरण गर्न प्रयोग हुन्छ। उदाहरणका लागि, बहु-एजेण्ट दृष्टिकोणले विश्वव्यापी रूपमा COVID-19 रोगको फैलावट भविष्यवाणी गर्न सफलतापूर्वक प्रयोग गरिएको छ। समान दृष्टिकोणले सहरको ट्राफिक मोडेल गर्न र ट्राफिक नियमहरूमा परिवर्तनहरूलाई कसरी प्रतिक्रिया गर्छ भनेर हेर्न प्रयोग गर्न सकिन्छ।
- जटिल स्वचालन प्रणालीहरूमा, प्रत्येक उपकरणले स्वतन्त्र एजेन्टको रूपमा कार्य गर्न सक्छ, जसले पूरै प्रणालीलाई कम एकिकृत र बढी मजबूत बनाउँछ।
हामी बहु-एजेण्ट प्रणालीहरूमा धेरै समय खर्च गर्नेछैनौं, तर एक उदाहरणको रूपमा बहु-एजेण्ट मोडलिंग मा विचार गर्नेछौं।
NetLogo
NetLogo एक बहु-एजेण्ट मोडलिंग वातावरण हो जुन Logo प्रोग्रामिङ भाषाको संशोधित संस्करणमा आधारित छ। यस भाषालाई बच्चाहरूलाई प्रोग्रामिङ अवधारणाहरू सिकाउन विकसित गरिएको थियो, र यसले तुम्हें कछुवा नामक एक एजेन्टलाई नियन्त्रण गर्न दिन्छ, जसले हिँड्न सक्छ र पछि पथ छोड्छ। यसले जटिल ज्यामिति आकृतिहरू बनाउन अनुमति दिन्छ, जुन एजेन्टको व्यवहार बुझ्ने धेरै दृश्यात्मक तरिका हो।
NetLogo मा, हामी create-turtles आदेश प्रयोग गरेर धेरै कछुवाहरू बनाउन सक्छौं। त्यसपछि हामी सबै कछुवालाई केही कार्यहरू गर्न आदेश दिन सक्छौं (तलको उदाहरणमा - १० पोइन्ट अघि बढ्ने):
create-turtles 10
ask turtles [
forward 10
]
पक्कै पनि, सबै कछुवाहरूले एउटै कुरा गर्दा यो रोचक हुँदैन, त्यसैले हामी ask कमाण्ड प्रयोग गरी निश्चित ठाउँ नजिक रहेका कछुवाहरूलाई आदेश दिन सक्छौं। हामी breed [cats cat] आदेश प्रयोग गरेर फरक-फरक जातहरू का कछुवाहरू पनि बनाउन सक्छौं। यहाँ cat जातको नाम हो, र हामीले एउटा एकवचन र एउटा बहुवचन शब्द दुवै दिनुपर्छ किनभने विभिन्न आदेशहरूले स्पष्टताको लागि फरक रूपहरू प्रयोग गर्छन्।
✅ हामी NetLogo भाषा आफैं सिक्नमा गहिराइमा जानेछैनौं - यदि तपाईं थप सिक्न इच्छुक हुनुहुन्छ भने तपाईं उत्कृष्ट शुरुआती अन्तरक्रियात्मक NetLogo शब्दकोश स्रोतमा जान सक्नुहुन्छ।
तपाईं NetLogo डाउनलोड गरी स्थापना गरेर प्रयास गर्न सक्नुहुन्छ।
मोडेल पुस्तकालय
NetLogo को एउटा राम्रो कुरा वा मोडेलहरूको पुस्तकालय हुनु हो, जुन तपाईंले प्रयास गर्न सक्नुहुन्छ। जानुहोस् File → Models Library, र तपाईंलाई धेरै मोडेलको श्रेणीहरू उपलब्ध हुनेछ।
मोडेल पुस्तकालयको स्क्रीनशट Dmitry Soshnikov द्वारा
तपाईं एउटा मोडेल खोल्न सक्नुहुन्छ, उदाहरणका लागि Biology → Flocking।
मुख्य सिद्धान्तहरू
मोडेल खोलिसकेपछि तपाईं मुख्य NetLogo स्क्रिनमा पुग्नुहुन्छ। यहाँ एउटा नमूना मोडेल छ जसले भेडा र ब्वाँसोको जनसंख्या वर्णन गर्छ, सीमित स्रोतहरू (घाँस) सँग।
स्क्रीनशट Дмитry Soshnikov द्वारा
यो स्क्रिनमा, तपाईंले देख्नुहुन्छ:
- इन्टरफेस भाग जसमा समावेश छ:
- मुख्य क्षेत्र जहाँ सबै एजेन्टहरू बस्छन्
- विभिन्न नियन्त्रणहरू: बटनहरू, स्लाइडरहरू, आदि
- ग्राफहरू जुन तपाईंले सिमुलेशनका प्यारामिटरहरू प्रदर्शन गर्न प्रयोग गर्न सक्नुहुन्छ
- कोड ट्याब जहाँ सम्पादक हुन्छ, जसमा तपाईं NetLogo प्रोग्राम टाइप गर्न सक्नुहुन्छ
अधिकांश अवस्थामा, इन्टरफेसमा एउटा Setup बटन हुन्छ, जसले सिमुलेशन स्थिति प्रारम्भ गर्दछ, र एउटा Go बटन हुन्छ जसले कार्यान्वयन सुरु गर्दछ। ती कोडमा निम्न प्रकारका हैंडलरहरूले ब्यवस्थित हुन्छन्:
to go [
...
]
NetLogo को संसारमा निम्न वस्तुहरू छन्:
- एजेन्टहरू (कछुवाहरू) जो क्षेत्रभरि हिँड्न र केही गर्न सक्छन्। तपाईंले एजेन्टहरूलाई
ask turtles [...]संरचना प्रयोग गरी आदेश दिनुहुन्छ, र ब्र्याकेटभित्रको कोड सबै एजेन्टहरूले कछुवा मोड मा चलाउँछन्। - प्याचहरू क्षेत्रका वर्गाकार भागहरू हुन्, जहाँ एजेन्टहरू बस्छन्। तपाईंले एउटै प्याचमा रहेका सबै एजेन्टहरूलाई संकेत गर्न सक्नुहुन्छ, वा प्याचका रंग र अन्य गुणहरू परिवर्तन गर्न सक्नुहुन्छ। तपाईंले
ask patchesगरेर केहि गर्न पनि सक्नुहुन्छ। - अवलोकक एक अनूठा एजेन्ट हो जसले संसार नियन्त्रण गर्छ। सबै बटन हैंडलरहरू अवलोकक मोड मा चलाइन्छ।
✅ बहु-एजेण्ट वातावरणको सुन्दरताले के देखाउँछ भने कछुवा मोड वा प्याच मोडमा चल्ने कोड सबै एजेन्टहरूले समानान्तर रूपमा एकै समयमा चलाउँछन्। यसैले, थोरै कोड लेखेर र व्यक्तिगत एजेन्टको व्यवहार प्रोग्राम गरेर, तपाईंले सम्पूर्ण सिमुलेशन प्रणालीको जटिल व्यवहार सिर्जना गर्न सक्नुहुन्छ।
झुण्डी (Flocking)
बहु-एजेण्ट व्यवहारको उदाहरणको रूपमा, हामी झुण्डी लाई विचार गरौं। झुण्डी जटिल नमुना हो जुन चराहरूको झुण्ड कसरी उड्छ जस्तै देखिन्छ। तिनीहरूलाई हेर्दा तपाईंले सोच्न सक्नुहुन्छ कि तिनीहरूले कुनै सामूहिक अल्गोरिदम पालन गर्छन्, अथवा तिनीहरूमा कुनै प्रकारको सामूहिक बुद्धिमत्ता छ। यद्यपि, यो जटिल व्यवहार तब उत्पन्न हुन्छ जब प्रत्येक व्यक्तिगत एजेन्ट (यस अवस्थामा, एउटा चरा) ले आफू वरिपरिका केही एजेन्टहरूलाई छोटो दूरीमा मात्रै नियाल्दछ, र तीन साधारण नियमहरू पालन गर्दछ:
- समानता - यो छिमेकी एजेन्टहरूको औसत दिशातर्फ मोडिन्छ
- समष्टि - यो छिमेकीहरूको औसत स्थानतर्फ मोडिन प्रयास गर्छ (दीर्घ दूरी आकर्षण)
- विभाजन - जब अरू चराहरू निकै नजिक आउँछन्, यो टाढा जान प्रयास गर्छ (छोटो दूरी प्रतिरोध)
तपाईं झुण्डी उदाहरण चलाएर व्यवहार अनुगमन गर्न सक्नुहुन्छ। तपाईंले विभाजनको डिग्री वा हेर्ने दायरा जस्ता प्यारामिटरहरू पनि समायोजन गर्न सक्नुहुन्छ, जुन परिभाषित गर्छ कि प्रत्येक चराले कति टाढासम्म हेर्न सक्छ। हेर्नुहोस् यदि तपाईं हेर्ने दायरा 0 गराउनु भयो भने सबै चराहरू अन्धा हुन्छन् र झुण्डी रोकिन्छ। यदि विभाजन 0 गरियो भने सबै चराहरू सिधा लाइनमा जम्मा हुन्छन्।
✅ कोड ट्याबमा सर्नुहोस् र कसरी झुण्डीका तीन नियमहरू (समानता, समष्टि र विभाजन) कोडमा कार्यान्वयन गरिएको छ हेर्नुहोस्। नोट गर्नुहोस् कि हामी केवल ती एजेन्टहरूलाई मात्र संकेत गर्छौं जुन दृष्टिमा छन्।
हेर्न अरू मोडेलहरू
अझ केही रोचक मोडेलहरू छन् जसमा तपाईं प्रयोग गर्न सक्नुहुन्छ:
- कला → आतिशबाजी कसरी आतिशबाजीलाई व्यक्तिगत आगोका धाराहरूको सामूहिक व्यवहार मान्न सकिन्छ देखाउँछ
- सामाजिक विज्ञान → ट्राफिक बेसिक र सामाजिक विज्ञान → ट्राफिक ग्रिड सहर ट्राफिकको 1D र 2D ग्रिड मोडेल ट्राफिक बत्ती सहित वा बिना देखाउँछन्। सिमुलेशनमा प्रत्येक कारले तलका नियमहरू पालना गर्छ:
- यदि अगाडि ठाउँ खाली छ भने - छिटो चल (निर्दिष्ट अधिकतम गतिसम्म)
- यदि अगाडि बाधा देख्छ भने - ब्रेक (र तपाईं चालकले कति टाढासम्म देख्न सक्छ समायोजन गर्न सक्नुहुन्छ)
- सामाजिक विज्ञान → पार्टी कसरी मानिसहरू ककटेल पार्टीमा समूहबद्ध हुन्छन् देखाउँछ। तपाईंले समूहको खुशी सबैभन्दा छिटो वृद्धि हुने प्यारामिटर संयोजन पत्ता लगाउन सक्नुहुन्छ।
यी उदाहरणहरूबाट तपाईंले देख्न सक्नुहुन्छ कि बहु-एजेण्ट सिमुलेशनहरू जटिल प्रणालीको व्यवहार बुझ्न धेरै उपयोगी हुन सक्छन्, जहाँ व्यक्तिहरू समान वा समानतर तर्क पालना गर्छन्। यो भर्चुअल एजेन्टहरू, जस्तै कम्प्युटर खेलहरूमा NPCs वा 3D एनिमेटेड संसारका एजेन्टहरूलाई नियन्त्रण गर्न पनि प्रयोग गर्न सकिन्छ।
परिकलनात्मक एजेन्टहरू
माथि वर्णन गरिएका एजेन्टहरू धेरै सरल छन्, जो परिवेशमा भएका परिवर्तनहरूमा केहि प्रकारका एल्गोरिदम प्रयोग गरी प्रतिक्रिया जनाउँछन्। ती प्रतिक्रियाशील एजेन्ट हुन्। तर कहिलेकाहीं एजेन्टहरूले तर्क गरेर योजना बनाउन सक्छन्, जसलाई परिकलनात्मक भनिन्छ।
एक सामान्य उदाहरण हो व्यक्तिगत एजेन्ट जुन मानिसबाट छुट्टै यात्रा आरक्षण गर्न निर्देशन प्राप्त गर्छ। सोच्नुहोस् इन्टरनेटमा धेरै एजेन्टहरू छन्, जसले यसलाई मद्दत गर्न सक्छन्। त्यसपछि यसले अन्य एजेन्टहरूसँग सम्पर्क गरी कुन उडानहरू उपलब्ध छ, विभिन्न मितिहरूमा होटल मूल्य कति छ, र उत्तम मूल्यको लागि सम्झौता गर्न प्रयास गर्नुपर्छ। जब यात्रा योजना पूर्ण र मालिकले पुष्टि गरे पछि, यो आरक्षण गर्न अघि बढ्छ।
त्यसका लागि एजेन्टहरूले संचार गर्नुपर्छ। सफल सञ्चारका लागि तिनीहरूलाई चाहिन्छ:
- ज्ञान आदानप्रदान गर्न केहि मानक भाषाहरू, जस्तै Knowledge Interchange Format (KIF) र Knowledge Query and Manipulation Language (KQML)। ती भाषाहरू Speech Act theory आधारमा डिजाइन गरिएका छन्।
- ती भाषाहरूमा भिन्न निलामी प्रकारहरू आधारित केही सम्झौताका प्रोटोकलहरू पनि समावेश हुनुपर्छ।
- एउटै अवधारणा उपयोग गर्न साझा ओन्टोलोजी, जसले तिनीहरूले समान अर्थ बुझ्न सकोस्
- भिन्न एजेन्टहरूले के गर्न सक्छन् पत्ता लगाउने तरीका, जुन केहि प्रकारको ओन्टोलोजीमा आधारित हुन्छ
परिकलनात्मक एजेन्टहरू प्रतिक्रियाशीलहरू भन्दा निकै जटिल हुन्छन्, किनभने तिनीहरूले परिवेशका परिवर्तनमा मात्र प्रतिक्रिया गर्दैनन्, तिनीहरूले क्रियाकलाप सुरु गर्न पनि सक्षम हुनुपर्छ। परिकलनात्मक एजेन्टहरूको प्रस्तावित वास्तुकलामा यति भनिने विश्वास-इच्छा-उद्देश्य (BDI) एजेन्ट सामेल छ:
- विश्वासहरू एजेन्टको परिवेशबारे ज्ञानको सेट बनाउँछन्। यो एउटा ज्ञान आधार वा प्रणाली जसमा कुनै एजेन्टले वातावरणको विशिष्ट स्थितिमा नियमहरू लागू गर्छ।
- इच्छाहरू एजेन्टले के गर्न चाहन्छ भनेर निर्धारण गर्छ, अर्थात् तिनीका लक्ष्यहरू। उदाहरणका लागि, माथिको व्यक्तिगत सहायक एजेन्टको लक्ष्य यात्रा आरक्षण गर्नु हो, र होटल एजेन्टको लक्ष्य नाफा अधिकतम गर्नु हो।
- उद्देश्यहरू लक्ष्य प्राप्ति गर्न एजेन्टले योजना बनाएका विशिष्ट कार्यहरू हुन्। तिनीहरूले सामान्यतया परिवेश परिवर्तन गर्छन् र अन्य एजेन्टहरूसँग सञ्चार गर्छन्।
बहु-एजेण्ट प्रणाली बनाउन केहि प्लेटफर्महरू उपलब्ध छन्, जस्तै JADE. यो कागज मा बहु-एजेण्ट प्लेटफर्महरूको समीक्षा छ, साथै बहु-एजेण्ट प्रणालीहरूको छोटो इतिहास र तिनीहरूको विभिन्न प्रयोग अवस्थाहरू।
निष्कर्ष
बहु-एजेण्ट प्रणालीहरूले विभिन्न स्वरूप लिन सक्छन् र धेरै फरक-फरक अनुप्रयोगहरूमा प्रयोग गर्न सकिन्छ। तिनीहरूले सबैले व्यक्तिगत एजेन्टको सरल व्यवहारमा ध्यान केन्द्रित गर्छन्, र समन्वयात्मक प्रभाव का कारण समग्र प्रणालीले बढी जटिल व्यवहार प्राप्त गर्छ।
🚀 चुनौती
यस पाठलाई वास्तविक संसारमा लगेर एउटा बहु-एजेण्ट प्रणाली कन्सेप्चुअलाइज गर्न प्रयास गर्नुहोस् जसले कुनै समस्या समाधान गर्न सक्छ। उदाहरणका लागि, विद्यालय बस मार्ग अनुकूलन गर्न एउटा बहु-एजेण्ट प्रणालीले के गर्नुपर्छ? एउटा बेकरीमा यो कसरी काम गर्न सक्छ?
पाठ पछि क्विज
पुनरावलोकन र आत्म-अध्ययन
औद्योगिक क्षेत्रमा यस प्रकारको प्रणालीको प्रयोग पुनरावलोकन गर्नुहोस्। निर्माण वा भिडियो खेल उद्योगजस्ता कुनै क्षेत्र छान्नुहोस् र बहु-एजेण्ट प्रणालीहरूले अनौठा समस्याहरू कसरी समाधान गर्न प्रयोग गर्न सकिन्छ पत्ता लगाउनुहोस्।
NetLogo असाइनमेंट
अस्वीकरण: यो दस्तावेज़ AI अनुवाद सेवा Co-op Translator प्रयोग गरेर अनुवाद गरिएको हो। हामी सही हुन प्रयास गर्छौं, तर कृपया जानकार हुनुस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छन्। मूल दस्तावेज़ यसको मूल भाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीका लागि व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि गलत बुझाइ वा त्रुटिको लागि हामी जिम्मेवार छैनौं।
