অজানা থামার স্থিতি সহ খুব সংক্ষিপ্ত প্রোগ্রামগুলি কী কী?


32

বাইনারি ল্যাম্বদা ক্যালকুলাসের এই 579-বিট প্রোগ্রামটির অজানা থামার অবস্থা রয়েছে:

01001001000100010001000101100111101111001110010101000001110011101000000111001110
10010000011100111010000001110011101000000111001110100000000111000011100111110100
00101011000000000010111011100101011111000000111001011111101101011010000000100000
10000001011100000000001110010101010101010111100000011100101010110000000001110000
00000111100000000011110000000001100001010101100000001110000000110000000100000001
00000000010010111110111100000010101111110000001100000011100111110000101101101110
00110000101100010111001011111011110000001110010111111000011110011110011110101000
0010110101000011010

অর্থাত্, এই প্রোগ্রামটি শেষ হবে কিনা তা জানা যায়নি। এটি নির্ধারণের জন্য, আপনাকে অবশ্যই কোলাটজ অনুমানটি সমাধান করতে হবে - বা, কমপক্ষে, সমস্ত সংখ্যার জন্য 2 6 256 পর্যন্ত। এই প্রোগ্রামটি কীভাবে প্রাপ্ত হয়েছিল তার সম্পূর্ণ বিবরণ এই সংগ্রহস্থলটিতে রয়েছে।

সংক্ষিপ্ত বিএলসি প্রোগ্রামগুলি রয়েছে যেগুলিও অজানা থামার অবস্থা রয়েছে?


6
খুব সম্পর্কিত প্রশ্ন । সম্প্রদায়ের ভোট, দয়া করে: সদৃশ?
রাফেল

9
যতটা সম্ভব বিট হিসাবে এই জাতীয় প্রোগ্রাম প্রকাশের কাজটি কোড গল্ফের সমস্যা বলে মনে হচ্ছে কম কম্পিউটার বিজ্ঞানের
রাফেল

2
আমি মনে করি যে মূল প্রশ্নটির চেয়ে 5-টিটিএম টিএম সম্পর্কিত রিকির উত্তর ভাল। এটিকে যদি ডুপ হিসাবে বন্ধ করে দেওয়া হয় তবে উত্তরটি কি সরানো যেতে পারে?
ডেভিড রিচার্বি


6
আপনি একটি মূল বিবরণ নিখোঁজ রয়েছেন: প্রোগ্রামটি কোন ভাষাতে লিখতে হবে তা আপনি নির্দিষ্ট করেন নি Your আপনার উদাহরণে বাইনারি ল্যাম্বডা ক্যালকুলাস ব্যবহার করা হয়েছে - আপনি কেবলমাত্র সেই ভাষাতেই আগ্রহী? আমরা দেখতে পাচ্ছি যে 1 বিট প্রোগ্রামটি বিকাশ করা তুচ্ছ, যা অজানা থামার স্থিতি রয়েছে, কেবলমাত্র অলগরিদমের শরীরকে সরাসরি ভাষায় এম্বেড করে। এটি একটি ফাঁকা, কিন্তু গল্ফ সমাধান জিজ্ঞাসা করার সময় আপনাকে মনোযোগ দিতে হবে। তারা তাদের ফাঁকফুলকে ভালবাসে ! কোলমোগভ জটিলতা এখানে অন্বেষণ করার জন্য একটি গুরুত্বপূর্ণ বিষয় হতে পারে।
কর্ট অ্যামোন - মনিকা

উত্তর:


30

হ্যাঁ। এই পৃষ্ঠাটি 98 5-রাষ্ট্র আছে বলে টুরিং মেশিন যার বিরাম স্থিতিগুলিকে অজানা। বিরক্তিকরভাবে, এটি এই জাতীয় মেশিনগুলির কোনও উদাহরণ দেয় না, তবে এই 26 বছর বয়সী পৃষ্ঠাটি 2 5-রাষ্ট্রের টুরিং মেশিন দেয় যার থামার স্থিতিগুলি তখন স্পষ্টতই অজানা ছিল। ("সাধারণ কাউন্টার" অনুসন্ধান করা আপনাকে ঠিক ২ এর মধ্যে নিয়ে যাবে)) লিঙ্কটি নীচে নেমে গেলে আমি এগুলি এখানে অনুলিপি করেছি:

Input Bit   Transition on State     Steps            Comment
             A   B   C   D   E

    0       B1L C1R D0R A1L H1L   > 2*(10^9)       ``chaotic''
    1       B1R E0L A0L D0R C0L

    0       B1L A0R C0R E1L B0L       ?        complex ``counter''
    1       A1R C0L D1L A0R H1L

পৃষ্ঠার নীচের অংশে বলা হয়েছে:: তারিখ: 2007/11/03, তারপরে এটি 26 বছর বয়সী কীভাবে?
ফালাক

1
@ ফ্যালাক পৃষ্ঠার শীর্ষে লেখা আছে "এই পৃষ্ঠাটি ... ফেব্রুয়ারি 1990 1990 এর লেখকের এইচটিএমএল পুনর্লিখন"। পাঠ্যটি 26 বছরের পুরনো, এইচটিএমএল
প্রেরণটি

5

কোলাটজ অনুমান:

নিম্নলিখিত প্রোগ্রামটি সর্বদা থেমে থাকে:

void function( ArbitraryInteger input){
     while( input > 1){
            if(input % 2 == 0)
                input /= 2;
            else
                input = (input*3) + 1;
     }

     // Halt here
}

