এমন কোনও প্রোগ্রামের উপসেট রয়েছে যা থামার সমস্যাটি এড়ায়


21

আমি কেবল থামিয়ে দেওয়া সমস্যার আরেকটি ব্যাখ্যা পড়ছিলাম এবং উদাহরণস্বরূপ যে সমস্ত সমস্যার মুখোমুখি হয়েছিল তা অসীম অনুক্রমের সাথে জড়িত বলে আমার মনে হয়েছে got তবে আমি কখনই আমার প্রোগ্রামগুলিতে অসীম সিকোয়েন্স ব্যবহার করি না - এগুলি খুব বেশি সময় নেয়। সমস্ত বাস্তব বিশ্বের অ্যাপ্লিকেশনগুলির নিম্ন এবং উচ্চতর সীমা রয়েছে। এমনকি বাস্তবগুলি সত্যিকারের বাস্তব নয় - এগুলি 32/64 বিট ইত্যাদি হিসাবে সঞ্চিত সীমাবদ্ধতা tions

সুতরাং প্রশ্নটি হল, প্রোগ্রামগুলির একটি উপসেট রয়েছে যা তারা থামলে নির্ধারণ করা যায়? এটি বেশিরভাগ প্রোগ্রামের পক্ষে যথেষ্ট ভাল। আমি কি ভাষা নির্মানের একটি সেট তৈরি করতে পারি যা আমি কোনও প্রোগ্রামের 'স্থিতাবস্থা' নির্ধারণ করতে পারি। আমি নিশ্চিত যে এটি আগে কোথাও অধ্যয়ন করা হয়েছে যাতে কোনও পয়েন্টার প্রশংসা করা হবে। ভাষা টিউরিং সম্পূর্ণ হবে না, তবে প্রায় টিউরিং সম্পূর্ণরূপে এমন কোনও জিনিস রয়েছে যা যথেষ্ট ভাল?

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

উদাহরণ হিসাবে স্ট্যান্ডার্ড ইনপুট থেকে পড়া আবদ্ধ হতে হবে, তবে এটি যথেষ্ট সহজ - আমি আমার ডোমেনটি 10,000,000 অক্ষর ইত্যাদিতে সীমাবদ্ধ করব, সমস্যা ডোমেনের উপর নির্ভর করে।

টিয়া

[হালনাগাদ]

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

একটি প্রদত্ত প্রোগ্রামের জন্য যেখানে সমস্ত ইনপুট সীমাবদ্ধ তা আপনি নির্ধারণ করতে পারেন যে প্রোগ্রামটি থামছে কিনা। যদি তাই হয় তবে ভাষার সীমাবদ্ধতাগুলি কী এবং ইনপুট সেটটির সীমাবদ্ধতাগুলি কী। এই কনস্ট্রাক্টসের সর্বাধিক সেটটি এমন একটি ভাষা নির্ধারণ করবে যা থামানো বা না করার জন্য নির্ধারণ করা যেতে পারে। এই নিয়ে কিছু গবেষণা করা হয়েছে?

[আপডেট 2]

এখানে উত্তর, এটি হ্যাঁ, 1967 সালে http://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdf থেকে ফিরে

L নাইট-স্টেট সিস্টেমগুলির জন্য থমকে থাকা সমস্যাটি অন্তত তাত্ত্বিকভাবে সমাধান করা যেতে পারে ১৯ in67 সালে মিনস্কি ইতিমধ্যে যুক্তি দিয়েছিলেন [৪]: "... কোনও fi নাইট-স্টেট মেশিন, যদি পুরোপুরি নিজের হাতে ছেড়ে দেওয়া হয়, অবশেষে পুরোপুরি পর্যায়ক্রমে নেমে আসবে পুনরাবৃত্তি প্যাটার্ন এই পুনরাবৃত্তি প্যাটার্নটির সময়কাল মেশিনের অভ্যন্তরীণ রাজ্যের সংখ্যাকে অতিক্রম করতে পারে না ... "

(এবং তাই যদি আপনি সীমাবদ্ধ টুরিং মেশিনগুলিতে লেগে থাকেন তবে আপনি একটি ওরাকল তৈরি করতে পারেন)


