הקדמה לניתוח סיבוכיות של בעיות
בספר :פרקים
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
© Copyright 2025