সামান্য প্রকরণ (এখনও একটি অনুমান, কারণ এটি কোলাটজ এর ফলাফলের উপর ভিত্তি করে):

কিছু ইনপুটের জন্য নিম্নলিখিত প্রোগ্রামটি কখনও একই রাজ্যে দু'বার প্রবেশ করতে পারে না (যেখানে রাষ্ট্রটি "ইনপুট" দ্বারা পরিচালিত মান দ্বারা নির্ধারিত হয়):

void function( ArbitraryInteger input){
     while( input >= 1){ // notice the "="
            if(input % 2 == 0)
                input /= 2;
            else
                input = (input*3) + 1;
     }
}

মনে রাখবেন যে প্রথম প্রোগ্রামটি থামবে কিনা তা নির্বিশেষে দ্বিতীয় প্রোগ্রামটি কখনও থামবে না।

এটি বিশ্বাস করা হয় যে প্রথম প্রোগ্রামটি যে কোনও ইনপুট জন্য সর্বদা বন্ধ করে দেয়, তবে আমাদের কাছে তার প্রমাণ নেই এবং এখনও কিছু সংখ্যক পূর্ণসংখ্যার উপস্থিতি থাকতে পারে যার জন্য প্রোগ্রামটি থামছে না (এটি প্রমাণ করার জন্য ১০০ ডলার পুরষ্কারও রয়েছে) ।

দ্বিতীয় প্রোগ্রামটিও আকর্ষণীয়: এটিতে বলা হয়েছে যে প্রোগ্রামটি কোনও ইনপুটটির জন্য দু'বার একই রাজ্যে দু'বার প্রবেশ করবে না, যার মূলত প্রথম প্রোগ্রামটির পুনরাবৃত্তি না করে ডাইভার্জ করার জন্য একটি ক্রম থাকা প্রয়োজন have এটি কেবল কোলাটজ অনুমানটি মিথ্যা হওয়ার প্রয়োজন হয় না, তবে এটি অবশ্যই 1,4,2,1 লুপ ব্যতীত মিথ্যা এবং লুপ ছাড়া হওয়া দরকার

  • যদি কোল্টজ-এর কেবল পাল্টা উদাহরণ রয়েছে তবে অনুমানের প্রকরণটি মিথ্যা

  • যদি কোল্টজ লুপ ছাড়া মিথ্যা হয় তবে অনুমানের প্রকরণটি সত্য

  • কোলাটজ যদি সত্য হয় তবে ভিন্নতাটি মিথ্যা

  • যদি কোল্টজ দু'টিই মিথ্যা কারণ এটির লুপ রয়েছে এবং কারণ এটির একটি সংখ্যা রয়েছে যার জন্য এটি ডাইভারেজ করে, অনুমানের পার্থক্যটি সত্য (এটি কেবল একটি সংখ্যার প্রয়োজন যার জন্য এটি লুপটি প্রবেশ না করেই ডাইভারেজ করে)

আমি মনে করি এই প্রকরণটি আরও আকর্ষণীয় (কেবলমাত্র এটি দুর্ঘটনার কারণে আমি এটি খুঁজে পেয়েছি এবং এটি @ লাইউভেভিঙ্কুয়েজেনকে ধন্যবাদ বলে লক্ষ্য করেছি), তবে কারণ এটির সত্যিকারের প্রমাণ প্রয়োজন because জোর করে জোর করে, আমরা একদিন বা অন্য কোনও লুপ খুঁজে পেতে সক্ষম হতে পারি (এবং এটি 70 টি সংখ্যার চেয়ে বেশি লুপ হবে: শিল্পের বর্তমান অবস্থাটি হ'ল এখানে অসীম লুপগুলি 68 বা তার চেয়ে কম সংক্ষিপ্ত হতে পারে না), এবং ব্রুট জোর করা আকর্ষণীয় নয়: এটি কেবল সংখ্যা ক্রাঞ্চিং। তবে আমরা একটি অসীম বিচ্ছিন্ন ক্রমকে জোর করে চাপিয়ে দিতে পারি না, এটি সত্যিকারের প্রমাণ ছাড়াই সত্যই শেষ হবে কিনা তা আমরা জানি না।

সম্পাদনা: আমি কোলাটজ কনজেকচার সম্পর্কে অংশটি এড়িয়ে গেছি দুঃখিত, আমি কয়েক বছর আগে যে অ্যালগরিদম পড়েছি তা সত্যই আমি হৃদয় দিয়ে উত্তর দিয়েছি, ইতিমধ্যে এটি উল্লেখ করা হয়েছিল বলে আমি আশা করি না।

সম্পাদনা 2: একটি মন্তব্য আমাকে লক্ষ্য করেছে যে আমি একটি ভুল দিয়ে অ্যালগরিদম লিখেছি, তবে, ভুলটি সত্যই আমার উত্তরটি কোলাটজ অনুমানের চেয়ে আলাদা করেছে (তবে এটির প্রত্যক্ষ প্রকরণ)।


1
input > 1input >= 11421

আপনি ঠিক বলেছেন, আমি একটি লিখতে চেয়েছিলাম >, তবে যতক্ষণ না আমাদের কাছে থামানো-নেসের কোনও প্রমাণ না থাকে ততক্ষণ আমরা >নিশ্চিত করতে পারি না যে আমরা 1 -> 4 -> 2 -> 1লুপে পৌঁছে যাব (উদাহরণস্বরূপ, যদি এটি >এটির জন্য শেষ না করে তবে ' টি পৌঁছনোর জন্য >=)
গেমডেভোপার

1
>=14211421>=>

2
n<1n=1n4n>1n11

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