موضوع مقاله: ان‌پی سخت | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # ان‌پی سخت | مقدمه: بخش چپِ نمودار معتبر است با این فرض که P ≠ NP، و بخش راستِ نمودار معتبر است با این فرض که P = NP. | ## بخش 1: ان‌پی سخت | مجموعهٔ «ان‌پی-سخت» (به انگلیسی: NP-hard) شامل چندهزار مسئلهٔ مختلف با کاربردهای فراوان است که تاکنون برای آن‌ها راه حل سریع و قابل انجام در زمان معقول پیدا نشده‌است و به احتمال زیاد در آینده نیز یافت نخواهد شد. البته ثابت شده‌است که اگر فقط برای یکی از این مسئله‌ها راه حل سریعی پیدا شود٫این راه حل موجب حل سریع بقیهٔ مسئله‌ها خواهد شد. منظور از راه حل سریع آن است که زمان اجرای آن با اندازهٔ ورودی مسئله به صورت چندجمله‌ای رابطه داشته باشد. ان پی سخت (زمان چندجمله‌ای غیر قطعی سخت) در نظریه پیچیدگی محاسباتی یک کلاسی از مسائل است که "دست کم به سختی سخت‌ترین مسئله‌های NP" است. به عبارت دیگر L می‌تواند در زمان چندجمله‌ای به وسیلهٔ دستگاه اوراکل با اوراکل H حل شود. به صورت غیررسمی می‌توانیم الگوریتمی در نظر بگیریم که می‌تواند مانند یک ماشین اوراکل به عنوان یک زیر روال برای حل H تماس بگیرد و L را در زمان چندجمله‌ای حل کند اگر فراخوانی زیرروال تنها یک گام برای محاسبه بگیرد. مسئلهٔ ان پی سخت می‌تواند به هر صورتی باشد: مسئله‌های تصمیم‌گیری، مسئله‌های جستجو یا مسئله‌های بهینه‌سازی.. تعاریف جایگزین تعریف جایگزین ان پی سخت اغلب استفاده محدود ان پی سخت برای مسائل تصمیم‌گیری و سپس برای استفاده کاهش زمان چند جمله‌ای به چند به یک کاهش تورینگ است؛ بنابراین، زبان L ان پی سخت است اگر ∀L' ∈ NP, L' ≤ L. از طرف دیگر سیستم نام‌گذاری ان پی معنی عمیق‌تری دارد زیرا خانواده ان پی در ارتباط با کلاس ان پی تعریف شده‌اند: ان پی سخت: حداقل به سختی سخت‌ترین مسائل در ان پی است. برخی مثال‌ها نیاز ندارند ان پی باشند، در واقع آن‌ها حتی ممکن است مسائل تصمیم‌گیری نباشند. در پی آمد این تعاریف داریم: مسئلهٔ H حداقل به سختی L است، زیرا H می‌تواند برای حل L مورد استفاده قرار گیرد. ; از آنجا که L ان پی کامل باشد و از این رو سخت‌ترین در کلاس ان پی است، همچنین مسئلهٔ H حداقل به اندازه ان پی سخت است اما H نباید در ان پی باشد و بنابراین نباید یک مسئله تصمیم‌گیری باشد (اگر هم یک مسئلهٔ تصمیم‌گیری بود نیاز ندارد در ان پی باشد). ; از آنجا که مسئلهٔ‌های ان پی کامل به وسیلهٔ کاهش زمان چندجمله‌ای به چند به یک (تبدیل چندجمله‌ای)، به همدیگر تبدیل می‌شوند، تمام مسئله‌های ان پی کامل می‌توانند در زمان چندجمله‌ای با کاهش H حل شوند؛ بنابراین تمام مسئله‌ها در ان پی به H کاهش پیدا می‌کند. توجه: اگرچه این درگیری‌ها دو تبدیل مختلف را ترکیب می‌کند: از مسئلهٔ تصمیم‌گیری ان پی کامل به مسئلهٔ ان پی کامل L به وسیلهٔ تبدیل چندجمله‌ای و از L به H به وسیلهٔ چندجمله‌ای کاهش تورینگ. | ## بخش 2: ان‌پی سخت | ; اگر یک الگوریتم چند جمله‌ای برای هر مسئلهٔ ان پی سخت وجود داشته باشد، بنابراین الگوریتم‌هایی برای تمام مسئله‌ها در ان پی وجود دارند، از این رو P = NP. ; اگر P ≠ NP، بنابراین مسئله‌های ان پی سخت هیچ راه حلی در زمان چندجمله‌ای ندارند، تا زمانی‌که P = NP حل نمی‌شود خواه مسئله‌های ان پی سخت بتوانند در زمان چندجمله‌ای حل شوند. ; اگر یک مسئلهٔ بهینه‌سازی H دارای یک L نسخه تصمیم‌گیری ان پی کامل باشد، آنگاه H ان پی سخت است. یک اشتباه معمول این است که فکر کنیم که ان پی در ان پی سخت مخفف غیر چندجمله‌ای است. هر چند که به‌طور گسترده‌ای مشکوک است که هیچ الگوریتم زمان چندجمله‌ای برای مسئله‌های ان پی سخت وجود ندارد، این هرگز ثابت نشده‌است. علاوه بر این، کلاس ان پی شامل تمام مسائلی است که می‌تواند در زمان چندجمله‌ای حل شود. مفهوم و مقایسهٔ آن با ان پی-کامل مسئلهٔ H ان پی-سخت است اگر و فقط اگر مسئلهٔ L از نوع ان پی-کامل موجود باشد، به‌طوری‌که زمان حل آن بر حسب چندجمله‌ای قابل کاهش به Hباشد: (L ≤ TH)به عبارتی دیگر L را می‌توان در زمان زیاد با ماشین اوراکل H حل کرد. به‌طور غیررسمی ما می‌توانیم به الگوریتمی فکر کنیم که می‌تواندزیرروالی را برای حل H فراخوانی کند و L را در زمان زیاد حل کند اگر فراخوانی آن زیر روال فقط یک گام برای محاسبه طول بکشد. مسائل ان پی-سخت ممکن است از هر نوعی باشند:مسائل تصمیم گیری٫مسائل جستجو٫مسائل بهینه سازی. طبق روال تعریف: (توجه داشته باشید که این‌ها صرفاً ادعا هستند نه تعریف): مسئلهٔ H حداقل به سختی مسئلهٔ L است. اما H نباید ان پی باشد و بنابراین نباید از نوع مسائل تصمیم گیری باشد(حتی اگر از نوع مسایل تصمیم‌گیری باشد نیازی ندارد ازنوع مسائل ان پی باشد.) مسائل ان پی-کامل با زمان زیاد با ۱ واحد کاهش به یکدیگر تبدیل می‌شوند(همچنین تحولات چند جمله‌ای نیز نامیده می‌شوند.) همهٔ مسائل ان پی-کامل با کاهش H می‌توانند در زمان زیاد حل شوند. توجه داشته باشید هر چند این شامل ترکیب کردن ۲ تبدیل است: از ان پی-کامل:مسائل تصمیم گیری به مسائل ان پی-کامل با تحولات چندجمله‌ای از L به H با کاهش چند جمله‌ای تورینگ. ماشین تورینگ اگر یک الگوریتم چندجمله‌ای برای هر مسئلهٔ ان پی-سخت موجود باشد٫ سپس الگوریتمهای چندجمله‌ای برای همهٔ مسائل در ان پی وجود دارند و بنابراین مسئله برابری پی و ان‌پی اگر P ≠ NP باشد ٫ مسائل ان پی-سخت راه حلی در زمان‌های زیاد ندارند. اگر مسائل بهینه سازی ٫H یک نسخهٔ تصمیم‌گیری ان پی-کامل داشته باشند٫ H یک ان پی-سخت است. | ## بخش 3: ان‌پی سخت | یک اشتباه رایج این است که فکر می‌کنیم ان پی در ان پی-سخت بر پایهٔ غیر چند جمله‌ای است. اگر چه به‌طور گسترده انتظار میرود که هیچ الگوریتم غیر چند جمله‌ای بر حسب تابع زمانی برای مسائل ان پی- سخت وجود ندارد ولی این موضوع هنوز اثبات نشده‌است. علاوه بر این مسائل از نوع ان پی همچنین شامل همهٔ مسائلی هستند که می‌توانند در چندجمله‌ای از تابع زمان حل شوند. روش حل مسایل ان پی-سخت روش‌های مختلفی برای حل سریع ولی نزدیک به بهینه برای یک مسئلهٔ ان پی-سخت وجود دارد: راه حل تقریبی قابل اثبات(الگوریتم‌های تقریبی):که در آن یک الگوریتم سریع برای حل مسئله ارائه می‌شود ولی اثبات می‌شود که اندازهٔ خروجی ضریبی از اندازهٔ خروجی بهینهٔ مسئله‌است. الگوریتم‌های مکاشفه‌ای:با این که الگوریتم‌هایی سریع هستند و به صورت تقریبی جواب را به دست می‌آورند٫اما در مورد ضریب تقریب یا میزان خوبی الگوریتم اثباتی وجود ندارد. الگوریتم‌ها راه‌های معمول مقابله با چنین مسائلی عبارتند از: طراحی الگوریتم‌هایی برای پیدا کردن جواب‌های دقیق که استفاده از آن‌ها فقط برای مسائل با اندازه کوچک صورت می‌گیرد. پیدا کردن زیرمسئله‌هایی از مسئله یعنی تقسیم مسئله به مسئله‌های کوچکتر تا بشود از الگوریتم‌های مکاشفه‌ای بهتر و دقیق‌تری استفاده کرد. مثالی از مسئله ان پی سخت در تصمیم‌گیری مسئله جمع زیرمجموعه‌است که به این صورت است: با توجه به مجموعه‌ای از اعداد صحیح، هیچ زیر مجموعه غیر تهی از آن‌ها به صفر اضافه می‌شود؟ مثال دیگر ان پی سخت مسئله بهینه‌سازی پیدا کردن حداقل هزینه مسیر چرخه‌ای از طریق تمام گره‌ها از یک گراف وزندار است که به عنوان مسئله فروشنده دوره گرد شناخته شده‌است. مسائل تصمیم‌گیری ای هستند که ان پی سخت هستند اما ان پی کامل نیستند، برای مثال مسئله توقف. این مسئله ایست که می‌پرسد «با توجه به یک برنامه و ورودی، آیا همیشه اجرا خواهد شد؟». برای مثال مسئله بولی قابل راضی کردنی می‌تواند به وسیلهٔ تبدیل آن به توضیحات ماشین تورینگ که برای تخصیص تمام داده‌های درست تلاش می‌کند و زمانی که یکی را پیدا کند که فرمول را به توقف قانع کند و درغیراینصورت به یک حلقه بی‌نهایت می‌رود، به مسئله توقف کاهش پیدا کند. | ## جمع‌بندی | همچنین به راحتی می‌توان دید که مسئله توقف ان پی نیست از آنجا که تمام مسائل در ان پی در تعداد دستورالعمل‌های محدود قابل تصمیم‌گیری هستند، درصورتی‌که مسئله توقف به‌طور کلی این‌طور نیست.