हाइब्रिड कलन विधि

From Vigyanwiki

हाइब्रिड कलन विधि एक कलन विधि है जो दो या दो से अधिक अन्य कलन विधियो को जोड़ता है जो एक ही समस्या को हल करते हैं, या तो डेटा की कुछ विशेषताओं के आधार पर किसी एक को चुनते हैं, या कलन विधि के दौरान उनके बीच स्विच करते हैं। यह आम तौर पर प्रत्येक की वांछित विशेषताओं को संयोजित करने के लिए किया जाता है, ताकि समग्र कलन विधि व्यक्तिगत घटकों से बेहतर हो।

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

उदाहरण

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

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

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

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

हालाँकि, सामान्य तौर पर वितरित कलन विधि को हाइब्रिड कलन विधि होने की आवश्यकता नहीं है, क्योंकि व्यक्तिगत कलन विधि या संयोजन या संचार कलन विधि विभिन्न समस्याओं को हल कर सकते हैं। उदाहरण के लिए, MapReduce जैसे मॉडल में, मैप और रिड्यूस चरण अलग-अलग समस्याओं को हल करते हैं, और एक अलग, तीसरी समस्या को हल करने के लिए संयुक्त होते हैं।

यह भी देखें

श्रेणी:कलन विधि