2- بحث در مورد NP-Hard و NP-Complete - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

2- بحث در مورد NP-Hard و NP-Complete

+4 امتیاز

این تاپیک ادامه ی بحث در مورد کلاس های p و np هست . هدف  این قسمت شناسایی کلاس های Np Complete و Np Hard است.

در تاپیک قبلی(1- بحث در مورد NP-Hard و NP-Completeتا حدودی با p و np آشنا شدیم ؛ برای ورود به قسمت Np Complete و Np Hard نیاز به دانستن مفهوم Reduction است که ما در ابتدا به آن می پردازیم.

 
سوال شده خرداد 22, 1393  بوسیله ی Pakniat (امتیاز 247)   9 21 32
دوباره تگ گذاری شد شهریور 30, 1393 بوسیله ی BlueBlade

2 پاسخ

+3 امتیاز

فرض کنید از مسئله A یک Instance آلفا را در اختیار داریم ، هدف حل این نمونه ست . چون برای B الگوریتم با زمان چند جمله ای داریم و روالی با زمان چند جمله ای برای

کاهش ورودی داریم اگر بتا که خروجی این روال است به عنوان ورودی به الگوریتم B دهیم دو جواب آری یا نه را می دهد(چون مسئله تصمبم گیری است) . در اینصورت می

نویسیم مساله A به مسئله B کاهش پذیر است ؛ نمادی که برای این مسائل قرار داد کردند به صورت زیر است :

 

پاسخ داده شده خرداد 30, 1393 بوسیله ی Pakniat (امتیاز 247)   9 21 32
+2 امتیاز

Np-Hard : مسئله ای هستنش که در صورت پیدا شدن الگوریتم از درجه چند جمله ای میشه تمام مسائل NP رو به این مسئله تبدیل کرد و با پیچیدگی  چند جمله ای حل کرد.

.

به روشی که مسائل Np به NP_Hard تبدیل میشن Reduction میگیم .

منظور از Reduction اینه که فرض کنید که یک مسئله داریم که یکسری ورودی خاص داره مثلا X و یک مسئله دیگه داریم با ورودی Y حالا اگر بشه X رو بشکلی با درجه چند جمله ای به Y تبدیل کرد اصطلاجا Reduction بهش گفته میشه .

یعنی بطور خلاصه Reduction یعنی تبدیل ورودی یک مسئله  به یک مسئله  دیگه .

 

به الگوریتم از درجه چند جمله ای   (C یک ثابت هستش) . که برای Reduction ( یا تبدیل ورودی ۲ مسئله به هم) استفاده میشه polynomial-time reduction algorithm. میگن .

 

NP_Complete : مسائلی که هم Np هستند و هم NP_Hard . یعنی هم باید در صورت دادن یک جواب بشه درستی جواب رو در مدت زمان چند جمله ای بررسی کرد و هم بشه بقیه مسائل NP رو به این مسئله کاهش داد . 

مثل  Knapscak یا پیدا کردن دور همیلتونی در گراف یا traveling-salesman  و...

ضمنا تمام مسائل Np-complete با استفاده از Reduction قابل تبدیل به هم هستند .

 

پاسخ داده شده خرداد 31, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
ویرایش شده تیر 1, 1393 بوسیله ی BlueBlade
...