উত্তর:
এখানে সংক্ষিপ্ত ব্যাখ্যা:
টুরিং কমপ্লিট সিস্টেম বলতে বোঝায় এমন একটি সিস্টেম যার মধ্যে একটি প্রোগ্রাম লেখা যেতে পারে যা একটি উত্তর খুঁজে পাবে (যদিও রানটাইম বা স্মৃতি সম্পর্কিত কোনও গ্যারান্টি ছাড়াই)।
সুতরাং, যদি কেউ বলেন "আমার নতুন জিনিসটি টুরিং কমপ্লিট" যার অর্থ নীতিগতভাবে (যদিও প্রায়শই অনুশীলনে না হয়) এটি কোনও গণনার সমস্যা সমাধানের জন্য ব্যবহার করা যেতে পারে।
কিছুটা সময় এটি রসিকতা ... একজন লোক vi এ ট্যুরিং মেশিন সিমুলেটর লিখেছিলেন, সুতরাং এটি বলা যেতে পারে যে পৃথিবীতে ভি সম্ভবত একমাত্র কম্পিউটেশনাল ইঞ্জিন।
এখানে সহজ ব্যাখ্যা
অ্যালান টুরিং এমন একটি মেশিন তৈরি করেছেন যা একটি প্রোগ্রাম নিতে পারে, সেই প্রোগ্রামটি চালাতে পারে এবং কিছু ফলাফল প্রদর্শন করতে পারে। তবে তখন তাকে বিভিন্ন প্রোগ্রামের জন্য বিভিন্ন মেশিন তৈরি করতে হয়েছিল। সুতরাং তিনি "ইউনিভার্সাল ট্যুরিং মেশিন" তৈরি করেছেন যা কোনও প্রোগ্রাম গ্রহণ করতে এবং চালাতে পারে।
প্রোগ্রামিং ভাষা সেই মেশিনগুলির মতো (ভার্চুয়াল হলেও) similar তারা প্রোগ্রাম নেয় এবং এগুলি চালায়। এখন, একটি প্রোগ্রামিং ভাষাটিকে "টিউরিং সম্পূর্ণ" বলা হয়, যদি এটি কোনও প্রোগ্রাম চালাতে পারে (ভাষা নির্বিশেষে) যে একটি টুরিং মেশিন যথেষ্ট সময় এবং স্মৃতি দিয়ে চালাতে পারে।
উদাহরণস্বরূপ: ধরা যাক যে এমন একটি প্রোগ্রাম রয়েছে যা 10 নম্বর নেয় এবং সেগুলি যুক্ত করে। টুরিং মেশিন সহজেই এই প্রোগ্রামটি চালাতে পারে। তবে এখন কল্পনা করুন যে কোনও কারণে আপনার প্রোগ্রামিং ভাষা একই সংযোজন করতে পারে না। এটি এটিকে "টুরিং অসম্পূর্ণ" করে তুলবে (তাই কথা বলার জন্য)। অন্যদিকে, যদি এটি সর্বজনীন টুরিং মেশিন চালাতে পারে এমন কোনও প্রোগ্রাম চালাতে পারে, তবে এটি টুরিং সম্পূর্ণ।
বেশিরভাগ আধুনিক প্রোগ্রামিং ল্যাঙ্গুয়েজ (যেমন জাভা, জাভাস্ক্রিপ্ট, পার্ল ইত্যাদি) সমস্ত ট্যুরিং সম্পূর্ণ কারণ তারা প্রত্যেকে প্রোগ্রাম যোগ করার জন্য প্রয়োজনীয় সমস্ত বৈশিষ্ট্যগুলি যেমন গুন, যদি-অন্য শর্ত, রিটার্ন স্টেটমেন্ট, সংরক্ষণ / পুনরুদ্ধার / মুছার উপায়গুলি প্রয়োগ করে ডেটা এবং তাই।
আপডেট: আপনি আমার ব্লগ পোস্টে আরও শিখতে পারেন: "জাভাস্ক্রিপ্টটি নিরাময় সম্পূর্ণ" - ব্যাখ্যা করা হয়েছে ined
উইকিপিডিয়া থেকে :
অ্যালান ট্যুরিংয়ের নাম অনুসারে টুরিং সম্পূর্ণতা, এটি এত তাৎপর্যপূর্ণ যে, এতদূর অগ্রসর হওয়া একটি কম্পিউটিং ডিভাইসের জন্য প্রতিটি প্রশংসনীয় নকশাকে বিশ্বজনীন ট্যুরিং মেশিন দ্বারা অনুকরণ করা যেতে পারে - এটি একটি পর্যবেক্ষণ যা চার্চ-টুরিং থিসিস নামে পরিচিত। সুতরাং, একটি মেশিন যা সর্বজনীন টুরিং মেশিন হিসাবে কাজ করতে পারে, নীতিগতভাবে, অন্য কোনও প্রোগ্রামযোগ্য কম্পিউটার সক্ষম এমন কোনও গণনা সম্পাদন করতে পারে। যাইহোক, মেশিনের জন্য একটি প্রোগ্রাম লেখার জন্য প্রয়োজনীয় প্রচেষ্টা, গণনা সম্পাদন করতে মেশিনের যে সময় লাগতে পারে, বা মেশিনটি যে কোনও সামর্থ্যকে গণনার সাথে সম্পর্কিত নয়, তার সাথে এটির কোনও সম্পর্ক নেই।
সত্যিকারের টুরিং-সম্পূর্ণ মেশিনগুলি শারীরিকভাবে অসম্ভবভাবে অসম্ভব, কারণ তাদের সীমাহীন স্টোরেজ প্রয়োজন, টুরিং সম্পূর্ণতা প্রায়শই আলগাভাবে শারীরিক মেশিন বা প্রোগ্রামিং ভাষায় দায়ী করা হয় যেগুলি সীমাহীন স্টোরেজ থাকলে সর্বজনীন হবে। সমস্ত আধুনিক কম্পিউটার এই অর্থে টুরিং-সম্পূর্ণ।
"টিউরিংয়ের সম্পূর্ণ অর্থ 'যথেষ্ট সময় এবং স্থান প্রদত্ত গণনীয় সমস্যার জবাব দিতে সক্ষম" বলে এ ছাড়া আপনি কীভাবে আরও প্রযুক্তিগত হতে পারেন তা আমি জানি না।
একটি টুরিং সম্পূর্ণ ভাষা হ'ল যে কোনও গণনা সম্পাদন করতে পারে। চার্চ-টুরিং গবেষণামূলক প্রবন্ধ রাজ্যের যে কোনো প্রতিপাদ্য গণনার একটি টুরিং মেশিন দ্বারা সম্পন্ন করা যাবে। একটি ট্যুরিং মেশিন এমন একটি মেশিন যা অসীম এলোমেলো অ্যাক্সেস মেমরি এবং একটি সীমাবদ্ধ 'প্রোগ্রাম' দেয় যখন সেই নির্দিষ্ট স্মৃতিটি পড়তে, লিখতে ও সেই মেমরিটি জুড়ে সরিয়ে নেওয়া উচিত, যখন এটি একটি নির্দিষ্ট ফলাফলের সাথে শেষ হতে পারে এবং এর পরে কী করা উচিত। টুরিং মেশিনে ইনপুটটি শুরু হওয়ার আগে তার স্মৃতিতে রাখা হয়।
একজন টুরিং মেশিন কি এটা স্মরণে সূচিত উপর ভিত্তি করে সিদ্ধান্ত নিতে পারেন - 'ভাষা' যে শুধুমাত্র সমর্থন +
, -
, *
, এবং /
পূর্ণসংখ্যার উপর টুরিং সম্পূর্ণ নয় কারণ এটা তার ইনপুটের ভিত্তিতে একটি পছন্দ করতে পারবেন না, কিন্তু একটি টুরিং মেশিন পারেন।
একটি টিউরিং মেশিন চিরতরে চলতে পারে - আমরা যদি জাভা, জাভাস্ক্রিপ্ট, বা পাইথন নিয়ে যাই এবং কোনও ধরণের লুপ, গোটো বা ফাংশন কল করার ক্ষমতা সরিয়ে ফেলেছি তবে এটি টিউরিং সম্পূর্ণ হবে না কারণ এটি একটি সালিশী গণনা সম্পাদন করতে পারে না যে কখনই শেষ হয় না। কোক একটি উপপাদ্য প্রবাদ যা এমন প্রোগ্রামগুলি প্রকাশ করতে পারে না যা শেষ হয় না, সুতরাং এটি টুরিং সম্পূর্ণ নয়।
একটি টিউরিং মেশিন অসীম স্মৃতি ব্যবহার করতে পারে - এমন একটি ভাষা যা জাভার মতো ছিল তবে এটি একবারে 4 গিগা বাইটের বেশি মেমরি ব্যবহার করলে এটি টুরিং সম্পূর্ণ হবে না, কারণ একটি টুরিং মেশিন অসীম স্মৃতি ব্যবহার করতে পারে। এ কারণেই আমরা আসলে একটি ট্যুরিং মেশিনটি তৈরি করতে পারি না , তবে জাভা এখনও একটি টুরিং সম্পূর্ণ ভাষা কারণ জাভা ভাষার অসীম স্মৃতি ব্যবহার করতে বাধা দেয় না। নিয়মিত প্রকাশগুলি টিউরিং সম্পূর্ণ না হওয়ার এক কারণ এটি।
একটি টিউরিং মেশিনের এলোমেলো অ্যাক্সেস মেমরি রয়েছে - এমন একটি ভাষা যা আপনাকে কেবল মেমরির মাধ্যমে কাজ করতে দেয় push
এবং pop
স্ট্যাকের জন্য অপারেশন সম্পূর্ণ হয় না। যদি আমি একটি 'ভাষা' যে একটি স্ট্রিং সার্চ আছে একবার এবং শুধুমাত্র ঠেলাঠেলি এবং একটি স্ট্যাক থেকে পপিং দ্বারা মেমরি ব্যবহার করতে পারেন, এটা আমাকে বলতে পারেন যে কিনা (
স্ট্রিং নিজস্বতা আছে )
পরে ঠেলাঠেলি যখন এটি সূচিত দ্বারা (
এবং যখন দেখেন পপিং )
। যাইহোক, এটি আমাকে বলতে পারে না যে প্রত্যেকের (
নিজস্ব )
নিজস্বতা আছে এবং পরে প্রত্যেকের [
নিজস্ব নিজস্ব ]
রয়েছে (দ্রষ্টব্য যে ([)]
এই মানদণ্ডটি পূরণ করে তবে ([]]
তা পূরণ করে না)। একটি টুরিং মেশিন এর র্যান্ডম অ্যাক্সেস মেমরিটি ট্র্যাক করার জন্য ()
এবং ব্যবহার করতে পারে[]
আলাদাভাবে, তবে কেবল স্ট্যাকের এই ভাষাটি পারে না।
একটি ট্যুরিং মেশিন অন্য যে কোনও ট্যুরিং মেশিনকে অনুকরণ করতে পারে - একটি টুরিং মেশিন, যখন একটি উপযুক্ত 'প্রোগ্রাম' দেওয়া হয়, তখন অন্য টিউরিং মেশিনের 'প্রোগ্রাম' নিতে এবং তা নির্বিচার ইনপুটটিতে অনুকরণ করতে পারে। যদি আপনার কাছে এমন একটি ভাষা থাকে যা পাইথন দোভাষীকে প্রয়োগ করা থেকে নিষেধ করা হয়েছিল, তবে এটি টিউরিং সম্পূর্ণ হবে না।
যদি আপনার ভাষায় অসীম এলোমেলো অ্যাক্সেস মেমরি, শর্তসাপেক্ষ বাস্তবায়ন এবং পুনরাবৃত্ত কার্যকরের কিছু ফর্ম থাকে তবে এটি সম্ভবত ট্যুরিং সম্পূর্ণ। আরও অনেক বিদেশী সিস্টেম রয়েছে যা এখনও টিউরিং মেশিন যা কিছু করতে পারে তা অর্জন করতে পারে, যা তাদের ট্যুরিংকেও সম্পূর্ণ করে তোলে:
cyclic tag system
এবং না universal cyclic tag system
। সুতরাং - নিবন্ধটি এসকিউএল টুরিং সম্পূর্ণতা প্রমাণ করে না doesn't (বা আমি কিছু ভুল
মূলত, টিউরিং-সম্পূর্ণতা একটি সংক্ষিপ্ত প্রয়োজনীয়তা, সীমাহীন পুনরাবৃত্তি।
স্মৃতিতেও আবদ্ধ নয়।
আমি এটি স্বাধীনভাবে চিন্তা করেছিলাম, তবে এখানে দৃ the়তা সম্পর্কে কিছু আলোচনা করব is আমার এলএসপির সংজ্ঞা আরও প্রসঙ্গ সরবরাহ করে।
এখানে অন্যান্য উত্তরগুলি সরাসরি টুরিং-সম্পূর্ণতার মৌলিক সংজ্ঞাটি দেয় না।
while (p) { /* ... */ }
। "আমি সাধারণীকরণ পুনরাবৃত্তি এবং যে কোনও সম্ভাব্য গণনা সম্পাদনের দক্ষতার মধ্যে সমতা উল্লেখ করছি।" চার্চের থিসিস একটি খুব আলাদা বিষয় এবং সত্যই আলাদাভাবে আলোচনা করা উচিত ।
টিউরিং সম্পূর্ণর অর্থ হল এটি ট্যুরিং মেশিনের মতো কমপক্ষে শক্তিশালী । এর অর্থ এমন কোনও কিছু যা ট্যুরিং মেশিন দ্বারা গুণ করা যায় কোনও ট্যুরিং কমপ্লিট সিস্টেম দ্বারা গুণ করা যায়।
টুরিং মেশিনের চেয়ে বেশি শক্তিশালী কোনও ব্যবস্থা এখনও কেউ খুঁজে পায়নি। সুতরাং, আপাতত, কোনও সিস্টেমকে ট্যুরিং কমপ্লিট বলা যেমন সিস্টেম বলা হয় তেমনি কোনও পরিচিত কম্পিউটারিং সিস্টেমের মতো শক্তিশালী (দেখুন চার্চ-টুরিং থিসিস )।
সহজ কথায়, একটি টুরিং-সম্পূর্ণ সিস্টেম যে কোনও সম্ভাব্য গণ্য সমস্যা সমাধান করতে পারে।
মূল প্রয়োজনগুলির মধ্যে একটি হ'ল স্ক্র্যাচপ্যাডের আকারটি আনবাউন্ড করা উচিত এবং স্ক্র্যাচপ্যাডে প্রাইস রাইটগুলি অ্যাক্সেস করতে রিওয়াইন্ড করা সম্ভব।
সুতরাং বাস্তবে কোনও সিস্টেমই টুরিং-সম্পূর্ণ হয় না।
বরং কিছু সিস্টেম আনবাউন্ডেড মেমরির মডেলিং করে এবং সিস্টেমের মেমরির মধ্যে উপযুক্ত যে কোনও সম্ভাব্য গণনা সম্পাদন করে আনুমানিক টুরিং-সম্পূর্ণতা।
আমি মনে করি "ট্যুরিং কমপ্লিট" ধারণার গুরুত্বটি একটি কম্পিউটিং মেশিন (প্রয়োজনীয় কোনও যান্ত্রিক / বৈদ্যুতিন "কম্পিউটার" নয়) চিহ্নিত করার ক্ষমতাতে রয়েছে যার প্রক্রিয়াগুলি সহজ এবং সরল সমন্বয়ে গঠিত "সাধারণ" নির্দেশিকায় বিভক্ত করা যেতে পারে নির্দেশাবলী, যে একটি ইউনিভার্সাল মেশিন ব্যাখ্যা করতে পারে এবং তারপরে কার্যকর করতে পারে।
আমি দ্য অ্যানোটেটেড টুরিংয়ের সুপারিশ করছি
@ মার্ক আমি ভাবছি আপনি যা ব্যাখ্যা করছেন তা হ'ল ইউনিভার্সাল ট্যুরিং মেশিন এবং ট্যুরিং কমপ্লিটের বর্ণনার মধ্যে একটি মিশ্রণ।
ট্যুরিং কমপ্লিট এমন কিছু যা ব্যবহারিক অর্থে ইউনিভার্সাল মেশিন (একটি ডেস্কটপ কম্পিউটার) দ্বারা চালিত হতে পারে এমন একটি মেশিন / প্রক্রিয়া / গণনা যা একটি প্রোগ্রাম হিসাবে রচনা এবং প্রতিনিধিত্ব করতে সক্ষম হবে। যদিও এটি সময় বা সঞ্চয় করার জন্য বিবেচনা করে না, যেমন অন্যরা উল্লেখ করেছেন।
আমি সহজ কথায় যা বুঝি:
টিউরিং সম্পূর্ণ: একটি প্রোগ্রামিং ভাষা / প্রোগ্রাম যা গণনা করতে পারে, এটি টুরিং সম্পূর্ণ।
উদাহরণ স্বরূপ :
আপনি কি জাস্ট এইচটিএমএল ব্যবহার করে দুটি সংখ্যা যুক্ত করতে পারেন ? (উত্তর হ'ল ' না ', সংযোজন সম্পাদনের জন্য আপনাকে জাভাস্ক্রিপ্ট ব্যবহার করতে হবে)) সুতরাং, এইচটিএমএল টিউরিং সম্পূর্ণ নয়।
জাভা, সি ++, পাইথন, জাভাস্ক্রিপ্ট, ইথেরিয়ামের জন্য সলিডিসিটি ইত্যাদি টিউরিং সম্পূর্ণ হয় কারণ আপনি এই ভাষা ব্যবহার করে দুটি সংখ্যা যুক্ত করার মতো গননা করতে পারেন।
আশাকরি এটা সাহায্য করবে.
এটি পরীক্ষা এবং শাখা করতে পারে তবে এটি সম্পূর্ণ (একটি 'যদি' রয়েছে)
একটি ট্যুরিং মেশিনের প্রয়োজন যে কোনও প্রোগ্রাম শর্ত পরীক্ষা করতে পারে। এটা মৌলিক।
প্লেয়ার পিয়ানো রোলটি বিবেচনা করুন। প্লেয়ার পিয়ানো একটি অত্যন্ত জটিল সংগীত বাজতে পারে তবে সঙ্গীতে কোনও শর্তযুক্ত যুক্তি নেই। এটি টুরিং সম্পূর্ণ।
শর্তসাপেক্ষ যুক্তি হ'ল ট্যুরিং কমপ্লিট এমন কোনও মেশিনের শক্তি এবং বিপদ উভয়ই।
পিয়ানো রোলটি প্রতিবার থামার গ্যারান্টিযুক্ত। কোনও টিএম এর জন্য এরকম কোনও গ্যারান্টি নেই। একে বলা হয় “থামানো সমস্যা”।
যেমন ওয়েলন ফ্লিন বলেছেন :
টিউরিং সম্পূর্ণর অর্থ হল এটি ট্যুরিং মেশিনের মতো কমপক্ষে শক্তিশালী।
আমি বিশ্বাস করি যে এটি ভুল, কোনও সিস্টেম টুরিং সম্পূর্ণ হয় যদি এটি টুরিং মেশিনের মতোই শক্তিশালী হয়, অর্থাৎ মেশিন দ্বারা করা প্রতিটি গণনা সিস্টেমের দ্বারা করা সম্ভব হয় তবে সিস্টেমের দ্বারা করা প্রতিটি গণনাও টুরিং মেশিনের মাধ্যমে করা সম্ভব ।
বেশিরভাগ প্রোগ্রামারদের কাছে ব্যবহারিক ভাষার ভাষায়, টুরিং সম্পূর্ণতা সনাক্তকরণের স্বাভাবিক উপায়টি যদি ভাষা বিবৃতিগুলি (নির্দিষ্ট উপরের সীমাগুলির সাথে বিবৃতিগুলির জন্য পাস্কাল-শৈলীর বিপরীতে) থাকে তবে নেস্টেড আনবাউন্ডেড সিমুলেশনকে অনুমতি দেয় বা অনুমতি দেয়।
কোনও সম্পর্কিত ডেটাবেস ইনপুট অক্ষাংশ এবং স্থান এবং রাস্তার দ্রাঘিমাংশ আনতে পারে এবং তাদের মধ্যে সংক্ষিপ্ততম পথটি গণনা করতে পারে - না। এটি একটি সমস্যা যা দেখায় যে এসকিউএল টিউরিং সম্পূর্ণ নয়।
তবে সি ++ এটি করতে পারে এবং যে কোনও সমস্যা করতে পারে। এইভাবে হয়।