/ / पुनरावर्तन और गतिशील प्रोग्रामिंग - एल्गोरिथ्म, पुनरावृत्ति, गतिशील-प्रोग्रामिंग

प्रत्यावर्तन और गतिशील प्रोग्रामिंग-एल्गोरिथ्म, प्रत्यावर्तन, गतिशील प्रोग्रामिंग

मुझे पता है कि डायनेमिक प्रोग्रामिंग का उपयोग करके हल किए जा सकने वाले हर प्रोग्राम को रिकर्सन का उपयोग करके हल किया जा सकता है, लेकिन क्या इसके विपरीत भी संभव है? यदि संभव है तो समय जटिलता अलग कैसे होगी?

उत्तर:

जवाब के लिए 2 № 1

क्या इसके विपरीत भी संभव है?

हाँ।

दूसरी ओर, यदि आप वास्तव में पूछने के लिए अर्थ थे:

क्या इसके विपरीत भी सत्य है?

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

समय जटिलता के बारे में प्रश्न का उत्तर नहीं दिया जा सकता है। यह हाथ में समस्या पर निर्भर करता है, और समस्या को हल करने में गतिशील प्रोग्रामिंग कैसे लागू होगी।


उत्तर № 2 के लिए -1

डायनामिक प्रोग्रामिंग एक समय-बनाम-जटिलता ट्रेडऑफ़ है। आप कुछ सूचनाओं को तालिकाओं में संग्रहित करते हैं, इसलिए यदि आपको फिर से वही काम करने की आवश्यकता है, तो आपको उन्हें पुनः स्थापित करने की आवश्यकता नहीं है।

यदि आपकी समस्या स्वाभाविक रूप से विघटित हो जाती हैsubproblems जो अक्सर दोहराते हैं फिर गतिशील प्रोग्रामिंग एक अच्छा विचार है। दूसरी ओर, यदि पुनरावर्ती उपप्रणालिकाएं नहीं हैं, तो गतिशील प्रोग्रामिंग का उपयोग करने का कोई मतलब नहीं है।