एक एल्गोरिथ्म की परिभाषाएँ बहुपद समय और दृढ़ता से बहुपद समय में चल रही हैं


18

विकिपीडिया इसे परिभाषित करता है

एक एल्गोरिथ्म को बहुपद समय का कहा जाता है यदि इसके चलने का समय एल्गोरिथ्म के लिए इनपुट के आकार में एक बहुपद अभिव्यक्ति से घिरा होता है, अर्थात, कुछ निरंतर कश्मीर के लिए टी(n)=हे(n)

एल्गोरिथ्म दृढ़ता से बहुपद में चलता है अगर [pol]

  • अभिकलन के अंकगणितीय मॉडल में परिचालनों की संख्या इनपुट उदाहरण में पूर्णांक की संख्या में एक बहुपद द्वारा बाध्य होती है; तथा

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

में बर्नहार्ड कोर्ट, जेन्स Vygen, मिश्रित अनुकूलन :

परिभाषा १.४।

तर्कसंगत इनपुट के साथ एक एल्गोरिथ्म में चलाने के लिए कहा जाता है बहुपद समय अगर

  • हे(n)
  • हे(n)

मनमाने ढंग से इनपुट के साथ एक एल्गोरिथ्म में चलाने के लिए कहा जाता है कि दृढ़ता से बहुपद समय अगर

  • एक पूर्णांक k ऐसा है कि यह में चलता हैहे(n) होता है जो n संख्याओं से युक्त किसी भी इनपुट के लिए समय और
  • यह तर्कसंगत इनपुट के लिए बहुपद में चलता है।

यदि मैं गलत हूं तो मुझे बताएं। निम्नलिखित शाब्दिक अंतर मैंने देखे हैं:

  • बहुपद समय एल्गोरिदम के लिए, Korte और Vygen की परिभाषा "विकिपीडिया की परिभाषा + बहुपद भंडारण स्थान" है।

  • दृढ़ता से बहुपद समय एल्गोरिदम के लिए, Korte और Vygen की परिभाषा और विकिपीडिया की परिभाषा दोनों को इनपुट भंडारण आकार में बहुपद समय की आवश्यकता होती है। लेकिन के और वी के अतिरिक्त किसी भी इनपुट में संख्याओं की संख्या में बहुपद समय की आवश्यकता होती है, जबकि विकिपीडिया के अतिरिक्त को इनपुट आकार में बहुपद भंडारण स्थान की आवश्यकता होती है।

तो क्रमशः इन दोनों अवधारणाओं के लिए K और V की विकिपीडिया की परिभाषाएँ समान हैं? उनके बीच अन्य क्या अंतर और संबंध हैं?

धन्यवाद एवं शुभकामनाएँ!


विकिपीडिया अनुभाग सही होने के बाद डीएनएफ के पास बहुत अच्छी व्याख्या है, क्या यह पर्याप्त स्पष्ट नहीं है? यह करना है कि कितने बिट्स संख्याओं का प्रतिनिधित्व करते हैं, और बहुत बड़ी संख्या जटिलता माप को "ऊपर की ओर" प्रभावित कर सकती है। K & V के साथ मानदंड "समतुल्य" समतुल्य हैं। जैसा कि तर्कसंगत जानकारी के लिए, किसी को एक प्रमाण की आवश्यकता होती है कि तर्कसंगत पर अंकगणित बड़े पैमाने पर उनके आकार में वृद्धि नहीं करता है। लगता है कि यह सभी निविष्टियों के एलसीडी को खोजकर और संख्याओं को एलसीडी में लिखकर दिखाया जा सकता है।
vzn

@vzn: विकिपीडिया (1) में स्पष्टीकरण अंकगणितीय बनाम ट्यूरिंग मशीन के लिए अच्छा है, लेकिन दृढ़ता से पाली उद्देश्य और परिभाषा के बारे में काफी उथला है, और (2) पूरी तरह से गलत था कि जीसीडी क्या उदाहरण देता है।
अलेक्सी

जवाबों:


5

औपचारिक परिभाषाओं से पहले, विचार करें कि "दृढ़ता से / कमजोर रूप से" वर्गीकरण का उद्देश्य क्या है।

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

अब एक अंकगणितीय मशीन पर प्रत्येक को चलाने पर विचार करें जहां कोई भी ऑपरेशन पूरे संख्याओं पर एक अंकगणितीय ऑपरेशन है और अंकगणितीय संचालन हैं हे(1)। जब आप इनपुट संख्याओं के परिमाण को बढ़ाते हैं, तो द्विआधारी-एन्कोडेड इनपुट की लंबाई बढ़ती है, और कमजोर एल्गोरिथ्म का रनिंग समय बढ़ेगा, हालांकि मजबूत एल्गोरिथ्म का चलने का समय नहीं बदलेगा, क्योंकि संख्या से बाध्य किया जा सकता है इनपुट संख्या, जिसे आप नहीं बदल रहे हैं (जैसे मैट्रिक्स गुणन बनाम यूक्लिड का GCD)।

एल्गोरिदम का सेट जो इनपुट संख्या की संख्या में अंकगणितीय संचालन बहुपद में चलता है, अच्छी तरह से परिभाषित है, लेकिन एल्गोरिदम के वर्ग के साथ ओवरलैप होता है जो बाइनरी-एन्कोडेड इनपुट ( उदाहरण देखें ) की लंबाई में टीएम चरणों की संख्या में घातांक लेते हैं । इसलिए, इस सेट के लिए, दूसरे पैराग्राफ में गुण नहीं होंगे। अवांछित चौराहे को बाहर करने के लिए, हम एक बहुपद टीएम स्थान [*] के लिए एक शर्त जोड़ते हैं।

[१] में यह दो तरह से बताया गया है:

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

ट्यूरिंग मशीनों की तुलना में भौतिक कंप्यूटरों की अंकगणितीय मशीनों के समान होने के बाद से पहले से ही "कुशल" एल्गोरिदम उपयोगी हो सकते हैं, इसलिए उप-वर्ग एल्गोरिथ्म की पहचान कर सकता है जो भौतिक मशीन पर तेजी से चलेगा यदि उनकी बहुपद घाव बाइनरी-एन्कोडेड इनपुट अन्यथा तुलनीय हैं (जो कि उदाहरण के लिए मजबूत नहीं हैहे(n3) बनाम कमजोर हे(n2))

[*] दूसरी स्थिति को हर जगह बहुपद स्थान के रूप में बताया गया है, जबकि बहुपद समय की आवश्यकता मेरे लिए अधिक मायने रखती है। पूर्व अधिक समावेशी है, लेकिन अजीब है। क्या दृढ़ता से बहुपद एल्गोरिदम हैं जो बहुपद से अधिक समय लेते हैं? ध्यान दें कि दोहराया-स्क्वैरिंग उदाहरण न तो बहुपद समय और न ही बहुपद स्थान लेता है।

[1] ग्रोत्शेल, मार्टिन; लेज़्ज़्लो लोवेज़, अलेक्जेंडर स्क्रीवर (1988)। "जटिलता, Oracles, और संख्यात्मक संगणना"। जियोमेट्रिक एल्गोरिदम और कॉम्बिनेटरियल ऑप्टिमाइज़ेशन। स्प्रिंगर। आईएसबीएन 0-387-13624-एक्स।

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