कुछ गैर-तुच्छ समस्याएं हैं, जहां हमें पता है कि हमारे पास मौजूद एल्गोरिथम हमारे पास मौजूद समान रूप से इष्टतम है? (ट्यूरिंग मशीनों के लिए)
और यह कैसे साबित होता है?
कुछ गैर-तुच्छ समस्याएं हैं, जहां हमें पता है कि हमारे पास मौजूद एल्गोरिथम हमारे पास मौजूद समान रूप से इष्टतम है? (ट्यूरिंग मशीनों के लिए)
और यह कैसे साबित होता है?
जवाबों:
कोई भी एल्गोरिथ्म जो रैखिक समय लेता है और इसके पूरे इनपुट को पढ़ना पड़ता है, उसे समान रूप से इष्टतम होना चाहिए। इसी तरह, राफेल टिप्पणियों के रूप में, कोई भी एल्गोरिथ्म जिसका रनटाइम उसी क्रम का है जैसे आउटपुट आकार इष्टतम है।
यदि आप जिस जटिलता के उपाय पर विचार कर रहे हैं, वह क्वेरी जटिलता है, यानी किसी विशेष समस्या को हल करने के लिए मशीन को जितनी बार देखना है, उतनी बार समस्याएँ आती हैं, जिसके लिए हमारे पास इष्टतम एल्गोरिदम हैं। इसका कारण यह है कि क्वेरी जटिलता के लिए कम सीमाएं समय या स्थान की जटिलता के लिए कम सीमा की तुलना में आसान हैं, कुछ लोकप्रिय तकनीकों के लिए धन्यवाद, जिसमें प्रतिकूल विधि भी शामिल है ।
हालांकि, नकारात्मक पक्ष यह है कि यह जटिलता माप क्वांटम सूचना प्रसंस्करण में लगभग उपयोग किया जाता है क्योंकि यह क्वांटम और शास्त्रीय कम्प्यूटेशनल शक्ति के बीच अंतर को साबित करने का एक आसान तरीका प्रदान करता है। इस ढांचे में सबसे कुख्यात क्वांटम एल्गोरिथ्म ग्रोवर का एल्गोरिदम है । बाइनरी स्ट्रिंग को देखते हुए जिसके लिए एक एकल i मौजूद है जैसे x i = n , आपको i खोजना आवश्यक है । शास्त्रीय रूप से (एक क्वांटम कंप्यूटर के बिना), सबसे तुच्छ एल्गोरिथ्म इष्टतम है: आपको खोजने के लिए औसतन इस स्ट्रिंग n / 2 बार क्वेरी करने की आवश्यकता है । ग्रोवर ने एक क्वांटम एल्गोरिथ्म प्रदान किया जो ओ ( um) में ऐसा करता हैस्ट्रिंग के लिए प्रश्न। यह भी इष्टतम साबित हुआ है।
O ( n लॉग एन ) का उपयोग करके छँटाई तुलना तुलना (मर्ज सॉर्ट, एक नाम के लिए तुलना करना इष्टतम है, प्रमाण में केवल साथ एक पेड़ की ऊंचाई की गणना करना शामिल है ! पत्ते।
यूनिक गेम्स के अनुमान को मानते हुए, खोत, किंडलर, मॉसेल और ओडोन्नेल ने दिखाया कि यह एनईपी-पूर्ण है जो कि गेटमैन और विलियमसन के एल्गोरिथ्म से बेहतर है। तो उस अर्थ में जी और डब्ल्यू इष्टतम है (यह भी सोचते हैं कि )।
कुछ वितरित एल्गोरिदम को कुछ शर्तों (जैसे, प्रतिकूल प्रोसेसर के अनुपात) के संबंध में इष्टतम दिखाया जा सकता है, लेकिन चूंकि आपने ट्यूरिंग मशीनों का उल्लेख किया है, इसलिए मुझे लगता है कि आप जिस प्रकार के उदाहरण देख रहे हैं, वह नहीं है।
मान लें कि आपको इनपुट और यह तय करने के लिए कहा जाता है कि क्या RAM मशीन M t चरणों के बाद इनपुट x पर समाप्त हो गई है । समय पदानुक्रम प्रमेय तक, यह तय करने के लिए इष्टतम एल्गोरिथ्म टी चरणों के लिए एम ( एक्स ) के निष्पादन का अनुकरण करना है , जो समय ओ ( टी ) में किया जा सकता है ।
(नोट: ट्यूरिंग मशीन के लिए, के निष्पादन का अनुकरण लेता हे ( टी लॉग टी ) पर होते हैं; हम केवल एक कम के लिए बाध्य पता Ω ( टी तो, यह काफी इष्टतम ट्यूरिंग मशीन के लिए नहीं है विशेष रूप से।)।
कुछ अन्य समस्याएं हैं जो उप-मामले के रूप में हॉल्टिंग समस्या का संस्करण हैं। उदाहरण के लिए, निर्णय लेने से एक वाक्य है कि क्या WS1S का परिणाम है लेता है समय 2 ↑ ↑ हे ( | θ | ) और इस इष्टतम है।
If you allow dynamic data structure problems, we know some super-linear time optimal algorithms. This is in the cell probe model, which is as strong as the word RAM, i.e. this is not a restricted model such as algebraic decision trees.
One example is keeping prefix sums under dynamic updates. We start with an array of numbers , and the goal is to keep a data structure that allows the following operations:
You can easily support both operations in time with a data structure based on an augmented binary tree with at the leaves. Patrascu and Demaine showed this is optimal: for any data structure there is a sequence of additions and prefix sum queries that must take time total.
Another example is union find: start with a partition of into singletons, and keep a data structure that allows the two operations:
Tarjan showed that the classical disjoint set forest data structure with the union by rank and path compression heuristics takes time per operation, where is the inverse Ackermann function. Fredman and Saks showed this is optimal: for any data structure there exists a sequence of union and find operations which must take time.
there are two somewhat similar search algorithms that [my understanding is] are optimal based on a particular constraints on the input ordering/distribution. however presentations of the algorithms do not typically emphasize this optimality.
golden section search for finding the maximum or minimum (extremum) of a unimodal function. assumes input is a unimodal function. finds it in logarithmic time on average. as I recall there may have been a proof of optimality in the book Structure & Interpretation of computer programs by abelson & sussman.
binary search finds a point in logarithmic time on average in a sorted list, but requires input to be sorted.
am citing wikipedia above but it does not have the proofs that they are optimal, maybe some other references that prove optimality can be found by the audience.
Many sublinear time algorithms have upper bounds matching their lower bounds.