এনপি-সম্পূর্ণ বলে কোন সমস্যা প্রমাণ করতে আমি কীভাবে সমস্যার মধ্যে হ্রাস তৈরি করতে পারি?


27

আমি একটি জটিলতা কোর্স নিচ্ছি এবং এনপিসি সমস্যার মধ্যে হ্রাস নিয়ে আমার সমস্যা হচ্ছে। আমি কীভাবে সমস্যার মধ্যে হ্রাস পেতে পারি? আমি কি ব্যবহার করতে পারি এমন কোন সাধারণ কৌশল আছে? এনপিসি হ'ল আমাকে এমন কোনও সমস্যার কাছে যেতে হবে যা আমাকে সমস্যা প্রমাণ করতে বলে?


4
হতাশার জন্য দুঃখিত, আমি মনে করি না যে এমন কোনও পদ্ধতি আছে যা এটি সমাধান করে। জীবনের বিভিন্ন সমস্যার মতো, প্রতিটি অনন্য .. আশা করি, সময়ের সাথে আপনি কীভাবে প্রতিটি সমস্যার সমাধান করবেন তা সঠিকভাবে খুঁজে পাবেন।
রান এ।

1
কীভাবে এই জাতীয় সমস্যাগুলির কাছে যাওয়ার জন্য কিছু কার্যকর নির্দেশিকা রয়েছে? যখন আমি এমন কোনও প্রশ্ন দেখি যে আমাকে এটি এনপিসি প্রমাণ করতে জিজ্ঞাসা করে তখন আমি পুরোপুরি হারিয়ে যাই। আমি কীভাবে তাদের কাছে যেতে পারি?
বেনামে

উত্তর:


45

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

প্রথমত, আপনি কেবল গৃহকর্ম না করা পর্যন্ত আপনাকে সিদ্ধান্ত নিতে হবে কোন এনপি-হার্ড সমস্যাটি আপনার সমস্যার জন্য হ্রাস করতে পারে । এটি মূলত "গন্ধ" এর প্রশ্ন। 3 নম্বর প্রদর্শিত হয় সমস্যা বিবৃতি কোথাও থেকে হ্রাস চেষ্টা করুন বা বা । (হ্যাঁ, আমি সিরিয়াস।) আপনার সমস্যা একটি অনুকূল subsequence বা বিন্যাস বা পথ খুঁজে বের জড়িত থাকে, তাহলে থেকে কমানোর চেষ্টা করুন বা । যদি আপনার সমস্যাটি একটি নির্দিষ্ট সম্পত্তি সহ ক্ষুদ্রতম উপসেটের জন্য জিজ্ঞাসা করে, চেষ্টা করুন ; যদি এটি একটি নির্দিষ্ট সম্পত্তি সহ বৃহত্তম উপসেটের জন্য জিজ্ঞাসা করে, চেষ্টা করুন3SAT3Color3PartitionHamiltonianCycleHamiltonianPathCliqueIndependentSet। আপনার সমস্যা সমতলে কিছু কাজ জড়িত থাকে, তাহলে চেষ্টা বা । ইত্যাদি। আপনার সমস্যা যদি কোনও কিছুর মতো "গন্ধ" না পায়, বা সম্ভবত আপনার সেরা বাজি।PlanarCircuitSATPlanarTSP3SATCircuitSAT

একথাও ঠিক যে, আপনি ইতিমধ্যে জানা প্রয়োজন অবিকল কিভাবে এই সব সমস্যার সংজ্ঞায়িত করা হয় , এবং সহজ সমস্যা থেকে ভাল কমানো। সুতরাং হিসাবে ফলে শীতল শেষ চেহারা হতে পারে, আমি থেকে হ্রাস সুপারিশ করি না বা বা বা ।MinesweeperTetrisOneCheckersMoveSuperMarioBros

