প্রতিটি গণনীয় ফাংশনের জন্য কি এমন কোনও সমস্যা রয়েছে যা সময়ে সেরা সমাধান করা যায় ?


19

প্রত্যেক গণনীয় ফাংশন জন্য একটা সমস্যা আছে যে শ্রেষ্ঠ সময়ে মীমাংসিত যাবে বিদ্যমান সময় বা আছে একটি গণনীয় ফাংশন যেমন যে প্রত্যেক সমস্যা যে সমাধান করা যেতে পারে করতে পারেন এছাড়াও সমাধান করা যেতে সময়?fΘ(f(n))fO(f(n))o(f(n))

এই প্রশ্নটি গতকালই আমার মাথায় popুকে পড়ে। আমি এখনই এটি সম্পর্কে কিছুটা ভাবছিলাম, তবে এটি বের করতে পারি না। আমি কীভাবে এটির জন্য গুগল করব তা আমি সত্যিই জানি না, তাই আমি এখানে জিজ্ঞাসা করছি। আমি এখানে যা এলাম তা এখানে:

আমার প্রথম চিন্তা ছিল যে উত্তর হবে হ্যাঁ: প্রতিবার গণনীয় ফাংশন জন্য সমস্যা "আউটপুট ডট" (অথবা সঙ্গে একটি স্ট্রিং তৈরি ডট বা যাই হোক না কেন) স্পষ্টত মধ্যে সমাধান করা যায় না সময়। সুতরাং আমাদের কেবল এটি দেখাতে হবে যে এটি সময়ে সমাধান করা যায়। কোনও সমস্যা নেই, কেবল নীচের সিউডো কোডটি নিন:ff(n)f(n)o(f(n))O(f(n))

x = f(n)
for i from 1 to x:
    output(".")

স্পষ্টতই যে অ্যালগোরিদম বর্ণিত সমস্যা সমাধান করে। এবং এটির রানটাইম স্পষ্টতই , সুতরাং সমস্যার সমাধান হয়েছে। এটা সহজ ছিল, তাই না? না বাদে, এটি আপনাকে প্রথম লাইনের ব্যয় বিবেচনার জন্য নয়। উপরে অ্যালগরিদম রানটাইম শুধুমাত্র হয় যদি সময় ক্যালকুলেট প্রয়োজন হয়। স্পষ্টতই এটি সমস্ত ফাংশন 1 এর ক্ষেত্রে সত্য নয় ।Θ(f(n))Θ(f(n))f(n)O(f(n))

সুতরাং এই পদ্ধতির আমাকে কোথাও পাইনি। এটিকে সঠিকভাবে চিত্রিত করার জন্য যে কেউ আমাকে সঠিক দিকে নির্দেশ করেছেন তার জন্য আমি কৃতজ্ঞ থাকব।


