रैम और ट्यूरिंग मशीन की जटिलता के बीच बड़ा अंतराल


9

यदि हम केवल पी में समस्याओं पर विचार करते हैं, तो क्या सबसे तेजी से ज्ञात शब्द-रैम एल्गोरिथ्म और विशेष समस्याओं के लिए सबसे तेजी से ज्ञात ट्यूरिंग मशीन एल्गोरिदम के बीच कोई बड़ा अंतराल है? मुझे विशेष रूप से दिलचस्पी है अगर सामान्य ब्याज की प्राकृतिक समस्याओं के लिए व्यापक अंतराल हैं।


6
रैम मशीन को ट्यूरिंग मशीन द्वारा ओवरहेड के साथ जोड़ा जा सकता है O(nlogn)क्रम में। तो वास्तव में बड़े अंतराल नहीं होंगे।
शाल

@ शूल क्या किसी प्राकृतिक / लोकप्रिय समस्या के लिए उस आकार का अंतर मौजूद है?
लेम्बिक

3
पलिंड्रोम लेता है Ω(n2) एक एकल टीएम पर समय (और है) O(n)राम में)। eecs.yorku.ca/course_archive/2008-09/W/6115/palindrome.pdf
सैमएम

6
Shaull की टिप्पणी केवल nondeterministic मशीनों और दो-टेप TM सेटिंग के लिए सही है, जहाँ तक मुझे पता है। प्रशस्ति पत्र, शाल?
रयान विलियम्स

1
@ qbt937 - वाह, अतीत से क्या धमाका हुआ है :) मेरा मानना ​​है कि मैंने एक प्रशस्ति पत्र की आपूर्ति नहीं की क्योंकि मेरे पास एक नहीं था (न ही मेरे पास अब एक है), और यह अच्छी तरह से हो सकता है कि रयान विलियम्स सही हैं।
शूल

जवाबों:


6

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


2
RAM लघुगणक समय में इनपुट की लंबाई (और इस तरह उस लंबाई की पार्टी भी) की गणना कर सकता है, लेकिन उस समानता की गणना के लिए बुनियादी ट्यूरिंग मशीनों को रैखिक समय की आवश्यकता होती है।

1

नीचे दिए गए उदाहरण से साबित होता है कि एक एल्गोरिथ्म 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/21]। अन्यथा,Xt=0। उत्पादनt=0log(n)1Xt। मुझे लगता है कि इनपुट को टेप के रूप में दिया गया है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/21]और हालत का परीक्षण। का मुख्य पाश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


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

@Emil JeEábek, मैं अपने उत्तर को यह इंगित करने के लिए संपादित करूंगा कि मैं केवल 1-टेप TM के बारे में सोचता हूं। जब आप कहते हैं कि एक टीएम रैखिक समय में समानता का परीक्षण कर सकता है, तो मुझे लगता है कि आप 2-टेप टीएम के बारे में सोचते हैं। हालांकि, मैं समझ गया कि पूरा सवाल 1-टेप टीएम के बारे में है। इनपुट फॉर्म के बारे में, मुझे स्वीकार करना चाहिए कि आप सही हो सकते हैं, कम से कम कुछ शब्द-रैम के लिए। लेकिन जहाँ तक मुझे पता है, एक C ++ int array बिना किसी विभाजक के साथ एक के बाद एक पूर्णांकों को संग्रहीत करता है, जैसे कि उन्होंने बिट्स के अनुक्रम को एक साथ संग्रहीत किया है। 16 बिट पर 10 ints 160 बिट पर कब्जा कर लेता है, गैर? यहां तक ​​कि अगर यह मामला नहीं है, तो कोई इस तरह से काम करने वाली मशीन का निर्माण कर सकता है।
डेनियल पोरुम्बेल

3
जटिलता सिद्धांत में मानक ट्यूरिंग मशीन मॉडल मल्टी-टेप है। मैं यह देखने में विफल हूं कि C ++ यहां किसी भी प्रासंगिकता का कैसे है, हम C ++ की चर्चा नहीं कर रहे हैं, लेकिन रैम मॉडल। इस मॉडल में, अलग-अलग मेमोरी स्थान लंबाई की संख्या पकड़ सकते हैंO(logn), लेकिन हम अभी भी केवल एक (या) पर काम कर सकते हैं O(1)) एक समय में स्मृति स्थान। विशेष रूप से, हम एक समय में केवल एक ही स्थान पर इनपुट का उपयोग कर सकते हैं: कोई ऑपरेशन नहीं है जो आपको "पढ़ने" की अनुमति देगाlognइनपुट स्थान और उन्हें एक साथ एक शब्द में विभाजित करते हैं “निरंतर समय में।
एमिल जेकाबेक

दो संभावनाएँ हैं: (1) इनपुट स्थान [0] में पहली संख्या का पहला बिट शामिल है, स्थान [1] में पहले नंबर का दूसरा बिट शामिल है, और इसी तरह। फिर इसकी जरूरत हैO(nlogn)रैम पर पढ़ने का समय, ट्यूरिंग मशीन की तरह। इस प्रकार, एकल-टेप टीएम के साथ भी, आपको केवल एक द्विघात गति प्राप्त होती है। (२) इनपुट लोकेशन [०] में पहला नंबर, लोकेशन [१] दूसरा नंबर है, और इसी तरह। फिर यह समस्या TM पर अर्थहीन है, क्योंकि यह इस फॉर्म के इनपुट को प्रोसेस नहीं कर सकती है। इस प्रकार, आपको बिल्कुल भी गति नहीं मिलती है, लेकिन एक समस्या जो केवल मशीन मॉडल में से एक है।
एमिल जेकाबेक

@Emil JeEábek, आपकी टिप्पणी के बाद, मैंने एक समस्या का प्रस्ताव करने के लिए प्रश्न को संपादित किया और एक RAM एल्गोरिथ्म जो स्पष्ट रूप से लेता है O(nlog(n)) to read the data (from a tape). I removed some of my remarks that are no longer relevant. I hope this solves the problem you pointed out.
Daniel Porumbel
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.