जवाबों:
यदि आप सामान्य रूप से पाथफाइंडिंग के बारे में शोध करना और सीखना चाहते हैं, तो मैं निश्चित रूप से केवल एक एल्गोरिथ्म से अधिक सीखने का सुझाव दूंगा। आप समग्र अवधारणाओं को समझना चाहते हैं, लेकिन जिस पर भी आप काम कर रहे हैं, उन्हें लागू कर सकते हैं। अधिकांश गेम डेवलपर्स जिन्हें किसी भी गंभीर पाथफाइंडिंग को करने की आवश्यकता होती है, वे अपने स्वयं के कस्टम एल्गोरिदम लिखना चाहते हैं, हालांकि अत्यधिक ज्ञात समाधानों के आधार पर, हर गेम अलग है और अलग-अलग आवश्यकताएं होंगी।
मैं कुछ और अच्छी तरह से जानने वाली विधियों जैसे A *, दिज्क्स्ट्रा के एल्गोरिथ्म, गहराई और चौड़ाई-प्रथम खोजों पर पढ़कर शुरू करूँगा। इनमें से प्रत्येक पर इंटरनेट पर बहुत सारी अच्छी जानकारी है। ( http://en.wikipedia.org/wiki/Pathfinding )
उन्हें पढ़ते समय, इस बात पर ध्यान दें कि प्रत्येक दृष्टिकोण के लिए अपसाइड और डाउनसाइड क्या हैं, साथ ही एल्गोरिदम किस प्रकार के डेटा पर काम कर सकता है। क्या इसे 3-आयामी पथों पर लागू किया जा सकता है? क्या यह हमारे मानव एआई के लिए संशोधित किया जा सकता है जो नक्शे में बारूदी सुरंगों से बचना चाहते हैं?
जब यह पाथफाइंडिंग की बात आती है, तो A * बहुत ही सुनहरा टिकट है जिसका उपयोग हर कोई करता है। आपको निश्चित रूप से पता होना चाहिए कि यह कैसे काम करता है। ( http://en.wikipedia.org/wiki/A*_search_algorithm )
यहां ए * का एक अच्छा उदाहरण है क्योंकि यह एक आरटीएस गेम पर लागू होता है, जिसे अलग-अलग आकार की संस्थाओं को ध्यान में रखना होगा: http://aigamedev.com/open/tutorials/clearance-based-pathfinding/
सौभाग्य!
Pathfinding एल्गोरिदम मूल रूप से एक ग्राफ खोज समस्या एल्गोरिदम को हल कर रहे हैं।
http://en.wikipedia.org/wiki/Pathfinding#Algorithms
जिकस्ट्रा की एल्गोरिथ्म के बारे में सबसे अधिक जानकारी: http://en.wikipedia.org/wiki/Dijkstra का_ एल्गोरिथम
और इसका वैरिएंट A * सर्च एल्गोरिदम: http://en.wikipedia.org/wiki/A*
यह एक महान शुरुआत संसाधन है जो पथ के सभी पहलुओं पर एक नज़र रखता है जो बहुत ही आसान तरीके से पचता है।
पाथ-फाइंडिंग के बारे में अमित के नोट्स
... पाथफाइंडिंग शुरुआती बिंदु से लक्ष्य तक एक अच्छा रास्ता खोजने की समस्या को संबोधित करता है the बाधाओं से बचना, दुश्मनों से बचना और लागत (ईंधन, समय, दूरी, उपकरण, पैसा, आदि) को कम करना। आंदोलन एक रास्ता लेने और इसके साथ आगे बढ़ने की समस्या को संबोधित करता है। इनमें से केवल एक पर अपने प्रयासों को खर्च करना संभव है। एक चरम पर, एक परिष्कृत पाथफाइंडर एक तुच्छ आंदोलन एल्गोरिथ्म के साथ मिलकर ...
पाथफाइंडिंग एक बहुत ही सुलझी हुई समस्या है ... जैसा कि लगभग हर उत्तर में बताया गया है, ए * पर कुछ भिन्नता आपके द्वारा उपयोग की जाने वाली है।
मेरे लिए बड़ी चुनौती यह है कि आप अपने रास्ते का प्रतिनिधित्व कैसे करना चाहते हैं । ग्रिड, पैथोड्स, नवमेश, पदानुक्रमित ग्रिड या अन्य जटिल संरचनाओं आदि का उपयोग करना।
मेरे मन में कोई विशेष संदर्भ नहीं है, लेकिन AIGameDev की खोज आपको हर तरह के विचार देगी जो कि वहां है।
बस याद रखें कि प्रत्येक प्रतिनिधित्व के अपने पेशेवरों और विपक्ष हैं; यह 'सर्वश्रेष्ठ एक' खोजने के बारे में नहीं है, यह उस गेम को खोजने के बारे में है जो आपके गेमप्ले के लिए सबसे उपयुक्त है ।
विकिपीडिया: पाथफाइंडिंग पर एक अच्छी सूची है
जहाँ तक मुझे पता है, ए * और डी * दोनों बहुत लोकप्रिय हैं।
वहाँ कई पथ खोजने एल्गोरिदम वहाँ से बाहर हैं।
सबसे लोकप्रिय लोगों में से एक शायद ए * ( ए-स्टार ) है। यह एक बहुत ही उपयोगी एल्गोरिथ्म है यदि आपके पास एक हेयुरिस्टिक फ़ंक्शन है जो आपको एक लक्ष्य तक पहुंचने के लिए अनुमानित लागत दे सकता है (उदाहरण लक्ष्य की लाइन-ऑफ़-विज़न दूरी होगी)। शुरू से अंत तक कम से कम रास्ता खोजने के लिए A * बहुत उपयोगी है।
इसके अलावा वहाँ भी दिज्क्स्ट्रा का एल्गोरिथ्म है जो कई वस्तुओं में से निकटतम आइटम को खोजने के लिए बहुत उपयोगी है। उदाहरण के लिए। यदि आप यह जानना चाहते हैं कि कौन सा पावर-अप (या समान) आपके गेमिंग चरित्र के सबसे करीब है।
वहाँ कई अन्य एल्गोरिदम हैं, लेकिन मुझे लगता है कि A * अब तक सबसे लोकप्रिय है। मैट बकलैंड ने अपनी पुस्तक प्रोग्रामिंग गेम एआई में पथ-खोज के बारे में एक उत्कृष्ट अध्याय प्रस्तुत किया है । मैं आपको इसकी प्रति प्राप्त करने के लिए दृढ़ता से प्रोत्साहित करता हूं। अन्यथा आपको "ए स्टार खोज" की खोज करके जानकारी का भार ऑनलाइन मिलेगा।
यहां पाथफाइंडिंग के लिए डायजेक्स्ट्रा के एल्गोरिथ्म का उपयोग करने पर एक ट्यूटोरियल है ।
यहाँ ए का एक अच्छा उदाहरण कुछ psuedo कोड के साथ एक खेल में इस्तेमाल किया जा रहा है: http://www.anotherearlymorning.com/2009/02/pathfinding-with-a-star/
यह प्राइमर का अधिक हिस्सा नहीं है, लेकिन हमने ग्राफ एल्गोरिदम पर हमारे एल्गोरिदम वर्ग में पिछले पतन 2009 में बड़े पैमाने पर चर्चा की। हमने इस पुस्तक का उपयोग किया है।
एल्गोरिदम का परिचय, थॉमस एच। कॉर्मेन, चार्ल्स ई। लिसेरसन, रोनाल्ड एल। रिवेस्ट और क्लिफ स्टीन द्वारा तीसरा संस्करण
http://mitpress.mit.edu/algorithms/
और इसमें MIT क्लास से youtube के लेक्चर भी हैं।
अध्याय 17, 18 और 19 ने सबसे छोटे रास्तों को निपटाया।
विकिपीडिया 1 पर देखें [ग्राफ और ट्री सर्च एल्गोरिदम] । वे स्टेट स्पेस सर्च के बहुत भिन्न रूप हैं, आपको बस इन सभी को गर्त में जाना है और यह पता लगाना है कि वे कहां भिन्न हैं।
इसमें कोलैबोरेटिव डिफ्यूजन भी है , जो कि पहले बताए गए एल्गोरिदम में से एक है जो दिलचस्प तरीके से किया गया है।
यह एक दिलचस्प लग रहा है:
http://www.codeproject.com/Articles/455 मुझे आश्चर्य है कि यह ए * से बेहतर है?