ان پی (کامل)
|
|
این مقاله نیازمند تمیزکاری است. لطفاً تا جای امکان آنرا از نظر املا، انشا، چیدمان و درستی بهتر کنید، سپس این الگو را از بالای مقاله بردارید. محتویات این مقاله ممکن است غیر قابل اعتماد و نادرست یا جانبدارانه باشد یا قوانین حقوق پدیدآورندگان را نقض کرده باشد. |
| این مقاله نیازمند ویکیسازی است. لطفاً با توجه به راهنمای ویرایش و شیوهنامه، محتوای آن را بهبود بخشید. |
| در متن این مقاله از هیچ منبع و مأخذی نام برده نشدهاست. شما میتوانید با افزودن منابع برطبق اصول اثباتپذیری و شیوهنامهٔ ارجاع به منابع، به ویکیپدیا کمک کنید. مطالب بیمنبع احتمالاً در آینده حذف خواهند شد. |
محتویات |
[ویرایش] کلاس پیچیدگی محاسبهٔ NP
در نظریه پیچیدگی محاسباتی NP که یکی از بنیادیترین کلاسها است. NP مخفف عبارت “non deterministic polynomial” است که به زمان اجرای آن اشاره دارد.
NP مجموعهٔ کلیه مسائل تصمیم گیری است که پیدا کردن جواب بله برای آنها شامل اثبات سادهای است که جواب حقیقتاَ باید بله باشد. بطور دقیق تر این اثباتهای ساده باید قابل بررسی در یک زمان اجرای چند جملهای در یک ماشین تورینگ جبری باشد. در مقابل این تعریف NP مجموعه مسائل تصمیم گیری نامیده میشود که در یک زمان اجرای چند جملهای در یک ماشین تورینگ غیر جبری قابل بررسی باشند. کلاس پیچیدگی P یکی از اعضای NP است اما NP شامل کلاسهای مهم دیگری نیز هست. که پیچیدهترین آنها NP-Complete است بطوریکه برای آنها هیچ الگوریتم شناخته شده قابل اجرا در زمان چند جملهای وجود ندارد.
مهمترین سوالی که اکنون برای این کلاسها در این نظریه وجود دارد این است که آیا P=NP؟ این سوال میپرسد که آیا چنین الگوریتمی واقعا برای مسائل NP-Complete و در کل NP وجود دارد یا خیر. این باور گسترده وجود دارد که این تساوی نمیتواند درست باشد.
[ویرایش] تعاریف رسمی
NP را میتوان به وسیلهٔ NTIME نیز تعریف کرد:
(NP=∪NTIME(n^k
[ویرایش] مقدمه
بسیاری از مسئلههای معمول علوم کامپیوتر در حوزهٔ مسائل NP قرار دارند. مخصوصا مدل تصمیم گیری بسیاری از مسائل جستجو و بهینه سازی در حوزهٔ NP قرار دارد. نمونههایی از زمینههایی که شامل مسائل NP میشوند عبارتند از: مانند جبر بولی، گراف، طراحی شبکه، زیست شناسی، فیزیک جدید، نظریه اعداد، نظریه بازیها و پازلها، نظریه زبانها و ماشینها و...
[ویرایش] تعریف بر پایهٔ بررسی کننده
به منظور تعریف این چنین NP بیایید مسئلهٔ مجموع زیر مجموعهها را در نظر بگیرید. فرض کنید به ما تعدادی عدد صحیح داده شدهاست مثلا {-۷و-۳و-۲ ۵و ۸و} و ما میخواهیم بدانیم که آیا مجموع اعضای یکی از زیر مجموعههای آن صفر میشود یا نه؟ در این مثال جواب بلهاست زیرا اعداد -۳,-۲٬۵ میتوانند این شرط را بررسی کنند.
هنگامیکه مقدار اعداد صحیح ورودی زیاد شود تعداد زیر مجموعهها بصورت توانی افزایش مییابد و در حقیقت مساله فوق یک مساله NP-Complete است.
در هر حال توجه شود که اگر به ما یک زیر مجموعه مشخص بدهند (بعضی اوقات گواه نامیده میشود) ما به راحتی میتوانیم بررسی کنیم که آیا مجموع آن صفر است یا خیر. (تنها با جمع کردن اعضای آن زیر مجموعه) و اگر مجموع صفر باشد آن زیر مجموعه یک شاهد برای این است که جواب بلهاست. الگوریتمی که بررسی میکند آیادرزیر مجموعه داده شده مجموع اعضا صفر است بررسی کننده نامیده میشود.
یک مساله را عضو NP مینامند اگر و فقط اگر یک بررسی کننده برای آن وجود داشته باشد که در زمان اجرای چند جملهای اجرا شود.
در مورد مساله مجموع زیر مجموعهها نیز بررسی کننده تنها نیازمند زمان اجرای خطی است که این دلیلی است برای اینکه این مساله NP است.
توجه شود که در تعریف بر پایهٔ بررسی کننده NP نیازمند یک بررسی کننده بعنوان گواه برای جواب نه نیست. آن کلاس مسائلی که شامل یک شاهد این چنینی هستند CO-NP نامیده میشود. در حقیقت یک سوال بدون جواب دیگری در اینجا وجود دارد که آیا تمام مسائل NP دارای یک گواه برای جواب نه هستند و در نتیجه CO-NP میشوند.
[ویرایش] تعریف ماشینی
معادل تعاریف قبلی این تعریف نیز وجود دارد که میگوید:
NP مجموعه مسائل تصمیم گیری است که قابل حل شدن در یک زمان اجرای چند جملهای در یک ماشین تورینگ غیر جبری میباشد.
مثال در اینجا یک لیست نا کامل از مسائل NP را بیان میکنیم: تمام مسائل P (برای یک گواه مسئله P ما میتوانیم کلا گواه را نادیده بگیریم و مساله را در زمان اجرای چند جملهای حل کرد. همچنین توجه شود که یک ماشین تورینگ جبری یک ماشین تورینگغیر جبری است که از هیچ کدام از تواناییهای غیر جبری اش استفاده نمیکند. مسئله پیدا کردن مقسوم علیههای یک عدد صحیح: دو عدد صحیح N و K داده شدهاند. می خواهیم بدانیم آیا عدد صحیحی مثل F وجود دارد که ۱<F<K و N بر F بخش پذیر باشد. مسئله یکریختی دو گراف که یکریخت بودن دو گراف را بررسی میکند. حالتهای متفاوت مساله دست فروش دوره گرد که در آن میخواهیم بدانیم آیا مسیری هست که از تمام گرهها در یک شبکه عبور کند. مساله درستی منطقی که در آن میخواهیم بدانیم آیا یک فرمول منطقی در زبان منطق میتواند به ازای مقادیری از متغیرها راست باشد یا خیر.
[ویرایش] برابری تعاریف
دو تعریف برای NP یکی به عنوان مجموعه مسائلی که قابل حل با ماشین تورینگ غیر جبری در زمان اجرای چند جملهای هستند و دیگری مجموعه مسائلی که دارای یک بررسی کننده با زمان اجرای چند جملهای در یک ماشین تورینگ جبری هستند با هم معادلند. اثبات این برابری در بسیاری از کتابها آمدهاست بطور مثال در کتاب: Sipser’s Introduction to the theory of computation section 7.3 برای نشان دادن این ابتدا فکر کنیم که یک بررسی کننده جبری داریم یک ماشین تورینگ غیر جبری میتواند به راحتی بصورت غیر جبری بررسی کننده را بر روی تمام حالات ممکن از رشتهها بررسی کند.(این کار تنها نیازمند مراحل چند جمله گونهاست زیرا این ماشین میتواند با حرکات غیر جبری کاراکتر بعدی را در رشتهٔ مورد نظر را در هر مرحله پیدا کند و طول رشتهٔ داده شده نیز باید محدود به چند جملهای باشد.) اگر یکی از این رشتههای بررسی کننده معتبر باشد بعضی از مسیرها مورد قبول واقع میشوند و اگر هیچ رشتهای معتبر نباشد رشته یک زبان به حساب نمیآید و پس داده میشود. از طرف دیگر فرض کنیم ما یک ماشین تورینگ غیر جبری به نام A داشته باشیم و یک زبان L به آن ارائه کنیم. در هر کدام از مراحل با شمار چندجملهای این ماشین، شاخههای درخت محاسبه با یک عدد صحیح ثابت مشخص میشوند که نشان دهندهٔ جهت هاست. وجود حداقل یک راه درست الزامی است و رشتهای که این مسیر را مشخص میکند گواهی برای بررسی کنندهاست. پس از آن اثبات کننده میتواند بصورت جبری A را بصورت عبور از مسیر پذیرفته شده و بررسی اینکه ار آخر نیز پذیرفته میشود پیاده سازی کند. اگر A داده را قبول نکند هیچ راه پذیرفته شدهای وجود ندارد و بررسی کننده هیچ گاه به جواب بله نمیرسد.
[ویرایش] چرا بعضی از مسائل NP به سختی حل میشوند؟
به این علت که بسیاری مسئلهٔ مهم در این کلاس وجود دارد تلاشهای فراوانی برای پیدا کردن الگوریتمهایی با زمان اجرای چند جملهای برای مسائل NP صورت گرفتهاست. با این وجود باز هم مسائلی از NP باقی میمانند که در برابر این تلاشها مقاومت میکنندو به نظر میرسد که نیازمند زمان اجرای فراتر از چند جملهای هستند. اینکه آیا این مسائل اصلا قابل بررسی در زمان اجرای چند جملهای هستند یا خیر از بزرگترین مسائل در علم کامپیوتر است. (به مسئله P=NP مراجعه شود) یکی از مفاهیم مهم در این مبحث مجموعه مسائل NP-Complete است که زیر مجموعهٔ NP به شمار میآید و به صورت غیر رسمی تر میتواند بعنوان سختترین مسائل NP به شمار بیایند. اگر یک الگوریتم زمان اجرای چند جملهای حتی برای یکی از این مسائل پیدا شود آنگاه برای تمام این مسائل الگوریتمی با زمان اجرای چند جملهای پیدا خواهد شد. بنا بر این علت و همچنین این علت که تا کنون تمامی تحقیقات برای بدست آوردن چنین الگوریتمی برای هر یک از این مسائل به شکست منجر شدهاست، هنگامیکه ثابت میشود مسالهای NP-Complete است پیدا شدن الگوریتمی با زمان اجرای چند جملهای برای آن بعید به نظر میرسد.
[ویرایش] رابطه با سایر کلاسها
NP شامل تمام مسائل P میشود زیرا هر کس میتواند با نادیده گرفتن شواهد حل مساله هر نمونه از این مسائل را حل کند. NP در PSPACE موجود است. برای نشان دادن این کافی است یک ماشین PSPACE درست کنیم که بر روی تمام رشتههای گواه گردش کند و هر کدام را به یک بررسی کننده زمان اجرای چند جملهای ارائه دهد. از آنجا که این ماشین تنها میتواند بیتهایی با تعداد چند جملهای را بخواند نمیتواند در فضاهایی فراتر از چند جملهای به کار رود و نمیتواند بررسی کنندهای را بپذیرد که زمان اجرایی فراتر از چند جملهای نیاز دارد (بنابر این ما نیازی نداریم تا گواههایی را بررسی کنیم که زمان اجرای طولانی تری دارند.) NP همچنین در مجموعه EXPTIME موجود است. به این علت که الگوریتمیکسانی برای آن در زمان اجرای توانی موجود است. CO-NP شامل آن سری مسائلی است که گواههای سادهای برای نادرست بودن دارند که بعضی اوقات مثال نقض نامیده میشود. برای مثال تست اول بودن یک عدد صحیح در حوزهٔ CO-NP قرار میگیرد زیرا میتوان غیر اول بودن یک عدد را به راحتی با پیدا کردن یک عامل آن مشخص کرد. NP و CO-NP در کنار هم در اولین سطح بالای P درسلسله مراتب چند جمله ایها قرار دارند. NP تنها برای ماشینهای جبری تعریف میشود. اگر ما به بررسی کننده توانایی احتمالی بودن را نسبت دهیم (بطور خاص ماشین BPP) به کلاس MA میرسیم که قابل حل با قراداد آرتور- مرلین بدون برقراری ارتباط بین آرتور و مرلین است. NP کلاس مسائل تصمیم گیری است کلاس مشابه آن برای راهبرد کلاس توابع FNP است.
[ویرایش] خصوصیات دیگر
ویژگی منطقی سادهای در NP وجود دارد. NP شامل زبانهای مرتبهٔ دوم منطق است که استفاده از متغیرهای جهانی را بر روی روابط؛ مجموعهها و توابع مانع شده باشند. NP را میتوان به چشم یک سیستم اثبات متقابل بسیار ساده نگاه کرد که اثبات کننده یک شاهد اثبات ارائه میکند و بررسی کننده در یک زمان اجرای چند جملهای بصورت جبری آنرا بررسی کند. این اثبات کامل است زیرا یک رشتهٔ اثبات صحیح پذیرفته میشود و مانع است زیرا بررسی کننده پذیرفته نمیشود اگر رشتهٔ اثبات صحیحی وجود نداشته باشد. یک نتیجهای مهم نظریه پیچیدگی اینست که NP میتواند بصورت مسائلی دسته بندی شود که با اثباتهای مبتنی بر بررسی احتمال قابل بررسی باشند. بصورتی که بررسی کننده از تعداد (O(log n بیت تصادفی استفاده میکند و در هر مرحله تعداد ثابتی از بیتها را بعنوان رشتهٔ اثبات (کلاس PCP (logn,1)) ارزیابی میکند. بصورت غیر رسمی تر میتوان گفت بررسی کنندهٔ NP که در قبل معرفی شد را میتوان با بررسی کنندهای عوض کرد که با تکنیک «بررسی نقطه به نقطه» چندین نقطه در رشتهٔ اثبات را بررسی میکند. و به این ترتیب میتوان با چند محاسبهٔ ساده میتوان جواب درست را با احتمال بالا بدست آورد. با این روش میتوان نتایج زیادی دربارهٔ سختی مسائل بهینه سازی را اثبات کرد
[ویرایش] مثال
مدل تصمیم گیری مسئلهٔ دست فروش دوره گرد NP به حساب میآید. یک ماتریس فاصلهٔ بین N شهر از ورودی گرفته میشود. مسئله این است که آیا مسیری وجود دارد که از همهٔ شهرها بگذرد و طول آن کمتر از K باشد. یک ماشین تورینگ غیر جبری میتواند مسیر را بصورت زیر پیدا کند. از هر شهر تمام شهرهای همسایه را بررسی میکند تا هنگامیکه تمام شهرها را ملاقات کند و اگر به بن بست برسد بلافاصله متوقف میشود. در پایان بررسی میکند که آیا طول مسیر کمتر از K است. این بررسی از O(n) است. میتوان این طور فکر کرد که هر حدس یک کپی از ماشین تورینگ است که راههای ممکن را پیش رو میگیرد و اگر حداقل یک ماشین یک مسیر کوتاهتر از K پیدا کند آن ماشین ورودی را میپذیرد. (متناظرا این مسئله را میتوان این طور درنظر گرفت که یک ماشین تورینگ وجود دارد که همواره جواب درست را حدس میزند.) جستجوی دودویی برروی فواصل ممکن میتواند این مسئلهٔ تصمیم گیری را به یک مسئلهٔ بهینه سازی تبدیل کند.
[ویرایش] نتیجه گیری
مسائل NP در زمان نمایی با توجه به مقدار ورودی اجرا میشوند. واژه "NP کامل " بدین معنی است که یک مسئله ارزش این را ندارد که سعی شود به صورت بهینه کامل حل شود.
[ویرایش] منابع
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Section 34.2: Polynomial-time verification, pp.979–983.
- Michael Sipser (۱۹۹۷). Introduction to the Theory of Computation. PWS Publishing. ISBN 0-534-94728-X. Sections 7.3–7.5 (The Class NP, NP-completeness, Additional NP-complete Problems), pp.241–271.
- David Harel, Yishai Feldman. Algorithmics: The Spirit of Computing, Addison-Wesley, Reading, MA, 3rd edition, 2004.
[ویرایش] پیوند به بیرون ==
- الگو:CZoo
- Graph of NP-complete Problems[پیوند مرده]
- American Scientist primer on traditional and recent complexity theory research: "Accidental Algorithms"