2010-09-04 22 views
19

मैं एक बिडरेक्शनल ए * खोज को कार्यान्वित कर रहा हूं (खोज में बिडरेक्शनल एक साथ मूल और गंतव्य दोनों से किया जाता है, और जब ये दो खोज मिलती हैं, तो मेरा सबसे छोटा होगा पथ - कम से कम अतिरिक्त तर्क के साथ फेंक दिया)।बिडरेक्शनल ए * (ए-स्टार) खोज

क्या किसी को एक unidirectional ए * और bidirectionalising (!) लेने के साथ कोई अनुभव है - मैं किस तरह के प्रदर्शन लाभ की उम्मीद कर सकते हैं? मैं कम से कम खोज समय को कम से कम कम करके मानता हूं - लेकिन क्या मुझे यह बड़ा लाभ दिखाई दे सकता है? मैं सड़क नेटवर्क पर सबसे कम मार्ग निर्धारित करने के लिए एल्गोरिदम का उपयोग कर रहा हूं - यदि यह किसी भी तरह से प्रासंगिक है (मैंने एमएस के "पहुंच" एल्गोरिदम के बारे में पढ़ा है, लेकिन सीधे इसमें कूदने के बजाए इसके प्रति शिशु कदम उठाना चाहते हैं)।

+0

नोट - प्रश्न शीर्षक खोज को आसान बनाने के लिए शब्द-रूप में ए * को दोहराता है। –

+1

एफवाईआई: यहां ए * (ए-स्टार) पर एमएस पेपर का एक लिंक है: http://www.avglab.com/andrew/pub/alenex06.pdf – shindigo

उत्तर

8

सर्वोत्तम संभव मामले में यह हे में चला था (ख^(एन/2)) के बजाय हे (ख^n) में, लेकिन केवल तभी, आप भाग्यशाली हैं :) है

(जहां ख क्या आपका ब्रांचिंग कारक है और एन नोड्स की संख्या एक यूनिडायरेक्शनल ए * पर विचार करेगा)

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

+1

धन्यवाद माइकल - कुछ अतिरिक्त शोध से पता चला है कि मैं 'भाग्यशाली होने की संभावना नहीं है - बिडरेक्शनल ए * एक ही नोड पर अभिसरण दोनों दिशाओं की बात आती है जब यह काफी अजीब है। मैं इसे जाने दे सकता हूं, या अधिक संभावना पहुंचने में कुछ समय निवेश करेगी। –

+0

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

1

आप डब्ल्यू http://sourceforge.net/projects/tway/ वहाँ एक बेंच मार्किंग स्क्रिप्ट है कि मानक astar के साथ इस की तुलना करता है की कोशिश करने चींटी

1

को लागू किया है (NY शहर की सड़कों डेटा के लिए यह एक 30% समय लाभ देने के लिए लगता है) 3 अलग द्विदिश एक * खोज algos (cskit देखें) ।

एक्शन में एल्गोरिदम देखने के लिए, परियोजना रूट प्रकार mvn exec:java (मेवेन की आवश्यकता है) से। शुभकामनाएँ!

(संपादित:। This library प्रदान करता है 3 अलग द्विदिश ए * एल्गोरिदम तीनों इष्टतम हैं।)

0

आप के रूप में ज्यादा और अधिक कुशल बूस्टर क्लस्टरिंग विचार कर सकते हैं। this article

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