मास्टर प्रमेय (एल्गोरिदम का विश्लेषण)

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

इस प्रमेय के उपयोग से सभी पुनरावृत्ति संबंधों को समाधान नहीं किया जा सकता है; इसके सामान्यीकरण में अकरा-बाज़ी पद्धति सम्मिलित है।

परिचय
समस्या पर विचार करें जिसे पुनरावर्ती एल्गोरिथम का उपयोग करके समाधान किया जा सकता है जैसे कि निम्नलिखित: उपरोक्त कलन विधि समस्या को पुनरावर्ती रूप से कई उप-समस्याओं में विभाजित करता है, प्रत्येक उप-समस्या आकार $n/b$ की होती है. इसके समाधान के पेड़ में प्रत्येक पुनरावर्ती कॉल के लिए एक नोड होता है, उस नोड के बच्चे उस कॉल से किए गए अन्य कॉल होते हैं। पेड़ की पत्तियां पुनरावर्तन के आधार स्थिति हैं, उप-समस्याएं (के से कम आकार की) जो पुनरावर्तन नहीं करती हैं। उपरोक्त उदाहरण $a$ प्रत्येक गैर-पत्ती नोड पर चाइल्ड नोड होगा। प्रत्येक नोड काम की मात्रा करता है जो उप-समस्या $n$ के आकार के अनुरूप होता है। पुनरावर्ती कॉल के उस उदाहरण को पास किया गया और इसके $$f(n)$$ द्वारा दिया गया. संपूर्ण एल्गोरिथम द्वारा किए गए कार्य की कुल राशि ट्री में सभी नोड्स द्वारा किए गए कार्य का योग है।

एल्गोरिथम का रनटाइम जैसे आकार 'n' के इनपुट पर ऊपर 'p', सामान्यतः $$T(n)$$ द्वारा निरूपित किया जाता है, पुनरावृत्ति संबंध द्वारा व्यक्त किया जा सकता है
 * $$T(n) = a \; T\left(\frac{n}{b}\right) + f(n),$$

जहाँ $$ f(n)$$ उपरोक्त प्रक्रिया में उप-समस्याओं को बनाने और उनके परिणामों को संयोजित करने का समय है। किए गए कार्य की कुल राशि के लिए व्यंजक प्राप्त करने के लिए इस समीकरण को क्रमिक रूप से स्वयं में प्रतिस्थापित किया जा सकता है और विस्तारित किया जा सकता है। मास्टर प्रमेय इस रूप के कई पुनरावृत्ति संबंधों को पुनरावर्ती संबंध का विस्तार किए बिना सीधे बिग Θ-संकेतन में परिवर्तित करने की अनुमति देता है।

सामान्य रूप
मास्टर प्रमेय हमेशा विभाजित और जीत एल्गोरिदम से पुनरावृत्ति के लिए असम्बद्ध रूप से तंग सीमा उत्पन्न करता है जो इनपुट को समान आकार के छोटे उप-समस्याओं में विभाजित करता है, उप-समस्याओं को पुनरावर्ती रूप से समाधान करता है, और फिर मूल समस्या का समाधान देने के लिए उप-समस्या समाधानों को जोड़ता है। इस प्रकार के कलन विधि के लिए समय उस कार्य को जोड़कर व्यक्त किया जा सकता है जो वे अपने पुनरावर्तन के शीर्ष स्तर पर (समस्याओं को उप-समस्याओं में विभाजित करने के लिए और फिर उप-समस्याओं के समाधानों को संयोजित करने के लिए) एक साथ कलन विधि के पुनरावर्ती कॉल में किए गए समय के साथ करते हैं। यदि $$T(n)$$ आकार के इनपुट पर कलन विधि के लिए कुल समय $$n$$ को दर्शाता है, और $$f(n)$$ पुनरावृत्ति के शीर्ष स्तर पर लगने वाले समय की मात्रा को दर्शाता है तो समय को पुनरावृत्ति संबंध द्वारा व्यक्त किया जा सकता है जो रूप लेता है:
 * $$T(n) = a \; T\!\left(\frac{n}{b}\right) + f(n)$$

