টিউরিং-সম্পূর্ণতা কেবল একটি জিনিস এবং একটি জিনিস বলে: গণনার একটি মডেল টুরিং-সম্পূর্ণ, যদি কোনও ট্যুরিং মেশিন দ্বারা মডেল করা যায় এমন কোনও গণনাও সেই মডেল দ্বারা মডেল করা যায়।
সুতরাং, একটি ট্যুরিং মেশিন মডেল করতে পারে এমন গণনাগুলি কী কী? ঠিক আছে, প্রথম এবং সর্বাগ্রে, অ্যালান টুরিং এবং তার সহকর্মীদের মধ্যে কেবলমাত্র প্রাকৃতিক সংখ্যায় ফাংশনে আগ্রহী ছিলেন। সুতরাং, ট্যুরিং মেশিন (এবং λ-ক্যালকুলাস, এসকে কম্বিনেটর ক্যালকুলাস, rec-পুনরাবৃত্ত ফাংশন, ...) কেবল প্রাকৃতিক সংখ্যায় ফাংশনগুলির সংযোগযোগ্যতা সম্পর্কে কথা বলে। আপনি যদি প্রাকৃতিক সংখ্যায় কোনও ফাংশন সম্পর্কে কথা বলছেন না, তবে ট্যুরিং-সম্পূর্ণতার ধারণাটিও বোঝায় না, এটি কেবল প্রযোজ্য নয়।
তবে নোট করুন, আমরা প্রাকৃতিক সংখ্যা হিসাবে প্রচুর আকর্ষণীয় জিনিস এনকোড করতে পারেন। আমরা স্ট্রিংগুলিকে প্রাকৃতিক সংখ্যা হিসাবে এনকোড করতে পারি, গ্রাফগুলিকে প্রাকৃতিক সংখ্যা হিসাবে এনকোড করতে পারি, আমরা বুলিয়ানকে প্রাকৃতিক সংখ্যা হিসাবে এনকোড করতে পারি। আমরা ট্যুরিং মেশিনগুলিকে প্রাকৃতিক সংখ্যা হিসাবে এনকোড করতে পারি , যা আমাদের টিউরিং মেশিনগুলি তৈরি করতে দেয় যা ট্যুরিং মেশিনগুলির বিষয়ে কথা বলে!
এবং, অবশ্যই, প্রাকৃতিক সংখ্যার সমস্ত ফাংশন গণনাযোগ্য নয়। একটি ট্যুরিং মেশিন কেবল প্রাকৃতিক সংখ্যায় কিছু ফাংশন গণনা করতে পারে , λ-ক্যালকুলাস কেবল প্রাকৃতিক সংখ্যায় কিছু ফাংশন গণনা করতে পারে , এসকে সংযুক্তকারী ক্যালকুলাস কেবল প্রাকৃতিক সংখ্যায় কিছু ফাংশন গণনা করতে পারে ,…। আশ্চর্যরূপে (বা না), এটি প্রমাণিত হয়েছে যে গণনার প্রতিটি মডেল (যা আমাদের প্রকৃত মহাবিশ্বে বাস্তবে উপলব্ধিযোগ্য) প্রাকৃতিক সংখ্যায় একই ফাংশন গণনা করতে পারে (কমপক্ষে আমরা এখনও অবধি খুঁজে পাওয়া সমস্ত মডেলের জন্য)। [দ্রষ্টব্য: স্পষ্টতই, গণনার দুর্বল মডেল রয়েছে তবে আমরা এখনও এর চেয়ে শক্তিশালী কোনও খুঁজে পাইনি, আমাদের শারীরিক মহাবিশ্বের সাথে প্রকৃতভাবে বেমানান এমন কিছু বাদে যেমন আসল সংখ্যা বা সময়ের ভ্রমণ ব্যবহার করে মডেল]
এই সত্য যে, প্রচুর বিভিন্ন মডেলের সন্ধানের দীর্ঘ সময় পরে, আমরা খুঁজে পাই, প্রতি একক বার, তারা ঠিক একই ফাংশনগুলি গণনা করতে পারে, চার্চ-টিউরিং-থিসিসের ভিত্তি, যা বলে (মোটামুটিভাবে) যে সমস্ত গণনার মডেলগুলিও সমান শক্তিশালী এবং এগুলি সবাই "গণনাযোগ্য" হওয়ার অর্থ কী তার "আদর্শ" ধারণাটি ধারণ করে। (সিটিটি-র একটি দ্বিতীয়, আরও দার্শনিক দিক রয়েছে, যথা একটি অ্যালগরিদমের অনুসরণকারী একজন মানুষও একইভাবে টিএম গণনা করতে পারে এবং একইভাবে আরও কিছু করতে পারে না))
যাইহোক , এর কিছুই সম্পর্কে কিছু বলেনি
- বিভিন্ন মডেল কতটা দক্ষ
- তারা ব্যবহার করার জন্য কতটা সুবিধাজনক
- প্রাকৃতিক সংখ্যায় গণনা ফাংশন ছাড়াও তারা আর কী করতে পারে
এবং এটি হ'ল গণ্যকরণের বিভিন্ন মডেল (এবং প্রোগ্রামিং ভাষা) এর মধ্যে পার্থক্য কার্যকর হয়।
O(sizearray)O(size2array)sizearraysizearray
বিভিন্ন সুবিধার উদাহরণ হিসাবে, আপনি কেবল খুব উচ্চ স্তরের ভাষায় লিখিত কোড, সমাবেশে লিখিত কোড এবং একই সমস্যা সমাধানের জন্য একটি টিএম এর বর্ণনার তুলনা করতে পারেন।
এবং আপনার হালকা স্যুইচ তৃতীয় ধরণের পার্থক্যের উদাহরণ, কিছু মডেল এমন জিনিসগুলি করতে পারে যা প্রাকৃতিক সংখ্যায় ফাংশন নয় এবং এইভাবে টুরিং-সম্পূর্ণতার সাথে কোনও সম্পর্ক নেই।
আপনার নির্দিষ্ট প্রশ্নের উত্তর দিতে:
তবে টিউরিং সম্পূর্ণ ভাষায় রচিত কোনও প্রোগ্রাম কি আবার অন্য লিখিত হতে পারে?
না, যদি প্রোগ্রামটি প্রাকৃতিক সংখ্যায় একটি টিউরিং-গণনাযোগ্য ফাংশন গণনা করে। এবং তারপরেও এর জন্য একটি জটিল এনকোডিং দরকার হতে পারে। উদাহরণস্বরূপ, λ-ক্যালকুলাসে প্রাকৃতিক সংখ্যাও নেই, তাদের ফাংশনগুলি ব্যবহার করে এনকোড করা প্রয়োজন (কারণ ফাংশনগুলি কেবল λ-ক্যালকুলাসের একমাত্র জিনিস)।
ইনপুট এবং আউটপুটটির এই এনকোডিংটি খুব জটিল হতে পারে, যেমনটি অ্যালগরিদমটি প্রকাশ করতে পারে। সুতরাং, যখন এটি সত্যি যে কোনও প্রোগ্রাম করতে পুনর্লিখিত করা পুনর্লিখিত প্রোগ্রাম অনেক বেশী জটিল, অনেক বড় হতে পারে, আরো অনেক কিছু মেমরি ব্যবহার, এবং আরো অনেক মন্থর হতে।
আমার সমাবেশে যদি একটি হালকা বাটন অপকড থাকে? আমি লাইটব্লব ছাড়াই শারীরিকভাবে কোনও ভাষা কোনও সিস্টেমে (ভাষা) অনুকরণ করতে পারি না।
একটি লাইটবালব প্রাকৃতিক সংখ্যায় একটি টুরিং-গণনাযোগ্য ফাংশন নয়। সত্যই, একটি লাইটবুলব না একটি ফাংশন বা একটি গণনা হয়। লাইটব্লাব চালু এবং বন্ধ করা আই / ও পার্শ্ব-প্রতিক্রিয়া। ট্যুরিং মেশিনগুলি I / O এর পার্শ্ব প্রতিক্রিয়াগুলিকে মডেল করে না এবং টুরিং-সম্পূর্ণগুলি তাদের সাথে প্রাসঙ্গিক নয়।
যথেচ্ছ আসল সংখ্যাগুলিতে।
টিউরিং-সম্পূর্ণতা প্রাকৃতিক সংখ্যায় কেবল গণনীয় ফাংশনগুলির সাথে সম্পর্কিত হয়, এটি সত্যিকারের সংখ্যার সাথে নিজেকে উদ্বেগ করে না।
আপনার মত প্রশ্ন দুটি কারণে আসে যখন টিউরিং-সম্পূর্ণতা কেবল খুব আকর্ষণীয় হয় না:
- এটি খুব বেশি বাধা নয়। আপনার প্রয়োজন হয়
IF
, GOTO
, WHILE
, এবং একটি একক পূর্ণসংখ্যা পরিবর্তনশীল (পরিবর্তনশীল অভিমানী ইচ্ছামত বড় পূর্ণসংখ্যার ধরে রাখতে পারেন)। বা, পুনরাবৃত্তি। প্রচুর পরিমাণে এবং প্রচুর স্টাফ টুরিং-সম্পূর্ণ। কার্ড গেম ম্যাজিক: জমায়েত টুরিং-সম্পূর্ণ। সিএসএস 3 টিউরিং-সম্পূর্ণ। sendmail
কনফিগারেশন ফাইল টুরিং-সম্পূর্ণ। ইন্টেল x86 এমএমইউ টিউরিং-সম্পূর্ণ। ইন্টেল x86 MOV
নির্দেশ টিউরিং-সম্পূর্ণ। পাওয়ারপয়েন্ট অ্যানিমেশনগুলি টুরিং-সম্পূর্ণ। এক্সেল (স্ক্রিপ্টিং ছাড়াই, শুধুমাত্র সূত্র ব্যবহার করে) টিউরিং-সম্পূর্ণ। বিজিপি রাউটিং প্রোটোকল টিউরিং-সম্পূর্ণ। sed
টুরিং-সম্পূর্ণ। অ্যাপাচি mod_rewrite
বিধি টুরিং-সম্পূর্ণ। গুগলের জন্য " (দুর্ঘটনাক্রমে বা আশ্চর্যজনকভাবে) টুরিং সম্পূর্ণ"আরও কিছু আকর্ষণীয় উদাহরণ সন্ধান করতে almost যদি প্রায় সব কিছু টুরিং-সম্পূর্ণ হয় তবে টুরিং-সম্পূর্ণ হওয়া একটি আকর্ষণীয় সম্পত্তি হয়ে যায়।
- এটি আসলে কার্যকর হওয়ার দরকার নেই। দরকারী উপাদান প্রচুর হয় না টুরিং-সম্পূর্ণ। সংস্করণ 3 সামনে সিএসএস টুরিং-সম্পূর্ণ (এবং সত্য যে সিএসএস 3 নয় হয় আসলে যে কেউ ব্যবহার করা হয় না)। 1999 এর আগে এসকিউএল টিউরিং-সম্পূর্ণ ছিল না, তবুও এটি তীব্রভাবে কার্যকর ছিল। অতিরিক্ত লাইব্রেরি ছাড়া সি প্রোগ্রামিংয়ের ভাষা টিউরিং-সম্পূর্ণ বলে মনে হয় না । নির্ভরযোগ্যভাবে টাইপ করা ভাষাগুলি সংজ্ঞা অনুসারে কমবেশি, টুরিং-সম্পূর্ণ নয়, তবুও আপনি সেগুলিতে অপারেটিং সিস্টেম, ওয়েব সার্ভার এবং গেমগুলি লিখতে পারেন।
এড্রিনের লেখক এডউইন ব্র্যাডি এর কয়েকটি দিক সম্পর্কে কথা বলতে "টেট্রিস-সম্পূর্ণ" শব্দটি ব্যবহার করেছেন। টেট্রিস-সম্পূর্ণ হওয়ার বিষয়টি কঠোরভাবে সংজ্ঞায়িত করা হয়নি (সুস্পষ্ট "টেট্রিস বাস্তবায়নের জন্য ব্যবহার করা যেতে পারে" ব্যতীত) তবে এটি পর্যাপ্ত উচ্চ স্তরের এবং যথেষ্ট পরিমাণে মত প্রকাশের মতো উপাদানকে অন্তর্ভুক্ত করে যাতে আপনি পাগল না হয়ে কোনও গেম লিখতে পারবেন, সক্ষম হচ্ছেন বাইরের বিশ্বের সাথে যোগাযোগ করুন (ইনপুট এবং আউটপুট), পার্শ্ব প্রতিক্রিয়া প্রকাশ করতে সক্ষম হওয়া, ইভেন্ট লুপটি লিখতে সক্ষম হওয়া, প্রতিক্রিয়াশীল, অ্যাসিনক্রোনাস এবং সমবর্তী প্রোগ্রামিং প্রকাশ করতে সক্ষম হওয়া, অপারেটিং সিস্টেমের সাথে ইন্টারেক্ট করতে সক্ষম হওয়া, সক্ষম হওয়া বিদেশী গ্রন্থাগারগুলির সাথে কথোপকথন করা (অন্য কথায়: সি কোড দ্বারা কল করতে এবং কল করতে সক্ষম হওয়া) এবং এ জাতীয়। এগুলি টিউরিং-সম্পূর্ণতার চেয়ে সাধারণ উদ্দেশ্যে প্রোগ্রামিং ভাষার আরও আকর্ষণীয় বৈশিষ্ট্য।
আপনি যে প্রশ্নটি আকর্ষণীয়ভাবে সংযুক্ত করেছেন তার উত্তরটি আপনি খুঁজে পেতে পারেন , যা কিছু ভিন্ন ভিন্ন প্রশ্নের উত্তর সত্ত্বেও একই পয়েন্টগুলিতে স্পর্শ করে।