13
"অসীম ক্রম ... খুব বেশি সময় লাগবে"। আমাকে জোরে হেসে ফেলল।
ব্রায়ান ওকলে

3
আমি বিশ্বাস করি যে এসকিউএল 92 এবং নিয়মিত এক্সপ্রেশনগুলি এমন ভাষার উদাহরণ যা বন্ধ করার গ্যারান্টিযুক্ত।
এলিয়ান এবিং

2
দয়া করে একটি উত্তর হিসাবে "আপডেট 2 ..." পোস্ট করুন।
এস। লট

2
আপনার পুনরাবৃত্তি বাদ দিতে হবে না। যদি আপনি কলি যুক্তিগুলির কঠোর সাব-শর্তগুলিতে পুনরাবৃত্তি সীমাবদ্ধ করেন আপনি সর্বদা অবসান প্রমাণ করতে সক্ষম হবেন। এটি পর্যাপ্ত প্রয়োজন - যতক্ষণ আপনি চার্চের সংখ্যা ব্যবহার করছেন ততক্ষণ কোনও "বাউন্ডেড লুপস" এবং একই রকমের প্রয়োজন হয় না।
এসকে-যুক্তি

1
আপনার প্রোগ্রামগুলি চালনার আগে এটি শেষ করে দেয় তা প্রমাণ করার জন্য ইদ্রিস ভাষা নির্ভর টাইপিং এবং প্রুফ চেকার ব্যবহার করে। এটি হাস্কেলের মতো এবং পুনরাবৃত্তির অনুমতি দেয় তবে সাধারণ পুনরাবৃত্তি নয় - কেবল পুনরাবৃত্তি যা এটি প্রমাণ করতে পারে (নির্ভরশীল ধরণের মাধ্যমে) কিছু টার্মিনাল অবস্থার দিকে পরিচালিত করে।
জ্যাক

উত্তর:


8

ইস্যুটি ইনপুটটিতে নেই (স্পষ্টতই, আনবাউন্ডেড ইনপুট সহ, আপনি কেবল ইনপুটটি পড়ার জন্য আনবাউন্ডেড চলমান সময় নিতে পারেন), এটি অভ্যন্তরীণ অবস্থার সংখ্যার উপর।

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

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


10

প্রথমে, আমাদের যদি একটি থামানো আবিষ্কারক থাকে তবে কী হবে তা বিবেচনা করুন। আমরা তির্যক যুক্তি থেকে জানি যে কমপক্ষে একটি প্রোগ্রাম রয়েছে যা একটি থামানো সনাক্তকারীকে কখনও থামিয়ে দেয় না বা কোনও ভুল উত্তর দেয় না। তবে এটি একটি উদ্ভট এবং অসম্ভব প্রোগ্রাম।

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

সুতরাং, আপনি কি এমন প্রোগ্রামিং ভাষা লিখতে পারবেন যা এমন প্রোগ্রাম তৈরির গ্যারান্টিযুক্ত যার থামানো সর্বদা নির্ধারণ করা যায়? অবশ্যই। এটিতে কেবল লুপস, শর্ত থাকতে পারে এবং নির্বিচারে প্রচুর সঞ্চয়স্থান ব্যবহার করা যায় না। আপনি যদি কোনও লুপ, বা কোনও "যদি" বিবৃতি, বা কঠোরভাবে সীমাবদ্ধ পরিমাণে সঞ্চয় করতে বাঁচতে ইচ্ছুক হন তবে অবশ্যই, আপনি এমন একটি ভাষা লিখতে পারবেন যার থামানো সর্বদা নির্ধারিত।


