নীচের উদাহরণে প্রমাণিত হয় যে একটি অ্যালগরিদম A যে লাগে O(nlog(n)) শব্দ-রামের কোনও সমস্যা সমাধানের জন্য প্রয়োজন হতে পারে O(n2log(n)3)একটি উপর 1-টেপ টুরিং মেশিন (TM) ঠিক executes যে সব হিসাব দ্বারা নির্দেশিতA। আমি বুঝতে পারি যে প্রশ্নটি 1-টেপ টিএম সম্পর্কিত, এবং আমি কেবলমাত্র আমার প্রতিক্রিয়াতে এটি ব্যবহার করি। এটি এমিল জেবেকের মন্তব্যগুলিকে সম্বোধন করার জন্য একটি সম্পাদনা।
আমরা নিম্নলিখিত আরও সাধারণ উপসংহার খুঁজে পাবেন । টিএম এর সমাধান করতে পারে তা প্রমাণ করার জন্যO(T(n)2) একটি সমস্যা সমাধান করা O(T(n)) একটি অ্যালগরিদম দ্বারা Aর্যাম উপর, এটা না যথেষ্ট রানAটিএম উপর। একটি চতুর অ্যালগরিদমের প্রয়োজন হতে পারে। কেউ প্রমান করতে চাইলে একই প্রয়োগ হয়O(nlog(n))ওভারহেড। একটি চতুর অ্যালগরিদমের অস্তিত্ব প্রমাণ যখনই প্রয়োজন তাত্ক্ষণিক থেকে দূরে মনে হয়, কমপক্ষে বলতে। এই না অন্যান্য প্রতিক্রিয়া সঙ্গে সঙ্গতিপূর্ণ মূলত শুধুমাত্র উত্থাপন করা অনুকরণ / টি এম উপর চালানো সব র্যাম গণনার (এলগরিদম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] MOD এর d[t]=tab[n/2+i] MOD এর d[t] ∀i∈[0..n/2−1]। তা না হলে,Xt=0। আউটপুট∑log(n)−1t=0Xt। আমি বিবেচনা করি ইনপুটটি টেপ হিসাবে দেওয়া হয়েছেnlog(n)+log(n)log(n) বাইনারি অঙ্কগুলি, এমিল জেব্যাকের মন্তব্যগুলিকে সম্বোধন করতে।
অ্যালগরিদম Aশব্দের আকারের সাথে র্যাম একটি র্যাম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)) র্যামে
অ্যালগরিদম A1-টেপ টিএম-তে: আমি এক-টেপ টিএম-এর প্রয়োজনীয়তার পক্ষে তর্ক করিO(n2log(n)2) একটি নির্দিষ্ট সময় জন্য t। টিএম এর দৃষ্টিকোণ থেকে নির্ধারণ করাAt দৈর্ঘ্যের দুটি বাইনারি স্ট্রিংয়ের সমতা পরীক্ষা করার সমতুল্য O(nlog(n))। উদাহরণস্বরূপ, এমওডি অপারেশনtab[i] MOD এর d[t] বিট অপসারণের সমতুল্য হতে পারে 0 এর tab[i]। যেমন ক্ষেত্রে, নির্ধারণAt দৈর্ঘ্যের বিট স্ট্রিংগুলিতে সমতা পরীক্ষার সমতুল্য n(log(n)−1)/2। এটি সুপরিচিত যে দৈর্ঘ্যের দুটি স্ট্রিংয়ের সমতা পরীক্ষা করেm প্রয়োজন O(m2)1-টেপ টিএম-তে, তবে আমি এখনই সত্যিই একটি তথ্য খুঁজে পাচ্ছি না। তবে, আমি পিএসে একটি প্রমাণ সরবরাহ করি। যদি টিএম মূল লুপটি কার্যকর করেA, এটি কমপক্ষে ব্যয় করতে হবে O((nlogn)2) প্রতিটির জন্য, প্রত্যেকটির জন্য t=0,1,2,…log(n)−1, শেষ পর্যন্ত O(n2log(n)3)।
পুনশ্চ. আমি বিট স্ট্রিংগুলির সাথে সমতা-পরীক্ষাটি দেখাইmবিটগুলি স্ট্রিংগুলির সাথে প্যালেন্ড্রোম-পরীক্ষার চেয়ে দ্রুততর হতে পারে নাm বিটস (প্যালেন্ড্রোম কমপক্ষে গ্রহণ করতে পরিচিত O(m2)সময়)। প্যালিনড্রোম সমাধানের জন্য সাম্য-পরীক্ষার জন্য আমরা যে কোনও টিএম অ্যালগরিদম পরিবর্তন করতে পারি। ধরুন সমতা-পরীক্ষার টিএম দুটি পূর্ণসংখ্যার সাথে শুরু হয়: মাথার বাম দিকে, একটি ডানদিকে (এটি টিএম এর সহজতম ইনপুট ফর্ম)। বাম পজিশনের প্রতিটি পদক্ষেপ ডান অবস্থানের উপর প্রতিবিম্বিত (প্রতিফলিত) হতে পারে। আমরা একটি মিররযুক্ত টিএম তৈরি করি: যখনই প্রাথমিক টিএম কোনও অবস্থানে থাকে−x<0 (বাম দিকে), মিররযুক্ত টিএম অবস্থানে রয়েছে x(ডানদিকে). যদি কোনও টিএম এর চেয়ে কম ক্ষেত্রে সমতা পরীক্ষার সমাধান করেO(m2), এই পরিবর্তিত মিররযুক্ত টিএম এর চেয়ে কম প্যালিনড্রোম সমাধান করবে O(m2)।
এছাড়াও, এখানে কিছু সমতা-পরীক্ষার টিএম অ্যালগরিদম রয়েছে এবং তাদের সকলের জন্য চতুর্ভুজ সময় প্রয়োজন কারণ তাদের কিছুটা জিগজ্যাগিং প্রয়োজন, উদাহরণস্বরূপ শিখুন মেশিন উদাহরণ 2 পাঠ্যক্রমের দেখুন দেখুন। lec3.pdf