আমি আগে থেকে ক্ষমা চেয়ে নিচ্ছি এর জন্য আমি অনেক বেশি বিবরণ দিচ্ছি, তবে আমি লোকদের সাথে বিরোধিতা করতে চলেছি।
কে ( এক্স ) সম্পর্কে ≤ কে ′ ( এক্স ) + গK(x)≤K′(x)+c
সত্য যে কে 1 ( এক্স ) ≤ কে 2 ( x এর ) + + গ সাধারণত একটি থেকে আসে অনুবাদক বিবরণ ভাষা # 1 এবং মধ্যে বিবরণ ভাষা # 2 না # 1 এর প্রোগ্রাম মধ্যে # 2 প্রোগ্রাম থেকে একটি অনুবাদ থেকে।K1(x)≤K2(x)+c
উদাহরণস্বরূপ কে সি ( এক্স ) ≤ কে পি ওয়াই টি হ ও এন ( এক্স ) + সি পি ওয়াই 2 সি এবং আপনি এই বৈষম্যটি কেবল এই হিসাবে পান:KC(x)≤KPython(x)+cpy2c
void py_run(char * s) {
// code of your Python interpreter
}
int main(void) {
py_run("Put here your Python program of size Kpython(x)");
}
তারপর আপনার ধ্রুবক গ পি Y 2 গ ভালো কিছু হতে হবে 528 + + 490240688 যেখানে 528 এই কোডটি বিট এবং সংখ্যা 490240688 বিট আকার কর্মকর্তা পাইথন ইন্টারপ্রেটার সি তে লেখা অবশ্যই আপনি শুধুমাত্র ব্যাখ্যা করা কি সম্ভব হয় প্রয়োজন পাইথনের জন্য আপনার বর্ণনার ভাষা যাতে আপনি 69 এমবি থেকে ভাল করতে পারেন :-)cpy2c528+490240688528490240688
গুরুত্বপূর্ণটি হ'ল আপনি নিজের সি কোডটিতে আপনার পাইথন প্রোগ্রামটি রৈখিকভাবে লিখতে পারেন । উদাহরণস্বরূপ, এমন একটি ভাষা যেখানে আপনার প্রতিটি চরিত্রের মধ্যে "বানা" লাগানো দরকার এটি খুব ভাল বর্ণনার প্রোগ্রাম নয় এবং সম্পত্তিটি তখন মিথ্যা। (তবে যদি বর্ণের ভাষা আপনাকে পৃথক ফাইলে বা একটি ব্লকে ডেটা লেখার অনুমতি দেয় তবে এই সমস্যাটি অদৃশ্য হয়ে যাবে)
আপনার কে 1 ( x ) = q ত্রুটিযুক্তK1(x)=q
কে 1 এর আপনার সংজ্ঞায় সমস্যাটি হ'ল কিউ স্টেটস সহ একটি ট্যুরিং মেশিন বর্ণনা করতে আপনাকে q বিটের বেশি প্রয়োজন হতে পারে কারণ আপনাকে ট্রানজিশনগুলি এনকোড করতে হবে।K1qq
সুতরাং কোনও কে 1 এবং কে 2 সম্ভবত সমতুল্য নয়, তবে এটি মূলত কে 1 এর দোষ। আমি মনে করি আমরা সবার জন্য প্রমাণ করতে পারেন যে একটি > 0 সেখানে হয় গ একটি যেমন যে কে 1 ( এক্স ) ≤ একটি | এক্স | + গ a । অবশ্যই কোন একটি < 1 সত্য খণ্ডন যে যথেষ্ট কে 1 , যেহেতু এটি অর্থ হবে যে আমরা আরো সব এনকোড করতে একটি বৈধ ফাংশন নয় 2 এন দৈর্ঘ্য সম্ভাব্য স্ট্রিংK1K2K1a>0caK1(x)≤a|x|+caa<1K12nএন মধ্যে একটি এন + + গ একটি বিট।nan+ca
টুরিং মেশিনগুলি তৈরি করার সময় আকারটি অবিশ্বাস্যভাবে শক্ত tight ধারণা যে একটি ব্লক রয়েছে খ আছে যুক্তরাষ্ট্রের খ 2 খ উপায়ে প্রতিটি রাষ্ট্রের জন্য ট্রানজিশন খুঁজে পেতে এবং যে স্বাভাবিকের চেয়ে ভালো 2 খ উপায়ে আপনি পূরণ করতে পারেন খ বিট। তারপর আপনি প্রতিটি ব্লক সঞ্চয় করতে পারে লগ 2 খ তথ্য বিট। ( 2 লগ 2 বি নয় কারণ আপনাকে একরকম বা অন্য কোনও পথে ব্লকটি প্রবেশ করতে হবে)bb2b2bblog2b2log2b
So yeah... With blocks of size 21/a21/a you could probably prove K1(x)≤a|x|+caK1(x)≤a|x|+ca. But I already written way too much about why the number of states is not a valid Kolmogorov complexity function. If you want me to elaborate, I will.
Now about K2K2
The naive descriptive language corresponds roughly to K2(x)=q⋅2⋅(log2q+2)K2(x)=q⋅2⋅(log2q+2) (i.e. log2qlog2q for each next state and details about write and termination).
আপনার যেমন মনে হচ্ছে, আমি দৃ convinced়ভাবে বিশ্বাস করি যে আরও ভাল / প্রতারক উপায় হ'ল "ডেটা" টুরিং মেশিনে এনকোড করার অনুমতি দেওয়া হবে, সম্ভবত বর্ণনার ভাষায় একটি বাইনারি ট্যাগ যুক্ত করে বলা হয়েছে যে কোনও রাজ্য যদি কোনও ডেটা রাজ্য হয় কিনা ( এটি কেবল কিছুটা লিখে পরবর্তী অবস্থাতে যান) বা যদি এটি অন্য কিছু করে। এইভাবে আপনি আপনার বর্ণনামূলক ভাষার এক বিটটিতে আপনার এক x এর বিট সংরক্ষণ করতে পারেন ।x
However if you keep the same K2K2 you could use the same technique I used in the previous part to save a few bits, but I seem to be stuck at K2(x)≤a|x|log|x|+c (for any a>0) .. maybe less than log|x|, even, but obtaining O(|x|) seems hard. (And I expect it should be |x|, not even O(|x|).)