দ্বিতীয়ত, আসল হ্রাস। এক্স সমস্যাটি কমাতে (আপনি যা জানেন তিনি এনপি-হার্ড) ওয়াই সমস্যাটি হ্রাস করতে (আপনি যেটিকে প্রমান করার চেষ্টা করছেন সেটি এনপি-হার্ড, আপনার একটি অ্যালগরিদম বর্ণনা করতে হবে যা এক্সের একটি স্বেচ্ছাসেবী উদাহরণকে Y এর আইনী দৃষ্টান্তে রূপান্তর করে you হ্রাস অ্যালগরিদম এক্স-ইনস্ট্যান্সের প্রতিটি "বৈশিষ্ট্য" এর সাথে নির্দিষ্ট কিছু করা দরকার; প্রতিটি "বৈশিষ্ট্য" এর আউটপুট অংশকে সাধারণত গ্যাজেট বলা হয় ।

তবে একটি বৈশিষ্ট্য কি? এটি X এর উপর নির্ভর করে example উদাহরণস্বরূপ:

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

  • রূপান্তর করতে আপনার প্রতিটি এবং ইনপুট গ্রাফের প্রতিটি প্রান্তের জন্য একটি গ্যাজেট এবং তিনটি রঙ নির্ধারণ করার জন্য অন্য গ্যাজেটের প্রয়োজন।3Color

  • an এর উদাহরণটি রূপান্তর করতে আপনার প্রতিটি ইনপুট, প্রতিটি তারের জন্য এবং ইনপুট সার্কিটের প্রতিটি গেটের জন্য একটি গ্যাজেট প্রয়োজন।PlanarCircuitSat

গ্যাজেটের প্রকৃত ফর্ম সমস্যা y, আপনি হ্রাস করছি উপর নির্ভর করে করা । উদাহরণস্বরূপ, যদি আপনি গ্রাফগুলি সম্পর্কে কোনও সমস্যা হ্রাস করেন তবে আপনার গ্যাজেটগুলি ছোট ছোট সাবগ্রাফ হবে; উইকিপিডিয়া নিবন্ধ দেখুন। আপনি যদি শিডিয়ুলিং সম্পর্কে কোনও সমস্যা হ্রাস করছেন তবে প্রতিটি গ্যাজেটটি নির্ধারিত কাজের জন্য একটি সেট হবে। আপনি যদি মারিও সম্পর্কে কোনও সমস্যা হ্রাস করছেন তবে প্রতিটি গ্যাজেট ব্লক এবং ইট এবং কোওপাসের সেট হবে।

উভয় সমস্যা একই ধরণের অবজেক্টে জড়িত থাকলে এটি বিভ্রান্ত হতে পারে। উদাহরণস্বরূপ, এক্স এবং ওয়াই উভয়ই যদি গ্রাফগুলি নিয়ে সমস্যা হয় তবে আপনার অ্যালগরিদম একটি গ্রাফকে (এক্স এর উদাহরণ) একটি ভিন্ন গ্রাফে (ওয়াইয়ের একটি উদাহরণ) রূপান্তরিত করতে চলেছে। আপনার স্বরলিপিটি বিজ্ঞতার সাথে চয়ন করুন, যাতে আপনি এই দুটি গ্রাফকে বিভ্রান্ত না করেন। আমি কালি বিভিন্ন রং ব্যবহার করার জন্য দৃ strongly়ভাবে সুপারিশ।

অবশেষে, আপনার হ্রাস অ্যালগরিদম অবশ্যই তিনটি বৈশিষ্ট্য সন্তুষ্ট করতে হবে:

  • এটি বহুপক্ষীয় সময়ে চলে। (এটি সাধারণত সহজ।)

  • যদি আপনার হ্রাস অ্যালগরিদমকে ইনপুট হিসাবে এক্সের একটি ইতিবাচক উদাহরণ দেওয়া হয় তবে এটি আউটপুট হিসাবে ওয়াইয়ের ইতিবাচক উদাহরণ তৈরি করে ।

  • যদি আপনার হ্রাস অ্যালগরিদম আউটপুট হিসাবে ওয়াইয়ের একটি ইতিবাচক উদাহরণ উত্পন্ন করে, তবে এটি অবশ্যই ইনপুট হিসাবে এক্সের একটি ইতিবাচক উদাহরণ দেওয়া উচিত ।

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

এটাই কিকিভাবে মাত্র অনুশীলন দিয়ে আসে।


5
থেকে হ্রাস জন্য (এবং সাধারণত সমস্যার যা একই "স্থানীয় / বিশ্বব্যাপী গঠন" আছে) এটি একটি একক দফা দৃষ্টান্ত প্রথম তা কোমর থেকে নামতেই করে নেওয়া ভালো হতে পারে । এটি আপনাকে ক্লজগুলির জন্য কী গ্যাজেটটি ব্যবহার করতে হবে তা সম্পর্কে একটি ধারণা দিতে পারে। একটি দফা জন্য গ্যাজেট দুঃশ্চিন্তা করার পর, আপনার হ্রাস প্রতিটি দফা জন্য এই গ্যাজেটগুলি এক করা হবে এবং তারপর একরকম বিশ্বব্যাপী শর্ত জোরদার (অর্থাত একটি পরিবর্তনশীল বিভিন্ন ক্লজ প্রদর্শনে এর ঘটনার জন্য সত্য মান সামঞ্জস্যপূর্ণ হওয়া উচিত, একটি propositional পরিবর্তনশীল পারব না হতে এক দফা এবং অন্য)। 3SAT3SATptruefalse
কাভেহ

1
"যদি আপনার হ্রাস অ্যালগরিদম আউটপুট হিসাবে ওয়াইয়ের একটি ইতিবাচক উদাহরণ উত্পন্ন করে তবে এটি অবশ্যই ইনপুট হিসাবে এক্সের একটি ইতিবাচক উদাহরণ দেওয়া হয়েছে ": যদিও এই শর্তটি লিখতে আরও স্বজ্ঞাত বলে মনে হয় "যদি আপনার হ্রাস অ্যালগরিদমকে একটি নেতিবাচক উদাহরণ দেওয়া হয় ইনপুট হিসাবে এক্স এর, এটি আউটপুট হিসাবে ওয়াইয়ের একটি নেতিবাচক উদাহরণ তৈরি করে "লক্ষ্য করুন যে এই দুটি শর্ত সমতুল্য , এবং জেফি এটি কীভাবে লিখেছেন তা প্রমাণকে আরও সহজ করে তোলে , যেহেতু প্রতিটি ক্ষেত্রে আপনার" কিছু না কিছু "থাকে (হয় হয়) এক্স এর ইতিবাচক উদাহরণ, বা Y এর ইতিবাচক উদাহরণ) এর সাথে কাজ করার জন্য।
j_random_hacker

