2012-04-16 13 views
5

क्या कोई पथदर्शी एल्गोरिदम भी वास्तविक 3 डी वातावरण के लिए अनुकूल है। कई सीढ़ियों आदि के साथ असली इमारतें। एक सी ++ लाइब्रेरी या खुले कार्यान्वयन शानदार होंगे ;-) मैंने जो समाधान देखा वह Djikstra था, लेकिन मुझे आश्चर्य है कि कुछ और इष्टतम है या नहीं। सामान्य ए * तब बेहतर काम नहीं करेगा जब जिलास्ट्रा दूरी से ह्युरिस्टिक अच्छी तरह से काम नहीं करता है (गंतव्य से ऊपर एक मंजिल की स्थिति)। एक और समाधान जिसे मैं वर्तमान में सोच रहा हूं वह 2 डी ग्राफ पर 3 डी वातावरण का मानचित्रण है। तो अगर कुछ उपलब्ध सी ++ कार्यान्वयन/पुस्तकालय इस तरह से जा रहा है तो यह भी सहायक होगा।वास्तविक 3 डी वातावरण में पथदर्शी (उदाहरण के लिए बिल्डिंग)

+1

जब तक आपके पास बहुत सी सीढ़ियां नहीं हैं, ए * वास्तव में अच्छी तरह से काम कर सकता है, विभिन्न स्तरों पर बिंदुओं के लिए आपके उत्थान के साथ निकटतम सीढ़ियों और ऊर्ध्वाधर दूरी तक दूरी की राशि है। – biziclop

+0

@biziclop: यह एक बहुत अच्छा विचार है और किसी भी ग्राफ परिवर्तन से कहीं अधिक सरल है। मैं इसे – Martin

+1

आज़माउंगा, मेरा मानना ​​है कि पथदर्शी विभाजन और जीतने के लिए अतिसंवेदनशील है। तो, आप 2 डी स्तरों पर ए * और डीजस्ट्रा के एल्गोरिदम को एक साथ बांधने का प्रयास कर सकते हैं। – comingstorm

उत्तर

2

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

सरल परिदृश्यों के लिए द्वारा क्लासिक पाठ्यपुस्तक देखें, तो आप शायद पथ नियोजन पहले व्यक्ति कंप्यूटर गेम में इस्तेमाल किया एल्गोरिदम, जो डिज्कस्ट्रा, ए * (example)

1

के समान एक सन्निकटन एल्गोरिथ्म के लिए कर रहे हैं के साथ क्या कर सकते हैं आप आसानी से 3 डी से 1 डी वक्र को मैप कर सकते हैं और ग्रे कोड के साथ एक ऑक्टेट को पार कर सकते हैं। इस तरह आप प्रत्येक पथ को फिर से व्यवस्थित कर सकते हैं। मुझे नहीं पता कि इष्टतम समाधान के भीतर होने की गारंटी है या नहीं, लेकिन यह किसी भी ह्युरिस्टिक विधि से बेहतर होना चाहिए।

+0

यह दिलचस्प लगता है लेकिन मुझे आपका विचार काफी नहीं मिलता है। हर पथ के लिए मूल स्पष्ट रूप से अलग है। तो क्या आप हर दौड़ के लिए पहले एक ऑक्टेट बनाने का प्रस्ताव देते हैं या मैं पेड़ के लिए एक सॉर्टिंग मानदंड कैसे बना सकता हूं? (मुझे यह मानना ​​है कि मैं octrees से बहुत परिचित नहीं हूं ...) – Martin

+0

आगे के बाद से मेरे पास प्रत्येक दिशा के लिए नोड्स नहीं हैं (केवल कुछ नोड्स के साथ एक हॉलवे की कल्पना करें) पेड़ काफी हद तक विचित्र होगा octrees के लिए यह समझदार – Martin

संबंधित मुद्दे