המחלקה NP, המייצגת זמן פולינומי לא דטרמיניסטי, היא מרכזית בתורת המורכבות החישובית ומקיפה בעיות החלטה שיש להן מאמת זמן פולינום. בעיית החלטה היא כזו שדורשת תשובה של כן או לא, ומאמת בהקשר זה הוא אלגוריתם שבודק את נכונותו של פתרון נתון.
חשוב להבחין בין פתרון בעיה (חישוב) לבין אימות פתרון (אימות). ב-NP, ההתמקדות היא האם קיים מאמת זמן פולינומי שיכול לאשר את נכונות הפתרון.
המחלקה P, המייצגת זמן פולינום, כוללת בעיות החלטה שניתנות לפתרון על ידי מכונת טיורינג דטרמיניסטית בתוך זמן פולינום. לפיכך, עבור כל בעיה ב-P, לא רק שיש אלגוריתם זמן פולינומי למציאת פתרון, אלא יש גם אלגוריתם זמן פולינומי כדי לאמת פתרון.
הסתירה לכאורה נעוצה בהתבוננות שלכל בעיה ב-P, שבאופן מובנה יש אלגוריתם לפתרון זמן פולינומי, יש גם מאמת זמן פולינומי. עם זאת, זה לא סותר את ההגדרה של NP. התכונה המגדירה של NP היא קיומו של מאמת זמן פולינומי, ללא קשר לכמה זמן ייקח למצוא את הפתרון. זה אומר שכל הבעיות ב-P הן גם ב-NP, מכיוון שניתן לאמת את הפתרונות שלהן בזמן פולינומי.
לדוגמה, שקול את הבעיה של בדיקת מספרים ראשוניים. ניתן למסגר בעיה זו בשתי דרכים: יצירת מספרים ראשוניים ואימות אם מספר נתון הוא ראשוני. ה-Sieve of Eratosthenes הוא אלגוריתם להפקת כל המספרים הראשוניים עד גבול מסוים ועושה זאת ביעילות, אך מורכבות הזמן שלו אינה פולינומית במובן המחמיר המשמש בתורת המורכבות החישובית; הוא מסומן לעתים קרובות כ-O(n log log n), שהוא טוב יותר מליניארי אך לא פולינום למהדרין לפי ההגדרה של P. מצד שני, הבעיה של אימות אם מספר נתון הוא ראשוני (בדיקת מספר ראשוני) היא משימה אחרת. אלגוריתמים יעילים כמו מבחן ראשוניות AKS מאפשרים אימות ראשוני בזמן פולינומי. לכן, בעיית בדיקת המספרים הראשוניים, בהקשר של אימות, נכנסת למחלקה P, כמו גם ל-NP, מכיוון שניתן לאמת פתרון (האם מספר הוא ראשוני) בזמן פולינומי. זה מדגים שבעוד שיצירת מספרים ראשוניים ובדיקת מספרים ראשוניים קשורים, הם כרוכים בשיקולים שונים במונחים של מורכבות חישובית.
לסיכום, ההגדרה של NP כבעל מאמת זמן פולינום מתיישרת עם אופיו של P. ההבחנה אינה בשלב האימות אלא בתהליך מציאת פתרונות: בעיות P ניתנות לפתרון וניתנות לאימות בזמן פולינום, בעוד שבעיות NP ניתנים לאימות בזמן פולינומי, אך לא תמיד ידוע אם ניתן לפתור אותם בזמן פולינומי.
שאלות ותשובות אחרונות אחרות בנושא מוּרכָּבוּת:
- האם מחלקה PSPACE לא שווה למחלקה EXPSPACE?
- האם מחלקת המורכבות P היא תת-קבוצה של מחלקת PSPACE?
- האם נוכל להוכיח שמחלקות Np ו-P זהות על ידי מציאת פתרון פולינום יעיל לכל בעיה שלמה של NP ב-TM דטרמיניסטי?
- האם מחלקת NP יכולה להיות שווה למחלקה EXPTIME?
- האם יש בעיות ב-PSPACE שעבורן אין אלגוריתם NP ידוע?
- האם בעיית SAT יכולה להיות בעיה שלמה של NP?
- האם בעיה יכולה להיות במחלקת מורכבות NP אם יש מכונת טיורינג לא דטרמיניסטית שתפתור אותה בזמן פולינומי
- NP היא מחלקה של שפות שיש להן מאמת זמן פולינומי
- האם P ו-NP הם בעצם אותה דרגת מורכבות?
- האם כל הקשר הוא שפה חופשית בשיעור המורכבות P?
צפו בשאלות ותשובות נוספות ב-Complexity