एल्गोरिदम क्या पथ खोज रहे हैं? [बन्द है]


49

मैं पथ खोजने वाले एल्गोरिदम पर पढ़ना चाहूंगा। क्या इंटरनेट पर कोई प्राइमर या कोई सामग्री या ट्यूटोरियल उपलब्ध है जो मेरे लिए एक अच्छी शुरुआत होगी?


जवाबों:


34

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

मैं कुछ और अच्छी तरह से जानने वाली विधियों जैसे 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/

सौभाग्य!


2
ज्ञात समाधानों को अनुकूलित करने के लिए सीखने के लिए प्रोग्रामर के बारे में बिट के लिए +1। यह ऐसा कुछ है जो गेम-डेवलपर्स के लिए समझ में नहीं आता है।
इंजीनियर

22

Pathfinding एल्गोरिदम मूल रूप से एक ग्राफ खोज समस्या एल्गोरिदम को हल कर रहे हैं।

http://en.wikipedia.org/wiki/Pathfinding#Algorithms

जिकस्ट्रा की एल्गोरिथ्म के बारे में सबसे अधिक जानकारी: http://en.wikipedia.org/wiki/Dijkstra का_ एल्गोरिथम

और इसका वैरिएंट A * सर्च एल्गोरिदम: http://en.wikipedia.org/wiki/A*


2
अंतिम लिंक टूट गया है क्योंकि * इसके भाग के रूप में नहीं देखा गया है: en.wikipedia.org/wiki/A%2A
Hendrik Brummermann

Fixx0r3d दोनों लिंक
तेनपैन

सरल ग्राफ खोज एल्गोरिदम केवल पैथफाइंडिंग के लिए मूल बातें हैं।
मार्टिंकवुव

13

यह एक महान शुरुआत संसाधन है जो पथ के सभी पहलुओं पर एक नज़र रखता है जो बहुत ही आसान तरीके से पचता है।

पाथ-फाइंडिंग के बारे में अमित के नोट्स

... पाथफाइंडिंग शुरुआती बिंदु से लक्ष्य तक एक अच्छा रास्ता खोजने की समस्या को संबोधित करता है the बाधाओं से बचना, दुश्मनों से बचना और लागत (ईंधन, समय, दूरी, उपकरण, पैसा, आदि) को कम करना। आंदोलन एक रास्ता लेने और इसके साथ आगे बढ़ने की समस्या को संबोधित करता है। इनमें से केवल एक पर अपने प्रयासों को खर्च करना संभव है। एक चरम पर, एक परिष्कृत पाथफाइंडर एक तुच्छ आंदोलन एल्गोरिथ्म के साथ मिलकर ...


1
अमित के लिए +1। मैंने 10 साल पहले अपनी वेबसाइट से A * सीखा था।
तेनपैन

महान चित्र भी। उच्च गुणवत्ता।
बंदर

5

पाथफाइंडिंग एक बहुत ही सुलझी हुई समस्या है ... जैसा कि लगभग हर उत्तर में बताया गया है, ए * पर कुछ भिन्नता आपके द्वारा उपयोग की जाने वाली है।

मेरे लिए बड़ी चुनौती यह है कि आप अपने रास्ते का प्रतिनिधित्व कैसे करना चाहते हैं । ग्रिड, पैथोड्स, नवमेश, पदानुक्रमित ग्रिड या अन्य जटिल संरचनाओं आदि का उपयोग करना।

मेरे मन में कोई विशेष संदर्भ नहीं है, लेकिन AIGameDev की खोज आपको हर तरह के विचार देगी जो कि वहां है।

बस याद रखें कि प्रत्येक प्रतिनिधित्व के अपने पेशेवरों और विपक्ष हैं; यह 'सर्वश्रेष्ठ एक' खोजने के बारे में नहीं है, यह उस गेम को खोजने के बारे में है जो आपके गेमप्ले के लिए सबसे उपयुक्त है



4

वहाँ कई पथ खोजने एल्गोरिदम वहाँ से बाहर हैं।

