160 likes | 316 Views
NP. P. מחלקה של שפות ("בעיות") L ⊆ {0,1} * שניתן להכריע ("לפתור") קיימת מ"ט (מכונת טיורינג) כך ש- M(x) = Accept ↔ x ϵ L בזמן פולינומי ("מהר – יחסית...") קיים פולינום כך ש- # of steps of M on x < p(|x|). P - דוגמאות. שפות סופיות גרפים כך ש- קיים מסלול מ- s ל- t
E N D
P • מחלקה של שפות ("בעיות") L ⊆ {0,1}* • שניתן להכריע ("לפתור") קיימת מ"ט (מכונת טיורינג) כך ש- M(x) = Accept ↔ x ϵ L • בזמן פולינומי ("מהר – יחסית...")קיים פולינום כך ש- # of steps of M on x < p(|x|)
P - דוגמאות • שפות סופיות • גרפים כך ש- • קיים מסלול מ-s ל-t • קיים מעגל / קליקה / קבוצה בלתי תלויה / חתך בגודל k - עבור k קבוע • קיימת צביעה עם k צבעים? • מספרים ראשוניים? • כן (2002) • ...
NPחישוב א-דטרמיניסטי • מ"ט דטרמיניסטית ("רגילה"): δ:Q*Γ → Q*Γ*{L,R} (מצב)*(תו) → (מצב)*(תו)*{ימין,שמאל} • מ"ט א-דטרמיניסטית: δ:Q*Γ → (Q*Γ*{L,R})2 (מצב)*(תו) → (מצב)*(תו)*{ימין,שמאל} X(מצב)*(תו)*{ימין,שמאל}
NPחישוב א-דטרמיניסטי • מ"ט דטרמיניסטית ("רגילה"): q1 q0
NPחישוב א-דטרמיניסטי • מ"ט א-דטרמיניסטית: q1 q0 q2
NPחישוב א-דטרמיניסטי • מחלקה של שפות L ⊆ {0,1}* • שניתן לקבל ע"י חישוב א"דקיימת מ"ט א"ד כך ש- M(x) has an accepting path ↔ x ϵ L • בזמן פולינומי קיים פולינום כך ש- # of steps of M on x < p(|x|)
NPעד ומוודא • מחלקה של שפות L ⊆ {0,1}* • שניתן לוודא (ע"י חישוב דטרמיניסטי) קיימת מ"ט כך ש- Exists w(x) s.t. M(x,w(x)) = Accept ↔ x ϵ L • בזמן פולינומי קיים פולינום כך ש- # of steps of M on x < p(|x|)
NP - עד ומוודא:קצת אינטואיציה? • מילה - לכל x ששייך לשפה... • עד - קיים "עד" w(x)ש"מעיד" ש-x שייך לשפה • מוודא – שפה ב-NP = קיים מוודא יעיל (מ"ט דטרמיניסטית) M ש"מוודא" ש-x אכן שייך לשפה – בעזרת w(x)
NP - דוגמאות • שפות ב-P • גרפים כך ש- • קיים מעגל / קליקה / קבוצה בלתי תלויה / חתך בגודל k - עבור k קבוע • לא קיים מעגל / קליקה / קבוצה בלתי תלויה / חתך בגודל k? • קיימת צביעה עם k צבעים • קריפטוגרפיה (למשל RSA) • ...
שקילות של הגדרות של NP משפט: שתי ההגדרות של NP שקולות • טענה1: אם L ϵNPwitness אז L ϵ NPND הוכחה1: בהנתןMwitnessשרצה בזמן p(|x|)נגדיר MND שרצה בזמן 2p(|x|): • MND "בוחרת" באופן א"ד מחרוזת w(|x|) ϵ{0,1}p(|x|) • MNDמריצה את Mwitness על (x,w(|x|))(ומקבלת אמ"םMwitnessמקבלת) זמן ריצה: בכל שלב p(|x|) - סה"כ 2p(|x|)
שקילות של הגדרות של NP • טענה1: אם L ϵNPwitness אז L ϵ NPND • MND "בוחרת" באופן א"ד מחרוזת w(|x|) ϵ{0,1}p(|x|) • MNDמריצה את Mwitness על (x,w(|x|))(ומקבלת אמ"םMwitnessמקבלת) נכונות: MND(x) = Accept↔ קיים מסלול מקבל ↔ קיים w כך ש- Mwitness(x,w) = Accept ↔x ϵ L
שקילות של הגדרות של NP משפט: שתי ההגדרות של NP שקולות • טענה2: אם L ϵ NPND אז L ϵNPwitness הוכחה2: בהנתןMNDשמקבלת את Lנגדיר Mwitness: Mwitness(x,w) מריצה את MND(x)על המסלול שמתאים ל-w זמן ריצה: "זהה" לזמן הריצה של MND
שקילות של הגדרות של NP • טענה2: אם L ϵ NPNDאז L ϵNPwitness Mwitness(x,w) מריצה את MND(x)על המסלול שמתאים ל-w נכונות: קיים w כך ש- Mwitness(x,w) = Accept↔ קיים ל- MND(x)מסלול מקבל ↔ MND(x) = Accept ↔ x ϵ L
תגיד, מה ההבדל בין P ל-NP? N-הבדל!