הקדמה לניתוח סיבוכיות של בעיות
Transcription
הקדמה לניתוח סיבוכיות של בעיות
הקדמה לניתוח סיבוכיות של בעיות בספר :פרקים 14,15 1 סימונים והגדרות • ) – timep(dזמן הריצה של תוכנית pעל הקלט .d • ) – Tp(sזמן הריצה של תוכנית pבמקרה הגרוע על קלט בגודל .s מודל הזמןUnit cost : צעד בסיסי בשפה = יחידת זמן אחת. 2 סימונים והגדרות • הגדרות :תהי f: N → N+פונקציה. – ) O(fהיא משפחת הפונקציות gשמקיימות: ) g(n) ≤ c⋅f(nעבור c > 0כלשהו ולכל .n – ) poly(fהיא משפחת הפונקציות gשמקיימות: g(n) ≤ a⋅(f(n))cעבור a,c > 0כלשהם ולכל .n • במקום ) g∈O(fנכתוב ) g ≤ O(fונאמר g" :חסומה ליניארית ע"י ."f • במקום ) g∈poly(fנכתוב ) g ≤ poly(fונאמר g" :חסומה פולינומיאלית ע"י ."f 3 סימונים והגדרות :poly- וO • חוקים עבור O(f) + O(g) = O(f + g) poly(f) + poly(g) = poly(f + g) = poly(f⋅g) poly(poly(f)) = poly(f) 4 השוואה בין שפות תכנות שונות • הגדרה :תהיינה M, Lשפות תכנות )עם טיפוס נתונים .(Dנניח שלכל תוכנית p∈M-progיש תוכנית שקולה q∈L-progוכן פונקציה פולינומיאלית fpהמקיימות: ∈∀d ))∈D: timeq(d) ≤ fp(|d| + timep(d אזי נכתוב .M ≤ptime L • אם מתקיים M ≤ptime Lוגם L ≤ptime Mאזי נכתוב .M ≡ptime L 5 השוואה בין שפות תכנות שונות • טענהGOTO ≡ptime WHILE : • האם קשר זה מתקיים עבור כל השפות המלאות- סבירות? • שפות מלאות-סבירות "מציאותיות" )כמו (C,WHILE, GOTOמקיימות כולן קשר .≡ptime אלו הם המודלים הסבירים לחישוב זמן ריצה. 6 ניתוח סיבוכיות של בעיות • הגדרה :אלגוריתם פולינומיאלי הוא אלגוריתם המיושם כתוכנית pבאחד המודלים הסבירים ,אשר זמן ריצתה פולינומיאלי כפונקציה של גודל הקלט ,s כלומר.Tp(s) ≤ poly(s) : • אלגוריתם נקרא יעיל במידה סבירה אם הוא פולינומיאלי. • בעיה שקיים עבורה אלגוריתם יעיל במידה סבירה תיקרא .tractable 7 השפעת ייצוג הקלט – בעיות בגרפים • ייצוגים אפשריים לגרף: .1מטריצת סמיכויות .2רשימת סמיכויות .3רשימת הקודקודים והקשתות • טענה :זמן הריצה של אלגוריתם יהיה פולינומיאלי בפרמטר | n = |Vאם"ם הוא פולינומיאלי בגודל הקלט בכל אחד מהייצוגים שמנינו. 8 השפעת ייצוג הקלט – בעיות במספרים • ייצוגים אפשריים למספר: .1אונרי .2בינרי .3דצימלי • טענה :כאשר מדברים על בעיות הקשורות למספרים ,הייצוג הסטנדרטי הוא הייצוג הבינרי. • מעכשיו nיהיה סימון לייצוג הבינרי של ) nאלא אם נאמר במפורש אחרת( .נוכל לכתוב nilnעבור הייצוג האונרי. • 9 הגדרה :אלגוריתם נקרא "פולינומיאלי ממש" אם כאשר מיישמים אותו לקלט שבו המספרים המיוצגים בשיטה הבינרית, מתקבלת תוכנית שזמן ריצתה פולינומיאלי בגודל הקלט. מחלקות סיבוכיות בספר :פרק 16 10 מחלקות סיבוכיות • הגדרה) PTIME :בקיצור (Pהיא מחלקת בעיות ההכרעה שניתן להכריע בזמן פולינומיאלי בגודל הקלט. כלומר :קיימת תוכנית הכרעה pעבור הבעיה ,כך ש- ).Tp(s) ≤ poly(s • הגדרה) EXPTIME :בקיצור (EXPהיא מחלקת בעיות ההכרעה שניתן להכריע בזמן מעריכי בגודל הקלט. כלומר :קיימת תוכנית הכרעה pעבור הבעיה ,כך ש- ).Tp(s) ≤ 2poly(s 11 היררכיית המחלקות משפטP ⊂ EXP ⊂ R : הוכחה )חלקית(: ההכלות P ⊆ EXP ⊆ Rנובעות ישירות מההגדרות של Pושל .EXP כדי להוכיח שאלו הכלות ממש יש להראות: .1קיימת בעיה השייכת ל R-אבל לא ל.EXP- .2קיימת בעיה השייכת ל EXP-אבל לא ל.P- 12 היררכיית המחלקות TH = { ((p.d).n) | p∈GOTO-prog, timep(d) < n} TH ∈ EXP :'א1 טענה TH ∉ P :'ב1 טענה THexp = { ((p.d).n) | p∈GOTO-prog, timep(d) < 2n } THexp ∈ R :'א2 טענה THexp ∉ EXP :'ב2 טענה 13 תכונות סגירות משפט: המחלקות P,EXPסגורות לאיחוד ,חיתוך ומשלים. כלומר: A, B ∈ P ⇒ A∪B, A∩B ∈ P A, B ∈ EXP ⇒ A∪B, A∩B ∈ EXP A ∈ P ⇒ A∈ P A ∈ EXP ⇒ A∈ EXP 14 רדוקציות פולינומיאליות • הגדרה :תהיינה .D A,B תוכנית rתיקרא רדוקציית התאמה פולינומיאלית של Aל B-אם היא מקיימת את התנאים הבאים: r .1היא רדוקציה של Aל:B- ∈d 〛∈D: d ∈ A ⇔〚r 〛d ∈ B ∈d r .2יעילה∈D: timer(d) ≤ poly(|d|) : r .3אינה מנפחת את הקלט: ∈d 〛∈D: 〚r 〛d ≤ poly(|d|) • סימון :אם קיימת רדוקציית התאמה פולינומיאלית A ≤p B מ A-ל B-נכתוב: 15 רדוקציות פולינומיאליות • משפט :אם A ≤p Bאז: (1) B∈P ⇒ A∈P (2) B∈EXP ⇒ A∈EXP • מסקנות :אם A ≤p Bאז: (1) A∉P ⇒ B∉P (2) A∉EXP ⇒ B∉EXP 16 סוגי בעיות: בעיות חיפוש ,אופטימיזציה והכרעה בספר :פרק 16 17 בעיית מעגל המילטון )בגרף לא מכוון( • הגדרה :מעגל המילטון בגרף הוא מעגל פשוט העובר בכל הקודקודים. • בעיית החיפוש :הקלט יהיה גרף לא מכוון .הפלט הנדרש הוא תיאור של מעגל המילטון כלשהו בגרף – אם יש כזה, או הודעה מתאימה – אם אין כזה. • בעיית ההכרעה: } Gגרף לא מכוון שיש בו מעגל המילטון | HAMILTON={G 18 בעיית מעגל המילטון )בגרף לא מכוון( • טענה :אפשר למצוא מעגל המילטון בגרף בזמן פולינומיאלי אם"ם .HAMILTON∈P • האם ? HAMILTON∈P לא ידוע אלגוריתם פולינומיאלי לבעיה זו. • טענהHAMILTON∈EXP : 19 בעיית הקליקה המרבית • הגדרה :קליקה בגרף היא קבוצת קודקודים אשר כל זוג מתוכם מחובר בצלע. • בעיית האופטימיזציה :הקלט יהיה גרף לא מכוון .הפלט הנדרש הוא קליקה מרבית כלשהי. • בעיית ההכרעה: }ב G-יש קליקה בגודל CLIQUE ={(G k) | k 20 בעיית הקליקה המרבית • טענה :אפשר למצוא קליקה מרבית בגרף בזמן פולינומיאלי אם"ם .CLIQUE∈P • האם ? CLIQUE∈P לא ידוע אלגוריתם פולינומיאלי לבעיה זו. • טענהCLIQUE∈EXP : 21 חישוב אי-דטרמיניסטי והמחלקה NP בספר :פרק 17 22 חישוב אי-דטרמיניסטי • הגדרה :שפת תכנות אי-דטרמיניסטית היא שפת תכנות רגילה עם תוספת "פונקציה" )guess(n המחזירה מחרוזת של nביטים להם נקרא "ניחוש". • הגדרה :תהי pתוכנית אי-דטרמיניסטית )א"ד( ותהי D Aבעיית הכרעה .נאמר ש p-מזהה את Aאם מתקיימות 3הדרישות הבאות: (1הפלט של pהוא תמיד trueאו .false (2אם d∉Aאז 〚p〛d = falseתמיד . (3אם d∈Aאז קיימת ריצה שבה .〚p〛d = true 23 המחלקה NP הגדרה (NP) NPTIME :היא מחלקת בעיות ההכרעה שיש עבורן תוכנית א"ד שמזהה אותן בזמן ריצה פולינומיאלי *במקרה הגרוע. * עבור כל ניחוש. דוגמאות: • HAMILTON∈NP • CLIQUE∈NP 24 היררכית המחלקות משפטP ⊆ NP ⊆ EXP : השערה P ≠ NP :1 השערה NP ≠ EXP :2 25 בעיות ב:NP- בעיית הקבוצה הבלתי-תלויה • הגדרה :יהי Gגרף לא מכוון .קבוצת קודקודים SבG- נקראת קבוצה בלתי-תלויה ) (independent setאם אף זוג קודקודים מתוך Sאינו מחובר בצלע. • בעיית האופטימיזציה :הקלט יהיה גרף לא מכוון. הפלט הנדרש הוא קב"ת מרבית כלשהי. • בעיית ההכרעה: }ב G-יש קב"ת בגודל IS ={(G k) | k 26 בעיות ב:NP- בעיות באלגברה בוליאנית • הגדרות: – נוסחה בוליאנית )פסוק( בנויה ממשתנים x1,…,xnואופרטורים בוליאניים ¬ ∨, ∧,ועוד, ומתארת פונקציה }.{0,1}n → {0,1 – ליטרל הוא משתנה בוליאני בודד או שלילתו )דוגמאות(x1, x2 : 27 בעיות ב:NP- בעיות באלגברה בוליאנית צורות נורמליות של נוסחאות בוליאניות: • פסוק (Conjunctive Normal Form) CNF C1 ∧ C2 ∧ … ∧ Cm 28 כל Ciנקרא פסוקית CNFוצורתו )… ∨ (l1 ∨ l2כאשר liהוא ליטרל. • פסוק (Disjunctive Normal Form) DNF C1 ∨ C2 ∨ … ∨ Cm כל Ciנקרא פסוקית DNFוצורתו )… ∧ (l1 ∧ l2כאשר liהוא ליטרל. בעיות ב:NP- בעיות באלגברה בוליאנית • משפט :לכל נוסחה בוליאנית יש נוסחת CNF שקולה וכן נוסחת DNFשקולה. הגדרות: – הצבה של ערכים למשתנים של נוסחה בוליאנית ϕ תיקרא הצבה מספקת ,אם ערך הנוסחה המתקבל הוא .1 – נוסחה ספיקה היא נוסחה שיש עבורה הצבה מספקת. 29 בעיות ב:NP- בעיות באלגברה בוליאנית – בעיית הספיקות • בעיית החיפוש :הקלט יהיה נוסחת .CNFהפלט הנדרש הוא הצבה מספקת עבור הנוסחה. • בעיית ההכרעה: } ϕספיקה | SAT = {ϕ ∈ CNF 30 בעיות קשות ל NP-והמחלקה NPC בספר :פרק 18 31 הגדרות • הגדרה :בעיה Aתיקרא קשה ל(NP-hard) NP- ≤.B ∈ Bמתקיים ≤pA אם לכל ∈NP • הגדרה :בעיה Aתיקרא שלמה בNP- ) (NP-completeאם היא שייכת ל NP-וגם קשה ל.NP- • מחלקת הבעיות השלמות ב NP-נקראת .NPC 32 הוכחת שייכות של בעיות לNPC- ∈ Aעלינו להוכיח ש: • כדי להוכיח ש∈NPC - A∈NP .1 A∈NP-hard .2 ≤ Aאז ∈ Aומתקיים ≤pB • למה :אם ∈NP-hard ∈.B ∈NP-hard ∈SAT • משפט קוק∈NPC (Steven Cook) : 33 NPC-בעיות ב :ללא הוכחה – משפט קוקSAT • HAMILTON • :נוכיח בשקפים הבאים (Traveling Salesman Problem) TSP • IS • CLIQUE • (Vertex Cover) VC • 34 בעיות ב:NPC- בעיית הסוכן הנוסע • הסוכן הנוסע צריך לבצע מסלול העובר דרך nערים ,כך שבכל עיר הוא יבקר בדיוק פעם אחת ולבסוף הוא יחזור לעיר המוצא )מעגל המילטון( .לכל זוג ערים i,jיש מחיר ]M[i,j לנסיעה מ i-ל) j-גרף מכוון שלם עם משקלים על הקשתות(. • בעיית האופטימיזציה :בהינתן מטריצה Mבגודל n×nשל מספרים טבעיים ,יש למצוא מעגל המילטון "זול" ביותר. • בעיית ההכרעה: 35