এটা একটা পুলিশ-এবং-ডাকাত ভাষার সংজ্ঞা দেওয়া এবং সেগুলি টুরিং সম্পূর্ণরূপে প্রমাণ করার চারপাশে চ্যালেঞ্জ
এটি হ'ল পুলিশদের থ্রেড। ডাকাতদের সুতো এখানে ।
পুলিশ
একজন পুলিশ হিসাবে আপনি দুটি জিনিস প্রস্তুত করবেন:
প্রোগ্রামিং ভাষা, বা অন্যান্য গণনীয় সিস্টেমের একটি আনুষ্ঠানিক স্পেসিফিকেশন। (গণনা ব্যবস্থা নীচে সংজ্ঞায়িত করা হয়।)
নীচে কিছুটা কঠোর সংজ্ঞা অনুসারে আপনার সিস্টেম টিউরিং সম্পূর্ণরূপে প্রমাণ।
আপনি আপনার ভাষার স্পেসিফিকেশন পোস্ট করবেন এবং ডাকাতরা এর টিউরিং সম্পূর্ণতা প্রমাণ করে এটি "ক্র্যাক" করার চেষ্টা করবে। যদি আপনার জমা দেওয়ার এক সপ্তাহের মধ্যে ক্র্যাক না হয় তবে আপনি এটিকে নিরাপদ হিসাবে চিহ্নিত করতে পারেন এবং আপনার প্রমাণ পোস্ট করতে পারেন। (যদি কেউ আপনার প্রমাণটিতে কোনও ত্রুটি খুঁজে পায় তবে আপনার উত্তরটি অবৈধ হতে পারে, যদি না আপনি এটিকে ঠিক করতে পারেন))
এটা একটা জনপ্রিয়তা-প্রতিযোগিতা, সুতরাং বিজয়ীর উত্তর হবে সবচেয়ে বেশি ভোট, এবং যা ক্র্যাক বা অবৈধ নয়। চ্যালেঞ্জটি মুক্ত-সমাপ্ত - আমি কোনও উত্তর গ্রহণ করব না।
এই চ্যালেঞ্জের স্বার্থে, একটি গণনামূলক সিস্টেমকে চারটি বিষয় হিসাবে সংজ্ঞায়িত করা হবে:
একটি "প্রোগ্রাম সেট"
P
। এটি একটি প্রচুর পরিমাণে অসীম সেট হবে, যেমন স্ট্রিং, ইন্টিজারস, বাইনারি ট্রি, গ্রিডে পিক্সেলের কনফিগারেশন ইত্যাদি ((তবে নীচে প্রযুক্তিগত সীমাবদ্ধতা দেখুন))একটি "ইনপুট সেট"
I
, যা একটি গণনাযোগ্য অসীম সেটও হবে এবংP
এটির মতো সেট হওয়া দরকার না (যদিও তা হতে পারে)।একটি "আউটপুট সেট"
O
, যা একভাবে একটি countably অসীম সেট হবে, এবং হতে পারে অথবা হিসাবে একই নাও হতে পারেP
বাI
একটি আউটপুট উৎপাদন জন্য একটি নির্ণায়ক, মেকানিজম পদ্ধতি
o
প্রোগ্রাম থেকেp
এবং ইনপুটi
, যেখানেp
,i
এবংo
সদস্যP
,I
এবংO
যথাক্রমে। এই পদ্ধতিটি এমন হওয়া উচিত যে এটি নীতিগতভাবে কোনও টিউরিং মেশিন বা গণনার অন্যান্য বিমূর্ত মডেলটিতে প্রয়োগ করা যেতে পারে। প্রক্রিয়াটি অবশ্যই প্রোগ্রাম এবং এর ইনপুটটির উপর নির্ভর করে থামাতে ব্যর্থ হতে পারে।
সেট P
, I
এবং O
যেমন যে আপনি তাদের একটি গণনীয় পদ্ধতিতে স্ট্রিং হিসাবে প্রকাশ করতে পারেন হতে হবে। (সর্বাধিক বুদ্ধিমান পছন্দগুলির জন্য এটি কোনও ব্যাপার নয়; এই বিধি আপনাকে অদ্ভুত সেট বাছাই থেকে বিরত রাখতে উপস্থিত রয়েছে যেমন টুরিং মেশিনগুলির সেট যা থামে না))
টুরিং সম্পূর্ণতা নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হবে:
- কোনো গণনীয় আংশিক ফাংশন জন্য
f
থেকেI
থেকেO
, সেখানে একটি প্রোগ্রাম বিদ্যমানp
মধ্যেP
এমন যে দেওয়াp
এবং ইনপুটi
, আউটপুটf(i)
যদিf(i)
একটি মান আছে। (অন্যথায় প্রোগ্রামটি থামবে না))
উপরের সংজ্ঞায় "কম্পিউটেবল" শব্দের অর্থ "টুরিং মেশিন ব্যবহার করে গণনা করা যায়"।
মনে রাখবেন যে 110 বা বিটওয়াইড সাইক্লিক ট্যাগ কোনওটিই এই সংজ্ঞা দ্বারা টুরিং-সম্পূর্ণ নয় কারণ তাদের প্রয়োজনীয় ইনপুট-আউটপুট কাঠামো নেই। ল্যামডা ক্যালকুলাস সম্পূর্ণ টুরিং, দীর্ঘ হিসাবে হিসাবে আমরা সংজ্ঞায়িত I
এবং O
হতে চার্চ সংখ্যাসমূহ । (আমরা যদি সাধারণভাবে ল্যাম্বডা মত প্রকাশ করি I
এবং তা টুরিং-সম্পূর্ণ হয় না O
))
মনে রাখবেন যে আপনাকে আপনার ভাষার প্রয়োগ করতে হবে না, তবে আপনি যদি চান তবে আপনার উত্তরে আপনার একটির অন্তর্ভুক্ত করতে স্বাগত। তবে কোনওভাবেই ভাষা সংজ্ঞায়িত করার জন্য আপনার বাস্তবায়নের উপর নির্ভর করা উচিত নয় - ধারণাটি নিজের মধ্যে সম্পূর্ণ হওয়া উচিত, এবং যদি অনুমান এবং বাস্তবায়নের মধ্যে কোনও দ্বন্দ্ব হয় তবে এটি বাস্তবায়নের ক্ষেত্রে একটি ত্রুটি হিসাবে বিবেচনা করা উচিত।