11

জেফ সবচেয়ে সাধারণ কৌশলটির রূপরেখা দেয়: প্রচুর এনপি-সম্পূর্ণ সমস্যাগুলি জানেন, খুব ভাল ফিট করে এমন একটি সন্ধান করুন এবং সহজ হ্রাস করুন।

আর একটি বৈধ কৌশল হ'ল সর্বদা 3SAT (বা অন্য কোনও সমস্যা) ব্যবহার করা। এটি কিছু হ্রাসকে আরও জটিল করে তুলতে পারে, তবে উল্টোটি হ'ল অন্যান্য ধরণের সমস্যায় সন্তুষ্টি প্রকাশ করার জন্য আপনার প্রচুর অভিজ্ঞতা রয়েছে। সুতরাং আপনি একটি ভাল হ্রাস অংশীদার (মৃত-প্রান্ত সহ) সন্ধানের সময় সাশ্রয় করেন এবং আশা করি আপনার অভিজ্ঞতা আপনাকে আরও কঠোর হলেও দ্রুত হ্রাস করার অনুমতি দেবে hope

এই পদ্ধতির কিছুটা মেটা সৌন্দর্যও রয়েছে: (৩) এনপি-সম্পূর্ণতা সরাসরি (প্রায়) প্রমাণিত হয়েছে এমন কয়েকটি সমস্যার মধ্যে একটি হ'ল স্যাট। সুতরাং, কেবলমাত্র সেই প্রমাণের উপর নির্ভর করা আপনার "প্রুফ ট্রি" সমতল রাখে, হ্রাসের দীর্ঘ শৃঙ্খলা এড়িয়ে চলে।


3
সরাসরি প্রমাণিত যে বাউন্ডেড হ্যালটিং সমস্যাটি এনপি-সম্পূর্ণ হয় যখন আনআরেডে বাউন্ড দেওয়া হয় তখন খুব বেশি কঠিন নয় এবং কিছু এনপি-সম্পূর্ণ সমস্যা উপস্থিত রয়েছে তা প্রমাণ করার একটি সহজ উপায় , যদিও সমস্যাটি নিজে থেকে হ্রাস করার পরিবর্তে অকেজো।
অ্যালেক্স দশ ব্রিংক

3
আমি দাবি সম্পর্কে নিশ্চিত নই যে এটিই একমাত্র সমস্যা যা সরাসরি এনপি-সম্পূর্ণ প্রমাণিত হয়েছে। আসলে আপনি যদি এটি কঠোর অর্থে ব্যাখ্যা করেন তবে তা অবশ্যই মিথ্যা। কুকের একাত্তরের গবেষণাপত্রে স্যাট নয় টট সম্পর্কে আলোচনা করা হয়েছে (তিনি কুকের হ্রাস ব্যবহার করেন না কার্প হ্রাস ব্যবহার করেন) (এটি একটি সহজ পর্যবেক্ষণ যা প্রমাণ থেকে প্রমাণিত হয় যে স্যাট করপ হ্রাসের অধীনে এনপি-সম্পূর্ণ)।
কাভেহ

@ কাভাহ হাহ? টোটোলজি কো-এনপি সম্পূর্ণ এবং তাই এনপি-তে থাকা হিসাবে পরিচিত নয়- যদিও আমি কুকের কাগজটি পড়িনি।
অ্যালবার্ট হেন্ডরিকস

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