मुझे ए * कैसे उत्तर देना चाहिए?


10

मुझे एक पाथफाइंग बॉस दुश्मन मिला है जो A * एल्गोरिथम का उपयोग करके खिलाड़ी की तलाश करता है। यह एक बहुत ही जटिल वातावरण है, और मैं इसे फ्लैश में कर रहा हूं, इसलिए जब यह लंबी दूरी की खोज कर रहा है तो खोज थोड़ी धीमी हो सकती है। यदि खिलाड़ी स्थिर था, तो मैं बस एक बार खोज सकता था, लेकिन फिलहाल मैं हर फ्रेम को खोज रहा हूं। यह काफी लंबा समय लेती है कि मेरी फ्रैमरेट पीड़ित है।

इसका सामान्य हल क्या है? क्या पूरी खोज को फिर से परिभाषित किए बिना "उत्तर" ए * का एक तरीका है? क्या मुझे बस कम बार (हर आधे-आधे या दूसरे) खोज करनी चाहिए और स्वीकार करना चाहिए कि रास्ते में थोड़ी अशुद्धि होगी?

जवाबों:


13

आपको पूरे मार्ग को एक फ्रेम में खोजना नहीं है, मैंने इसे सर्च लूप पर एक सीमा देते हुए किया है, एआई इसके बाद जो थोड़ी जानकारी है उसका अनुसरण करना शुरू कर देगा, और अगले फ्रेम मैं कुछ और खोजूंगा , यह पथ मिलने तक 3 फ्रेम ले सकता है। यह काफी आश्वस्त लग सकता है, क्योंकि ऐसा लगता है कि एआई वास्तव में खोज रहा है।


+1। यह वही है जो मैट बकलैंड ने अपनी एआई पुस्तक में वर्णित किया है। वह इसे "टाइम स्लेस्ड पाथ प्लानिंग" ( Books.google.ch/… ) कहते हैं। अच्छी चीज़।
बंमज़ैक

8

आप एल्गोरिथ्म को चलाने के लिए निकटता का पता लगाने का उपयोग कर सकते हैं यदि दूरी बहुत महान है (क्योंकि ज्यादातर मामलों में यदि दूरी बड़ी है, तो लक्ष्य पथ न केवल फ्रेम-टू-फ्रेम से काफी बदल जाएगा)। उदाहरण के लिए:

      Distance > 100, run A* every 2 seconds
100 > Distance >  50, run A* every 1 second
50  > Distance >  25, run A* every 10 frames
25  > Distance <  25, run A* every frame

यह मान रहा है कि एक दूरी है जहां ए * हर फ्रेम में प्रदर्शन होता है जो अभी भी स्वीकार्य है। संक्षेप में, मैं आपके दूसरे विकल्प के लिए जाऊंगा। खासकर यदि आपके पास जो काम कर रहा है, मैं कुछ और को फिर से लागू करने से बचूंगा अगर मैं अभी वापस काम कर सकता हूं तो क्या अच्छा काम कर रहा है। लब्बोलुआब यह है कि आपको यह देखने की कोशिश करनी होगी कि क्या यह आपके खेल के लिए काम करता है।


8

वास्तव में आपके सटीक प्रश्न का उत्तर नहीं दे रहा है, लेकिन ... यदि आप "धोखा" देने के इच्छुक हैं, तो आप खिलाड़ी को "ब्रेडक्रंब" छोड़ सकते हैं और बॉस का अनुसरण कर सकते हैं। यदि ब्रेडक्रंब पथ खुद को पार करता है, तो सबसे हाल ही में एक का पालन करें (यह बॉस को छोरों और अन्य रास्तों से बचना चाहिए जो बहुत लंबा हो सकता है, खिलाड़ी के सटीक पथ का पालन नहीं करने का उल्लेख करना)

यह ठीक काम करेगा अगर बॉस गंध की अच्छी भावना के साथ किसी तरह का जानवर है। यह खिलाड़ी की खुशबू के बाद बहुत काम करेगा :)


5

आपका मामला बहुत ज्यादा है जिसे एचपीए * ने संबोधित करने के लिए आविष्कार किया था। यदि यह ओवरकिल जैसा लगता है, हालांकि, मुझे लगता है कि हर आधे सेकंड में पाथफाइंडिंग करना चाहिए या बहुत अच्छी तरह से काम करना चाहिए।


4

यदि यह एक स्थिर वातावरण है, तो आप सभी जोड़े को सबसे छोटे रास्ते पर अग्रसर कर सकते हैं।


2
यदि यह एक छोटा स्थिर वातावरण है।

उपलब्ध प्लेटफॉर्म और मेमोरी पर निर्भर करता है।
नट

@ जो, @ ना, सच।
पीटर टेलर

2

मैंने 48 गेम प्रतियोगिता के लिए एक गेम बनाया, जहां ए * चरित्र एक स्तर के आसपास के खिलाड़ी का अनुसरण करता है। क्योंकि मेरा A * कार्यान्वयन धीमा था (यह हर फ्रेम नहीं चला सकता था) मैंने अंतराल को तीन सेकंड की देरी पर रखा। यह कुछ क्षणों के लिए खिलाड़ी को AI को "ट्रिक" करने की अनुमति देने का अनपेक्षित परिणाम था। इसने वास्तव में खेल को और अधिक मजेदार बना दिया।

बाद में, मैंने ए * कार्यान्वयन के प्रदर्शन में सुधार किया और इसे हर फ्रेम पर चलाने की कोशिश की। खेल मजेदार हो रहा है क्योंकि दुश्मन हमेशा खिलाड़ी की तलाश करेगा।

यह अप्रत्याशित और सीखने का एक अच्छा अनुभव था।


1
ये एक अच्छा बिंदु है। मुझे याद है कि पीएसी-मैन में पथ खोजने के बारे में पढ़ना जहां उन्होंने जानबूझकर एक एल्गोरिथ्म का उपयोग किया, जिससे खिलाड़ी को भूतों को बाहर करने की अनुमति मिली। प्रत्येक भूत की थोड़ी अलग अपूर्णता थी जो उन्हें अधिक चरित्र प्रदान करता था। यहाँ ले जाना है कि खेल में, मज़ा> बाकी सब।
निक वान ब्रंट

0

जब तक आप ए * का उपयोग करना चाहते हैं (या आवश्यकता), आप स्टीयरिंग बिहेवियर पर एक नज़र भी डाल सकते हैं । चूंकि इसमें शामिल फ्रेम के प्रति पूर्ण पथ नियोजन नहीं है, यह प्रसंस्करण पर बहुत हल्का होना चाहिए।


मैं उन मामलों में स्टीयरिंग बिहेवियर (विशेष रूप से तलाश) का उपयोग करता हूं जहां एजेंट और उसके लक्ष्य के बीच कोई बाधा नहीं है। दुर्भाग्य से, मेरे वातावरण में गलियारे के गलियारे जैसी चीजें शामिल हैं, जहां एक बेहतर समाधान आवश्यक है।
ग्रेगरी एवरी-वियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.