यहाँ $$n$$ एक इनपुट समस्या का आकार है, $$a$$ पुनरावर्तन में उपसमस्याओं की संख्या है, और $$b$$ वह कारक है जिसके द्वारा प्रत्येक पुनरावर्ती कॉल (b> 1) में उप-समस्या का आकार कम हो जाता है। महत्वपूर्ण रूप से, $$a$$ और $$b$$ पर $$n$$ निर्भर नहीं होना चाहिए. नीचे दिया गया प्रमेय यह भी मानता है कि, पुनरावृत्ति के आधार स्थिति के रूप में, $$T(n)=\Theta(1)$$ तब $$n$$ किसी $$\kappa > 0$$ सीमा से कम है, सबसे छोटा इनपुट आकार जो पुनरावर्ती कॉल की ओर ले जाएगा।

समस्या को विभाजित/पुन: संयोजित करने के कार्य के आधार पर, इस फ़ॉर्म की पुनरावृत्ति अधिकांश निम्नलिखित तीन शासनों में से एक को संतुष्ट करती है $$f(n)$$ महत्वपूर्ण घातांक $$c_{\operatorname{crit}}=\log_b a$$. (नीचे दी गई तालिका मानक बिग ओ नोटेशन का उपयोग करती है) से संबंधित है।


 * $$c_{\operatorname{crit}} = \log_b a = \log(\#\text{subproblems})/\log(\text{relative subproblem size})$$

स्थिति 2 का एक उपयोगी विस्तार सभी मानो $$k$$ को संभालता है:

पहला उदाहरण

 * $$T(n) = 8 T\left(\frac{n}{2}\right) + 1000n^2$$

जैसा कि उपरोक्त सूत्र से देखा जा सकता है:


 * $$a = 8, \, b = 2, \, f(n) = 1000n^2$$, इसलिए
 * $$f(n) = O\left(n^c\right)$$, जहाँ $$c = 2$$

अगला, हम देखते हैं कि क्या हम स्थिति 1 शर्त को पूरा करते हैं:
 * $$\log_b a = \log_2 8 = 3>c$$.

यह मास्टर प्रमेय के पहले स्थिति से अनुसरण करता है


 * $$T(n) = \Theta\left( n^{\log_b a} \right) = \Theta\left( n^{3} \right)$$

(इस परिणाम की पुष्टि पुनरावृत्ति संबंध के सटीक समाधान से होती है, जो $$T(n) = 1001 n^3 - 1000 n^2$$, मानते हुए $$T(1) = 1$$) है.

स्थिति 2 उदाहरण
$$T(n) = 2 T\left(\frac{n}{2}\right) + 10n$$

जैसा कि हम उपरोक्त सूत्र में देख सकते हैं कि चरों को निम्नलिखित मान मिलते हैं:


 * $$a = 2, \, b = 2, \, c = 1, \, f(n) = 10n$$
 * $$f(n) = \Theta\left(n^{c} \log^{k} n\right)$$ जहाँ $$c = 1, k = 0$$

अगला, हम देखते हैं कि क्या हम स्थिति 2 शर्त को पूरा करते हैं:
 * $$\log_b a = \log_2 2 = 1$$, और इसलिए, c और $$\log_b a$$ बराबर हैं

तो यह मास्टर प्रमेय के दूसरे स्थिति से आता है:


 * $$T(n) = \Theta\left( n^{\log_b a} \log^{k+1} n\right) = \Theta\left( n^{1} \log^{1} n\right) = \Theta\left(n \log n\right)$$ इस प्रकार दिया गया पुनरावृत्ति संबंध $$T(n)$$ में $$\Theta(n \log n)$$ था.

(इस परिणाम की पुष्टि पुनरावृत्ति संबंध के सटीक समाधान से होती है, जो $$T(n) = n + 10 n\log_2 n$$, मानते हुए $$T(1) = 1$$) है.

स्थिति 3 उदाहरण

 * $$T(n) = 2 T\left(\frac{n}{2}\right) + n^2$$

जैसा कि हम उपरोक्त सूत्र में देख सकते हैं कि चरों को निम्नलिखित मान मिलते हैं:


 * $$a = 2, \, b = 2, \, f(n) = n^2$$
 * $$f(n) = \Omega\left(n^c\right)$$, जहाँ $$c = 2$$

अगला, हम देखते हैं कि क्या हम स्थिति 3 शर्त को पूरा करते हैं:
 * $$\log_b a = \log_2 2 = 1$$, और इसलिए, हाँ, $$c > \log_b a$$

नियमितता की स्थिति भी रखती है:


 * $$ 2 \left(\frac{n^2}{4}\right) \le k n^2 $$, चुनना $$ k = 1/2 $$

तो यह मास्टर प्रमेय के तीसरे स्थिति से आता है:


 * $$T \left(n \right) = \Theta\left(f(n)\right) = \Theta \left(n^2 \right).$$

इस प्रकार दिया गया पुनरावृत्ति संबंध $$T(n)$$ में था $$\Theta(n^2)$$, जो इसका $$f(n)$$ मूल सूत्र का अनुपालन करता है।

(इस परिणाम की पुष्टि पुनरावृत्ति संबंध के सटीक समाधान से होती है, जो $$T(n) = 2 n^2 - n$$, मानते हुए $$T(1) = 1$$.) है.

अस्वीकार्य समीकरण
मास्टर प्रमेय का उपयोग करके निम्नलिखित समीकरणों को समाधान नहीं किया जा सकता है:
 * $$T(n) = 2^nT\left (\frac{n}{2}\right )+n^n$$
 * a स्थिरांक नहीं है; उप-समस्याओं की संख्या निश्चित की जानी चाहिए
 * $$T(n) = 2T\left (\frac{n}{2}\right )+\frac{n}{\log n}$$
 * के बीच गैर-बहुपद अंतर $$f(n)$$ और $$n^{\log_b a}$$ (नीचे देखें; विस्तारित संस्करण प्रायुक्त होता है)
 * $$T(n) = 0.5T\left (\frac{n}{2}\right )+n$$
 * $$ a<1 $$ एक से कम उप समस्या नहीं हो सकती
 * $$T(n) = 64T\left (\frac{n}{8}\right )-n^2\log n$$
 * $$f(n)$$, जो संयोजन समय सकारात्मक नहीं है
 * $$T(n) = T\left (\frac{n}{2}\right )+n(2-\cos n)$$
 * स्थिति 3 लेकिन नियमितता का उल्लंघन।

उपरोक्त दूसरे अस्वीकार्य उदाहरण में, के बीच का अंतर $$f(n)$$ और $$n^{\log_b a}$$ अनुपात में व्यक्त किया जा सकता है $$\frac{f(n)}{n^{\log_b a}} = \frac{n / \log n}{n^{\log_2 2}} = \frac{n}{n \log n} = \frac{1}{\log n}$$. यह स्पष्ट है कि $$\frac{1}{\log n} < n^\epsilon$$ किसी स्थिरांक के लिए $$\epsilon > 0$$. इसलिए, अंतर बहुपद नहीं है और मास्टर प्रमेय का मूल रूप प्रायुक्त नहीं होता है। विस्तारित रूप (स्थिति 2बी) समाधान $$T(n) = \Theta(n\log\log n)$$ देते हुए प्रायुक्त होता है.

यह भी देखें

 * एकरा–बाजी विधि
 * स्पर्शोन्मुख जटिलता

संदर्भ

 * Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw–Hill, 2001. ISBN 0-262-03293-7. Sections 4.3 (The master method) and 4.4 (Proof of the master theorem), pp. 73–90.
 * Michael T. Goodrich and Roberto Tamassia. Algorithm Design: Foundation, Analysis, and Internet Examples. Wiley, 2002. ISBN 0-471-38365-1. The master theorem (including the version of Case 2 included here, which is stronger than the one from CLRS) is on pp. 268–270.