का बिंदु क्या है मुझे समझ में नहीं आता कि IDA*
मेमोरी स्पेस कैसे बचाता है। मैं कैसे समझता हूं IDA*
A*
पुनरावृत्ति गहराई के साथ है।आईडीए * बनाम ए * एल्गोरिदम
A*
मेमोरी की मात्रा के बीच क्या अंतर है IDA*
बनाम उपयोग करता है।
IDA*
का अंतिम पुनरावृत्ति A*
जैसा व्यवहार नहीं करेगा और उसी मात्रा में स्मृति का उपयोग करें। जब मैं IDA*
का पता लगाता हूं तो मुझे एहसास होता है कि इसे f(n)
थ्रेसहोल्ड से नीचे नोड्स की प्राथमिकता कतार याद रखना होगा।
मैं समझता हूं कि आईडी-गहराई पहली खोज गहराई से पहले खोज की तरह मदद करती है, जबकि प्रत्येक नोड को याद रखने के दौरान इसे खोज की तरह पहली बार चौड़ाई करने की अनुमति मिलती है। लेकिन मैंने सोचा कि A*
पहले से ही गहराई की तरह व्यवहार करता है क्योंकि इसमें कुछ उप-पेड़ों को नजरअंदाज कर दिया जाता है। Iteratively गहराई से यह कैसे कम स्मृति का उपयोग करता है?
एक और सवाल यह है कि गहराई से पुनरावृत्ति गहराई के साथ पहली खोज आपको सबसे पहले पथ की तरह बनाकर सबसे कम पथ खोजने की अनुमति देती है। लेकिन A*
पहले से ही सबसे छोटा रास्ता देता है (दिया गया है कि हेरिस्टिक स्वीकार्य है)। पुनरावृत्ति गहराई कैसे मदद करता है। मुझे लगता है कि आईडीए * का अंतिम पुनरावृत्ति A*
के समान है।
लेकिन नहीं आईडीए * अभी भी नोड्स यह यात्रा करने के लिए के बाद से यह अभी भी backtracks का इरादा रखता है स्टोर करने के लिए की जरूरत है, और जब उलटे पांव लौटने से, इसे खोजने के लिए करना चाहता है अगले नीचे जाने के लिए सबसे अच्छा रास्ता। ए * को नोड्स स्टोर करने की जरूरत है, आईडीए * ए * जैसा नहीं है लेकिन आप एक निश्चित एफ (एन) के बाद रुकते हैं और फिर से शुरू करते हैं? क्या आप कह रहे हैं कि आईडीए * हेरिस्टिक के अलावा आईडीडीएफएस है।जैसा कि सीमा के नीचे के सभी नोडों में समान रूप से व्यवहार किया जाता है और नोड के बच्चों का दौरा करना विशेष रूप से तब तक नहीं होता जब तक कि सभी बच्चों का एफ (एन) सीमा से नीचे न हो? – tcui222
प्रत्येक नोड 'आईडीए *' विज़िट में पहले से ही अपने पड़ोसी नोड्स का संदर्भ होता है, इसलिए जब आपके पास अपने कॉल स्टैक (उपरोक्त चित्र में पीला) में यह नोड होता है, तो आप उन्हें पुन: सक्रिय कर सकते हैं। –
मेरे संपादन को दोबारा पढ़ें। –