क्या टॉप-डाउन और बॉटम-अप डायनेमिक प्रोग्रामिंग में अंतर है?


33

क्या टॉप-डाउन और बॉटम-अप डायनामिक प्रोग्रामिंग में मूलभूत अंतर है?

विशेष रूप से, क्या कोई ऐसी समस्या है जिसका हल नीचे-ऊपर हो सकता है लेकिन ऊपर-नीचे नहीं? या नीचे-ऊपर का दृष्टिकोण ऊपर-नीचे के दृष्टिकोण में पुनरावृत्ति का सिर्फ एक संकेत नहीं है?

जवाबों:


27

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

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


4
  • टॉप-डाउन दृष्टिकोण: यह किसी भी समस्या के पुनरावर्ती सूत्रीकरण का प्रत्यक्ष पतन है। यदि किसी भी समस्या के समाधान को उसकी उप-समस्याओं के समाधान का उपयोग करके पुनरावर्ती रूप से तैयार किया जा सकता है, और यदि इसकी उप-समस्याएं अतिव्यापी हैं, तो कोई भी आसानी से किसी तालिका में उप-समस्याओं के समाधान को याद या संग्रहीत कर सकता है। जब भी हम एक नई उप-समस्या को हल करने का प्रयास करते हैं, तो हम पहले यह देखने के लिए तालिका की जांच करते हैं कि क्या यह पहले से ही हल है। यदि कोई समाधान रिकॉर्ड किया गया है, तो हम इसे सीधे उपयोग कर सकते हैं, अन्यथा हम उप-समस्या को हल करते हैं और इसके समाधान को तालिका में जोड़ते हैं।

  • बॉटम-अप अप्रोच: एक बार जब हम किसी समस्या के समाधान को अपनी उप-समस्याओं के अनुसार पुन: तैयार कर लेते हैं, तो हम समस्या का सुधार नीचे-नीचे की शैली में करने का प्रयास कर सकते हैं: पहले उप-समस्याओं को हल करने का प्रयास करें और उनके समाधानों का निर्माण करें- और बड़ी उप-समस्याओं के समाधान पर पहुंचें। यह भी आमतौर पर छोटे और उप-समस्याओं के समाधान का उपयोग करके बड़ी और बड़ी उप-समस्याओं के समाधान पैदा करने के द्वारा एक सारणीबद्ध रूप में किया जाता है। उदाहरण के लिए, यदि हम पहले से ही F41 और F40 के मूल्यों को जानते हैं, तो हम सीधे F42 के मूल्य की गणना कर सकते हैं।

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