मैं कुछ समय से डायनेमिक प्रोग्रामिंग पर काम कर रहा हूं। एक गतिशील प्रोग्रामिंग पुनरावृत्ति का मूल्यांकन करने के लिए विहित तरीका सभी आवश्यक मूल्यों की एक तालिका बनाकर और पंक्ति द्वारा पंक्ति को भरना है। उदाहरण के लिए Cormen, Leiserson et al: "परिचय के लिए एल्गोरिदम का परिचय" देखें ।
मैं दो आयामों (पंक्ति-दर-पंक्ति भरण) में तालिका-आधारित संगणना योजना पर ध्यान केंद्रित करता हूं और सेल निर्भरता की संरचना की जांच करता हूं, अर्थात किन कोशिकाओं को दूसरे की गणना करने से पहले किया जाना चाहिए। हम सेल सेल के सूचकांकों के सेट पर निर्भर करते हैं। ध्यान दें कि को चक्र-मुक्त होना आवश्यक है।
मैं उस वास्तविक फ़ंक्शन से सार करता हूं जो गणना की जाती है और इसकी पुनरावर्ती संरचना पर ध्यान केंद्रित करती है। औपचारिक रूप से, मैं एक पुनरावृत्ति को गतिशील प्रोग्रामिंग मानता हूं यदि इसका रूप है
साथ , और (कुछ संगणनीय ) फ़ंक्शन, जो अलावा अन्य का उपयोग नहीं करता है, जो कि \ n \ _ \ _ \ _ \ _ \ _ \ _ "@ गामा} _d ;
जब की खुरदरी जगहों (बाएँ, ऊपर-बाएँ, शीर्ष, शीर्ष-दाएँ, ... वर्तमान सेल के) की को प्रतिबंधित किया जाता है, तो यह देखा जाता है कि वैध रूप से तीन मामले (समरूपता और रोटेशन तक) हैं गतिशील प्रोग्रामिंग पुनरावर्ती जो यह बताती हैं कि तालिका कैसे भरी जा सकती है:
लाल क्षेत्रों को निरूपित (अतिव्यापी) । मामलों में से एक और दो सबसेट को रद्द कर देते हैं, केस तीन सबसे खराब स्थिति है (सूचकांक परिवर्तन तक)। ध्यान दें कि यह कड़ाई से आवश्यक नहीं है कि पूरे लाल क्षेत्रों को द्वारा कवर किया गया हो ; तालिका के प्रत्येक लाल भाग में कुछ कोशिकाएँ इसे लाल रंग देने के लिए पर्याप्त हैं। सफेद क्षेत्रों को किसी भी आवश्यक कोशिकाओं को शामिल नहीं करने के लिए जरूरी है।
मामले के उदाहरण एक हैं दूरी और सबसे लंबे समय तक सामान्य संपादित करने के बाद , केस दो बेलमैन और फोर्ड और CYK पर लागू होता है । कम स्पष्ट उदाहरणों में ऐसे शामिल हैं जो पंक्तियों (या स्तंभों) के बजाय विकर्णों पर काम करते हैं क्योंकि उन्हें प्रस्तावित मामलों को फिट करने के लिए घुमाया जा सकता है; उदाहरण के लिए जो का उत्तर देखें ।
मेरे पास केस थ्री के लिए कोई (प्राकृतिक) उदाहरण नहीं है, हालाँकि! तो मेरा सवाल है: मामले के तीन गतिशील प्रोग्रामिंग रिकर्स / समस्याओं के लिए उदाहरण क्या हैं?