একটি অ্যালগরিদম, একটি ভাষা এবং একটি সমস্যার মধ্যে পার্থক্য কী?


40

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


একটি অ্যালগরিদম একটি সমস্যা সমাধানের একটি উপায়।
রিনিয়ারপোস্ট

উত্তর:


53

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

ভাষা : একটি ভাষা কেবল স্ট্রিংগুলির সেট। আপনি এই ধরনের হিসাবে একটি বর্ণমালা থাকে, তাহলে , তারপর Σ * একমাত্র প্রতীক ধারণকারী সব শব্দের সেট Σ । উদাহরণস্বরূপ, { 0 , 1 } * যে কোন দৈর্ঘ্যের সব বাইনারি ক্রম সেট। যদিও একটি বর্ণমালা বাইনারি হওয়ার দরকার নেই। এটি অখণ্ড, ত্রৈমাসিক ইত্যাদি হতে পারেΣΣΣ{0,1}

একটি বর্ণমালা উপর একটি ল্যাঙ্গুয়েজ কোন উপসেট Σ *ΣΣ

সমস্যা : একটি সমস্যা হ'ল কিছু ইনপুট সম্পর্কে কিছু প্রশ্ন যা আমরা উত্তর দিতে চাই। বিশেষত, একটি সিদ্ধান্ত সমস্যা এমন একটি প্রশ্ন যা জিজ্ঞাসা করে, "আমাদের প্রদত্ত ইনপুটটি কি সম্পত্তি পূরণ করে ?X

X

L={wwyXyX}

কোনও সিদ্ধান্ত সমস্যার ইনপুটটির উত্তর "হ্যাঁ" হয় কিনা তা নির্ধারণ করা বর্ণমালার উপরের ইনপুটটির একটি এনকোডিং সংশ্লিষ্ট ভাষায় কিনা তা নির্ধারণের সমতুল্য।

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

M

L(M)={wMw}

RRE

ভাষা এবং ট্যুরিং মেশিনের মধ্যে সম্পর্ক নীচে রয়েছে

  1. প্রতিটি টিউরিং মেশিন ঠিক একটি ভাষা গ্রহণ করে language

  2. একাধিক ট্যুরিং মেশিন থাকতে পারে যা প্রদত্ত ভাষা গ্রহণ করে

  3. কোনও টিউরিং মেশিন নেই যা প্রদত্ত ভাষা গ্রহণ করে।

অ্যালগরিদম এবং সমস্যা সম্পর্কে আমরা মোটামুটি একই কথা বলতে পারি: প্রতিটি অ্যালগোরিদম একটি সমস্যা সমাধান করে তবে 0 বা আরও অনেকগুলি থাকতে পারে একটি প্রদত্ত সমস্যা সমাধান করে।

সময় জটিলতা : অ্যালগরিদম এবং সমস্যার মধ্যে বিভ্রান্তির অন্যতম সাধারণ উত্স জটিলতা ক্লাসের ক্ষেত্রে। সঠিক বরাদ্দটি নিম্নরূপ সংক্ষিপ্ত করা যেতে পারে:

  • একটি অ্যালগরিদম হয়েছে একটি সময় জটিলতা
  • একটি সমস্যা একটি জটিল শ্রেণীর অন্তর্গত

f(n)f(n)n

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

P,NP,PSPACE,EXPTIMEPXXPXXP


1
আপনি উপযুক্ত হিসাবে দেখুন এই উত্তর সম্পাদনা করতে দ্বিধা বোধ করবেন না।
jmite

আমি মনে করি এটি উল্লেখ করা ভাল হবে যে অন্যান্য ধরণের গণ্য সমস্যা (যেমন অনুসন্ধানের সমস্যা) রয়েছে।
কাভেহ

1
বল কে? সেই ধরণের চিন্তাভাবনার অংশটি কেন টুরিং মেশিনের অভিপ্রায়ের আগে লোকেরা আনুষ্ঠানিকভাবে তৈরি এবং অ্যালগরিদমকে এতটা সমস্যায় ফেলেছিল। চার্চ-টিউরিং থিসিস বলেছে যে একটি অ্যালগরিদম হল একটি ট্যুরিং মেশিন এবং তদ্বিপরীত, এবং সমস্ত টিউরিং মেশিনগুলি থামে না।
jmite

4
বাবু, এটি আমি দেখা সবচেয়ে বড় উত্তর। আপনি সবেমাত্র 1 পৃষ্ঠায় কম্পিউটার বিজ্ঞানের সমস্ত সংক্ষিপ্তসার করেছেন।
ক্যাপ্টেন কোডম্যান

1
@ gnasher729 একটি উপপাদ্য আছে যা বলেছে যে এটি যাচাইয়ের ক্ষেত্রে সংজ্ঞায়িত করা যেতে পারে তবে এটির সংজ্ঞাটি নন
ডিস্ট্রিমেন্টিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.