مجموعهٔ «'''انپی-سخت'''» شامل چندهزار مسئلهٔ مختلف با کاربردهای فراوان است که تاکنون برای آنها راه حل سریع و قابل انجام در زمان معقول پیدا نشدهاست و به احتمال زیاد در آینده نیز یافت نخواهد شد. این که راه حل سریعی برای آنها وجود ندارد هم اثبات نشدهاست. البته ثابت شدهاست که اگر فقط برای یکی از این مسئلهها راه حل سریعی پیدا شود٫این راه حل موجب حل سریع بقیهٔ مسئلهها خواهد شد. البته احتمال پیدا شدن چنین الگوریتمی ضعیف است. منظور از راه حل سریع آن است که زمان اجرای آن با اندازهٔ ورودی مسئله به صورت [[چندجملهای]] رابطه داشته باشد.
'''ان پی سخت''' (زمان چندجملهای غیر قطعی سخت) در [[نظریه پیچیدگی محاسباتی]] یک کلاسی از مسائل است که "دست کم به سختی سختترین مشکلاتمسئلههای NP" است. مشکلمسئلهٔ H یک مسئلهٔ ان پی سخت است اگر و فقط اگر یک مشکلمسئلهٔ ان پی کامل L که زمان چندجملهای تورینگ تقلیل (polynomial time Turing-reducible) به سمت H وجود داشته باشد (L ≤ TH). به عبارت دیگر L میتواند در زمان چندجملهای به وسیلهٔ دستگاه اوراکل با اوراکل H حل شود. به صورت غیررسمی میتوانیم اگویتمیالگوریتمی در نظر بگیریم که میتواند مانند یک ماشین اوراکل به عنوان یک زیر روال برای حل H تماس بگیریدبگیرد و L را در زمان چندجملهای حل کند اگر فراخوانی زیرروال تنها یک گام برای محاسبه بگیرد. مشکلمسئلهٔ ان پی سخت میتواند به هر صورتی باشد: مشکلاتمسئلههای تصمیمگیری، مشکلاتمسئلههای جستجو یا مشکلاتمسئلههای بهینهسازی..
== تعاریف جایگزین ==
تعریف جایگزین ان پی سخت اغلب استفاده محدود ان پی سخت برای مسائل تصمیمگیری و سپس برای استفاده کاهش زمان چیندچند جملهای به چند به یک کاهش تورینگ است؛ بنابراین، زبان L ان پی سخت است اگر ∀L' ∈ NP, L' ≤ L. اگر همچنین این حالت که L در ان پی باشد بنابراین L ان پی کامل نامیده میشود.
== کنوانسیون نامگذاری ان پی ==
سیستم نامگذاری خانواده ان پی گیجکنندهاست: مسائل ان پی سخت همه ان پی نیستند با وجود اینکهاین که پسوند NP را در کلاس اسمی خود دارند. اگرچه نام هماکنون در حال تثبیت است و بعید است تغییر کند. از طرف دیگر سیستم نامگذاری ان پی معنی عمیقتریعمیقتری دارد زیرا خانواده ان پی در ارتباط با کلاس ان پی تعریف شدهاند:
;ان پی سخت: حداقل به سختی سختترینسختترین مسائل در ان پی است. برخی مثالها نیاز ندارند ان پی باشند، در واقع آنها حتی ممکن است مسائل تصمیمگیری نباشند.
;ان پی کامل: اینها سختترینسختترین مسائل در ان پی هستند. مثل مسئلهای که ان پی سخت، در ان پی است.
;ان پی آسان: حداکثر به سختی ان پی است اما لزوماً ان پی نیست. از آنجایی که آنها ممکن است مشکلاتمسئلههای تصمیمگیری نباشند.
;ان پی معادل: دقیقاً به سختی سختترینسخت ترین مسائل در ان پی است اما لزوماً ان پی نیست.
در پی آمد این تعاریف داریم:
* مشکلمسئلهٔ H حداقل به سختی L است، زیرا H میتواند برای حل L مورد استفاده قرار گیرد. ;
* از آنجا که L ان پی کامل باشد و از این رو سختترین در کلاس ان پی است، همچنین مشکلمسئلهٔ H حداقل به اندازه ان پی سخت است اما H نباید در ان پی باشد و بنابراین نباید یک مشکلمسئله [[تصمیمگیری]] باشد (اگر هم یک مشکلمسئلهٔ تصمیمگیری بود نیاز ندارد در ان پی باشد). ;
* از آنجا که مشکلاتمسئلهٔهای ان پی کامل به وسیلهٔ کاهش زمان چندجملهای به چند به یک (تبدیل چندجملهای)، به همدیگر تبدیل میشوند، تمام مشکلاتمسئلههای ان پی کامل میتوانند در زمان چندجملهای با کاهش H حل شوند؛ بنابراین تمام مشکلاتمسئلهها در ان پی به H کاهش پیدا میکند. توجه: اگرچه این درگیریها دو تبدیل مختلف را ترکیب میکند: از مشکلمسئلهٔ تصمیمگیری ان پی کامل به مشکلمسئلهٔ ان پی کامل L به وسیلهٔ تبدیل چندجملهای و از L به H به وسیلهٔ چندجملهای کاهش تورینگ. ;
* اگر یک الگوریتم پند جملهای برای هر مشکلمسئلهٔ ان پی سخت وجود داشته باشد، بنابراین الگوریتمهایی برای تمام مشکلاتمسئلهها در ان پی وجود دارند، از این رو P = NP. ;
* اگر P ≠ NP، بنابراین مشکلاتمسئلههای ان پی سخت هیچ راه حلی در زمان چندجملهای ندارند، تا زمانیکه P = NP حل نمیشود خواه مشکلاتمسئلههای ان پی سخت بتوانند در زمان چندجملهای حل شوند. ;
* اگر یک مشکلمسئلهٔ [[بهینهسازی]] H دارای یک L نسخه تصمیمگیری ان پی کامل باشد، آنگاه H ان پی سخت است.
یک اشتباه معمول این است که فکر کنیم که ان پی در ان پی سخت مخفف غیر چندجملهای است. هر چند که بهطور گستردهای مشکوک است که هیچ الگوریتم زمان چندجملهای برای مشکلاتمسئلههای ان پی سخت وجود ندارد، این هرگز ثابت نشدهاست. علاوه بر این، کلاس ان پی شامل تمام مسائلی است که میتواند در زمان چندجملهای حل شود.
== مثالها ==
مثالی از مسئله ان پی سخت در تصمیمگیری مسئله جمع زیرمجموعهاست که به این صورت است: با توجه به مجموعهای از [[اعداد صحیح]]، هیچ زیر [[مجموعه غیر تهی]] از آنها به صفر اضافه میشود؟ این یک مشکلمسئلهٔ تصمیمگیری است، و برای ان پی کامل اتفاق میافتد. مثال دیگر ان پی سخت [[مسئله بهینهسازی]] پیدا کردن حداقل هزینه مسیر چرخهای از طریق تمام گرهها از یک گراف وزندار است که به عنوان مسئله [[فروشنده دوره گرد]] شناخته شدهاست.
مسائل تصمیمگیری ای هستند که ان پی سخت هستند اما ان پی کامل نیستند، برای مثال مسئله توقف. این مسئله ایست که میپرسد «با توجه به یک برنامه و ورودی، آیا همیشه اجرا خواهد شد؟». این یک سؤال بله/خیر است، بنابراین یک مسئله تصمیمگیری است. ثابت کردن که مشکلمسئلهٔ توقف ان پی سخت است اما نه ان پی کامل آسان است. برای مثال مسئله بولی قابل راضی کردنی میتواند به وسیلهٔ تبدیل آن به توضیحات [[ماشین تورینگ]] که برای تخصیص تمام دادههای درست تلاش میکند و زمانی که یکی را پیدا کند که فرمول را به توقف قانع کند و درغیراینصورت به یک [[حلقه بینهایت]] میرود، به [[مسئله توقف]] کاهش پیدا کند. همچنین به راحتی میتوان دید که مسئله توقف ان پی نیست از آنجا که تمام مسائل در ان پی در تعداد دستورالعملهای محدود قابل تصمیمگیری هستند، درصورتیکه مسئله توقف بهطور کلی اینطور نیست. مسئلههای ان پی سختی هم وجود دارند که نه ان پی کامل هستند نه تصمیم ناپذیر. برای مثال زبان فرمول بولی [[اندازهگیری]] درست (True quantified Boolean formulas) در فضای چندجملهای قابل تصمیم پذیر است اما غیر قطعی نشده زمان چندجملهای است (مگر اینکه NP = PSPACE).
* [[نظریه پیچیدگی محاسباتی]]
|