שאלת P לעומת NP
Transcription
שאלת P לעומת NP
פרק 15 שאלת Pלעומת NP כפי שהזכרנו בתחילת הקורס )וכפי שאולי שמעתם בהקשרים אחרים( ,אחת השאלות הפתוחות המרכזיות בתיאוריה של מדעי המחשב )ויש שיאמרו – השאלה החשובה ביותר( ,היא השאלה לגבי היחס בין המחלקות Pו־ ,NPשהגדרנו לעיל .בהתבוננות פשוטה ,קל לראות שמתקיימת ההכלה ,P ⊆ NPכיוון שכל מ"ט דטרמיניסטית היא בעצמה גם מ"ט ל"ד .מכאן ,שאין יתרון )מבחינת זמן החישוב( למודל הדטרמיניסטי על פני המודל הל"ד; השאלה המעניינת היא ,אם כן ,האם היחס בין המחלקות הוא הכלה ממש או שוויון .למעשה ,אנו רוצים לדעת האם יש למ"ט ל"ד יש יתרון משמעותי בזמן החישוב יחסית למ"ט דטר'? בפרט ,האם ישנן שפות שניתן להכריע באופן ל"ד בזמן פולינומי ,אך לא ניתן להכריע אותן בזמן פולינומי בצורה דטרמיניסטית? ראשית ,נבהיר שלשאלה זו יש משמעות מעשית רבה :מצד אחד ,ישנן בעיות חשובות רבות )אנו נראה כמה מהן בחלק זה של הקורס( שידועים עבורם אלגוריתם ל"ד יעילים ,אך לא ידועים אלגוריתמים דטרמיניסטיים יעילים הפותרים אותן; מצד שני ,אין בידינו היום מכונות שמסוגלות לבצע בפועל חישובים ל"ד 1 .בהנתן מצב זה ,שוויון בין המחלקות יבטיח לנו שניתן לפתור בעיות חשובות רבות בזמן יעיל; מצד שני ,משמעותו של אי־שוויון בין המחלקות היא שללא פריצת דרך קונספטואלית שתאפשר חישוב ל"ד מעשי ,ישנן בעיות חשובות רבות שלא נוכל לפתור בצורה יעילה2 . בנוסף ,נעיר שבניגוד להבדל בין מודל עם סרט אחד למודל עם כמה סרטים ,למשל ,שם יכולנו להראות שהבדל זמן הריצה הוא פולינומי לכל היותר ,החסם שמתקבל מהוכחת השקילות )בכוח החישוב( בין מ"ט דטר' למ"ט ל"ד הוא אקספוננציאלי .המשמעות היא ששאלת היעילות אינה עניין "קטנוני" של "חוסר סבלנות לחכות שהמחשב יסיים" :כדי להדגים זאת ,נניח שיש לנו קלט באורך 400ביטים .אלגוריתם הרץ בזמן n3יסיים בתוך 64,000,000 צעדים )כלומר ,על מחשב מודרני יסיים את הריצה בזמן שאינו עולה על מספר דקות(; לעומת זאת ,אם האלגוריתם דורש זמן של ,2nמספר הצעדים הנדרשים הוא מספר בן כ־ 120ספרות עשרוניות ,מה שאומר שגם על המחשב המהיר ביותר היום ,אלגוריתם כזה ידרוש מספר שנים בן למעלה מ־ 100ספרות .נעיר שקלט בן 400ביטים אינו נחשב לקלט ארוך במיוחד; זהו גודל של קובץ בן 50בתים בסך הכל. 15.1 איפיון נוסף של המחלקה NP בנוסף לניסוח של שאלת Pלעומת NPכשאלה העוסקת בהבדל בין מודלים חישוביים ,ניתן להציג את השאלה גם באופן שונה .לשם כך ,אנו נציג איפיון נוסף של המחלקה ;NPנתחיל בלהגדיר מחלקה חדשה ,אותה נסמן ב־ ,NP0 1בשנים האחרונות ישנה התעניינות במודל חישוב קוונטי ,הפועל בצורה הנראית דומה למודל הל"ד .עם זאת ,לא ברור האם כל אלגוריתם ל"ד ניתן למימוש ע"י מחשב קוונטי ,ובנוסף ,נראה שמבחינה פיזיקלית ישנם קשיים משמעותיים בפיתוח של מחשב כזה בעל יותר מכמה ביטים של זכרון .לכן נראה שגם אם פיתוח מחשב קוונטי שיוכל לשמש לצרכים מעשיים הוא אפשרי ,זהו אינו פתרון שצפוי להיות בר־ישום בעתיד הקרוב. 2עם זאת ,אין להסיק מכך שהמצב בו P = NPהוא "טוב" והמצב בו P 6= NPהוא "רע" ,שכן ליחס בין המחלקות ישנן גם השלכות אחרות .למשל ,במצב בו P = NPלא תיתכן הצפנה בטוחה )לפחות מבחינה תיאורטית(! ולאחר מכן נראה שמחלקה זו זהה ,למעשה ,למחלקה .NP הגדרה .15.1נגדיר את המחלקה NP0באופן הבא .שפה Lתהיה שייכת ל־ N P 0אם קיים אלגוריתם דטרמיניסטי Aושלושה קבועים b, c, d ∈ Nכך שמתקיים: .1עבור כל זוג מחרוזות ,x, yהרצת ) A(x, yמסתיימת בתוך O |(x, y)|dצעדים ומחזירה תשובה ) 0או .(1 .2לכל x ∈ Lקיימת מחרוזת yכך ש־ |y| ≤ |x|c + bוכן .A(x, y) = 1 ∈ xולכל מחרוזת .A(x, y) = 0 ,y .3לכל / L כלומר ,עבור Lקיים יחס בינארי חסום פולינומית RLשניתן להכרעה בזמן פולינומי ,ומקיים: x ∈ L ⇔ ∃y : (x, y) ∈ RL ∀x : דרך אחדת להציג את ההגדרה היא לומר ש־ L ∈ NP0אם יש לה את התכונה הבאה :ישנו "אלגוריתם בדיקה", שבהנתן קלט ו"עדות" )או "הוכחה"( קצרה לגבי שייכותו לשפה ,מאפשר לבדוק בזמן יעיל האם הקלט באמת שייך לשפה או לא .עבור כל קלט בשפה יש עדות )קצרה – באורך פולינומי יחסית לקלט( שתגרום לאלגוריתם להשתכנע שהקלט אכן בשפה ,ואילו עבור קלטים שאינם בשפה ,שום עדות אינה משכנעת את האלגוריתם. נוכיח כעת ,כי המחלקה NP0שהגדרנו זהה ,למעשה ,למחלקה NPשהגדרתה מבוססת על חישוב ל"ד. משפט .NP0 = NP .15.2 הוכחה .אנו נדרשים להראות שוויון בין קבוצות; לכן נראה הכלה דו כיוונית. )⊆( תהי ,L ∈ NP0אזי קיים אלגוריתם Aובנוסף קבועים b, c, dכמובטח בהגדרה .נבנה אלגוריתם ל"ד B שיכריע את Lבזמן פולינומי. ):B(x .1נחש באופן ל"ד מחרוזת yבעלת לא יותר מאשר |x|c + bתוים. .2הרץ את ) A(x, yוהחזר את תשובתו. ראשית ,נשים לב שאלגוריתם זה אכן מסיים בזמן פולינומי" :ניחוש" yבשלב ) (1דורש c צעדים .כעת O(|x| ) c·d c d |.O (|x| ) = O |x מתקיים ש־) ,|(x, y)| = O(|x|cולכן זמן הריצה של Aבשלב ) (2הוא לא יותר מאשר הואיל ו־ c, dהם קבועים ,זהו זמן פולינומי .בנוסף ,מובן ש־ Bמכריע נכונה את 3 .L )⊇( תהי ,L ∈ N Pאזי קיים אלגוריתם ל"ד Bשמכריע את Lכך שכל חישוב שלו על קלט xעוצר תוך לכל היותר |x|c + bצעדים ,עבור קבועים b, cכלשהם 4 .כמו כן ,נשים לב שאת סדרת הבחירות הל"ד שמבצע האלגוריתם ניתן לייצג בעזרת מחרוזת .נגדיר אלגוריתם דטרמיניסטי שיפעל באופן הבא: ):A(x, y .1הרץ את האלגוריתם הל"ד Bעל הקלט ,xכאשר הבחירות הל"ד נקבעות ע"י .y .2החזר את התשובה שהתקבלה. מובן שזהו אלגוריתם דטרמיניסטי )שכן יש לנו שיטה קבועה כיצד בוחרים בכל מקום שישנה יותר מאפשרות אחת( ושהוא רץ בזמן פולינומי .בנוסף ,על פי הגדרת ,Bאם x ∈ Lאזי קיימת סדרת בחירות )באורך פולינומי ביחס ל־ (xל"ד שתוביל לקבלה; לכן קיים yבאורך פולינומי שיהווה "עדות" שתגרום לריצה ) A(x, yלקבל .באותו אופן, ∈ xלא קיים yכך ש־.A(x, y) = 1 מובן שעבור / L 3מדוע? 4מדוע ניתן להבטיח שפונקציית זמן הריצה היא מהצורה הנ"ל? דוגמא .15.3השפה SATהיא השפה הבאה: φהיא נוסחא בוליאנית בצורת CNFשקיימת עבורה השמת אמת מספקת | SAT = φ )נזכיר שנוסחא בוליאנית בצורת CNFהיא נוסחא המורכבת מפסוקיות שכל אחת מהן מכילה ליטרלים וביניהם "או" כאשר בין הפסוקיות ישנו הקשר "וגם" (.למשל ,הנוסחא ) (x1 ∨ x2 ) ∧ (x1 ∨ x2היא ספיקה ,כיוון שכל אחת מן ההשמות x1 = 1, x2 = 0ו־ x1 = 0, x2 = 1מספקת אותה. קל לראות ש־ :SAT ∈ NPעל פי ההגדרה הראשונה של ,NPניתן לבנות אלגוריתם ש"מנחש" באופן ל"ד השמה עבור הנוסחא הנתונה ומקבל אם"ם ההשמה שניחש אכן מספקת את הנוסחא .אם נרצה להראות שייכות ל־ NPעל פי ההגדרה השניה ,נוכל להגדיר את היחס הטבעי הבא: yהוא וקטור שמהווה השמת אמת מספקת עבור ; RSAT = (φ, y) | φ קל לראות שהיחס ניתן להכרעה בזמן פולינומי )פשוט ע"י הצבה ובדיקה( ובנוסף שלכל φ ∈ SATישנו yמתאים ∈ φאין yכזה .אנו עוד נדון בבעיה ;SATבשלב זה נעיר כי )ואורכו פולינומי יחסית ל־| (|φבעוד שלאף / SAT לא ידוע האם קיים אלגוריתם דטרמיניסטי המכריע אותה בזמן פולינומי. קיבלנו ,אם כן ,שאת בעיית Pלעומת NPניתן להציג גם בצורה נוספת P :היא קבוצת כל הבעיות שניתן לפתור בזמן פולינומי ,בעוד ש־ NPהיא קבוצת כל הבעיות שלכל קלט שהתשובה עליו "כן" ישנה הוכחה קצרה שניתן לבדוק בזמן יעיל לכך שזו אכן התשובה .מכאן ,שאת השאלה האם P = NPניתן לנסח גם כ־ האם כל שפה שניתן לבדוק עבורה "הוכחות שייכות" של קלטים בצורה יעילה ,ניתן גם להכריע בזמן יעיל? האם "בדיקת נכונות" ומציאת תשובה הן בעיות קלות באותה המידה? 15.2 המחלקה co-NP נשים לב שבניגוד לאלגוריתמים דטרמיניסטיים ,החלפת מצבי הקבלה והדחיה באלגוריתם הכרעה ל"ד אינה יוצרת אלגוריתם ל"ד להכרעת השפה המשלימה 5 .גם על פי ההגדרה השניה שנתנו למחלקה ,NPקיום הוכחה קצרה לשייכות של כל קלט בשפה אינה מחייבת גם קיום הוכחת "אי־שייכות" קצרה עבור קלטים שאינם בשפה .כדוגמא, ניתן להתבונן שוב בשפה :SATכדי להוכיח שקלט שייך לשפה ,מספיק להראות עבורו השמה מספקת )שהיא קצרה וניתנת לבדיקה יעילה( ,אך כיצד ניתן להוכיח בצורה יעילה שנוסחא אינה ניתנת לסיפוק? הואיל ואנו לא יודעים להוכיח כי לכל שפה L ∈ NPגם ,L ∈ NPאנו מגדירים עבור שפות אלו מחלקה נפרדת ,שהשאלה לגבי זהותה ל־ NPעדיין פתוחה .מחלקה זו נקראת ,6 co-NPומכילה כל שפה Lהמקיימת 7 .L ∈ NP 8 ניתן להבחין ש־ P ⊆ co-NPוכמו כן מובן שאם מתקיים השוויון P = NPמתקיים גם .co-NP = NPגרירה זו אינה נכונה בכיוון השני :יתכן שיתקיים אי־השוויון P 6= NPוגם השוויון .co-NP = NP 5מדוע? 6הקידומת coמציינת את תחילת המילה – complementמשלים. 7חשוב לשים לב ש־!co-NP 6= NP 8מדוע?