क्या मैनहट्टन दूरी मोनोटोनिक है, जब हेयुरिस्टिक फ़ंक्शन के रूप में उपयोग किया जाता है?


25

मेरे पास एक वर्ग-आधारित नक्शा है। केवल क्षैतिज और ऊर्ध्वाधर आंदोलन की अनुमति है (कोई विकर्ण नहीं)। आंदोलन की लागत हमेशा 1 होती है।

मैं उस मानचित्र पर ए * एल्गोरिथ्म को लागू कर रहा हूं, मैनहट्टन दूरी को एक दूरी के अनुमान के रूप में उपयोग कर रहा हूं । क्या यह हेयुरिस्टिक सुसंगत है? क्या मैं उन g(node)नोड्स के खिलाफ जांच से बच सकता हूं जो क्लोज्ड सेट में हैं?

संपादित करें: संगत से मेरा मतलब है कि मोनोटोनिक।


1
यदि आपकी मूवमेंट की लागत हर टाइल पर समान है, तो आप A * को जंप पॉइंट सर्च से
Nick Caplinger

अरे, यह अच्छा है!
एमिलियानो

जवाबों:


10

वास्तव में आपके सवाल का जवाब देने के लिए: मैनहटन की दूरी लगातार होती है, जब आप एक अनिर्धारित ग्रिड के साथ लंबवत / क्षितिज पर बढ़ने के लिए विवश होते हैं (इसे विकिपीडिया पर परिभाषा द्वारा आसानी से दिखाया जा सकता है) । तो हां, आपके मामले में आप बंद सेट में नोड्स को रीचेक करने से बच सकते हैं।

हालांकि, एक बार जब आप विकर्ण या किसी भी कोण आंदोलन की अनुमति देते हैं, तो मैनहटन की दूरी अप्राप्य हो जाती है, क्योंकि यह विकर्ण लागत को कम कर देता है, जिसका अर्थ है कि यह सुसंगत नहीं है।


हां, यह ठीक उसी तरह का जवाब है जिसकी मुझे तलाश थी। यह जानना अच्छा होगा कि यदि हेयुरिस्टिक फ़ंक्शन होता है h(x) = min(manhattan(p1), manhattan(p2))(यानी या तो पी 1 या पी 2 अच्छा अंत बिंदु है और मैं निकटतम एक तक पहुंचना चाहता हूं)। क्या यह h(x)अभी भी एकरस है?
एमिलियानो

