चूंकि एक उपयुक्त लक्ष्य-स्थिति को निर्दिष्ट करना कई स्थितियों में अच्छी तरह से मुश्किल हो सकता है, 2 डी ऑक्यूपेंसी ग्रिड-मैप्स पर आधारित निम्नलिखित दृष्टिकोण विचार करने योग्य हो सकता है। इसे आमतौर पर "मूल्य पुनरावृत्ति" के रूप में संदर्भित किया जाता है, और ढाल-वंश / चढ़ाई के साथ जोड़ा जाता है, यह एक सरल और काफी कुशल (कार्यान्वयन के आधार पर) पथ-नियोजन एल्गोरिदम देता है। इसकी सादगी के कारण, यह मोबाइल रोबोटिक्स में विशेष रूप से जाना जाता है, विशेष रूप से इनडोर वातावरण में "सरल रोबोट" के लिए। जैसा कि ऊपर उल्लेख किया गया है, यह दृष्टिकोण एक लक्ष्य-स्थिति को स्पष्ट रूप से निर्दिष्ट किए बिना प्रारंभ-स्थिति से दूर का रास्ता खोजने का साधन प्रदान करता है। ध्यान दें कि यदि उपलब्ध हो तो लक्ष्य-स्थिति वैकल्पिक रूप से निर्दिष्ट की जा सकती है। इसके अलावा, दृष्टिकोण / एल्गोरिथ्म एक चौड़ाई-पहली खोज का गठन करता है,
बाइनरी केस में, 2 डी ऑक्यूपेंसी ग्रिड-मैप एक जगह पर मौजूद ग्रिड-सेल और शून्य के लिए है। ध्यान दें कि यह अधिभोग-मूल्य सीमा [0,1] में भी निरंतर हो सकता है, मैं इसे नीचे ले जाऊंगा। किसी दिए गए ग्रिड-सेल g i का मूल्य V (g i ) है ।
मूल संस्करण
- यह मानते हुए कि ग्रिड-सेल जी 0 में स्टार्ट-पोजिशन है। V (g 0 ) = 0 सेट करें , और G 0 को एक FIFO- कतार में रखें।
- कतार से अगला ग्रिड-सेल g i लें ।
- सभी पड़ोसियों के लिए जी जे के जी मैं :
- यदि जी जे पर कब्जा नहीं किया गया है और पहले नहीं देखा गया है:
- V (g j ) = V (g i ) +1
- मार्क जी जे का दौरा किया।
- जोड़े जी जे फीफो-कतार में।
- यदि दी गई दूरी-सीमा अभी तक नहीं पहुंची है, तो (2.) जारी रखें, अन्यथा जारी रखें (5.)।
- रास्ता जी 0 से शुरू होने वाले सबसे बड़े ढाल-चढ़ाई के बाद प्राप्त किया जाता है ।
चरण 4 पर नोट्स।
- जैसा कि ऊपर दिया गया है, चरण (4.) को अधिकतम दूरी को कवर करने की आवश्यकता है, जिसे स्पष्टता / संक्षिप्तता के कारणों के लिए उपरोक्त विवरण में छोड़ दिया गया है।
- यदि लक्ष्य-स्थिति दी गई है, तो लक्ष्य-स्थिति तक पहुँचते ही पुनरावृत्ति रोक दी जाती है, अर्थात चरण (3.) के भाग के रूप में संसाधित / दौरा किया जाता है।
- यह, निश्चित रूप से, पूरे ग्रिड-मैप को संसाधित करने के लिए भी संभव है, अर्थात जारी रखने के लिए जब तक कि सभी (मुक्त) ग्रिड-कोशिकाओं को संसाधित या विज़िट नहीं किया गया हो। सीमित कारक स्पष्ट रूप से इसके रिज़ॉल्यूशन के साथ ग्रिड-मैप के आकार का है।
एक्सटेंशन और आगे की टिप्पणियाँ
अद्यतन-समीकरण V (g j ) = V (g i ) +1 में डाउन-स्केलिंग V (g j ) द्वारा सभी प्रकार के अतिरिक्त उत्तराधिकार को लागू करने के लिए बहुत जगह है।या निश्चित पथ-विकल्पों के लिए मूल्य को कम करने के लिए योज्य घटक। अधिकांश, यदि सभी नहीं, तो इस तरह के संशोधनों को [0,1] से निरंतर मूल्यों के साथ ग्रिड-मैप का उपयोग करके अच्छी तरह से और उदारतापूर्वक शामिल किया जा सकता है, जो प्रभावी रूप से प्रारंभिक, बाइनरी ग्रिड-मैप के पूर्व-प्रसंस्करण कदम का गठन करता है। उदाहरण के लिए, बाधा सीमाओं के साथ 1 से 0 तक संक्रमण को जोड़ने से, "अभिनेता" को बाधाओं के अधिमानतः साफ रहने का कारण बनता है। इस तरह के ग्रिड-मैप, उदाहरण के लिए, धुंधला, भारित फैलाव, या इसी तरह से द्विआधारी संस्करण से उत्पन्न हो सकते हैं। बड़े धुंधले त्रिज्या के साथ खतरों और दुश्मनों को जोड़ना, इन के करीब आने वाले रास्तों को दंडित करता है। कोई इस तरह समग्र ग्रिड-मानचित्र पर एक प्रसार-प्रक्रिया का उपयोग कर सकता है:
V (g j ) = (1 / (N + 1)) × [V (g j ) + योग (V (g i ))]
जहां " सम " का तात्पर्य सभी पड़ोसी ग्रिड-कोशिकाओं से अधिक राशि से है। उदाहरण के लिए, एक बाइनरी मैप बनाने के बजाय, प्रारंभिक (पूर्णांक) मान खतरों की परिमाण के लिए आनुपातिक हो सकते हैं, और बाधाएं "छोटे" खतरों को पेश करती हैं। प्रसार-प्रक्रिया को लागू करने के बाद, ग्रिड-मानों को [0,1] तक बढ़ाया जाना चाहिए, और बाधाओं, खतरों और दुश्मनों द्वारा कब्जा की गई कोशिकाओं को सेट / मजबूर करना चाहिए। अन्यथा अद्यतन-समीकरण में स्केलिंग हो सकती है इच्छानुसार काम नहीं।
इस सामान्य योजना / दृष्टिकोण पर कई विविधताएँ हैं। बाधाओं आदि में छोटे मान हो सकते हैं, जबकि मुक्त ग्रिड-कोशिकाओं में बड़े मूल्य होते हैं, जिन्हें उद्देश्य के आधार पर अंतिम चरण में ढाल-वंश की आवश्यकता हो सकती है। किसी भी मामले में, दृष्टिकोण, IMHO, आश्चर्यजनक रूप से बहुमुखी, लागू करने के लिए काफी आसान है, और संभावित रूप से तेज (ग्रिड-मैप-आकार / संकल्प के अधीन) है। अंत में, कई पथ-नियोजन एल्गोरिदम के साथ, जो एक विशिष्ट लक्ष्य-स्थिति को नहीं मानते हैं, मृत-सिरों में फंसने का स्पष्ट जोखिम है। कुछ हद तक, इस जोखिम को कम करने के लिए अंतिम चरण से पहले समर्पित पोस्ट-प्रोसेसिंग चरणों को लागू करना संभव हो सकता है।
यहाँ जावा-स्क्रिप्ट (?) में चित्रण के साथ एक और संक्षिप्त विवरण दिया गया है, हालाँकि चित्रण मेरे ब्राउज़र के साथ काम नहीं करता है :(
http://www.cs.ubc.ca/~poole/demos/mdp/vi.html
योजना पर अधिक विवरण निम्न पुस्तक में पाया जा सकता है। मूल्य पुनरावृत्ति विशेष रूप से अध्याय 2, खंड 2.3.1 इष्टतम निश्चित-लंबाई योजनाओं में चर्चा की गई है।
http://planning.cs.uiuc.edu/
आशा है कि मदद करता है, तरह का संबंध है, डेरिक।