बड़े इनपुट आकार कठिन उदाहरण क्यों देते हैं?


12

नीचे, मान लें कि हम एक अनंत-टेप ट्यूरिंग मशीन के साथ काम कर रहे हैं।

जब किसी को समय जटिलता की धारणा समझाते हुए, और इसे उदाहरण के इनपुट आकार के सापेक्ष क्यों मापा जाता है, तो मैं निम्नलिखित दावे को पार कर गया:

[..] उदाहरण के लिए, यह स्वाभाविक है कि आपको दो पूर्णांकों को १००००० बिट्स से गुणा करने के लिए और कदमों की आवश्यकता होगी, कहना है कि दो पूर्णांकों को ३ बिट्स के साथ गुणा करें।

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

क्या यह मामला है कि समय जटिलता हमेशा इनपुट आकार में एक बढ़ता हुआ कार्य है? यदि हां, तो यह मामला क्यों है? क्या इसके लिए कोई सबूत हाथ से लहराता है?


"प्रत्यक्ष आनुपातिक" का एक विशिष्ट गणितीय अर्थ है जिसका अर्थ है, अनिवार्य रूप से रैखिक समय। दूसरे शब्दों में, यदि आपके इनपुट का आकार , अगर समय सीधे आनुपातिक है एल्गोरिथ्म समय में चलता है । मुझे लगता है कि आप का मतलब यह नहीं है, क्योंकि कई एल्गोरिदम रैखिक समय में नहीं चलते हैं, अर्थात छँटाई। क्या आप आगे बता सकते हैं? सी एनnसीn
सैमएम

तो आप एक एल्गोरिथ्म के बारे में पूछ रहे हैं जो समय में चलता है ? O ( 1 ) का अर्थ है कि एल्गोरिथ्म इनपुट आकार की परवाह किए बिना एक ही समय में चलता है, ( 1 ) का मतलब है कि यह तेजी से चलता है क्योंकि इनपुट बड़ा हो जाता है। मैं उस समय के बारे में नहीं सोच सकता जो मेरे सिर के ऊपर से चलता है, लेकिन अंकन काफी सामान्य है क्योंकि एक एल्गोरिथ्म अक्सर O ( n 2 ) + o ( 1 ) समय जैसे किसी अन्य चीज़ में चलेगा - दूसरे शब्दों में , यह O ( n 2 ) लेता है(1)हे(1)(1)हे(n2)+(1)हे(n2)समय, और कुछ अन्य शब्द हैं जो इनपुट बड़े होने के साथ छोटे होते जाते हैं।
सैमएम

अच्छा प्रश्न। कंप्यूटिंग के प्रधानमंत्री कारकों में से जवाबी उदाहरण के बारे में क्या कुछ बड़े के लिए सी (इस के लिए केवल एक बढ़ा हुआ कार्य है n )? @Sam ध्यान दें कि एक बढ़ती हुई कार्यप्रणाली कहती है कि वास्तविक बिंदु (यानी f ( b ) < f ( a ) , a < b ) के साथ कुछ बिंदु पर समय कम होना चाहिए । सी/nसीnसी()<(),<
केसी कुबाल

@ डार्थफेट मुझे डर है कि मैं पीछा नहीं करता। सभी बढ़ते हुए कार्य वास्तविक रेखा के साथ कुछ बिंदु पर कम नहीं हो रहे हैं।
सैम

@ जेनिफर हां, मैं समझता हूं, इससे समझ में आता है। मैं शब्द का उपयोग करने की सलाह दूंगा क्योंकि इसका अर्थ है कि आप जो खोज रहे हैं। और मैं चाहूंगा कि प्रत्यक्ष आनुपातिकता का अर्थ है रैखिकता; मैं देख रहा हूं कि आप क्या कर रहे हैं, लेकिन यह उन लोगों के लिए भ्रमित हो सकता है जो पहली बार सवाल पढ़ रहे हैं। (1)
साम

जवाबों:


13

क्या यह मामला है कि समय जटिलता हमेशा इनपुट आकार में एक बढ़ता हुआ कार्य है? यदि हां, तो यह मामला क्यों है?

नहीं। एक ट्यूरिंग मशीन है कि हाल्ट के बाद विचार करें इनपुट आकार जब चरणों n के बाद भी है, और हाल्ट एन 2 चरणों जब nnnn2n अजीब है।

यदि आप एक समस्या की जटिलता का मतलब है , जवाब अभी भी नहीं है। विषम संख्याओं की तुलना में सम संख्याओं के लिए प्रायोगिक परीक्षण की जटिलता बहुत कम है।


4

