আমি মনে করি উইকিপিডিয়া নিবন্ধগুলি
পি , এন পি এবং পি বনাম এন পি বেশ ভাল। এখনও এখানে আমি যা বলব হল: পার্ট আমি , পার্ট II
[আমি কিছু প্রযুক্তিগত বিশদ যা আপনি চাইলে এড়াতে পারেন তা আলোচনা করতে বন্ধনীগুলির মধ্যে মন্তব্যগুলি ব্যবহার করব]]
প্রথম খণ্ড
সিদ্ধান্ত সমস্যা
বিভিন্ন ধরণের গণ্য সমস্যা রয়েছে। তবে কম্পিউটেশনাল জটিলতা তত্ত্বের কোর্সের ভূমিকাতে সিদ্ধান্ত সমস্যার দিকে মনোনিবেশ করা আরও সহজ , উদাহরণস্বরূপ এমন সমস্যা যেখানে উত্তরটি হ্যাঁ বা না হয়। অন্যান্য ধরণের গণনামূলক সমস্যা রয়েছে তবে তাদের নিয়ে বেশিরভাগ সময় সিদ্ধান্তগুলি সম্পর্কিত সমস্যা সম্পর্কিত প্রশ্নগুলিতে হ্রাস করা যেতে পারে। তবুও সিদ্ধান্ত সমস্যা খুব সহজ। সুতরাং গণ্য জটিলতা তত্ত্বের কোর্সের একটি ভূমিকা হিসাবে আমরা সিদ্ধান্ত সমস্যার অধ্যয়নের দিকে আমাদের মনোযোগ নিবদ্ধ করি।
উত্তরগুলির হ্যাঁ রয়েছে এমন ইনপুটগুলির উপসেট সহ আমরা কোনও সিদ্ধান্তের সমস্যা চিহ্নিত করতে পারি। এই স্বরলিপি সরলীকৃত এবং আমাদের লিখতে পারবেন
x ∈ প্রশ্ন স্থানে Q ( x ) = Yইএস এবং
x ∉ প্রশ্ন স্থানে প্রশ্ন ( এক্স ) = এনহে ।
আর একটি দৃষ্টিভঙ্গি হ'ল আমরা একটি সেটে সদস্যতার প্রশ্ন সম্পর্কে কথা বলছি । এখানে একটি উদাহরণ:
সিদ্ধান্ত সমস্যা:
ইনপুট: একটি প্রাকৃতিক সংখ্যা এক্স ,
প্রশ্ন: এক্স একটি সমান সংখ্যা?
সদস্যপদ সমস্যা:
ইনপুট: প্রাকৃতিক সংখ্যা এক্স ,
প্রশ্ন: কি এক্স মধ্যে ইবনাম ই এন = { 0 , 2 , 4 , 6 , ⋯ } ?
আমরা ইনপুটটিতে হ্যাঁ উত্তরটি ইনপুট গ্রহণ হিসাবে গ্রহণ করি এবং ইনপুট প্রত্যাখ্যান হিসাবে কোনও ইনপুটতে NO উত্তরকে উল্লেখ করি ।
সিদ্ধান্তের সমস্যার জন্য আমরা অ্যালগরিদমগুলিতে নজর দেব এবং সেগুলি গণনাযোগ্য সংস্থান ব্যবহারে সেই অ্যালগরিদমগুলি কতটা দক্ষ তা নিয়ে আলোচনা করব । অ্যালগরিদম এবং গণনার সংস্থানসমূহের মাধ্যমে আমরা কী বুঝি তা আনুষ্ঠানিকভাবে সংজ্ঞায়নের পরিবর্তে সি এর মতো ভাষায় প্রোগ্রামিং করা থেকে আপনার অন্তর্নিবেশের উপর নির্ভর করব।
[মন্তব্যসমূহ: ১) আমরা যদি আনুষ্ঠানিকভাবে এবং সুনির্দিষ্টভাবে সবকিছু করতে চাইলে আমাদের কাছে একটি অ্যালগরিদম এবং গণ্য সংস্থানসমূহের ব্যবহার দ্বারা আমরা কী বোঝাতে চাইছি তা স্পষ্টভাবে সংজ্ঞায়িত করার জন্য আমাদের স্ট্যান্ডার্ড টুরিং মেশিন মডেলের মতো গণনার একটি মডেল ঠিক করতে হবে । ২. আমরা যদি মডেলগুলি সরাসরি পরিচালনা করতে পারে না এমন বস্তুর উপরে গণনার বিষয়ে কথা বলতে চাই, তবে মেশিন মডেল হ্যান্ডেল করতে পারে এমন বস্তু হিসাবে আমাদের তাদের এনকোড করা দরকার, উদাহরণস্বরূপ, যদি আমরা টুরিং মেশিন ব্যবহার করি তবে আমাদের প্রাকৃতিক সংখ্যা এবং গ্রাফের মতো বিষয়গুলি এনকোড করতে হবে বাইনারি স্ট্রিং হিসাবে।]
পি = জন্য দক্ষ আলগোরিদিম সমস্যাখোঁজাসলিউশন
ধরে নিন যে দক্ষ অ্যালগরিদম বলতে আলগোরিদিমগুলি সর্বাধিক বহু পরিমাণে গণনা সংস্থান ব্যবহার করে। প্রধান সম্পদ আমরা যত্নশীল খারাপ-ক্ষেত্রে দেখা যায় সময় চলমান ইনপুট আকার থেকে সম্মান সঙ্গে আলগোরিদিম, প্রাথমিক বিষয় একটি আলগোরিদিম আকারের একটি ইনপুট লাগে সংখ্যা অর্থাত এন । এর একটি ইনপুট আকার এক্স হয় এন যদি এটা লাগে এন করার জন্য দোকানের কম্পিউটার মেমরি -bits এক্স , যে ক্ষেত্রে আমরা লিখতে | এক্স | =এন । সুতরাং দক্ষ অ্যালগরিদম বলতে আমাদের বোঝায় অ্যালগরিদমগুলি যে বহুপথের সবচেয়ে খারাপ অবস্থায় চলেছে ।
ধৃষ্টতা যে বহুপদী সময় আলগোরিদিম দক্ষ আলগোরিদিম স্বজ্ঞাত ধারণা ক্যাপচার হিসাবে পরিচিত হয় গুড থিসিস । দক্ষতার সাথে সমাধানযোগ্য সমস্যাগুলির জন্য পি সঠিক মডেল কিনা এবং অনুশীলন এবং সম্পর্কিত সমস্যাগুলিতে দক্ষতার সাথে কী গণনা করা যেতে পারে বা পি তা গ্রহণ করবে কিনা তা আমি এই পর্যায়ে আলোচনা করব না । আপাতত এই ধারণাটি গ্রহণের জন্য উপযুক্ত কারণ রয়েছে তাই আমাদের উদ্দেশ্যে আমরা ধরে নিই যে এটি কেস। আপনি গুড থিসিস গ্রহণ না করেন তাহলে এটা কি আমি নীচে ভুল লিখতে দেখা যায় না, শুধু আমরা নষ্ট হয়ে যাবে স্বজ্ঞা বাস্তবে দক্ষ গণনার সম্পর্কে। আমি মনে করি জটিলতার তত্ত্ব সম্পর্কে শিখতে শুরু করা এমন ব্যক্তির পক্ষে এটি একটি সহায়ক অনুমান।
পি হ'ল সিদ্ধান্তগত সমস্যার শ্রেণি
যাদক্ষতার সাথে সমাধান করা যায়,অর্থাত্ সিদ্ধান্ত সংক্রান্ত সমস্যাগুলির মধ্যে যা বহু-কালীন অ্যালগরিদম রয়েছে।
আরও আনুষ্ঠানিকভাবে, আমরা বলি একটি সিদ্ধান্তের প্রশ্নঃপি ইফ যদি হয় in
একটি কার্যকর অ্যালগরিদম একজন যেমন
সমস্ত ইনপুট এক্স ,
- যদি Q ( x ) = Yইএস তবে এ ( এক্স ) = ওয়াইইএস ,
- যদি প্রশ্ন ( এক্স ) = এনহে তারপর ক ( এক্স ) = এনহে ।
আমি কেবল A ( x ) = Q ( x ) লিখতে পারি তবে আমি এটি এইভাবে লিখি যাতে আমরা এটিকে এন পি সংজ্ঞার সাথে তুলনা করতে পারি ।
NPপ্রফেস / শংসাপত্র / সাক্ষিদেরযাচাই করারজন্য এন পি = দক্ষ অ্যালগরিদমের সাথে সমস্যা
কখনও কখনও আমরা একটি সিদ্ধান্ত সমস্যা উত্তর খুঁজে বের করার কোনো কার্যকর উপায় জানি না, তবে যদি কেউ আমাদের উত্তর বলে এবং আমাদের একটি দেয় প্রমাণ
আমরা দক্ষতার সঙ্গে করতে পারেন যাচাই যে উত্তর যদি এটি একটি কিনা দেখতে প্রমাণ পরীক্ষা করে সঠিক বৈধ প্রমাণ । এই জটিলতা ক্লাস NP পিছনে ধারণা ।
যদি প্রমাণটি খুব দীর্ঘ হয় তবে এটি সত্যিই দরকারী নয়, কেবল প্রুফটি পড়তে খুব বেশি সময় লাগতে পারে এটি বৈধ কিনা তা পরীক্ষা করে দেখুন। আমরা চাইচ্ছি যে যাচাইকরণের জন্য প্রয়োজনীয় সময়টি মূল ইনপুটটির আকারে যুক্তিসঙ্গত হোক, প্রদত্ত প্রমাণের আকার নয়! এর মানে কি আমরা আসলেই যা চাই অবাধ দীর্ঘ প্রমাণাদি কিন্তু নয় সংক্ষিপ্ত প্রমাণাদি। মনে রাখবেন যে যদি ভেরিফায়ারটির চলমান সময়টি মূল ইনপুটটির আকারে বহুপদী হয় তবে এটি কেবলমাত্র প্রমাণের বহুবচনীয় অংশটি পড়তে পারে। সুতরাং সংক্ষেপে আমরা বহুত্বগত আকারের মানে ।
আমি যখনই "প্রুফ" শব্দটি ব্যবহার করি তখনই আমি "সংক্ষিপ্ত প্রমাণ" শব্দটি ব্যবহার করি on
এখানে এমন একটি সমস্যার উদাহরণ রয়েছে যা আমরা কীভাবে দক্ষতার সাথে সমাধান করতে জানি না তবে আমরা দক্ষতার সাথে প্রমাণগুলি যাচাই করতে পারি:
দেশভাগের
ইনপুট: প্রাকৃতিক সংখ্যার একটি সসীম সেট S ,
প্রশ্ন: এটা সম্ভব পার্টিশন হয় S দুই সেটে A এবং B
( A∪B=S এবং A∩B=∅ )
যেমন যে মধ্যে সংখ্যার যোগফল A সমান B ( ∑x∈Ax=∑x∈Bx ) এর সংখ্যার যোগফল ?
যদি আমি আপনাকে S থাকি এবং আপনাকে জিজ্ঞাসা করি যে আমরা এটিকে দুটি সেটে বিভক্ত করতে পারি যেগুলির পরিমাণগুলি সমান, আপনি এটি সমাধান করার জন্য কোনও কার্যকরী অ্যালগরিদম জানেন না। আপনি সম্ভবত সংখ্যাগুলিকে দুটি সেটে বিভক্ত করার সমস্ত সম্ভাব্য উপায়গুলি চেষ্টা করবেন যতক্ষণ না আপনি কোনও বিভাজন সন্ধান করতে পারেন যেখানে অঙ্কগুলি সমান হয় বা যতক্ষণ না আপনি সমস্ত সম্ভাব্য পার্টিশন চেষ্টা করেছেন এবং কোনওটি কাজ করেনি। যদি তাদের কেউ কাজ করে তবে আপনি হ্যাঁ বলবেন, অন্যথায় আপনি না বলবেন।
কিন্তু আছে ব্যাখ্যা মূলকভাবে তাই এটি অনেক সময় নিতে হবে অনেক সম্ভব পার্টিশন। তবে আমি আপনাকে দুটি এবং A এবং B সেট দিলে আপনি সহজেই পরীক্ষা করতে পারেন যে পরিমাণগুলি সমান এবং যদি A এবং BS বিভাজন হয় । মনে রাখবেন যে আমরা দক্ষতার সাথে অঙ্কগুলি গণনা করতে পারি।
আমি আপনাকে যে A এবং B এর জুটি দিচ্ছি তা হ্যাঁ উত্তরের প্রমাণ। আপনি আমার প্রমাণটি দক্ষতার সাথে আমার প্রমাণটি দেখে এবং এটি বৈধ প্রমাণ কিনা তা পরীক্ষা করে দক্ষতার সাথে যাচাই করতে পারেন । যদি উত্তরটি হ্যাঁ হয় তবে এর একটি বৈধ প্রমাণ রয়েছে এবং আমি এটি আপনাকে দিতে পারি এবং আপনি এটি দক্ষতার সাথে যাচাই করতে পারেন। উত্তর যদি না হয় তবে এর কোনও বৈধ প্রমাণ নেই। সুতরাং আমি আপনাকে যা যা দিচ্ছি তা পরীক্ষা করে দেখতে পারেন এটি কোনও বৈধ প্রমাণ নয়। উত্তরটি হ্যাঁ, এমন কোনও অবৈধ প্রমাণ দিয়ে আমি আপনাকে ঠকাতে পারি না। মনে রাখবেন যে প্রমাণটি যদি খুব বড় হয় তবে এটি যাচাই করতে অনেক সময় লাগবে, আমরা এটিটি ঘটতে চাই না, তাই আমরা কেবল দক্ষ প্রমাণাদি, অর্থাত্ প্রমাণগুলির মধ্যে যত্নশীল যা বহুবর্ষীয় আকারের।
কখনও কখনও লোকেরা " প্রমাণ " এর জায়গায় " শংসাপত্র " বা " সাক্ষী " ব্যবহার করে ।
দ্রষ্টব্য আমি আপনাকে প্রদত্ত ইনপুট x এর উত্তর সম্পর্কে পর্যাপ্ত তথ্য দিচ্ছি যাতে আপনি
উত্তরটি দক্ষতার সাথে খুঁজে পেতে এবং যাচাই করতে পারেন। উদাহরণস্বরূপ, আমাদের বিভাজনের উদাহরণে আমি আপনাকে উত্তরটি বলি না, আমি আপনাকে কেবল একটি পার্টিশন দিই, এবং আপনি এটি বৈধ কিনা তা পরীক্ষা করতে পারেন। নোট করুন যে আপনাকে নিজের উত্তরটি যাচাই করতে হবে, আমি যা বলি তা সম্পর্কে আপনি বিশ্বাস করতে পারবেন না। তাছাড়া আপনি কেবল আমার প্রমাণের সঠিকতা পরীক্ষা করতে পারেন । আমার প্রমাণটি বৈধ হলে এর অর্থ হ্যাঁ হ্যাঁ। তবে আমার প্রমাণটি যদি অবৈধ হয় তবে এর অর্থ এই নয় যে উত্তরটি কোনও নয়। আপনি দেখেছেন যে একটি প্রমাণ অবৈধ ছিল, কোনও বৈধ প্রমাণ নেই not আমরা হ্যাঁ প্রমাণের কথা বলছি। আমরা কোনও প্রমাণের বিষয়ে কথা বলছি না।
একটি উদাহরণ তাকান:
A={2,4} এবং B={1,5} একটি প্রমাণ যে
S={1,2,4,5} দুই সেটে সমান অঙ্কের সঙ্গে বিভক্ত করা যেতে পারে। আমাদের শুধু A এবং B এর সংখ্যাগুলি যোগ করতে হবে এবং ফলাফলগুলি সমান কিনা তা দেখতে হবে এবং A , BS বিভাজন কিনা তা পরীক্ষা করে দেখুন ।
যদি আমি আপনার দেওয়া A={2,5} এবং B={1,4} , আপনি চেক করবে এবং দেখ যে আমার প্রমাণ অবৈধ। এর অর্থ উত্তরটি হ'ল নয়, এর অর্থ এই যে এই নির্দিষ্ট প্রমাণটি অবৈধ ছিল। এখানে করা আপনার টাস্ক হয় না উত্তর খুঁজে, কিন্তু শুধুমাত্র যদি প্রমাণ দেওয়া হয় বৈধ কিনা চেক করতে।
এটি একটি শিক্ষার্থীর মতো যা একটি পরীক্ষায় একটি প্রশ্ন সমাধান করে এবং একজন অধ্যাপক উত্তর সঠিক কিনা তা পরীক্ষা করে দেখছেন। :) (দুর্ভাগ্যক্রমে প্রায়শই শিক্ষার্থীরা তাদের উত্তরের যথার্থতা যাচাই করতে পর্যাপ্ত তথ্য দেয় না এবং অধ্যাপকদের তাদের বাকী আংশিক উত্তর অনুমান করতে হয় এবং সিদ্ধান্ত নিতে হয় যে তাদের আংশিক উত্তরের জন্য শিক্ষার্থীদের কত নম্বর দেওয়া উচিত, সত্যিই এটি বেশ কঠিন কাজের)।
আশ্চর্যজনক বিষয়টি হ'ল একই পরিস্থিতিটি আমরা সমাধান করতে চাই এমন আরও অনেক প্রাকৃতিক সমস্যার ক্ষেত্রে প্রযোজ্য:
প্রদত্ত একটি সংক্ষিপ্ত প্রমাণ কার্যকর হলে আমরা কার্যকরভাবে যাচাই করতে পারি, তবে উত্তরটি খুঁজে পাওয়ার কোনও কার্যকর উপায় আমরা জানি না । এই কেন জটিলতা বর্গ প্রেরণা NP হয় অত্যন্ত আকর্ষণীয়
(যদিও এই এটা সংজ্ঞায়িত করার সূত্রপাত ছিল না)। আপনি যা-ই করুন (কেবল সিএসে নয়, গণিত, জীববিজ্ঞান, পদার্থবিজ্ঞান, রসায়ন, অর্থনীতি, পরিচালনা, সমাজবিজ্ঞান, ব্যবসা, ...) এ আপনি এই শ্রেণিতে পড়া গণনাগত সমস্যার মুখোমুখি হবেন। NP চেক আউট এ
কতগুলি সমস্যা দেখা দেয় তার একটি ধারণা পেতেএনপি অপ্টিমাইজেশন সমস্যার একটি সংকলন । প্রকৃতপক্ষে আপনার প্রাকৃতিক সমস্যাগুলি খুঁজে পেতে খুব সমস্যা হবে যা NP । এটা সহজ আশ্চর্যজনক।
NP হ'ল সমস্যাগুলির শ্রেণি যাঁর দক্ষ ভেরিফায়ার রয়েছে, অর্থাত্
একটি বহুপদী সময় অ্যালগরিদম রয়েছে যা প্রদত্ত সমাধানটি সঠিক কিনা তা যাচাই করতে পারে।
আরো আনুষ্ঠানিকভাবে, আমরা বলতে একটি সিদ্ধান্ত সমস্যা Q হয় NP iff
ভেরিফায়ার নামে একটি দক্ষ অ্যালগরিদম V যা
সমস্ত ইনপুটগুলির জন্য x ,
- যদি Q(x)=YES তবে একটি প্রমাণ y যা V(x,y)=YES ,
- যদি Q(x)=NO সকল প্রমাণাদি জন্য y , V(x,y)=NO ।
আমরা বলি
যে কোনও উত্তরদাতা উত্তর না থাকলে কোনও প্রমাণ গ্রহণ না করে যদি একটি যাচাইকারী সাউন্ড হয়। অন্য কথায়, উত্তরটি সত্যই যদি উত্তর না হয় তবে একটি প্রমাণ যাচাইয়ের জন্য সাউন্ড ভেরিফায়ারকে ট্রিক করা যায় না। কোন মিথ্যা ইতিবাচক।
একইভাবে, আমরা বলি যে কোনও
উত্তরদাতা হ্যাঁ যখন কমপক্ষে একটি প্রমাণ গ্রহণ করে তবে একটি যাচাইকারী সম্পূর্ণ । অন্য কথায়, একটি সম্পূর্ণ যাচাইকারী উত্তর হ্যাঁ হওয়ায় নিশ্চিত হতে পারে।
পরিভাষাটি লজিক এবং প্রুফ সিস্টেম থেকে আসে । আমরা কোনও মিথ্যা বিবৃতি প্রমাণের জন্য সাউন্ড প্রুফ সিস্টেমটি ব্যবহার করতে পারি না। সমস্ত সত্য বিবৃতি প্রমাণের জন্য আমরা একটি সম্পূর্ণ প্রুফ সিস্টেম ব্যবহার করতে পারি।
ভেরিফায়ার V দুটি ইনপুট পান,
- x :Q এবং এরজন্য মূল ইনপুট
- y :Q(x)=YES জন্য প্রস্তাবিত প্রমাণ।
মনে রাখবেন যে, আমরা চাই V আকার সুদক্ষ হতে x । তাহলে y একটি বড় প্রমাণ যাচাইকারী পড়তে সক্ষম হতে হবে শুধুমাত্র একটি বহুপদী অংশ এর y । এজন্য আমাদের প্রমাণগুলি সংক্ষিপ্ত হওয়া দরকার। তাহলে y সংক্ষিপ্ত উক্তি যে V মধ্যে কার্যকরী x
বলে যে হিসাবে একই V মধ্যে কার্যকরী x এবং y
(কারণ আকার y এর আকার একটি নির্দিষ্ট বহুপদী দ্বারা বেষ্টিত x )।
সংক্ষেপে বলা যায়, দেখানোর জন্য একটি সিদ্ধান্ত যে Q রয়েছে NP
আমরা একটি দিতে হবে দক্ষ যাচাইকারী অ্যালগরিদম যা শব্দ এবং সম্পূর্ণ ।
.তিহাসিক দ্রষ্টব্য: icallyতিহাসিকভাবে এটি NP এর মূল সংজ্ঞা নয় । আসল সংজ্ঞা নন-ডিস্ট্রিমেন্টিক ট্যুরিং মেশিন যা বলে তাকে ব্যবহার করে । এই মেশিনগুলি কোনও প্রকৃত মেশিন মডেলের সাথে সামঞ্জস্য করে না এবং অভ্যস্ত হওয়া কঠিন (কমপক্ষে যখন আপনি জটিলতা তত্ত্ব সম্পর্কে শিখতে শুরু করেন)। আমি পড়েছি যে অনেক বিশেষজ্ঞরা মনে করেন যে তারা ভেরিফায়ার সংজ্ঞাটিকে মূল সংজ্ঞা হিসাবে ব্যবহার করেছেন এবং এমনকি এন পি এর
জায়গায় VP (বহুবর্ষীয় সময়ে যাচাইযোগ্য) নামকরণ করেছিলেন wouldNP
যদি তারা গণনা সংক্রান্ত জটিলতার তত্ত্বটি ভোরের দিকে ফিরে যায়। ভেরিফায়ার সংজ্ঞাটি আরও প্রাকৃতিক, ধারণাগতভাবে বোঝা সহজ এবং সমস্যাগুলি দেখানোর জন্য ব্যবহার করা সহজ NP ।
P⊆NP
সুতরাং আমাদের কাছে
P = দক্ষ দ্রবণযোগ্য এবং NP = দক্ষতার সাথে যাচাইযোগ্য । সুতরাং P=NP যদি সমস্যাগুলি দক্ষতার সাথে যাচাই করা যায় তবে সেগুলি কার্যকরভাবে সমাধান করা যায় এমন সমস্যাগুলির মতো same
নোট করুন যে P যে কোনও সমস্যা NP তেও রয়েছে , অর্থাত্ যদি আপনি সমস্যার সমাধান করতে পারেন তবে প্রদত্ত প্রমাণ সঠিক কিনা তা যাচাইও করতে পারবেন: যাচাইকারী কেবল প্রমাণটিকে উপেক্ষা করবেন!
এটি কারণ আমাদের এটির প্রয়োজন নেই, যাচাইকারী নিজেই উত্তরটি গুণতে পারে, এটি সিদ্ধান্ত নিতে পারে যে কোনও উত্তর ছাড়া উত্তর হ্যাঁ বা না হয়। যদি উত্তরটি না হয় তবে আমরা জানি যে কোনও প্রমাণ থাকতে হবে না এবং আমাদের যাচাইকারী প্রতিটি প্রস্তাবিত প্রমাণকে প্রত্যাখ্যান করবে। যদি উত্তরটি হ্যাঁ হয় তবে তার একটি প্রমাণ থাকা উচিত এবং বাস্তবে আমরা প্রমাণ হিসাবে কোনও কিছুই গ্রহণ করব।
[আমরা আমাদের যাচাইকারীকে কেবলমাত্র তাদের কিছু গ্রহণ করতে পারি, এটিও ঠিক আছে, যতক্ষণ না আমাদের যাচাইকারী সমস্যাটির জন্য ভেরিফায়ার সঠিকভাবে কাজ করে তা কমপক্ষে একটি প্রমাণ গ্রহণ করেন]]
এখানে একটি উদাহরণ:
যোগফল
ইনপুট: একটি তালিকা n+1 স্বাভাবিক সংখ্যার a1,⋯,an , এবং s ,
প্রশ্ন: হয় Σni=1ai=s ?
সমস্যা হয় P কারণ আমরা সংখ্যার যোগফল এবং তারপর সঙ্গে এটি তুলনা করতে পারবেন s , আমরা ফিরে হ্যাঁ, যদি তারা সমান, এবং কোন যদি তারা নয়।
সমস্যাটি NP তেও আছে । ভেরিফায়ার V বিবেচনা করুন যা একটি প্রমাণ এবং যোগফলের যোগফল পায় gets এটা অ্যালগরিদম মতো একই ভাবে কাজ করে P যে আমরা উপরে বর্ণিত। এটি Sum এর জন্য একটি কার্যকর যাচাইকারী।
মনে রাখবেন যে সামের জন্য অন্যান্য দক্ষ যাচাইকারী রয়েছে এবং তাদের মধ্যে কিছু তাদের দেওয়া প্রমাণ ব্যবহার করতে পারে। তবে আমরা ডিজাইন করা একটি না এবং এটিও ঠিক। যেহেতু আমরা যোগফলের জন্য একটি কার্যকর যাচাইকারী দিয়েছি সমস্যাটি NP । একই কৌতুক অন্যান্য সমস্ত সমস্যার জন্য কাজ করে P তাই
P⊆NP ।
NPNP⊆ExpTime
NPNP
আমাদের বিভাজনের উদাহরণে, আমরা সমস্ত সম্ভাব্য পার্টিশন চেষ্টা করে দেখি এবং এর যে কোনও একটিতে যোগফল সমান কিনা।
m2m
NPNP⊆ExpTimeNP⊆PSpace
NPPNPNP
NP=PNP
NPNP
NPNPNPP⊆NP
NPNP
লোয়ার পাউন্ডগুলি প্রমাণ করা বেশ কঠিন মনে হচ্ছে
NP
দুর্ভাগ্যক্রমে নিম্ন সীমা প্রমাণ করার কাজটি খুব কঠিন। আমরা এমনকি প্রমাণ করতে পারি না যে এই সমস্যাগুলির জন্য রৈখিক সময়ের চেয়ে বেশি প্রয়োজন ! একাকী তাত্পর্যপূর্ণ সময় প্রয়োজন।
লিনিয়ার-সময় নিম্ন সীমা প্রমাণ করা বরং সহজ: অ্যালগরিদম সর্বোপরি ইনপুটটি পড়তে হবে। সুপার-লিনিয়ার নিম্ন সীমানা প্রমাণ করা সম্পূর্ণ আলাদা গল্প। আমরা যে ধরণের অ্যালগোরিদম বিবেচনা করছি সে সম্পর্কে আরও বিধিনিষেধের সাথে সুপার-লিনিয়ার নিম্ন সীমানা প্রমাণ করতে পারি, উদাহরণস্বরূপ তুলনা ব্যবহার করে অ্যালগোরিদমকে বাছাই করা, তবে আমরা এই বিধিনিষেধগুলি ছাড়াই নিম্ন-সীমানা জানি না।
একটি সমস্যার উপরের সীমাটি প্রমাণ করার জন্য আমাদের কেবলমাত্র একটি ভাল পর্যাপ্ত অ্যালগরিদম ডিজাইন করতে হবে। এ জাতীয় অ্যালগরিদম নিয়ে আসতে প্রায়শই জ্ঞান, সৃজনশীল চিন্তাভাবনা, এমনকি দক্ষতারও প্রয়োজন।
তবে একটি কম বাউন্ড প্রমাণের তুলনায় টাস্কটি যথেষ্ট সহজ। আমাদের দেখতে হবে যে কোনও ভাল অ্যালগরিদম নেই । এমন নয় যে আমরা এই মুহূর্তে কোনও ভাল পর্যাপ্ত অ্যালগরিদম জানি না , তবে কোনও ভাল অ্যালগরিদম উপস্থিত নেই যে কেউ কখনও ভাল অ্যালগরিদম নিয়ে আসে না । এক মিনিটের জন্য চিন্তা করুন যদি আপনার আগে না থাকে তবে আমরা কীভাবে এরকম অসম্ভব ফল প্রদর্শন করতে পারি ?
1=0
দেখাতে হবে যে একটি সমস্যা কম আবদ্ধ, অর্থাত্ প্রমাণ প্রয়োজন সমাধানের জন্য কিছু সময়ের, যার মানে প্রমাণ করতে হবে যে আছে আমরা কোনোঅ্যালগরিদম, এমনকি খুব জ্ঞানসম্পন্ন যেগুলি এখনও জানে না, দ্রুত সমস্যাটি সমাধান করতে পারে না। এমন অনেক বুদ্ধিমান ধারণা রয়েছে যা আমরা জানি (লোভী, ম্যাচিং, ডায়নামিক প্রোগ্রামিং, লিনিয়ার প্রোগ্রামিং, সেমিডেফিনাইট প্রোগ্রামিং, সম-অফ-স্কোয়ার্স প্রোগ্রামিং এবং আরও অনেক বুদ্ধিমান ধারণা) এবং এমন আরও অনেক রয়েছে যা আমরা এখনও জানি না। একটি অ্যালগরিদম বা অ্যালগোরিদম ডিজাইনের একটি নির্দিষ্ট ধারণা কার্যকর করার পক্ষে যথেষ্ট নয়, এমনকি তাদের সম্পর্কে আমাদের এখনও জানা উচিত নয়, এমনকি আমরা এখনও তাদের সম্পর্কে জানি না, এমনকি সেগুলিও কখনও জানতে পারে না! এবং এগুলি একটি সমস্তকে একটি অ্যালগোরিদমে একত্রিত করতে পারে, সুতরাং আমাদের তাদের সংমাগুলিও বাতিল করতে হবে। দেখানোর দিকে কিছু অগ্রগতি হয়েছে যে কিছু ধারণা শক্ত সমাধান করতে পারে নাNPসমস্যাগুলি, যেমন লোভী এবং এর এক্সটেনশানগুলি কাজ করতে পারে না, এবং ডায়নামিক প্রোগ্রামিং অ্যালগরিদম সম্পর্কিত কিছু কাজ রয়েছে এবং লিনিয়ার প্রোগ্রামিংয়ের বিশেষ পদ্ধতিতে কিছু কাজ রয়েছে। তবে এগুলি আমরা যে বুদ্ধিমান ধারণাগুলি সম্পর্কে জানি তা বাতিল করার কাছাকাছিও নয় (যদি আপনি আগ্রহী হন তবে গণনার সীমাবদ্ধ মডেলগুলিতে নিম্ন-সীমা অনুসন্ধান করুন)।
বাধা: নিম্ন কোট হয় প্রমাণ করা কঠিন
অন্যদিকে আমাদের গাণিতিক ফলাফল রয়েছে যা
বাধা
বলে যা বলে যে একটি নিম্ন-সীমাবদ্ধ প্রমাণ যেমন এবং এই জাতীয় হতে পারে না এবং এ জাতীয় প্রায় সমস্ত কৌশল যা আমরা নিম্ন সীমাটি প্রমাণ করতে ব্যবহার করেছি! প্রকৃতপক্ষে অনেক গবেষক আলেকজান্ডার রাজারবাভ এবং স্টিভেন রুডিচের প্রাকৃতিক প্রমাণ বাধা ফলাফলের পরে নিম্ন সীমা প্রমাণ করতে কাজ ছেড়ে দিয়েছেন
। দেখা যাচ্ছে যে নির্দিষ্ট ধরণের নিম্ন-সীমাবদ্ধ প্রমাণগুলির অস্তিত্ব হ'ল ক্রিপ্টোগ্রাফিক সিউডোর্যান্ডম সংখ্যা জেনারেটর এবং অন্যান্য অনেক ক্রিপ্টোগ্রাফিক সরঞ্জামগুলির নিরাপত্তাহীনতা বোঝায়।
আমি প্রায় বলছি কারণ সাম্প্রতিক বছরগুলিতে মূলত রায়ান উইলিয়ামসের কিছু অগ্রগতি
হয়েছে যা বুদ্ধিমানভাবে প্রতিবন্ধকতার ফলাফলগুলি সরিয়ে দিতে সক্ষম হয়েছে, এখনও পর্যন্ত ফলাফলগুলি গণনার খুব দুর্বল মডেলের জন্য এবং সাধারণ বহু-কালীন অ্যালগরিদমকে অস্বীকার করা থেকে অনেক দূরে are ।
NP
[অন্যদিকে, রায়ান উইলিয়ামসের কাজ দেখায় যে নিম্ন সীমানা প্রমাণ করার এবং উপরের সীমানা প্রমাণ করার মধ্যে ঘনিষ্ঠ যোগাযোগ রয়েছে। আপনি আগ্রহী হলে আইসিএম ২০১৪ এ তাঁর আলোচনা দেখুন ]]
হ্রাস: সাব্রুটিন / ওরাকল / ব্ল্যাক বক্স হিসাবে অন্য একটি সমস্যা ব্যবহার করে একটি সমস্যা সমাধান করা
হ্রাসের ধারণাটি খুব সহজ: একটি সমস্যা সমাধানের জন্য, অন্য সমস্যার জন্য একটি অ্যালগরিদম ব্যবহার করুন।
nSumSum
সমস্যা:
nx1,…,xn
∑ni=1xi
হ্রাস অ্যালগরিদম:
- s=0
- i1n
s=Sum(s,xi)
- s
SumSumSumSum
এটি হ্রাস যা মূলত তা হ'ল: ধরে নিন যে কোনও সমস্যার জন্য আমাদের কাছে অ্যালগরিদম রয়েছে এবং এটি অন্য সমস্যা সমাধানের জন্য এটি ওরাকল হিসাবে ব্যবহার করুন। এখানে দক্ষ মানে দক্ষ এটি ধরে নেওয়া দক্ষ যে সময়ের একটি ইউনিটে ওরাকল উত্তর দেয়, অর্থাত্ আমরা ওরাকেলের প্রতিটি সম্পাদনকে একটি পদক্ষেপ গণনা করি।
যদি ওরাকল একটি বৃহত্তর জবাব দেয় তবে আমাদের এটি পড়তে হবে এবং এটি কিছুটা সময় নিতে পারে, সুতরাং ওরাকল আমাদের যে উত্তর দিয়েছে তা পড়তে আমাদের যে সময় লাগে তা গণনা করা উচিত । একইভাবে ওরাকল থেকে প্রশ্ন লেখার / প্রশ্ন করার জন্য। কিন্তু ওরাকল তাত্ক্ষণিকভাবে কাজ করে, অর্থাত্ আমরা ওরাকল থেকে প্রশ্ন জিজ্ঞাসা করার সাথে সাথে ওরাকল আমাদের জন্য উত্তর একটি সময়ের মধ্যে লিখে দেয় writes ওরাকল যে সমস্ত কাজ করে সেগুলি একটি একক পদক্ষেপ গণনা করা হয়, তবে এটি আমাদের প্রশ্ন লিখতে এবং উত্তর পড়তে সময় নেয় না।
কারণ আমরা ওরাকল কীভাবে কাজ করে তা যত্নশীল না তবে কেবল এটির উত্তরগুলি কীভাবে ফিরে আসে সে সম্পর্কে আমরা একটি সরলীকরণ করতে পারি এবং তার জন্য একটি অ্যালগরিদমের জায়গায় ওরাকলকেই সমস্যা বলে মনে করি। অন্য কথায়, ওরাকলটি যদি অ্যালগোরিদম না হয় তবে আমরা যত্ন নিই না, কীভাবে ওরাকলগুলি এর উত্তরগুলি নিয়ে আসে তা আমরা যত্ন করি না।
Sum
আমরা একটি ওরাকল থেকে একাধিক প্রশ্ন জিজ্ঞাসা করতে পারি, এবং প্রশ্নগুলি পূর্বনির্ধারিত হওয়ার দরকার নেই: আমরা একটি প্রশ্ন জিজ্ঞাসা করতে পারি এবং উত্তরটির ভিত্তিতে যে ওরাকল রিটার্নটি আমরা নিজেরাই কিছু গণনা সম্পাদন করি এবং তারপরে আমরা যে উত্তর পেয়েছি তার উপর ভিত্তি করে অন্য প্রশ্ন জিজ্ঞাসা করতে পারি আগের প্রশ্ন
এটি দেখার আর একটি উপায় এটি ইন্টারেক্টিভ গণনা হিসাবে এটি সম্পর্কে চিন্তা করা । ইন্টারেক্টিভ গণনা নিজেই বড় বিষয় তাই আমি এটিতে এখানে প্রবেশ করব না তবে আমি মনে করি এই হ্রাসের এই দৃষ্টিকোণটি উল্লেখ করা সহায়ক হতে পারে।
AOAO
উপরে যে হ্রাসটি আমরা উপরে আলোচনা করেছি তা হ্রাসের সর্বাধিক সাধারণ রূপ এবং এটি ব্ল্যাক-বাক্স হ্রাস
(ওরফে অরাকল হ্রাস , টুরিং হ্রাস ) নামে পরিচিত ।
আরও আনুষ্ঠানিকভাবে:
QOQ≤TO
Ax
Q(x)=AO(x)
AOQ
AQ≤PTOT
তবে হ্রাস অ্যালগরিদম যেভাবে ওরাকলটির সাথে যোগাযোগ করে আমরা তাতে কিছু বিধিনিষেধ আরোপ করতে চাই। বেশ কয়েকটি বিধিনিষেধ রয়েছে যা অধ্যয়ন করা হয় তবে সবচেয়ে কার্যকর সীমাবদ্ধতা হ'ল একে বলা হয় বহু-ওয়ান হ্রাস
(ওরফে ম্যাপিং হ্রাস )।
xy
আরও আনুষ্ঠানিকভাবে,
QOQ≤mO
Ax
Q(x)=O(A(x))
Q≤PmO
NPANPBANP
PNPNP
পোস্টটি দীর্ঘ হয়ে গেছে এবং একটি উত্তরের সীমা ছাড়িয়েছে (30000 অক্ষর)। আমি উত্তর দ্বিতীয় খণ্ডে চালিয়ে যাব ।