2
যদি লাফটি সবসময় এগিয়ে থাকে, কখনও পিছনে হয় না তবে কারও কাছে যদি বিবৃতি থাকতে পারে। আমি বেসিক ভাষার একটি সীমাবদ্ধ সাবসেটের কথা ভাবছি, যেখানে "গোটো এক্স" মানে লাইন নম্বর কারেন্টলাইন + এক্স এ যাওয়া উচিত এবং এক্সটি 0 এর চেয়ে বেশি হওয়া উচিত যদি লাইনটি অবৈধ থাকে তবে থামুন। এটি স্টোরেজটির চাহিদা বাড়িয়ে তুলবে, তবে কিছু অ-তুচ্ছ যুক্তি দেবে। এটি সম্ভবত একটি সীমাবদ্ধ রাষ্ট্র মেশিনের সমতুল্য যেখানে প্রান্তগুলি একটি গ্রাফ গঠন করে এবং সেই গ্রাফের কোনও চক্র নাও থাকতে পারে, না হলে FSM অবৈধ। এছাড়াও, যে কোনও রাষ্ট্রের একটি মৃতপ্রাপ্তি অবশ্যই একটি গ্রহণযোগ্য রাষ্ট্র হতে হবে।
কাজ

3
এটি সীমাবদ্ধ লুপগুলি থাকতে পারে - i = 1 থেকে 10 উদাহরণস্বরূপ, একইভাবে ভাল আচরণ করা পুনরাবৃত্তিকারী। সুতরাং এখানে কি এক শ্রেণীর সীমাবদ্ধ সমস্যাগুলি সমাধান করা যেতে পারে - ফেরমেটস তত্ত্বটি আবার বাস্তবের অসীম অনুক্রমের সাথে জড়িত। তবে আমরা যদি ডোমেইনটিকে 1 000 000 এর চেয়ে কম সংখ্যায় সীমাবদ্ধ করি তবে তা বন্ধ হয়ে যায়।
ডেভেন

2
শর্ত না কেন? দেখে মনে হচ্ছে যে জাম্প ছাড়াই পরিস্থিতি সর্বদা থামার জন্য দেখানো যেতে পারে ...
বিলি ওএনলে

2
@ নিকি: অবশ্যই এটি একটি দুর্বল যুক্তি। মুল বক্তব্যটি হ'ল এই জাতীয় থামানো ডিটেক্টর অকারণে প্রমাণ খুঁজে না নিয়ে এই জাতীয় বিবৃতি প্রমাণ বা প্রমাণ করতে সক্ষম হবে । আমি এখানে যে পাঠ্যকে বিকাশের জন্য অন্তর্নিহিত করতে চাইছি তা হ'ল যে ভাষাটির জন্য একটি তুচ্ছ থামানো ডিটেক্টর রচনা করা যেতে পারে সে ভাষা এমন একটি ভাষা যা ফেরমেটের শেষ উপপাদ্য বা গোল্ডব্যাকের অনুমানের মতো সংখ্যা তত্ত্বের এমনকি সাধারণ সমস্যারও প্রতিনিধিত্ব করতে পারে না, এবং সম্ভবত এটি নয় একটি খুব দরকারী ভাষা।
এরিক লিপার্ট

3
@ এরিকলিপার্ট: ভুল। এই জাতীয় ভাষায় লুপ, সঠিক সঞ্চয়স্থান এবং অন্যান্য অনেক দরকারী জিনিস থাকবে। এটিতে প্রায় কোনও কিছু কোড করা সম্ভব । দেখুন, এখানে এটি: coq.inria.fr
এসকে-লজিক

6

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

সংক্ষেপে আপনার প্রশ্নের জবাব দেওয়ার জন্য: যতক্ষণ না আপনার প্রোগ্রামের একটি whileলুপ (বা এর সম্ভাব্য উদ্ভাসগুলির কোনও) অন্তর্ভুক্ত না থাকে ততক্ষণ থমকে থাকা সমস্যাটি স্থিতিশীল ।


দুঃখিত, আমি আপনাকে ভুল পড়া। আমি আমার মন্তব্য মুছে ফেলেছি তবে আমি জিইবির সুপারিশটি পুনরায় ফিরিয়ে দেব
এপ্রোগ্রামার

@zvrba এটি কিছু সময়ের জন্য আমার পড়ার তালিকায় ছিল - সম্ভবত ডুব দেওয়ার জন্য
সময়টি ছিল

5