सबसे लोकप्रिय लोगों में से एक शायद ए * ( ए-स्टार ) है। यह एक बहुत ही उपयोगी एल्गोरिथ्म है यदि आपके पास एक हेयुरिस्टिक फ़ंक्शन है जो आपको एक लक्ष्य तक पहुंचने के लिए अनुमानित लागत दे सकता है (उदाहरण लक्ष्य की लाइन-ऑफ़-विज़न दूरी होगी)। शुरू से अंत तक कम से कम रास्ता खोजने के लिए A * बहुत उपयोगी है।

इसके अलावा वहाँ भी दिज्क्स्ट्रा का एल्गोरिथ्म है जो कई वस्तुओं में से निकटतम आइटम को खोजने के लिए बहुत उपयोगी है। उदाहरण के लिए। यदि आप यह जानना चाहते हैं कि कौन सा पावर-अप (या समान) आपके गेमिंग चरित्र के सबसे करीब है।

वहाँ कई अन्य एल्गोरिदम हैं, लेकिन मुझे लगता है कि A * अब तक सबसे लोकप्रिय है। मैट बकलैंड ने अपनी पुस्तक प्रोग्रामिंग गेम एआई में पथ-खोज के बारे में एक उत्कृष्ट अध्याय प्रस्तुत किया है । मैं आपको इसकी प्रति प्राप्त करने के लिए दृढ़ता से प्रोत्साहित करता हूं। अन्यथा आपको "ए स्टार खोज" की खोज करके जानकारी का भार ऑनलाइन मिलेगा।


अरे मेरा। जब मैं इसे टाइप कर रहा था, तो एक ही जवाब एक गज़िलियन समय के बारे में दिया गया था। सॉरी :)
बुमज़ैक

बस ध्यान दिया गया है कि उल्लिखित पुस्तक Google-Books (हालांकि पूर्ण नहीं) पर भी है। इसे यहां पढ़ें: books.google.com/books?id=gDLpyWtFacYC
bummzack



2

यह प्राइमर का अधिक हिस्सा नहीं है, लेकिन हमने ग्राफ एल्गोरिदम पर हमारे एल्गोरिदम वर्ग में पिछले पतन 2009 में बड़े पैमाने पर चर्चा की। हमने इस पुस्तक का उपयोग किया है।

एल्गोरिदम का परिचय, थॉमस एच। कॉर्मेन, चार्ल्स ई। लिसेरसन, रोनाल्ड एल। रिवेस्ट और क्लिफ स्टीन द्वारा तीसरा संस्करण

http://mitpress.mit.edu/algorithms/

और इसमें MIT क्लास से youtube के लेक्चर भी हैं।

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/

अध्याय 17, 18 और 19 ने सबसे छोटे रास्तों को निपटाया।


2

विकिपीडिया 1 पर देखें [ग्राफ और ट्री सर्च एल्गोरिदम] । वे स्टेट स्पेस सर्च के बहुत भिन्न रूप हैं, आपको बस इन सभी को गर्त में जाना है और यह पता लगाना है कि वे कहां भिन्न हैं।

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


+1 सहयोगात्मक प्रसार पर वह दस्तावेज़ काफी दिलचस्प है।
इंजीनियर

1
मुझे लगता है कि लिंक टूट गया है। शायद यह सही है: scalablegamedesign.cs.colorado.edu/gamewiki/index.php/…
pek

-2

यह एक दिलचस्प लग रहा है:

http://www.codeproject.com/Articles/455 मुझे आश्चर्य है कि यह ए * से बेहतर है?


साइट पर आपका स्वागत है। आपके द्वारा दिया गया एक लिंक-केवल उत्तर के रूप में जाना जाता है, जिसे हतोत्साहित किया जाता है। अपने उत्तर में विधि के गुणों को संक्षेप में प्रस्तुत करना बेहतर होगा। इसके बाद आप तर्क दे सकते हैं कि क्या यह सरल A * से बेहतर है, बजाय इसके कि इसे पाठ में सुधारा जाए।
सेठ बत्तीन

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

मैं सिर्फ वही दोहरा रहा हूं जो सेठ ने कहा था। संक्षेप।
ग्रे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.