কোলমোগোরভ জটিলতা: স্ট্রিংয়ের চেয়ে কেন আপনার আরও বাইটের দরকার হবে?


13

আমি কলমোগোরভ জটিলতায় উইকিপিডিয়ায় প্রবেশের বিষয়টি পড়ছিলাম ( এই প্রশ্নের জন্য ধন্যবাদ ), যা বলে:

এটি দেখানো যেতে পারে যে কোনও স্ট্রিংয়ের কোলমোগোরভ জটিলতা স্ট্রিংয়ের দৈর্ঘ্যের চেয়ে কয়েক বাইটের বেশি হতে পারে না।

স্ট্রিংটি বর্ণনা করার জন্য আপনার কেন কখনও বেশি কিছু লাগবে?

উত্তর:


13

কোলমোগোরভ জটিলতার সঠিক মান স্ট্রিংগুলি উপস্থাপন করতে বেছে নেওয়া ভাষার উপর নির্ভর করে। এই ভাষাটি টুরিং সম্পূর্ণ হতে হবে, সুতরাং সমস্ত স্ট্রিংকে তাদের হিসাবে উপস্থাপন করা কোনও বিকল্প নয়।

কবুতরের নীতি অনুসারে, যদি বেশিরভাগ এর দৈর্ঘ্যের কমপক্ষে একটি স্ট্রিং থাকে যার প্রতিনিধিত্বটি তার চেয়ে ছোট হয়, তবে বেশিরভাগ n এর কমপক্ষে একটি দৈর্ঘ্যের দৈর্ঘ্যও রয়েছে যার প্রতিনিধিত্ব নিজের চেয়ে দীর্ঘ longer (উপস্থাপনাটি একটি সংক্ষেপণ অ্যালগরিদম)nn

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

CC


6

এখানে বিবেচিত স্ট্রিংয়ের বর্ণনাটি কিছু সার্বজনীন ট্যুরিং মেশিনের ইনপুট। আপনি এটি কোনও সি প্রোগ্রাম হিসাবে ভাবতে পারেন। স্ট্রিং hello worldনা, নিজে, একটি সি প্রোগ্রাম গঠন, কিন্তু নিম্নলিখিত এক করে: int main(int argc, char *argv[]) { printf("hello world"); }। আপনি দেখতে পাচ্ছেন যে ওভারহেড ধ্রুবক তবে শূন্য নয়।


3
একটি অতিরিক্ত সূক্ষ্মতা হিসাবে, সি (বা একটি আদর্শিক টুরিং-সম্পূর্ণ সি) ও (1) স্পেস ওভারহেড সহ নির্বিচারে স্ট্রিংগুলি মুদ্রণ করা সম্ভব নয়, কারণ স্ট্রিং লিটারেলের কিছু অক্ষরের উদ্ধৃতি প্রয়োজন need
গিলস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.