1 (1) मेमोरी का क्या अर्थ है?


13

मेरे पास प्रोफेसर से इन-सीटू एल्गोरिथम की परिभाषा है, लेकिन मैं इसे नहीं समझता।

इन-सीटू एल्गोरिदम एल्गोरिदम को संदर्भित करता है जो 1 (1) मेमोरी के साथ संचालित होता है।

इसका क्या मतलब है?



4
"एक एल्गोरिथ्म को इन-सीटू एल्गोरिथ्म या इन-प्लेस एल्गोरिथम कहा जाता है, यदि एल्गोरिथ्म को निष्पादित करने के लिए आवश्यक अतिरिक्त मात्रा में मेमोरी O (1) है, अर्थात, [मेमोरी] एक स्थिर से अधिक नहीं है, चाहे कितना भी बड़ा हो इनपुट । उदाहरण के लिए, heapsort एक सीटू एल्गोरिथ्म में सीटू है। " en.wikipedia.org/wiki/In_situ#Computer_science
ऑबेरॉन

@Auberon, यह जोड़ा जाना चाहिए कि की तुलना में एक और आवश्यकता लगाता : कि कुल किसी विशेष मंगलाचरण में इस्तेमाल किया स्मृति नहीं है नीचे गिर एक निरंतर कोई इनपुट के आकार मायने रखते हैं। हे ( 1 )Θ(1)O(1)
ओलाथे

1
@ ओलाथे मैं अभी तक एक एल्गोरिथ्म देखने के लिए हूं जो शून्य से अधिक का उपयोग करता है, लेकिन किसी भी संसाधन की तुलना में कम है
एड्रिन एन

@adrianN, एईएस फ़ाइलों का एन्क्रिप्शन निरंतर ऊपरी सीमा के तहत रैम उपयोग के साथ किया जाता है। आप एक समय में एक ब्लॉक की प्रक्रिया करते हैं, प्रत्येक ब्लॉक को संसाधित करने के लिए समान मात्रा में रैम की आवश्यकता होती है, और रैम को एक ब्लॉक से अगले तक पुन: उपयोग किया जा सकता है। एक सरल उदाहरण एक ASCII- एन्कोडेड फ़ाइल के सभी अक्षरों को अपरकेस में बदलना है। आप किसी ब्लॉक में पढ़ सकते हैं, फ़ाइल के 4096 बाइट्स कह सकते हैं, प्रक्रिया कर सकते हैं कि 4096 बाइट्स, उस ब्लॉक के परिणाम लिखें, और अगले ब्लॉक के लिए उसी रैम का पुन: उपयोग करें।
ओलाथे

जवाबों:


13

सबसे पहले, चलो what अर्थ ।Θ(1)

बिग , और बिग , कार्यों के वर्ग हैं। वहाँ एक औपचारिक परिभाषा है यहाँ है, लेकिन इस सवाल के प्रयोजनों के लिए, हम कहते हैं कि एक समारोह में है हो, तो एक निरंतर जहां, सभी के लिए , । यही है, एक स्थिर फ़ंक्शन के रूप में तेजी से बढ़ता है।Θ हे ( 1 ) सी एक्स ( एक्स ) सी OΘfO(1)cxf(x)Cf

Big- निरंतर कार्यों के लिए बहुत मायने नहीं रखता है, क्योंकि एल्गोरिथ्म समय या अंतरिक्ष उपयोग का वर्णन करते समय, निरंतर से बहुत नीचे नहीं है। लेकिन यह समझाने के लिए कि इसका क्या अर्थ है, यदि कुछ स्थिरांक ऐसा है कि सभी , । यही है, कम से कम उतनी ही तेजी से बढ़ता है, और उतनी ही तेजी से, एक स्थिर कार्य के रूप में।Θ ( 1 ) , एक्स ( एक्स ) ΘfΘ(1)c,dxdf(x)cf

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

तो, अब हम अपनी दो अवधारणाओं को जोड़ते हैं। यदि कोई एल्गोरिथ्म मेमोरी का उपयोग करता है, तो इसका मेमोरी उपयोग फ़ंक्शन , जिसका अर्थ है कि कुछ ऐसा मौजूद है, किसी भी इनपुट के लिए, उपयोग की जाने वाली मेमोरी और बीच है ।Θ ( 1 ) डी , सी डी सीΘ(1)Θ(1)d,cdc

