कुछ समस्याएँ हैं जहाँ हम जानते हैं कि हमारे पास एक इष्टतम एल्गोरिथ्म है?


15

कुछ गैर-तुच्छ समस्याएं हैं, जहां हमें पता है कि हमारे पास मौजूद एल्गोरिथम हमारे पास मौजूद समान रूप से इष्टतम है? (ट्यूरिंग मशीनों के लिए)

और यह कैसे साबित होता है?


11
ट्यूरिंग मशीन निचली सीमा के लिए एक मुश्किल मॉडल है। डिफेन को बदलने से बहुपद को रनिंग टाइम में बदला जा सकता है, इसलिए आपको थोड़ा और विशिष्ट होने की आवश्यकता है।
सुरेश वेंकट

आप गैर-तुच्छ कैसे परिभाषित करते हैं?
फंकस्टार

1
जैसा कि सुरेश कहते हैं, आप जिस तरह के टीएम का इस्तेमाल करते हैं उसका प्रभाव पड़ता है। मुझे लगता है कि पालिंड्रोम्स की भाषा के लिए (शब्द आप पीछे की ओर पढ़ सकते हैं), हमारे पास एक इष्टतम 1-टेप टीएम है जो भाषा तय करने के लिए कदम उठाता है। और 2-टेप टीएम के लिए, यह रैखिक समय में निर्णायक है, इस प्रकार बहुत अधिक इष्टतम भी है। O(n2)
ब्रूनो

जवाबों:


18

कोई भी एल्गोरिथ्म जो रैखिक समय लेता है और इसके पूरे इनपुट को पढ़ना पड़ता है, उसे समान रूप से इष्टतम होना चाहिए। इसी तरह, राफेल टिप्पणियों के रूप में, कोई भी एल्गोरिथ्म जिसका रनटाइम उसी क्रम का है जैसे आउटपुट आकार इष्टतम है।


10
इसी तरह, कोई भी एल्गोरिथ्म जिसका रनटाइम आउटपुट ऑर्डर के समान है, इष्टतम है।
राफेल

9
मेरा मानना ​​है कि यह उत्तर और टिप्पणी जो इस प्रकार है वह कला की पूर्ण स्थिति है।
जेफ

9
खैर यह विघटनकारी था
असहमति

1
रिकॉर्ड के लिए, J the's E की टिप्पणी नीचे शिर के उत्तर को संदर्भित करती है।
आंद्रस सलामन

1
मैं मैक्स के जवाब का जिक्र कर रहा था, न कि शायर का और मैक्स के जवाब पर राफेल की टिप्पणी का।
जेफ

8

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

हालांकि, नकारात्मक पक्ष यह है कि यह जटिलता माप क्वांटम सूचना प्रसंस्करण में लगभग उपयोग किया जाता है क्योंकि यह क्वांटम और शास्त्रीय कम्प्यूटेशनल शक्ति के बीच अंतर को साबित करने का एक आसान तरीका प्रदान करता है। इस ढांचे में सबसे कुख्यात क्वांटम एल्गोरिथ्म ग्रोवर का एल्गोरिदम है । बाइनरी स्ट्रिंग को देखते हुए जिसके लिए एक एकल i मौजूद है जैसे x i = n , आपको i खोजना आवश्यक है । शास्त्रीय रूप से (एक क्वांटम कंप्यूटर के बिना), सबसे तुच्छ एल्गोरिथ्म इष्टतम है: आपको खोजने के लिए औसतन इस स्ट्रिंग n / 2 बार क्वेरी करने की आवश्यकता हैx1,,xnixi=nin/2 । ग्रोवर ने एक क्वांटम एल्गोरिथ्म प्रदान किया जो( um) में ऐसा करता हैiस्ट्रिंग के लिए प्रश्न। यह भी इष्टतम साबित हुआ है।O(n)


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

6
  • यदि आप अपना मॉडल बदलने के लिए तैयार हैं, तो डेटा संरचनाओं में काफी कम सीमाएं तंग हैं। देख डेटा स्ट्रक्चर के लिए कम सीमा डेटा संरचनाओं में कम सीमा के लिए अच्छा संदर्भ की ओर इशारा करने के लिए।
  • से तुलना मॉडल है कि कुछ लोगों यहाँ उल्लेख किया है, तो आप इस मामले में जहां इनपुट के ग्राफ के साथ अंक से बना है पर विचार करके एक समान उत्तल पतवार समस्या के लिए बाध्य प्राप्त कर सकते हैं में छँटाई के लिए बाध्य विमान के पहले चतुर्थ भाग में एक बढ़ती हुई क्रिया।Ω(nlogn)

2
डेटा संरचनाओं का उल्लेख करने के लिए +1। लेकिन मुझे नहीं लगता कि छँटाई के लिए तुलनात्मक कम सीमा के माध्यम से उत्तल पतवारों के लिए एक उपयोगी निचली सीमा प्राप्त करना संभव है। कारण यह है कि तुलना मॉडल पर्याप्त शक्तिशाली नहीं है जो उत्तल पतवारों की गणना करता है। इसके बजाय जो काम करता है वह अधिक शक्तिशाली मॉडल का उपयोग करना है जैसे बीजीय निर्णय पेड़ जिसमें पतवार की गणना की जा सकती है, और फिर इस अधिक शक्तिशाली मॉडल को छाँटने के लिए निचली सीमा को अनुकूलित करने के लिए।
डेविड एपपस्टीन

