पुनरावृत्ति संबंधों में परिवर्तनशील चर


20

वर्तमान में, मैं एल्गोरिदम (CLRS) में इंट्रो का स्वयं अध्ययन कर रहा हूं और पुनरावृत्ति संबंधों को हल करने के लिए एक विशेष विधि है जिसे वे पुस्तक में रेखांकित करते हैं।

निम्न विधि को इस उदाहरण से स्पष्ट किया जा सकता है। मान लीजिए कि हमारे पास पुनरावृत्ति है

T(n)=2T(n)+logn

प्रारंभ में वे प्रतिस्थापन m = lg (n) बनाते हैं, और फिर इसे पुनरावृत्ति में प्लग करते हैं और प्राप्त करते हैं:

T(2m)=2T(2m2)+m

इस बिंदु तक मैं पूरी तरह से समझता हूं। यह अगला कदम वह है जो मुझे भ्रमित कर रहा है।

अब वे "का नाम बदलने" पुनरावृत्ति और जाने एस ( मीटर ) = टी ( 2 मीटर ) , जो जाहिरा तौर पर पैदा करता हैS(m)S(m)=T(2m)

S(m)=2S(m/2)+m

किसी कारण से यह मेरे लिए स्पष्ट नहीं है कि यह नामकरण क्यों काम करता है, और यह सिर्फ धोखा देने जैसा लगता है। क्या कोई इसे बेहतर समझा सकता है?

जवाबों:


15

यह निश्चित रूप से धोखा नहीं है। पथरी में सोचें कि एक पेचीदा अभिन्न को हल करने के लिए प्रतिस्थापन का उपयोग कैसे किया जा सकता है। प्रतिस्थापन, हेरफेर के लिए समीकरण को अधिक प्रबंधनीय बनाता है। इसके अतिरिक्त, प्रतिस्थापन कुछ जटिल पुनरावृत्ति को परिचितों में बदल सकता है।

आपके उदाहरण में ठीक यही हुआ है। हम एक नई पुनरावृत्ति को परिभाषित करते हैं । याद रखें कि टी ( 2 मीटर ) = 2 टी ( 2 मीटर)S(m)=T(2m)। ध्यान दें कि,S(m/2)=T(2m)T(2m)=2T(2m2)+m। इस खास बिंदु अभी स्पष्ट नहीं है, तो चलोकश्मीर=मीटर/2और नोटिस सब हम क्या कर रहे हैं यह हैएस(कश्मीर)=टी(2कश्मीर)। अब, हमइसे विस्तारित करकेS(m)को व्यक्त कर सकते हैं: S(m)=2S(m/2)+mएस केलिए हल करते हुएहम देखते हैं कि यह हमारे परिचित मित्र(एमलॉगएम) के लिए हैS(m/2)=T(2m2)k=m/2S(k)=T(2k)S(m)

S(m)=2S(m/2)+m.
S । अब जब हमने S को हल कर लिया है तो हम इसे T ( n ) के संदर्भ में व्यक्त करना चाहते हैं। ऐसा करने के लिए, केवल के लिए हमारे मूल मूल्य वापस प्लग मीटर और हमारे पास टी हे ( लॉग एन लॉग इन करें लॉग एन )O(mlogm)ST(n)mTO(lognloglogn)

ठीक है, मैं पूरी तरह से समझता हूं कि प्रतिस्थापन कैसे समस्याओं को आसान बनाने में मदद करता है और कैसे एन के संदर्भ में जटिलता प्राप्त करने के लिए मूल्यों को वापस प्लग करना है। मुझे लगता है कि मेरा प्रश्न है, S (m) = T (2 ^ m) को बताने के बाद, आप S (m / 2) को कैसे प्राप्त करेंगे? यह किसी कारण से मेरे लिए गैर-स्पष्ट है। अधिक विशिष्ट होने के लिए, आप यह कैसे निष्कर्ष निकालते हैं कि T (2 ^ (m / 2)) = S (m / 2)। ऐसा लगता है कि पुनरावृत्ति टी में, सबप्रॉब्लम का आकार चौकोर-रूट किया जा रहा है, जबकि पुनरावृत्ति एस में,

केवल एक हिस्सा मुझे समझ में नहीं आता है जब आप कहते हैं "नोटिस कि, एस (एम / 2) = टी (2 ^ (एम / 2))" यह एकमात्र हिस्सा है जो मेरे लिए गैर-स्पष्ट है। मुझे परिवर्तनशील प्रतिस्थापन बनाने के विचार के लिए उपयोग किया जाता है, लेकिन मैं वास्तव में संपूर्ण पुनरावृत्ति को प्रतिस्थापित करने के विचार के लिए अभ्यस्त नहीं हूं।

आह ठीक है, कि पिछले संपादित यह मेरे लिए किया था। यह अब स्पष्ट है, धन्यवाद!

1
मुझे थोड़ा शक हुआ। अगर मैं समारोह एस () के संदर्भ में लिख kरहा समीकरण एस (के) = 2S नीचे हो रही है (के / 2) + m मैं कैसे विकल्प प्राप्त कर सकते हैं mके लिएk
Atinesh

4

S(m)=T(2m)STm2m

S

  1. Sm2m

  2. T

इसलिए परिवर्तन हैं:

m2mT(2m)=S(m)
m22m/2T(2m/2)=S(m2).
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.