संक्षेप में, इसका मतलब है कि एल्गोरिथ्म का स्मृति उपयोग इनपुट की परवाह किए बिना कुछ निरंतर सीमा में है।

आमतौर पर, मेमोरी फ़ंक्शन एल्गोरिथ्म में इनपुट को स्टोर करने के लिए उपयोग की जाने वाली मेमोरी के लिए खाता नहीं है, क्योंकि अन्यथा मेमोरी का उपयोग हमेशा कम से कम ।Θ(n)


"प्रभावी रूप से इसके इनपुट पर निर्भर नहीं करता है।" - "प्रभावी रूप से" की किस परिभाषा के लिए?
राफेल

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

मुझे नहीं लगता कि " किसी भी इनपुट के लिए और बीच उपयोग की जाने वाली मेमोरी" की तुलना में एक बेहतर शब्द है । न ही किसी की जरूरत है। cdc
राफेल


8

एल्गोरिथ्म की लगातार अंतरिक्ष जटिलता

आपके एल्गोरिथ्म का उपयोग करने वाली मेमोरी की मात्रा इनपुट से स्वतंत्र है।

एक एल्गोरिथ्म में कहा जाता है कि यदि वह अंतरिक्ष की निश्चित मात्रा का उपयोग करता है तो उसके पास निरंतर अंतरिक्ष जटिलता है। यह चर या बिल्कुल तत्वों की एक सरणी हो सकती है ।१०1010

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

इन-सीटू एल्गोरिदम इनपुट द्वारा कब्जा किए गए स्थान पर विचार नहीं करते हैं और अंतरिक्ष जटिलता की गणना करते समय केवल अतिरिक्त स्थान को ध्यान में रखते हैं।


3
यह गलत है। उदाहरण के लिए, यह हो सकता है कि, एक विशेष एल्गोरिथ्म के लिए, तीन से कम वर्णों के इनपुट में 5 बाइट्स मेमोरी का उपयोग होता है, जबकि सभी बड़े इनपुट में एक मिलियन बाइट्स का उपयोग होता है। एल्गोरिथम का मेमोरी उपयोग निश्चित रूप से इनपुट से स्वतंत्र नहीं होगा, लेकिन यह निश्चित रूप से स्थान का उपयोग करेगा । कथन को ठीक करने के लिए, मेमोरी के उपयोग की निरंतर ऊपरी और निचली सीमाएं हैं जो इनपुट से स्वतंत्र हैं। Θ(1)
ओलाथे

@ ओलाथे अंतरिक्ष में प्रत्येक इनपुट द्वारा बाइट के संदर्भ में कब्जा कर लिया गया है और गिनती के संदर्भ में इनपुट की संख्या दो अलग-अलग अवधारणाएं नहीं हैं?
प्रीतेक

0

इसका मतलब है कि एल्गोरिथ्म के लिए आवश्यक अतिरिक्त मेमोरी राशि कुछ स्थिर राशि से अधिक नहीं है जो पर्याप्त रूप से बड़े इनपुट के लिए इनपुट आकार पर निर्भर नहीं करती है।


2
यह भी कुछ (शायद अन्य) स्थिर राशि से कम नहीं है , क्योंकि और का चौराहा है । एक अन्य उदाहरण के साथ, और जैसे कार्यों की अनुमति देता है । दूसरी ओर, अधिक सख्त है, केवल उसी जटिलता के कार्यों की अनुमति देता है जैसे लेकिन जैसी कम जटिलता वाले लोगों को अस्वीकार करना । हे Ω हे ( एक्स 2 ) ( एक्स ) = 3 एक्स 2( एक्स ) = एक्स Θ ( एक्स 2 ) ( एक्स ) = 3 एक्स 2( एक्स ) = एक्सΘOΩO(x2)f(x)=3x2 f(x)=xΘ(x2)f(x)=3x2f(x)=x
ओलाथे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.