1
@happy_emi: हाँ, यदि h(x, p1)और h(x, p2)सुसंगत हैं, तो min(h(x,p1), h(x,p2))भी संगत होगा। यह विकिपीडिया पर परिभाषा से दिखाना आसान है (हमें यह दिखाने की आवश्यकता होगी कि min(h(x, p1), h(x, p2)) <= distance(x,y) + min(h(y, p1), h(y, p2))सभी नोड्स xऔर yउनके बीच एक किनारे के साथ। अब मान लें कि h(x, p1)यह न्यूनतम है; क्या आप यह दिखा सकते हैं कि यह निश्चित रूप <=से दाएं हाथ है, तथ्य का उपयोग करके; दोनों
आंकड़ें

31

हां, दो बिंदुओं के बीच मैनहट्टन की दूरी हमेशा समान होती है, जैसे उनके बीच की नियमित दूरी। आप मैनहट्टन की दूरी दो बिंदुओं के बीच चलने वाली रेखा के X और Y घटक होने के बारे में सोच सकते हैं।

यह चित्र ( विकिपीडिया से ) यह अच्छी तरह दिखाता है:

मैनहट्टन दूरी

हरे रंग की लाइन वास्तविक दूरी है।

नीले , लाल और पीले रंग की लाइनों सभी एक ही मैनहट्टन दूरी (12 इकाइयों) का प्रतिनिधित्व करते हैं। कोई फर्क नहीं पड़ता आंदोलनों की क्या संयोजन ऊपर और सही आप निचले-दाएं कोने निचले बाएं बिंदु से आकर्षित, आप एक ही कुल मैनहट्टन दूरी मिल जाएगा।


2
शानदार जवाब: छोटी, प्यारी, बात करने के लिए और एक सुंदर तस्वीर के साथ।
टॉम 'ब्लू' पिडॉक

1
यह उत्तर करीब है, लेकिन गलत है। यह छवि यह नहीं दिखाती है कि मैनहट्टन की दूरी सुसंगत है (वास्तव में, यदि आप ग्रीन लाइन को दूरी मानते हैं, तो यह सुसंगत नहीं है !) , और तर्क है कि उसे नोड्स को दोबारा जांचने की आवश्यकता नहीं है क्योंकि "मैनहट्टन के बीच की दूरी दो बिंदु हमेशा समान होते हैं " पकड़ नहीं है (कथन भी सच है h(x) = 1000, जो स्पष्ट रूप से सुसंगत नहीं है) । वह नोड्स को रीचेक करने से बच सकता है , लेकिन केवल इसलिए कि मैनहटन की दूरी सुसंगत है, जो यह उत्तर नहीं दिखाता है।
ब्लूराजा - डैनी पफ्लुगुएफ्ट

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

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

3
मुझे नहीं पता कि आप यह क्यों कहते हैं कि यह गलत है , आप इस उत्तर को अधूरा मानते हैं । आपके उत्तर में प्रमाण केवल उतना ही कमजोर प्रतीत होता है: "मैनहेटन की दूरी सुसंगत है ...", फिर आप प्रश्न के मूल विनिर्देशों को दोहराते हैं, यह देखते हुए कि यह कैसे गैर-स्वीकार्य होगा अगर परिदृश्य अलग थे । मुझे ऐसा महसूस नहीं हुआ कि उत्तर ने पूर्ण गणितीय प्रमाण दिया। यदि आपको लगता है कि इस प्रश्न की आवश्यकता है, तो कृपया इसे अपने उत्तर में शामिल करें और मैं इसे वोट करूंगा। रचनात्मक आलोचना के लिए धन्यवाद।
MichaelHouse

6

बाइट 56 के उत्तर के विस्तार में, मैं यह बताना चाहूंगा कि आपके विशिष्ट डेटा सेट में, मैनहट्टन डिस्टेंस का उपयोग आपके हेयुरिस्टिक फंक्शन के रूप में करना वास्तव में हमेशा इस अर्थ में एक पूर्ण अनुमानी होगा कि यह हमेशा वास्तविक पथ लागत लौटाएगा (यह मानते हुए कि कुछ भी नहीं "अवरुद्ध" पथ)।

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


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

@ BlueRaja-DannyPflughoeft: यह सच है, यह केवल एक विचार था जो बाइट 56 की छवि को देखते हुए है। फिर भी बाकी सब सच है।
थोरिल होल्म-जैकबसेन

4

मुझे यकीन नहीं है कि आप "हमेशा" सुसंगत से क्या मतलब है। क्या एक निश्चित ग्रिड पर मैनहट्टन की दूरी तय किए गए रास्ते से स्वतंत्र है? हां, जैसा कि बाइट 56 के जवाब में कहा गया है।

हालांकि, उदाहरण के लिए, मैनहट्टन की दूरी घूर्णन के तहत अपरिवर्तनीय नहीं है। जैसे, मूल और बिंदु के बीच मैनहट्टन की दूरी ( L1- मानदंड ) (10,10)है |10-0| + |10-0| = 20। हालाँकि, यदि आप अपने निर्देशांक को 45 डिग्री तक घुमाते हैं (तो अब आपका निश्चित बिंदु ग्रिड की दिशाओं में से एक के साथ है), तो आप पाएंगे कि अब वही बिंदु अब पर है (10sqrt(2),0), इसलिए मूल के मूल में मैनहट्टन की दूरी है 10sqrt(2)~14.14


इसे इंगित करने के लिए +1; OTOH, मैनहट्टन दूरी है 90 डिग्री के रोटेशन, जो वास्तव में केवल जो कि 'लगातार' एक असतत ग्रिड पर बनाया जा सकता है कर रहे हैं के तहत अपरिवर्तनीय।
स्टीवन स्टडनिक

1
अच्छी पकड़, हालांकि उन्होंने उल्लेख किया कि केवल क्षैतिज और ऊर्ध्वाधर आंदोलन की अनुमति है।
थोरिल होल्म-जैकबसेन

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