समझ में आता है, स्पष्टीकरण के लिए धन्यवाद!
हाबिल मोलिना

3
  1. O ( n लॉग एन ) का उपयोग करके छँटाई तुलनाO(nlogn) तुलना (मर्ज सॉर्ट, एक नाम के लिए तुलना करना इष्टतम है, प्रमाण में केवल साथ एक पेड़ की ऊंचाई की गणना करना शामिल है ! पत्ते।n!

  2. यूनिक गेम्स के अनुमान को मानते हुए, खोत, किंडलर, मॉसेल और ओडोन्नेल ने दिखाया कि यह एनईपी-पूर्ण है जो कि गेटमैन और विलियमसन के एल्गोरिथ्म से बेहतर है। तो उस अर्थ में जी और डब्ल्यू इष्टतम है (यह भी सोचते हैं कि )।PNP

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


2
आइटम 2 प्रश्न का उत्तर देता है या नहीं, इस पर निर्भर करता है कि पूछने वाले का अर्थ "इष्टतम" से है, हालांकि मुझे संदेह है कि पूछने वाला उस अर्थ में पूछ रहा है (अन्यथा कई, कई तंग अनुमानित परिणाम हैं, जिन्हें यूजीसी की आवश्यकता भी नहीं है)। इसके अलावा, मुझे नहीं लगता कि आइटम 1 या 3 प्रश्न का उत्तर देता है।
त्सुयोशी इतो

@TsuyoshiIto, यह अनुमान लगाना कठिन है कि पूछने वाले का वास्तव में क्या मतलब है, जिसने मुझे उसके / उसके लिए कुछ उपयोगी मारने की उम्मीद में विभिन्न दिशाओं में उत्तर देने की कोशिश की। आप क्या कहते हैं कि (1) एक वैध उत्तर नहीं है, वैसे?
शायर

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

6
क्या "तुलना छँटाई" वास्तव में एक "समस्या" है? या यह एक समस्या है और गणना के मॉडल पर प्रतिबंध है?
जेफ

3

मान लें कि आपको इनपुट और यह तय करने के लिए कहा जाता है कि क्या RAM मशीन M t चरणों के बाद इनपुट x पर समाप्त हो गई है । समय पदानुक्रम प्रमेय तक, यह तय करने के लिए इष्टतम एल्गोरिथ्म टी चरणों के लिए एम ( एक्स ) के निष्पादन का अनुकरण करना है , जो समय ( टी ) में किया जा सकता है ।w=M,x,tMxtM(x)tO(t)

(नोट: ट्यूरिंग मशीन के लिए, के निष्पादन का अनुकरण लेता हे ( टी लॉग टी ) पर होते हैं; हम केवल एक कम के लिए बाध्य पता Ω ( टीMO(tlogt) तो, यह काफी इष्टतम ट्यूरिंग मशीन के लिए नहीं है विशेष रूप से।)।Ω(t)

कुछ अन्य समस्याएं हैं जो उप-मामले के रूप में हॉल्टिंग समस्या का संस्करण हैं। उदाहरण के लिए, निर्णय लेने से एक वाक्य है कि क्या WS1S का परिणाम है लेता है समय 2 हे ( | θ | ) और इस इष्टतम है।θ2↑↑O(|θ|)


3

I am unsure what you mean by "non-trivial", but how about this. L={02k|k0}. This language is not regular therefore, any TM deciding it must run in Ω(nlogn). The simple algorithm (crossing every other 0) is optimal.


3

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 A[1],,A[n], and the goal is to keep a data structure that allows the following operations:

  • Add Δ to A[i], given i and Δ
  • Compute the prefix sum j=1iA[i], given i

You can easily support both operations in O(logn) time with a data structure based on an augmented binary tree with A[i] at the leaves. Patrascu and Demaine showed this is optimal: for any data structure there is a sequence of n additions and prefix sum queries that must take Ω(nlogn) time total.

Another example is union find: start with a partition of {1,n} into singletons, and keep a data structure that allows the two operations:

  • Union: given i and j, replace the part containing i and the part containing j with their union
  • Find: given i, output a canonical element from the part containing i

Tarjan showed that the classical disjoint set forest data structure with the union by rank and path compression heuristics takes O(α(n)) 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 n union and find operations which must take Ω(nα(n)) time.



0

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.


-1

Many sublinear time algorithms have upper bounds matching their lower bounds.


3
डुप्लिकेट के रूप में चिह्नित किया गया।
जेफ

Sublinear समय एल्गोरिथ्म और स्ट्रीमिंग एल्गोरिथ्म अलग-अलग क्षेत्र हैं।
बिन फू

1
That's true, but you should combine the answers into one.
Suresh Venkat

Some examples of optimal sublinear time algorithms can be
Bin Fu

1
it is also not clear why this is not a duplicate of the query complexity answer.
Artem Kaznatcheev
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.