जब एल्गोरिदम के डिजाइन की बात आती है, तो एक अक्सर निम्नलिखित तकनीकों को नियुक्त करता है:
- गतिशील प्रोग्रामिंग
- लालची-रणनीति
- विभाजन और जीत
जबकि पहले दो तरीकों के लिए, अच्छी तरह से ज्ञात सैद्धांतिक नींव हैं, अर्थात् बेलमैन ऑप्टिमलिटी प्रिंसिपल और मैट्रोइड (रिस्पांस। ग्राईडॉइड) सिद्धांत, मुझे डी एंड सी पर आधारित एल्गोरिदम के लिए ऐसा सामान्य ढांचा नहीं मिला।
सबसे पहले, मुझे एक ऐसी चीज़ के बारे में पता है जिसे हमने (या बल्कि, प्रोफेसर) एक कार्यात्मक प्रोग्रामिंग वर्ग में पेश किया, जिसे "एल्गोरिथम कंकाल" कहा जाता है, जो कि कॉम्बिनेटरों के संदर्भ में उत्पन्न हुआ। इसके उदाहरण के रूप में, हमने डी एंड सी एल्गोरिदम के लिए इस तरह का एक कंकाल दिया:
परिभाषा : गैर-खाली सेट हो। हम समाधानों के तत्वों को कहते हैं , और के तत्वों (जो कि, के सबसेट ) को समस्याओं के रूप में संदर्भित किया जाता है । फिर, एक डी एंड सी-कंकाल एक 4-ट्यूपल , जहां:
- समस्याओं के समूह के ऊपर एक विधेय है और हम कहते हैं कि एक समस्या है बुनियादी iff आयोजित करता है।
- एक मानचित्रण जो प्रत्येक मूल समस्या का समाधान प्रदान करता है।
- एक मैपिंग जो प्रत्येक समस्या को उप-प्रकारों के सेट में विभाजित करता है।
- एक मैपिंग है जो समाधानों का उत्पादन करने के लिए उपप्रकारों के समाधान (एक "धुरी समस्या" के प्रकार के आधार पर मिलती है।
फिर, दिए गए कंकाल और एक समस्या , निम्न जेनेरिक फ़ंक्शन एक समाधान की गणना करता है (औपचारिक रूप में) भावना) :
जहाँ दूसरी पंक्ति में हम संकेतन उपयोग करते हैं में एक मैपिंग के कोडोमैन के सबसेट के लिए ।
हालांकि, हमने समस्याओं के अंतर्निहित, "संरचनात्मक" गुणों की आगे जांच नहीं की, जिन्हें इस तरह से तैयार किया जा सकता है (जैसा कि मैंने कहा, यह एक कार्यात्मक प्रोग्रामिंग वर्ग था और यह केवल एक छोटा उदाहरण था)। दुर्भाग्य से, मैं इस दृष्टिकोण पर आगे संदर्भ नहीं पा सका। इसलिए मुझे नहीं लगता कि उपरोक्त परिभाषाएं काफी मानक हैं। यदि कोई पहचानता है कि मैंने ऊपर क्या कहा है, तो मुझे संबंधित लेखों के बारे में खुशी होगी।
दूसरे, लालची रणनीति के लिए हमारे पास यह प्रसिद्ध परिणाम है कि सामान्य लालची एल्गोरिथ्म द्वारा एक समस्या को सही ढंग से हल किया जाता है अगर और केवल अगर इसका समाधान एक भारित परिपक्वता का गठन करता है। क्या डी एंड सी-एल्गोरिदम के लिए समान परिणाम हैं (जरूरी नहीं कि ऊपर उल्लिखित विधि के आधार पर)?