শ্রেণী এনপি, যা "অনির্ধারিত বহুপদী সময়" এর জন্য দাঁড়ায়, এটি গণনাগত জটিলতা তত্ত্বের একটি মৌলিক ধারণা, তাত্ত্বিক কম্পিউটার বিজ্ঞানের একটি উপক্ষেত্র। NP বোঝার জন্য, একজনকে প্রথমে সিদ্ধান্তের সমস্যাগুলির ধারণাটি উপলব্ধি করতে হবে, যা হ্যাঁ-বা-না-এর উত্তর সহ প্রশ্ন। এই প্রসঙ্গে একটি ভাষা কিছু বর্ণমালার উপর স্ট্রিংগুলির একটি সেটকে বোঝায়, যেখানে প্রতিটি স্ট্রিং একটি সিদ্ধান্ত সমস্যার একটি উদাহরণ এনকোড করে।
একটি ভাষা (L) NP তে বলা হয় যদি (L) এর জন্য একটি বহুপদী-সময় যাচাইকারী থাকে। একটি যাচাইকারী একটি নির্ধারক অ্যালগরিদম (V) যা দুটি ইনপুট নেয়: একটি উদাহরণ (x) এবং একটি শংসাপত্র (y)। শংসাপত্র (y) একটি "সাক্ষী" বা "প্রমাণ" হিসাবেও পরিচিত। যাচাইকারী (V) শংসাপত্র (y) নিশ্চিত করে যে (x) ভাষা (L) এর অন্তর্গত কিনা তা পরীক্ষা করে। আনুষ্ঠানিকভাবে, একটি ভাষা (L) NP-তে থাকে যদি একটি বহুপদী-সময় অ্যালগরিদম (V) এবং একটি বহুপদী (p(n)) থাকে যাতে প্রতিটি স্ট্রিং (x এ L) এর জন্য একটি স্ট্রিং (y) থাকে |y| leq p(|x|)) এবং (V(x, y) = 1)। বিপরীতভাবে, প্রতিটি স্ট্রিং (x notin L) এর জন্য কোন স্ট্রিং (y) নেই যেটি (V(x, y) = 1)।
এই ধারণাটি ব্যাখ্যা করার জন্য, "বুলিয়ান সন্তুষ্টি" (SAT) এর সুপরিচিত সমস্যা বিবেচনা করুন। SAT সমস্যাটি জিজ্ঞাসা করে যে প্রদত্ত বুলিয়ান সূত্রে ভেরিয়েবলের জন্য সত্য মানগুলির একটি অ্যাসাইনমেন্ট আছে কিনা যেমন সূত্রটি সত্য হিসাবে মূল্যায়ন করে। SAT সমস্যাটি NP-তে কারণ, একটি বুলিয়ান সূত্র ( phi ) এবং এর ভেরিয়েবলের সত্য মানের একটি অ্যাসাইনমেন্ট ( আলফা ) দেওয়া হলে, কেউ বহুপদী সময়ে যাচাই করতে পারে যে ( alpha ) ( phi ) সন্তুষ্ট করে কিনা। এখানে, উদাহরণ ( x ) হল বুলিয়ান সূত্র ( phi ), এবং শংসাপত্র ( y ) হল অ্যাসাইনমেন্ট ( আলফা )। যাচাইকারী ( V ) পরীক্ষা করে যে ( alpha ) ( phi ) কে সত্য করে তোলে, যা ( phi ) এর আকারের সাথে বহুপদী সময়ে করা যেতে পারে।
আরেকটি দৃষ্টান্তমূলক উদাহরণ হল "হ্যামিল্টোনিয়ান পাথ" সমস্যা। এই সমস্যাটি জিজ্ঞাসা করে যে প্রদত্ত গ্রাফে এমন একটি পথ আছে কিনা যা প্রতিটি শীর্ষবিন্দুকে ঠিক একবার পরিদর্শন করে। হ্যামিলটোনিয়ান পাথ সমস্যাটি এনপিতেও রয়েছে কারণ, একটি গ্রাফ ( G ) এবং শীর্ষবিন্দুগুলির একটি ক্রম ( P ) দেওয়া হলে, কেউ বহুপদী সময়ে যাচাই করতে পারে যে ( P ) ( G ) এ একটি হ্যামিলটোনিয়ান পথ কিনা। এই ক্ষেত্রে, উদাহরণ ( x ) হল গ্রাফ ( G ) এবং শংসাপত্র ( y ) হল শীর্ষবিন্দুগুলির ক্রম ( P )। যাচাইকারী ( V ) পরীক্ষা করে যে ( P ) একটি হ্যামিলটোনিয়ান পাথ গঠন করে, যা ( G ) এর আকারের সাথে বহুপদী সময়ে করা যেতে পারে।
বহুপদী-সময় যাচাইযোগ্যতার ধারণাটি গুরুত্বপূর্ণ কারণ এটি দক্ষতার সাথে পরীক্ষাযোগ্য সমস্যাগুলি চিহ্নিত করার একটি উপায় প্রদান করে, এমনকি যদি সমাধানটি গণনাগতভাবে অসম্ভাব্য হতে পারে। এটি ( P = NP ) কিনা সেই বিখ্যাত প্রশ্নের দিকে নিয়ে যায়, যা জিজ্ঞাসা করে যে প্রতিটি সমস্যা যার সমাধান বহুপদী সময়ে যাচাই করা যায় তা বহুপদী সময়েও সমাধান করা যেতে পারে। ক্লাস ( P ) এ সিদ্ধান্তের সমস্যা রয়েছে যা একটি নির্ধারক ট্যুরিং মেশিন দ্বারা বহুপদী সময়ে সমাধান করা যেতে পারে। যদি ( P = NP ), তাহলে এর অর্থ হবে যে একটি বহুপদী-সময় যাচাইকারীর প্রতিটি সমস্যার একটি বহুপদী-সময় সমাধানকারীও রয়েছে। এই প্রশ্নটি কম্পিউটার বিজ্ঞানের সবচেয়ে গুরুত্বপূর্ণ উন্মুক্ত সমস্যাগুলির মধ্যে একটি।
NP-এর অন্যতম প্রধান বৈশিষ্ট্য হল এটি বহুপদী-সময় হ্রাসের অধীনে বন্ধ হয়ে যায়। একটি ভাষা ( L_1 ) থেকে একটি ভাষা ( L_2 ) একটি বহুপদী-সময় হ্রাস হল একটি বহুপদী-সময় গণনাযোগ্য ফাংশন ( f ) যেমন ( x in L_1 ) যদি এবং শুধুমাত্র যদি ( f(x) L_2 তে)। যদি ( L_1 ) থেকে ( L_2 ) এবং ( L_2 ) এনপিতে একটি বহুপদী-সময় হ্রাস পাওয়া যায়, তাহলে ( L_1 )ও NP-তে থাকে। এই সম্পত্তিটি এনপি-সম্পূর্ণতার অধ্যয়নে সহায়ক ভূমিকা পালন করে, যা এনপি-তে "সবচেয়ে কঠিন" সমস্যা চিহ্নিত করে। একটি সমস্যা NP-সম্পূর্ণ হয় যদি এটি NP-এ থাকে এবং NP-এর প্রতিটি সমস্যা বহুপদী সময়ে কমিয়ে আনা যায়। SAT সমস্যাটি ছিল NP-সম্পূর্ণ প্রমাণিত প্রথম সমস্যা, এবং এটি অন্যান্য সমস্যার NP-সম্পূর্ণতা প্রমাণের ভিত্তি হিসাবে কাজ করে।
বহুপদী-সময় যাচাইযোগ্যতার ধারণাটি আরও ব্যাখ্যা করতে, "সাবসেট সমষ্টি" সমস্যাটি বিবেচনা করুন। এই সমস্যাটি জিজ্ঞাসা করে যে প্রদত্ত পূর্ণসংখ্যার সেটের একটি উপসেট আছে কিনা যা একটি নির্দিষ্ট লক্ষ্য মানের সাথে যোগ করে। উপসেট সমষ্টি সমস্যাটি NP-তে কারণ, পূর্ণসংখ্যার একটি সেট (S), একটি লক্ষ্য মান (t) এবং (S) এর একটি উপসেট (S') দেওয়া হলে, কেউ বহুপদী সময়ে যাচাই করতে পারে যে উপাদানগুলির যোগফল আছে কিনা ( S' ) সমান ( t )। এখানে, উদাহরণ ( x ) হল জোড়া ( (S, t) ), এবং শংসাপত্র ( y ) হল উপসেট ( S' )। যাচাইকারী (V) পরীক্ষা করে যে (S') উপাদানগুলির যোগফল (t) সমান কিনা, যা (S) এর আকারের সাথে বহুপদী সময়ে করা যেতে পারে।
বহুপদী-সময় যাচাইযোগ্যতার গুরুত্ব তাত্ত্বিক বিবেচনার বাইরে প্রসারিত। ব্যবহারিক পরিভাষায়, এর অর্থ হল NP-তে সমস্যার জন্য, যদি একটি প্রস্তাবিত সমাধান (শংসাপত্র) প্রদান করা হয়, তবে এটি দক্ষতার সাথে পরীক্ষা করা যেতে পারে। ক্রিপ্টোগ্রাফিক প্রোটোকল, অপ্টিমাইজেশান সমস্যা এবং বিভিন্ন ক্ষেত্রের জন্য এটির উল্লেখযোগ্য প্রভাব রয়েছে যেখানে সমাধানের সঠিকতা যাচাই করা গুরুত্বপূর্ণ।
সংক্ষেপে বলতে গেলে, শ্রেণী NP সিদ্ধান্তের সমস্যাগুলিকে অন্তর্ভুক্ত করে যার জন্য একটি প্রস্তাবিত সমাধান বহুপদী সময়ে একটি নির্ধারক অ্যালগরিদম দ্বারা যাচাই করা যেতে পারে। এই ধারণাটি কম্পিউটেশনাল জটিলতা তত্ত্বের ভিত্তিগত এবং কম্পিউটার বিজ্ঞানের তাত্ত্বিক এবং ব্যবহারিক উভয় দিকের জন্যই এর গভীর প্রভাব রয়েছে। এনপি, বহুপদী-সময় যাচাইযোগ্যতা, এবং সম্পর্কিত ধারণা যেমন এনপি-সম্পূর্ণতার অধ্যয়ন গবেষণার একটি প্রাণবন্ত এবং সমালোচনামূলক ক্ষেত্র হিসাবে অব্যাহত রয়েছে।
সম্পর্কিত অন্যান্য সাম্প্রতিক প্রশ্ন এবং উত্তর জটিলতা:
- PSPACE ক্লাস কি EXPSPACE ক্লাসের সমান নয়?
- P জটিলতা শ্রেণী কি PSPACE শ্রেণীর একটি উপসেট?
- একটি ডিটারমিনিস্টিক টিএম-এ যেকোনো NP সম্পূর্ণ সমস্যার জন্য একটি দক্ষ বহুপদী সমাধান খুঁজে বের করে আমরা কি প্রমাণ করতে পারি যে Np এবং P শ্রেণী একই?
- NP ক্লাস কি EXPTIME ক্লাসের সমান হতে পারে?
- PSPACE এ কি কোন সমস্যা আছে যার জন্য কোন পরিচিত NP অ্যালগরিদম নেই?
- একটি SAT সমস্যা একটি NP সম্পূর্ণ সমস্যা হতে পারে?
- এনপি জটিলতা শ্রেণীতে একটি সমস্যা হতে পারে যদি একটি নন-ডিটারমিনিস্টিক ট্যুরিং মেশিন থাকে যা এটি বহুপদী সময়ে সমাধান করবে
- P এবং NP কি আসলে একই জটিলতার শ্রেণী?
- P জটিলতা ক্লাসে কি প্রতিটি প্রসঙ্গ মুক্ত ভাষা?
- বহুপদী-সময় যাচাইকারীর সাথে সিদ্ধান্তের সমস্যাগুলির একটি শ্রেণি হিসাবে NP-এর সংজ্ঞা এবং P শ্রেণির সমস্যাগুলিরও বহুপদী-সময় যাচাইকারীগুলির মধ্যে একটি দ্বন্দ্ব আছে কি?
জটিলতায় আরও প্রশ্ন ও উত্তর দেখুন