1 উদাহরণস্বরূপ বিবেচনা ফাংশন। স্পষ্টত , কিন্তু কোন অ্যালগরিদম যে গণনা করে হয় মধ্যে সময়।p(n)={1if n is prime2otherwiseO(p(n))=O(1)pO(1)


1
আমি মনে করি না আপনার প্রথম অনুচ্ছেদের আপনার দুই বিবৃতি অগত্যা একে অপরের contrapositives আছেন: কি আপনি একটি আছে যদি যেমন কিছু সমস্যা যে সমাধান করা যেতে পারে যে বিদ্যমান , না , না সময়? O ( f ( n ) ) o ( f ( n ) ) Θ ( f ( n ) )fO(f(n))o(f(n))Θ(f(n))
অ্যালেক্স দশ ব্রিংক

@ অ্যালেক্স এটি একটি ভাল বিষয় যা আমি বিবেচনা করি নি।
sepp2k

উত্তর:


13

দ্বারা শূন্যস্থান উপপাদ্য (থেকে তৈয়ার ব্যবহার এখানে কোন গণনীয় সীমাবদ্ধ ফাংশন জন্য, 'ফাঁক' এর জন্য অনুসন্ধানের) , কিছু বৃদ্ধি (আসলে, ইচ্ছামত বড়) গণনীয় ফাংশন বিদ্যমান : এনএন যেমন যে ।g:NNf:NNDTIME(f(n))=DTIME(g(f(n))

এই যেমন একটি অস্তিত্ব আছে এটাই আপনার প্রশ্নের উত্তর (অসীম অনেক, আসলে): যে গণনীয় ফাংশন জন্য যে এই ধরনের , কিছু বৃদ্ধি ফাংশন বিদ্যমান যেমন যে সব সমস্যার সমাধেয় মধ্যে সময় সময়েও দ্রবণযোগ্য। নোট করুন যে প্রয়োজনীয়ভাবে সময়-গঠনমূলক নয় - সময়-গঠনমূলক ক্ষেত্রে, উত্তরটি দেখুন @Rang এর মাধ্যমে।g g = o ( n ) f O ( f ( n ) ) O ( g ( f ( n ) ) = o ( f ( n ) ) ffgg=o(n)fO(f(n))O(g(f(n))=o(f(n))f

উইকিপিডিয়া সূত্র (যা যে প্রয়োজন সালে ), তারপর , আপনার উদাহরণ হয়ে যায় এবং চাহিদা হতে (যাতে আপনি অন্যান্য উপায় কাছাকাছি যান - 'সমস্যার মধ্যে সমাধেয় এও দ্রবণীয় হয় 'এটি আকর্ষণীয় অংশ)।g(x)xf ω ( n ) O ( g ( f ( n ) ) O ( g ( n ) )gffω(n)O(g(f(n))O(g(n))

উইকিপিডিয়া নিবন্ধটি নোট করে না যে বৃদ্ধি পাচ্ছে এবং প্রকৃতপক্ষে নির্বিচারে বড় হতে পারে ( উদাহরণস্বরূপ)। নিবন্ধটি প্রমাণ ফাঁক উপপাদ্য আছে উল্লেখ করে এবং এই প্রমাণ (দেখুন এখানে , উদাহরণস্বরূপ)।f ( n ) g ( n )ff(n)g(n)


করতে হতে ( এন ) ? এটি কি জি ( এক্স ) x প্রয়োজন হয় না ? আপনার বক্তব্য এখনও সঠিক, কিন্তু প্রমাণ অন্যভাবে যায়, তাই না? go(n)g(x)x
রণ জি।

@RanG। উভয় সূত্রের জন্য একটি প্রমাণ দিতে আপডেট হয়েছে (আমি কাগজে সূত্রটি ব্যবহার করেছি) :)
অ্যালেক্স টেন ব্রিংক

"প্রতিটি কমপিটেবল ফাংশন জি যেমন জি = ও (এন) এর জন্য কিছু ফাংশন রয়েছে যা ও (এফ (এন)) সময়ে দ্রবণযোগ্য সমস্ত সমস্যাও ও (জি (এফ (এন)) = ও (এর মধ্যে সমাধানযোগ্য)" f (n)) সময় "যদি সেই জি এর জন্য বিদ্যমান সমস্ত fs ও (1) এ থাকে তবে ও (জি (চ (এন)) এখনও ও (1) হয় না এবং এভাবে ও (1) হয় না
সেপ্প 2 কে

@ sepp2k: ভাল ক্যাচ, এটি প্রকৃতপক্ষে প্রণীত হিসাবে একটি সমস্যা। আমি আমার উত্তর আপডেট করেছি।
অ্যালেক্স দশ ব্রিংক

12

প্রত্যেক গণনীয় ফাংশন জন্য একটা সমস্যা আছে যে শ্রেষ্ঠ সময়ে সমাধান করা যেতে পারে বিদ্যমান Θ ( ( এন ) ) সময় বা একটা গণনীয় ফাংশন যেমন যে প্রত্যেক সমস্যা যে সমাধান করা যেতে পারে হে ( ( এন ) ) এছাড়াও পারেন মধ্যে সমাধান করা যেতে ( ( এন ) ) সময়?fΘ(f(n))fO(f(n))o(f(n))

fO(f(n))o(f(n)log(f(n)))

DTIME(o(f(n)log(f(n))))DTIME(f(n))

এটি কেবল সিদ্ধান্তের সমস্যাগুলি বিবেচনা করে এবং আউটপুট উত্পন্ন করতে যে সময় লাগে তা বিবেচনা করে না।


আমি কি ঠিক ধরে নিচ্ছি যে আমরা যদি সময়হীন-গঠনমূলক কার্যাদি বিবেচনা করি তবে আমার প্রশ্নের উত্তরটি "না"? অথবা relatedly যদি একটি ফাংশন সময় অঙ্কনযোগ্য নয় এবং এইভাবে কোন টুরিং মেশিন যে পরে স্থগিত করা হয় পদক্ষেপ, তার মানে সেখানে কোন টুরিং হয় মেশিন যে পরে স্থগিত করে পদক্ষেপ? কারণ এটি থেকে এটি তুচ্ছভাবে অনুসরণ করবে যে আমার প্রশ্নের উত্তর নেই। f ( n ) Θ ( f ( n ) )ff(n)Θ(f(n))
sepp2k

এটা নির্ভর করে. ধরে সময় অঙ্কনযোগ্য নয় কিন্তু কিছু অন্যান্য ফাংশন দ্বারা বেষ্টিত করা যেতে পারে যা সময়-অঙ্কনযোগ্য। এবং এখনও রয়েছে এমন সমস্যাগুলি যা সময়ের সাথে সমাধান করা যেতে পারে তবে এর চেয়ে খুব কম নয়। g f = Θ ( g ) O ( f )fgf=Θ(g)O(f)
রণ জি।

এবং একাধিক টেপ টিএম ব্যবহার করে আপনি থেকে পর্যন্ত ফলাফল উন্নত করতে পারেন । o(f(n))o(f(n)lgf(n))o(f(n))
কাভেঃ

3

আমি আশা করি এটি গভীরতর অন্তর্দৃষ্টি দেয় এমন একটি কাঠামোর কিছু সরবরাহ করার চেষ্টা করব।

আপনি যখন এই মৌলিক কিছু পেয়ে যান সেখানে সর্বত্র অপ্রত্যাশিত সমস্যা রয়েছে। উদাহরণস্বরূপ: কোন সমস্যা "সমাধান" করা কী? প্রায়শই কম্পিউটার বিজ্ঞানে আমরা কেবলমাত্র "সিদ্ধান্ত" বৈকল্পিক বিবেচনা করি, এতে আমাদের একটি ইনপুট দেওয়া হয় এবং কেবল সত্য বা মিথ্যা আউটপুট দেওয়ার প্রয়োজন হয়। আপনি "ফাংশন" সমস্যার দিকে মনোনিবেশ করছেন।

যদি আপনি ও (এফ (এন)) স্বরলিপিটি কোনও সমস্যার সমাধানের জন্য কত "কাজ" প্রয়োজন তা ক্যাপচারের চেষ্টা হিসাবে বিবেচনা করেন, তবে ফাংশনের পরিবর্তে সিদ্ধান্ত ব্যবহার করে (যেখানে আউটপুট প্রয়োজন) ভাল বলে মনে হয় কারণ আপনি পরিষ্কারভাবে আউটপুট বিন্যাস থেকে গণনা পৃথক করেছেন ।

আমি মনে করি না এটি আপনার প্রশ্নের উত্তর দেবে, তবে আপনি এতে আগ্রহী হতে পারেন: http://en.wikedia.org/wiki/Time_hierarchy_toreorem

এছাড়াও, স্পিডআপ উপপাদ্য সম্পর্কে সতর্কতা অবলম্বন করুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.