क्या यह मामला है कि समय जटिलता हमेशा इनपुट आकार में एक बढ़ता हुआ कार्य है? यदि हां, तो यह मामला क्यों है? क्या इसके लिए कोई सबूत हाथ से लहराता है?

चलो इनपुट आकार को दर्शाते हैं। संपूर्ण इनपुट को पढ़ने के लिए, ट्यूरिंग मशीन को पहले से ही n चरणों की आवश्यकता होती है । तो अगर आप एक एल्गोरिथ्म यह पूरे इनपुट है पढ़ने के लिए है कि मान (या एन / सी कुछ निरंतर के लिए ), तो आप हमेशा कम से कम रैखिक रन समय के साथ खत्म हो जाएगा।nnn/सीसी


एल्गोरिथ्म को परिभाषित करने की समस्या "एक नीरस रूप से रनिंग टाइम फ़ंक्शन" के साथ है, आपको किसी भी तरह लिए रन समय को परिभाषित करना होगा । आपको इसे कुछ परिमित मूल्य पर सेट करना होगा । लेकिन n > 1 के लिए अनंत संभव मूल्य हैं , इसलिए आप एक फ़ंक्शन के साथ समाप्त होते हैं जो अनंत कई मूल्यों के लिए स्थिर है।n=1n>1


संभवतः सबलाइनियर एल्गोरिदम आपके लिए रुचि रखते हैं, जो पूरे इनपुट को नहीं पढ़ते हैं। उदाहरण के लिए देखें http://www.dcs.warwick.ac.uk/~czumaj/PUBLICATIONS/DRAFTS/Sublinear-time-Survey-BEATCS.pdf


सबलाइनियर एल्गोरिदम मौजूद हैं। उदाहरण के लिए, People.csail.mit.edu/ronitt/sublinear.html देखें । यह एक नया क्षेत्र है, लेकिन यह बहुत दिलचस्प है। इसके लिए अन्य प्रतिपक्ष हैं। एक सॉर्ट की गई सूची को खोजने वाले तत्व को रैम मॉडल में समय लगता है। मैं आपकी पोस्ट के पीछे के विचार से सहमत हूं। यह समझ में नहीं आता है कि एल्गोरिथ्म में कम समय लगता है क्योंकि इनपुट बड़ा हो जाता है क्योंकि इसमें सभी इनपुट को पढ़ने का समय नहीं होता है (यह कम समय लेने के लिए कैसे जानता है?)। लेकिन मुझे नहीं पता कि कैसे साबित करना है कि वे मौजूद नहीं हैं, और यह एक चाल नहीं बना सका है ( 1 )हे(लॉगn)(1)
सैमएम

@ सलाम: क्षमा करें, मैंने आपके संपादन (सबलाइनियर एल्गोरिदम को जोड़ने) से पहले आपकी टिप्पणी नहीं देखी।
क्रिस्टोफर

काफी विपरीत; मैंने अपनी टिप्पणी जोड़ने से पहले आपका संपादन नहीं देखा। मैं इसे हटा
दूंगा

1
एक प्रतिधारण: तरह एक स्थिर कार्य । आप उन कार्यों के लिए कार्यों का वर्णन करते हैं जिन्हें उनके इनपुट को पढ़ने की आवश्यकता है। (एक्स)=0
केवह

1

संबंध है अच्छी तरह से स्थापित किया गया , यानी प्राकृतिक संख्या में कोई अनंत गिरने दृश्यों देखते हैं। के बाद से (बुरी से बुरी हालत) क्रम कार्यों प्राकृतिक की तुलना करने के लिए नक्शे, सभी क्रम कार्यों इसलिए है में होने की Ω ( 1 )(एन,)Ω(1) , है कि सभी क्रम कार्य हैं (सीमा में) गैर-कम करें।

उस ने कहा, औसत रनटाइम में दोलन घटक हो सकते हैं, उदाहरण के लिए मर्जसॉर्ट


मैं यह नहीं देखता कि यह उत्तर प्रश्न से कैसे संबंधित है।
अचुल

@ A.Schulz यह मुख्य प्रश्न के लिए एक प्रमाण देता है "क्या यह मामला है कि समय जटिलता हमेशा इनपुट आकार में एक बढ़ता हुआ कार्य है?", "बढ़ते" को "गैर-घटता" के रूप में पढ़ना, अर्थात आवश्यक रूप से सख्ती से बढ़ाना नहीं।
राफेल

1

@ ए.चुल्लज़: फिर भी, मेरी व्याख्या से लगता है कि जेनिफर में क्या दिलचस्पी है
राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.