नीचे दिए गए उदाहरण से साबित होता है कि एक एल्गोरिथ्म A वह प्राप्त करता है O(nlog(n)) शब्द पर एक समस्या को हल करने के लिए-राम की आवश्यकता हो सकती है O(n2log(n)3)एक 1-टेप ट्यूरिंग मशीन (टीएम) पर, जो इंगित की गई सभी गणनाओं को निष्पादित करता हैA। मैं समझता हूं कि प्रश्न 1-टेप टीएम से संबंधित है, और मैं केवल अपनी प्रतिक्रिया में इसका उपयोग करता हूं। यह एमिल जेकब की टिप्पणियों को संबोधित करने के लिए एक संपादन है।
हम निम्नलिखित अधिक सामान्य निष्कर्ष निकालेंगे । यह साबित करने के लिए कि टीएम में हल हो सकता हैO(T(n)2) में एक समस्या हल हो गई O(T(n)) एक एल्गोरिथ्म द्वारा Aरैम पर, यह पर्याप्त नहीं हैAटीएम पर। एक चतुर एल्गोरिथ्म की आवश्यकता हो सकती है। अगर कोई साबित करना चाहता है तो वही लागू होता हैO(nlog(n))भूमि के ऊपर। कम से कम कहने के लिए, जब भी जरूरत से ज्यादा दूर लगता है, एक चतुर एल्गोरिथ्म के अस्तित्व को साबित करना। यह अन्य प्रतिक्रियाओं के अनुरूप नहीं है जो मूल रूप से केवल TM सभी रैम गणनाओं (एल्गोरिथम के) पर अनुकरण / निष्पादित करने का प्रस्ताव करते हैंA) की तरह एक टीएम जटिलता की घोषणा करने के लिए O(T(n)2) या O(T(n)nlog(n))।
समस्या: हमें एक सारणी / तालिका दी गई हैtab साथ में n=2k पूर्णांक प्रत्येक पर संग्रहीत log(n)बिट्स। हमें दूसरी सारणी दी गई हैd साथ में log(n) पदों, हर एक रिकॉर्डिंग की एक संख्या log(n)बिट्स। किसी के लिएt∈[0..log(n)−1], हम परिभाषित करते हैं Xt=1 अगर tab[i] एमओडी d[t]=tab[n/2+i] एमओडी d[t] ∀i∈[0..n/2−1]। अन्यथा,Xt=0। उत्पादन∑log(n)−1t=0Xt। मुझे लगता है कि इनपुट को टेप के रूप में दिया गया हैnlog(n)+log(n)log(n) एमिल जेकब की टिप्पणियों को संबोधित करने के लिए द्विआधारी अंक।
कलन विधि Aशब्द आकार के साथ RAM A RAM परw=log(n) ज़रूरत O(nlog(n)+log(n)2) = O(nlog(n))बाइनरी स्ट्रिंग इनपुट डेटा पढ़ने के लिए। लेकिन डेटा पढ़ने के बाद, यह केवल शब्दों के साथ काम कर सकता हैlog(n)आकार। कलन विधिA किसी भी गणना करता है Xt में O(n) सभी के माध्यम से जा रहा है i∈[0..n/2−1]और हालत का परीक्षण। का मुख्य पाशAके लिए हैt=0,1,2,…log(n)−1: गणना Xt। कुल जटिलता हैO(nlog(n)) (रीडिंग डेटा) + O(nlog(n)) (गणनाएं करते हुए), इसलिए A में यह सब कर सकते हैं O(nlog(n)) RAM पर।
कलन विधि A1-टेप टीएम पर: मैं एक-टेप टीएम जरूरतों का तर्क देता हूंO(n2log(n)2) एक निश्चित समय t। टीएम के दृष्टिकोण से, निर्धारित करनाAt लंबाई के दो बाइनरी स्ट्रिंग्स की समानता का परीक्षण करने के लिए बराबर है O(nlog(n))। उदाहरण के लिए, MOD ऑपरेशनtab[i] एमओडी d[t] बिट को हटाने के बराबर हो सकता है 0 का tab[i]। ऐसे मामलों में, निर्धारणAt लंबाई के साथ बिट स्ट्रिंग्स पर समानता परीक्षण के बराबर है n(log(n)−1)/2। यह अच्छी तरह से ज्ञात है कि लंबाई के दो तारों की समानता का परीक्षण करनाm की आवश्यकता है O(m2)1-टेप टीएम पर, लेकिन मैं वास्तव में अभी एक संदर्भ नहीं पा सकता हूं। हालाँकि, मैं ps में एक प्रमाण प्रदान करता हूँ। यदि TM मुख्य लूप को निष्पादित करता हैA, इसे कम से कम खर्च करना होगा O((nlogn)2) प्रत्येक के लिए t=0,1,2,…log(n)−1में समाप्त हो रहा है O(n2log(n)3)।
ps। मैं दिखाता हूं कि बिट स्ट्रिंग्स के साथ समानता-परीक्षणmबिट्स स्ट्रिंग्स पर पैलिंड्रोम-परीक्षण से तेज नहीं हो सकतेm बिट्स (palyndrome कम से कम लेने के लिए जाना जाता है O(m2)समय)। हम palindrome को हल करने के लिए समानता-परीक्षण के लिए किसी भी TM एल्गोरिथ्म को संशोधित कर सकते हैं। समानता परीक्षण टीएम को दो पूर्णांकों के साथ शुरू होता है मान लें: एक सिर के बाईं ओर, एक दाईं ओर (यह टीएम के लिए सबसे सरल इनपुट फॉर्म है)। बाएं पदों पर प्रत्येक चाल को सही पदों पर प्रतिबिंबित (प्रतिबिंबित) किया जा सकता है। हम एक प्रतिबिंबित टीएम का निर्माण करते हैं: जब भी प्रारंभिक टीएम एक स्थिति पर होता है−x<0 (बाईं तरफ), स्थिति में प्रतिबिंबित दर्पण टीएम है x(दायीं तरफ)। यदि टीएम से कम में समानता परीक्षण हल किया हैO(m2), यह संशोधित मिरर टीएम से कम में palindrome को हल करेगा O(m2)।
इसके अलावा, कुछ समानता-परीक्षण टीएम एल्गोरिदम वहाँ से बाहर हैं और उनमें से सभी को द्विघात समय की आवश्यकता होती है क्योंकि उन्हें कुछ जिगिंग की आवश्यकता होती है, उदाहरण के लिए ट्यूरिंग मशीन उदाहरण 2 पर पाठ्यक्रमों के लिए देखें ।cs.washington.edu/courses-cse431/14sp/scribes/ । lec3.pdf