সীমিত পরিমাণে মেমরির (সমস্ত ধরণের স্টোরেজ সহ) কাজ করে এমন প্রতিটি প্রোগ্রামের জন্য, থামার সমস্যাটি সমাধান করা যেতে পারে; অর্থাত্ একটি অনির্বচনীয় প্রোগ্রামটি রানের সময় আরও বেশি স্মৃতি নিতে বাধ্য।

তবে তবুও, এই অন্তর্দৃষ্টিটির অর্থ এই নয় যে এটি বাস্তব-বিশ্বের সমস্যার জন্য ব্যবহার করা যেতে পারে, যেহেতু একটি থামানো প্রোগ্রাম, মাত্র কয়েক কিলোবাইট মেমরির উপর কাজ করে, মহাবিশ্বের অবশিষ্ট জীবনকালের চেয়ে সহজেই থামতে পারে।


3

(আংশিকভাবে) আপনার প্রশ্নের উত্তর দেওয়ার জন্য "থামার সমস্যাটি এড়ানো এমন কোনও প্রোগ্রামের উপসেট আছে": হ্যাঁ, বাস্তবে রয়েছে there তবে, এই উপসেটটি আশ্চর্যজনকভাবে অযথা (নোট করুন যে আমি যে উপসেটটির কথা বলছি তা হ'ল প্রোগ্রামগুলি থামানোগুলির একটি কঠোর উপসেট)।

'বেশিরভাগ ইনপুট'- এর সমস্যার জটিলতার অধ্যয়নকে জেনেরিক-কেস জটিলতা বলা হয় । আপনি সম্ভাব্য ইনপুটগুলির কিছু উপসেট সংজ্ঞায়িত করেছেন, প্রমাণ করুন যে এই উপসেটটি 'বেশিরভাগ ইনপুটগুলি' কভার করে এবং একটি অ্যালগরিদম দেয় যা এই উপসেটটির জন্য সমস্যা সমাধান করে।

উদাহরণস্বরূপ, থামানো সমস্যাটি বেশিরভাগ ইনপুটগুলির জন্য বহুপদী সময়ে সমাধানযোগ্য (আসলে, লিনিয়ার সময়ে, আমি যদি কাগজটি সঠিকভাবে বুঝতে পারি )।

যাইহোক, তিনটি পার্শ্ব নোটের কারণে এই ফলাফলটি অকার্যকর: প্রথমত, আমরা রিয়েল-ওয়ার্ল্ড কম্পিউটারগুলিতে রিয়েল-ওয়ার্ল্ড কম্পিউটার প্রোগ্রামের চেয়ে একক টেপ দিয়ে টুরিং মেশিনের কথা বলি। যতদূর আমি জানি, কেউ বাস্তব জগতের কম্পিউটারগুলির জন্য একই ধারণা রাখে কিনা তা জানেন না (যদিও রিয়েল ওয়ার্ল্ড কম্পিউটারগুলি টুরিং মেশিনগুলির মতো একই কার্যকারিতা গণনা করতে সক্ষম হতে পারে, অনুমোদিত প্রোগ্রামগুলির সংখ্যা, তাদের দৈর্ঘ্য এবং তারা থামতে পারে কিনা সম্পূর্ণ ভিন্ন).

দ্বিতীয়ত, 'সর্বাধিক ইনপুট' এর অর্থ কী তা আপনাকে দেখতে হবে। এর অর্থ হল যে 'দৈর্ঘ্য' এন এর এলোমেলো প্রোগ্রামটি এই অ্যালগরিদম দ্বারা পরীক্ষা করা যায় এমন সম্ভাবনা যেহেতু 1 অনন্তের দিকে ঝোঁক। অন্য কথায়, যদি এন যথেষ্ট পরিমাণে বড় হয় তবে দৈর্ঘ্যের এন এর একটি এলোমেলো প্রোগ্রাম প্রায় অবশ্যই এই অ্যালগরিদম দ্বারা পরীক্ষা করা যেতে পারে।

কাগজে বর্ণিত পদ্ধতির মাধ্যমে কোন প্রোগ্রামগুলি পরীক্ষা করা যায়? মূলত, সমস্ত প্রোগ্রাম যা কোনও রাষ্ট্রের পুনরাবৃত্তি করার আগে থামে (যেখানে 'রাষ্ট্র' একটি প্রোগ্রামের কোডের লাইনের সাথে মোটামুটি মেলা)।

যদিও প্রায় সমস্ত প্রোগ্রাম এইভাবে চেক করা যায়, যে প্রোগ্রামগুলি এইভাবে চেক করা যায় সেগুলির কোনওটিই খুব আকর্ষণীয় নয় এবং সেগুলি সাধারণত মানুষ ডিজাইন করে না, সুতরাং এটি কোনও ব্যবহারিক মূল্যই নয়।

এটি আরও সূচিত করে যে জেনেরিক কেস জটিলতা সম্ভবত আমাদের থামাতে সমস্যাটিতে সহায়তা করতে সক্ষম হবে না, কারণ প্রায় সমস্ত আকর্ষণীয় প্রোগ্রামগুলি (দৃশ্যত) পরীক্ষা করা শক্ত। অথবা, বিকল্পভাবে শব্দযুক্ত: প্রায় সব প্রোগ্রামই আগ্রহী নয়, তবে চেক করা সহজ।


2
-1, এটি
এতগুলি

1
প্রথমত, রিয়েল-ওয়ার্ল্ডস কম্পিউটারগুলি এমন কিছু গণনা করতে পারে না যা একটি টুরিং মেশিন পারে না। এখনও অবধি, কেউই টুরিং মেশিনের চেয়ে বেশি বাস্তব (কম্পিউটারের শর্তে) একটি বাস্তব-জগতের কম্পিউটার দেখায় নি। দ্বিতীয়ত, যদি কোনও প্রোগ্রাম তার স্থিতি পুনরাবৃত্তি করে তবে তা থামবে না, সুতরাং সেই প্রোগ্রাম এবং ইনপুটটির জন্য থামার সমস্যাটি সমাধান করা হবে। মনে রাখবেন: থামানো সমস্যাটি কোনও সিদ্ধান্ত দেওয়া ইনপুটটিতে কোনও প্রোগ্রাম থামবে কিনা তা স্থির করার বিষয়ে। একবার আপনি ইতিবাচকভাবে এটি সনাক্ত করার পরে একটি অসীম লুপ ঠিক আছে। শেষ অবধি: দরকারী প্রোগ্রামগুলির একটি বৃহত্তর সেট রয়েছে যার জন্য থামার সমস্যাটি সমাধানযোগ্য limited যারা সীমিত স্টোরেজে পরিচালনা করছেন।
ব্যবহারকারী 281377

আপনার প্রথম ইস্যু হিসাবে: যেমনটি কাগজে মন্তব্য করেছিলেন, দেখানো হচ্ছে যে কয়েকটি মডেল গণনা টুরিং সম্পূর্ণ, ঠিক কতটি প্রোগ্রাম বন্ধ রয়েছে তা সংরক্ষণ করে না, ফলে তারা প্রমাণিত ফলাফলটি তাত্ক্ষণিক গণনার অন্যান্য মডেলের জন্য কিছু বোঝায় না। আমি টুরিংয়ের সম্পূর্ণতা সম্পর্কে ভালভাবে জানি এবং কেন এটি আমার উত্তরকে 'ভুল' করে তোলে তা আমি পুরোপুরি নিশ্চিত নই।
অ্যালেক্স দশ ব্রিংক

আপনার দ্বিতীয় ইস্যু সম্পর্কে: যে রাজ্যগুলির বিষয়ে আমি কথা বলছি সেগুলি সাধারণত 'মেশিনের অবস্থা' হিসাবে একই রকম নয় যিনি সাধারণত কথা বলছেন (যার মধ্যে রাষ্ট্রের থাকতে পারে এমন সমস্ত কিছুর রাজ্য জড়িত), বরং রাষ্ট্রটি সীমাবদ্ধ রাষ্ট্র অটোমেটনের ট্যুরিং মেশিনটি নিয়ন্ত্রণ করতে ব্যবহৃত হয়, যা প্রায়শই কোড কোডের সাথে সামঞ্জস্য করে যে কোনও প্রোগ্রাম কার্যকর করার সময় যে কোনও সময়ে কাজ করছে। কোডের একটি লাইন পুনরাবৃত্তি করার সময় আপনার মেমরির বিষয়বস্তু পৃথক হতে পারে, সুতরাং এটি অবিলম্বে কিছুটা থামানো বোঝায় না। আমি আরও উত্তর পরিষ্কার করার জন্য আমার উত্তর আপডেট করব।
অ্যালেক্স দশ ব্রিংক

@ ইম্মকিউ: না, আপনি যদি সীমাবদ্ধ স্টোরেজ সহ বাস্তব-বিশ্বের সিস্টেমগুলির বিষয়ে কথা বলছেন তবে থামানো সমস্যাটি সমাধানযোগ্য নয়, কারণ এর অর্থ দাঁড়াবে এমন একটি বাস্তব-বিশ্বব্যবস্থা তৈরি করা যা রাজ্যের সংমিশ্রণ পরিচালনা করতে পারে। যেহেতু বেশিরভাগ সিপিইউতে সম্ভাব্য নিবন্ধকারীর সংখ্যা ইউনিভার্সের পরমাণুর সংখ্যা ছাড়িয়েছে, আপনি এটি করতে সক্ষম হবেন না।
ডেভিড থর্নলি

3

বাস্তব জীবনের এমন কিছু প্রোগ্রাম রয়েছে যা অন্যান্য সমস্যার জন্য থামানো সমস্যাটি সারাক্ষণ সমাধান করে। এগুলি অপারেটিং সিস্টেমের অংশ যা আপনি আপনার কম্পিউটারটি চালাচ্ছেন। অনিবার্যতা একটি অদ্ভুত দাবি যা কেবলমাত্র বলে যে এমন কোনও প্রোগ্রাম নেই যা সমস্ত অন্যান্য প্রোগ্রামের জন্য কাজ করে।

একজন ব্যক্তি সঠিকভাবে বলেছিলেন যে থামানো প্রমাণটি কেবলমাত্র এমন একটি প্রোগ্রাম বলে মনে হচ্ছে যার সমাধান করা যায় না, কারণ এটি অসীমভাবে নিজেকে আয়নার মতো চিহ্নিত করে। এই একই ব্যক্তিটি আরও বলেছে যে যদি কোনও থামার মেশিন থাকে তবে এটি যাদু হবে কারণ এটি যদি আমাদের সলভার অ্যালগরিদম বন্ধ হয়ে যায় তবে সময়ের আগে আমাদের জানিয়ে গণিতের সমস্যাগুলি বলত।

এই উভয় ক্ষেত্রেই অনুমান হ'ল থামানো মেশিনটি ট্রেস করে না কারণ এটির সন্ধানের কোনও প্রমাণ নেই। তবে বাস্তবে এটি প্রদত্ত ইনপুটটি দিয়ে চালিত প্রোগ্রামটি ট্রেস / রান করে।

যৌক্তিক প্রমাণ কমপক্ষে সহজ। যদি এটি কমপক্ষে প্রথম পদক্ষেপের সন্ধান করার প্রয়োজন না হয় তবে এটি চালু হওয়া প্রোগ্রামের সাথে ইনপুটটির দরকার পড়বে না। তথ্যের কোনও ব্যবহার করার জন্য, সেই পথটি কোথায় চলছে তা বিশ্লেষণ করার চেষ্টা করার আগে এটি কমপক্ষে প্রথম ধাপটি সন্ধান করতে হবে।

উপরের উত্তরে উল্লিখিত কঠোর গণিত সমস্যাগুলি হ'ল আপনি উত্তরটি বের করার জন্য দ্রুত অগ্রসর হতে পারবেন না, যার অর্থ কিছুটা প্যাটার্নটি সনাক্তযোগ্য না হওয়া পর্যন্ত থামানো সমস্যাটি ট্রেস চালিয়ে যেতে হবে।

সুতরাং থামার সমস্যা থেকে পাওয়া একমাত্র ব্যবহারিক যুক্তি হ'ল একটি হোল্টিং মেশিন সমস্যা সমাধানকারী যত দ্রুত শেষ করতে পারে তার চেয়ে একটি অনুকূলিত সমস্যা সমাধানের ফলাফল দ্রুত নির্ধারণ করতে পারে না।

এই যুক্তিটির জন্য একটি আনুষ্ঠানিক প্রমাণ দেওয়া আরও শক্ত, এবং যদিও আমি বিশ্বাস করি যে আমি পারতাম, তবে একাডেমিয়ার কাউকে এটি ব্যাখ্যা করার চেষ্টা করার ফলে তারা মেজাজ-তন্ত্রের মতো একটি এপকে ফেলে দেয় এবং ঝাঁকুনির কাছ থেকে ঝুলতে পারে। এই ব্যক্তিদের সাথে তর্ক না করা ভাল।


1

এখানে উত্তর, এটি হ্যাঁ, 1967 সালে http://www.isp.uni-luebeck.de/kps07/files/papers/kirner.pdf থেকে ফিরে

L নাইট-স্টেট সিস্টেমগুলির জন্য থমকে থাকা সমস্যাটি অন্তত তাত্ত্বিকভাবে সমাধান করা যেতে পারে ১৯ in67 সালে মিনস্কি ইতিমধ্যে যুক্তি দিয়েছিলেন [৪]: "... কোনও fi নাইট-স্টেট মেশিন, যদি পুরোপুরি নিজের হাতে ছেড়ে দেওয়া হয়, অবশেষে পুরোপুরি পর্যায়ক্রমে নেমে আসবে পুনরাবৃত্তি প্যাটার্ন এই পুনরাবৃত্তি প্যাটার্নটির সময়কাল মেশিনের অভ্যন্তরীণ রাজ্যের সংখ্যাকে অতিক্রম করতে পারে না ... "

(এবং তাই যদি আপনি সীমাবদ্ধ টুরিং মেশিনগুলিতে লেগে থাকেন তবে আপনি একটি ওরাকল তৈরি করতে পারেন)

অবশ্যই এটি কতক্ষণ সময় নেয় এটি অন্য প্রশ্ন


0

প্রোগ্রামগুলির একটি উপসেট রয়েছে যা তারা থামলে নির্ধারণ করা যায়?

হ্যাঁ।

বেশিরভাগ প্রোগ্রামের জন্য এটি কি যথেষ্ট ভাল?

"সর্বাধিক" সংজ্ঞা দিন।

আমি কি ভাষা নির্মানের একটি সেট তৈরি করতে পারি যা আমি কোনও প্রোগ্রামের 'স্থিতাবস্থা' নির্ধারণ করতে পারি?

হ্যাঁ।

প্রায় টিউরিং সম্পূর্ণরূপে এমন কোনও জিনিস রয়েছে যা যথেষ্ট ভাল?

"প্রায়" সংজ্ঞা দিন।

অনেক লোকেরা whileবিবৃতি বা পুনরাবৃত্তি না ব্যবহার করে পাইথন লেখেন ।

অনেক লোক জাভা লেখেন কেবল সাধারণ পুনরাবৃত্তিকারী বা কাউন্টারগুলির forসাথে কেবল বিবৃতি ব্যবহার করে যা তুচ্ছভাবে প্রমাণিত হতে পারে; এবং তারা পুনরাবৃত্তি ছাড়াই লেখেন।

এটি এড়ানো whileএবং পুনরাবৃত্তি করা বেশ সহজ ।


একটি প্রদত্ত প্রোগ্রামের জন্য যেখানে সমস্ত ইনপুট সীমাবদ্ধ তা আপনি নির্ধারণ করতে পারবেন যে প্রোগ্রামটি থামছে কিনা?

না।

যদি তাই হয় তবে ভাষার সীমাবদ্ধতাগুলি কী এবং ইনপুট সেটটির সীমাবদ্ধতাগুলি কী।

উম। হ্যালটিং সমস্যার অর্থ প্রোগ্রামটি নিজের মতো জটিল হিসাবে প্রোগ্রামগুলি কখনই নির্ধারণ করতে পারে না। থামার সমস্যাটি কাটিয়ে উঠতে আপনি বিশাল সংখ্যক বাধা যে কোনও একটিতে যোগ করতে পারেন।

থামানো সমস্যার স্ট্যান্ডার্ড পদ্ধতির হ'ল প্রোগ্রামিং ভাষায় যেগুলি পাওয়া যায় তার চেয়ে অল্প "ধনী" গাণিতিক আনুষ্ঠানিকতার সেট ব্যবহার করে প্রমাণগুলি মঞ্জুর করা।

ভাষার সীমাবদ্ধতার চেয়ে প্রুফ সিস্টেমটি বাড়ানো আরও সহজ। যে কোনও বিধিনিষেধ সেই বিধিনিষেধের কারণে প্রকাশ করা কঠিন এমন এক অ্যালগরিদমের পক্ষে যুক্তি বাড়ে।

এই কনস্ট্রাক্টসের সর্বাধিক সেটটি এমন একটি ভাষা নির্ধারণ করবে যা থামানো বা না করার জন্য নির্ধারণ করা যেতে পারে। এই নিয়ে কিছু গবেষণা করা হয়েছে?

হ্যাঁ। একে "গ্রুপ থিওরি" বলা হয়। ক্রিয়াকলাপের সেটগুলির নীচে মানগুলির একটি সেট বন্ধ হয়ে যায়। খুব ভাল জিনিস বোঝা।


"প্রায়" আমি জিজ্ঞাসা বিট হয়। সমস্যাগুলির কি সীমাবদ্ধ শ্রেণি রয়েছে যার জন্য কোনও প্রোগ্রাম থামতে বলা যেতে পারে এবং সমস্যাটি কতটা সীমাবদ্ধ? উদাহরণস্বরূপ স্টেটমেন্টটি যদি (i <10) থাকে তবে মুদ্রণ (i) সমস্ত i এর জন্য থামবে। যদি আমি i এর ডোমেনটি 32 বিট পূর্ণসংখ্যার মধ্যে সীমাবদ্ধ করে রাখি তবে এটিও বন্ধ হয়ে যায়।
ডেভেন

মনে রাখবেন একটি forলুপ হয় একটি লুপ যখন, এবং মানুষ প্রায়ই শুধু চেয়ে শর্ত মেয়াদে আরো জটিল কিছু করা x < 42
বিলি ওনিল

@ বিলিওনিল: ভালো কথা। পাইথনে একটি forলুপ খুব, খুব দৃly়ভাবে একটি পুনরুক্তি দিয়ে কাজ করতে বাধ্য হয় const forজাভাতে আরও একটি সাধারণ লুপ, অতিরিক্ত শর্তাদি অন্তর্ভুক্ত করতে পারে যা কোনও পুনরুক্তিকারীর সহজ ব্যবহারকে অকার্যকর করে দেয়।
এস .লট

"সমস্যাগুলির কি সীমাবদ্ধ শ্রেণি রয়েছে যার জন্য কোনও প্রোগ্রাম থামানো বলা যেতে পারে?" উত্তর হ্যাঁ রয়ে গেছে। "সমস্যাটি কতটা সীমাবদ্ধ?" উম। সীমাবদ্ধ সীমাবদ্ধ। আপনি যদি সমস্ত গাণিতিক ক্রিয়াকলাপের অধীনে প্রকৃত সংখ্যাগুলি অনুমান করার চেষ্টা করে এবং প্রাকৃতিক সংখ্যায় আটকে থাকেন তবে আপনি সাধারণ গ্রুপ তত্ত্বটি করছেন। মডুলার গাণিতিক। বিশেষ কিছু না. আপনি কী জিজ্ঞাসা করছেন তা পরিষ্কার নয়। আপনি কি জিজ্ঞাসা করছেন মডুলার পাটিগণিত কি?
এস। লট

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