Professional Documents
Culture Documents
1
הקדמה
• חישוביות :מה ניתן לחשב .לדוגמה:
– קלט :תוכנית ( Mלמשל בשפת )whileוקלט xלתוכנית.
• השאלה :האם Mעוצרת בריצתה על ?x
• ראינו :הבעיה אינה ניתנת להכרעה.
1
במה נעסוק בקורס (רשימה חלקית)
• קשרים בין המשאבים השונים .למשל:
– אם בעיה ניתנת להכרעה בזמן ) , O(n2מה זה אומר על המקום הנדרש?
– וההפך.
• מחלקות סיבוכיות:
– נחלק בעיות למחלקות לפי כמות המשאבים הנדרשת לפתרונן .למשל:
– מחלקות של בעיות שניתן להכריע בזמן ). O(n2
היררכיה בין מחלקות סיבוכיות: •
– נראה למשל שיש בעיות שניתנות להכרעה בזמן ) O(n5אך לא ). O(n2
– אחת התוצאות. P EXP :
• המחלקה NPוהבעיה הפתוחה של התחום (הגדרות בהמשך):
– ?P = NP
נראה בעיות פתוחות רבות נוספות: •
– ?NP = coNP
– ... ?L = P ?NP = EXP
3
4
2
במה נעסוק בקורס ()3
• אורקלים:
– איך משתנה כוח החישוב של אלגוריתם אם נוסיף לו פעולה
בסיסית של פתרון בעיה קשה מסוימת.
– למשל :מה ניתן להכריע בזמן פולינומיאלי בעזרת קופסה
שחורה שמכריעה את SATב O(1) -זמן.
• סיבוכיות מקום תת לינארית:
– בד"כ סיבוכיות המקום היא לפחות ליניארית כי
• צריך לפחות לקרוא את הקלט.
– מה אם האלגוריתם לא צריך לשמור את הקלט?
• דוגמה:
– גרף האינטרנט.
– סוג השאלות שנתעניין בהם:
• מהי מחלקת הבעיות שניתן לפתור במקום )? O(log n
5
6
3
דרישות הקורס
• נוכחות בשיעור:
– אינה חובה (ולכן אינה מוזכרת בסילבוס) אבל:
• מנסיוני יש קורלציה חיובית בין נוכחות בכיתה והצלחה בקורס.
• הגשת תרגילים:
– יהיו כ 6 -תרגילים.
– יש להגיש את כל התרגילים בזמן.
– תרגיל שלא יוגש בזמן לא ייחשב.
• סיבות כגון עומס בעבודה לא יתקבלו !
– הגשה שאינה מעידה על מאמץ סביר לא תיחשב.
– משמעות אי הגשת תרגיל :אי עמידה בדרישות הקורס.
– בין התרגילים יהיה חומר ללמידה עצמית.
• זה דורש עבודה .תתחילו לעבוד על חומר זה מוקדם ככל האפשר !
• החומר לבחינה:
– התכנים שנלמדו במהלך הקורס (כולל התרגילים שניתנו בקורס).
– החומר שניתן ללימוד עצמי.
• ציון הקורס :ציון הבחינה +עד 5נקודות בונוס על התרגילים.
• מנהלה:
– תרגילים מוגשים דרך ה Mama -כקובץ PDFיחיד.
– באחריותכם לוודא שכתב היד ברור וקריא ושהסריקה יוצאת נקיה וברורה.
7
שעת קבלה
• שני 15:00-16:00בתאום מראש במייל.
• אפשר לנסות לתאם גם זמנים אחרים.
• מייל:
– first-name@mta.ac.il
– first.last@gmail.com
• אל תהססו להגיע לשעת הקבלה – היא בשבילכם.
• מנסיוני יש קורלציה חיובית בין הגעה לשעת קבלה
והצלחה בקורס.
• ניתן גם לשאול שאלות ולבקש רמזים במייל אך אין
התחייבות במקרה כזה על מהירות התשובה.
8
4
סיבוכיות
9
מודל החישוב
• בחישוביות :שפת ( whileוגם .)goto
• בקורס זה :מכונת טיורינג (מ"ט).
– מצד אחד :ניתן לחשב בו כל מה שניתן לחישוב.
שקול ל...JAVA ,C ,while -
10
5
הגדרות
• נתון א"ב ∑ .למשל }. = {0, 1
• רצף סופי של תווים מעל ∑ נקרא מחרוזת .למשל .0010
• המחרוזת הריקה מסומנת .ε
• עבור מחרוזת |w| , wמסמן את אורך המחרוזת . w
• עבור am , a מסמן את המחרוזת המכילה את התו ’ m ‘aפעמים.
• עבור א"ב ∑* , מסמן את כל המחרוזות מעל ∑.
• למשל עבור }.* = {ε, 0, 1, 00, 01, 10, 11, 000, …} = {0, 1
• שפה Aהיא קבוצה של מחרוזות מעל ∑ – כלומר *.A
11
מכונת טיורינג
• עובדת על סרט אינסופי של תווים.
• בתחילה:
– הקלט כתוב על הסרט ושאר (אינסוף) תאי הסרט מכילים את
התו רווח (.)B
– ראש המכונה מצביע על התו השמאלי ביותר בקלט.
– המכונה נמצאת במצב התחלתי .qstart
• המכונה מכילה הוראות הקובעות לפי מצב המכונה והתו שהראש
מצביע עליו ,מה המכונה תעשה בצעד הבא.
qstart
0 0 0
12
6
qstart
0 0 0
0 0 0
14
סרט אינסופי
7
הכרעת שפה
מ"ט Mמכריעה שפה * A אם לכל *:x
– אם :x A
• המכונה עוצרת על xבמצב qaccept
– אם :x A
• המכונה עוצרת על xבמצב qreject
שימו לב:
– מ"ט שמכריעה שפה עוצרת על כל קלט.
15
דוגמאות
• מ"ט שלא עוצרת (ולכן לא מכריעה שום שפה).
• מ"ט שמכריעה את השפה
}PAL = {x {0, 1}* | x = xt
– אבחנה :מחרוזת x {0, 1}nהיא פלינדרום אמ"מ ...
– אלגוריתם... :
{= { = } , } – המכונה:
Q = { qstart, qaccept, qreject, }
:
qstart
8
הגדרות סיבוכיות זמן ומקום של מ"ט
• עבור מ"ט Mוקלט *:x
• ):timeM(x
– מספר הפעלות בריצת Mעל .x
• ):spaceM(x
– מספר התאים (השונים) ש M -כותבת בהם בריצת Mעל .x
• דוגמה :יעילות המכונה להכרעת }:PAL = {x {0, 1}* | x = xt
= )timeM(x
= )spaceM(x
• בד"כ נסמן את אורך הקלט ב .n -נקבל שהמכונה רצה ב:
– זמן:
– מקום:
17
18
9
קונפיגורציות של מ"ט
• תהי ) M = (Q, , , מ"ט ו x -קלט כך ש.spaceM(x) = s -
• קונפיגורציה של Mעל xמייצגת תיאור רגעי בריצת M
על .x
• התיאור כולל את הרשימה הבאה:
– מצב המכונה.
– מיקום הראש הקורא.
– תוכן הסרט .ליתר דיוק:
• חלק הסרט שהמכונה עשויה היתה לכתוב בו .כלומר ...
• פורמלית(q, i, a-s+1, a-s+2, …, a0, a1, … as-1) :
– q Qהוא המצב הנוכחי
– -s < i < sהוא מיקום הראש ( 0מייצג את המיקום ההתחלתי)
– -s+1 j s-1 ,aj הוא תוכן התא ה.j -
19
• תזכורת:
– ) M = (Q, , , מ"ט ו x -קלט כך ש.spaceM(x) = s -
– קונפיגורציה(q, i, a-s+1, a-s+2, …, a0, a1, … as-1) :
• ריצה של Mעל xהיא סדרת קונפיגורציות ש:
– מתחילה ב -קונפיגורציה ההתחלתית.
• בקונפיגורציה ההתחלתית:
– i = 0 ,q = qstart
– התאים a0, …, an-1מכילים את הקלט xושאר התאים מכילים B
– עוברת מקונפיגורציה לקונפיגורציה לפי ...
– מסתיימת בקונפיגורציה עם qacceptאו qrejectאו שאינה
מסתיימת.
20
10
חסם על הזמן כפונקציה של המקום
(אם המכונה עוצרת)
• תזכורת:
– ) M = (Q, , , מ"ט ו x -קלט כך ש.spaceM(x) = s -
– קונפיגורציה(q, i, a-s+1, a-s+2, …, a0, a1, … as-1) :
נניח עתה בנוסף .timeM(x) < •
אז בהכרח המכונה אינה חוזרת על קונפיגורציה. •
מה מספר הקונפיגורציות האפשריות בריצת Mעל ... :x •
ניתן להציג את החסם באופן קומפקטי: •
)timeM(x) = 2O(s
הסבר... : •
הערה לגבי גודל הקבוע שב:big O - •
– הוא מסדר גודל של |.log |M
21
סיכום
משפט:
.1אם מ"ט Mעוצרת על קלט xאזי
))time M (x) 2O(space M (x
.2אם מ"ט Mמכריעה שפה במקום )) O(f(nאזי לכל קלט x
22
11
חישוב פונקציות בעזרת מ"ט
לעיתים נרצה לחשב פונקציה ולא להכריע. •
מה צריך לשנות בהגדרת המכונה? •
נחליף את qacceptו qreject -במצב יחיד .qhalt •
הגדרה :מ"ט מחשבת פונקציה * f : * אם לכל *:x •
– המכונה עוצרת על xכאשר ) f(xמופיע על הסרט (ושאר התווים הם .)B
– ראש המכונה מצביע על התו הראשון ב.f(x) -
• דוגמה:
– חישוב המספר העוקב (כלומר )f(n) = n+1כאשר הקלט והפלט בייצוג
אונרי.
– עבור קלט 000
• הפלט צריך להיות ( 0000והראש על ה 0 -השמאלי)
23
qstart
24
12
האם מ"ט יכולה לחשב כל פונקציה
• ראינו בחישוביות פונקציות שאינן ניתנות לחישוב (כולל
שפות שאינן ניתנות להכרעה).
• האם מ"ט יכולה לחשב פונקציות אלו?
– ברור שלא – המודלים שקולים (אבל לא נוכיח את השקילות).
• נראה פונקציה נוספת שאינה ניתנת לחישוב (הפעם
תוך שימוש במ"ט כמודל החישוב).
• מטרות:
– שימוש במודל להוכחות שליליות.
– הדגמה של שרשור של מכונות טיורינג.
– הבעיה עצמה מעניינת וקשורה למודל החישוב.
25
13
בעיית הבונה החרוץ ()Busy Beaver
• נסמן ב R(n) -את קבוצת מכונות הטיורינג המקיימות:
– הן בעלות nמצבים (וכן )qhalt
– } = {0ו = {0, B} -
– הן עוצרות על הקלט הריק.
• לכל nמתקיימת תחרות בין כל המכונות ב.R(n) -
• מכונה מנצחת:
– מכונה שכותבת מספר מירבי של אפסים בריצה על הקלט הריק.
במילים אחרות:
– מכונה מנצחת היא כזו שעבורה ) zero(Mהוא הגדול ביותר.
• הגדרה BB(n) :הוא מספר האפסים שכותבת מכונה מנצחת
בעלת nמצבים (ו.)qhalt -
• פורמלית:
BB : N N
))BB(n) = MAX (zero(M
)M R(n
27
• ):BB(2
0 B
qstart
q
)6 :BB(3 •
)13 :BB(4 •
BB(5) 4098 •
BB(6) 1018267 •
מטרה :להראות ש BB -אינה ניתנת לחישוב .כלומר: •
– לא קיימת מ"ט שעל קלט nבייצוג אונרי פולטת ) BB(nבייצוג אונרי
28
14
BBמוגדרת היטב
• משפט :הפונקציה BBמוגדרת היטב.
• כלומר עלינו להראות ש:
– לכל BB(n) ,nסופי.
• תזכורת:
))BB(n) = MAX (zero(M
)M R(n
• נראה ש:
– ) R(nקבוצה סופית
– ) Zero(Mהוא סופי לכל )M R(n
• ונקבל:
– המקסימום בביטוי הוא על מספר סופי של ערכים סופיים ומכאן שהוא
סופי.
• ) R(nקבוצה סופית:
– על הלוח.
• ) Zero(Mהוא סופי לכל ):M R(n
– מספר האפסים ש M -כותבת מוגבל ע"י מספר הצעדים שהוא סופי.
29
15
BBאינה ניתנת לחישוב
משפט :לא קיימת מ"ט עם } = {0שמקבלת כקלט •
את nבייצוג אונרי ומחשבת את ) BB(nבייצוג אונרי.
נוכיח עבור מכונות עם } = {0, B •
נניח בשלילה שקיימת מכונה כזו .נקרא לה .MBB •
הסתירה תתקבל כך :נראה שקיימים •
– מספר טבעי N
– מ"ט ) M R(Nשבריצתה על הקלט הריק:
• כותבת יותר מ BB(N) -אפסים
31
32
16
• לבנית Mנשתמש בשלוש מ"ט (שבכולן } = {0
ו:) = {0, B} -
– MBB
• נסמן ב n0 -את מספר המצבים של ( MBBמלבד )qhalt
– M+שמחשבת עוקב למספר (קלט ופלט בייצוג אונרי).
• מספר המצבים (מלבד )qhaltשל M+הוא 3
– M*2שכופלת מספר ב( 2 -קלט ופלט בייצוג אונרי).
• בתרגיל 1עליכם לבנות את .M*2
• מספר המצבים (מלבד )qhaltשל M*2הוא ( 10אפשר פחות)
33
הוכחה -המשך
• נקבע.)14 = 3 + 10 + 1( N = 2 (n0 + 14) :
• למשל :אם n0 = 200אז N = 428
• המטרה עכשיו:
– לבנות מכונה ) M R(Nשכותבת יותר מ BB(N) -אפסים.
• Mתעבוד כך:
– תכתוב על הסרט N/2אפסים ותעביר את הראש לתחילתם.
• איך נממש זאת? ...
– תפעיל את .M*2איך? ...
– תפעיל את MBB
– תפעיל את M+
• ):M R(N
– א"ב קלט ועבודה... :
– עוצרת על הקלט הריק... :
– מספר המצבים (מלבד ...:)qhalt
• Mכותבת יותר מ BB(N) -אפסים... :
34
17
תרגיל
• מה מספר המצבים המינימלי הדרוש למ"ט (חד
סרטית) שבריצתה על הקלט הריק מחזירה כפלט את
המספר 100בייצוג אונרי (וכך שראש המכונה יהיה
בסוף הפעולה על התו הראשון בפלט)?
פחות מ100 - –
בין 100ל.200 - –
יותר מ 200 -ופחות מ.1000 - –
לפחות .1002 –
לפחות .2100 –
אף אחת מהתשובות א'-ה'. –
35
תרגיל
• איך היינו צריכים לשנות את ההוכחה אם במקום
להשתמש במ"ט M*2היינו משתמשים במ"ט M*3
שעל קלט nבייצוג אונרי מחשבת את 3nבייצוג
אונרי?
36
18
מה יקרה אם נשנה את הגדרת מ"ט?
נאפשר לראש להישאר במקום. •
kסרטים במקום סרט אחד. •
סרט חד כווני •
מספר מצבים מקבלים ו/או דוחים •
נרצה להראות: •
– שקילות בין המודלים:
• כל שפה שניתנת להכרעה ע"י מודל אחד ניתנת להכרעה גם
ע"י המודל השני ולהפך.
• משאבי הזמן והמקום "דומים".
37
19
קיום מ"ט סטנדרטית קיום מ"ט עם Stay
39
40
20
• יעילות זמן:
– על כל צעד של Mהמכונה ’ Mמבצעת לכל היותר:
• 2צעדים.
• יעילות מקום:
– ’ Mכותבת בתא אחד יותר (ימינה) מ.M -
• סיכום :תהי Mמ"ט עם Stayהמכריעה שפה
כלשהי .אזי:
.1קיימת מ"ט סטנדרטית ’ Mהמכריעה את אותה שפה.
.2לכל xמתקיים:
))timeM’(x) = O(timeM(x •
))spaceM’(x) = O(spaceM(x •
41
21
הגדרת יעילות הזמן והמקום עבור מ"ט רבת סרטים
• תזכורת – מ"ט סטנדרטית :M
– ):timeM(x
• מספר הפעלות בריצת Mעל . x
– ):spaceM(x
• מספר התאים (השונים) ש M -כותבת בהם בריצת Mעל . x
• מ"ט רבת סרטים :M
– ):timeM(x
• בדיוק כמו חד סרטית :מספר הפעלות בריצת Mעל . x
– ):spaceM(x
Mכותבת על kסרטים. •
נסתכל בכל סרט על מספר התאים (השונים) ש M -כותבת בו בריצת M •
על . x
נגדיר את ) spaceM(xכמספר המקסימלי מבין kהמספרים. •
הערה: •
– היות ש k -קבוע ,ניתן באופן שקול (בסדר גודל) להגדיר את ) spaceM(xכסה"כ
התאים השונים ש M -כותבת בהם בכל הסרטים.
43
44
22
הכוון המעניין – תיאור עילי
תהי Mמ"ט עם kסרטים המכריעה שפה כלשהי. •
נבנה מ"ט סטנדרטית ’ Mשמכריעה את אותה שפה. •
איך נייצג ב M’ -את תוכן kהסרטים של :M •
אפשרות א': •
– סרט אחרי סרט (עם סימן הפרדה ביניהם).
• אפשרות ב':
– באופן מסורג:
• התו הראשון מכל סרט (סה"כ ,)kאח"כ התו השני מכל סרט
(סה"כ ,)kוכך הלאה.
– בייצוג זה אין צורך בסימן הפרדה.
• נבחר באפשרות ג' – בשקף הבא.
45
46
23
איך ’ Mתדע איזה מעבר של Mלבצע?
• מעבר ב M -תלוי ב k -תווים שהראשים של Mנמצאים עליהם .למשל (q,
)bda) = (p, afc, RLL
• " Mרואה" ביחד את כל kהתווים שהראשים שלה נמצאים עליהם.
• כדי לסמלץ מעבר אחד של ,Mהמכונה ’ Mצריכה לדעת את kהתווים האלו.
איך היא תעשה זאת:
– לפני ביצוע המעבר M’ ,תסרוק את הסרט שלה משמאל לימין (סריקה ראשונה)
ותאסוף את התווים ש:
• הדגל שלהם הוא . 1
• היכן נשמור את התווים האלו?
– במצב של ’. M
– לשם כך מצב ב M’ -יכיל:
את המצב ב. M - •
את kהתווים שהראשים מצביעים עליהם. •
נסמן ב -תו שאיננו יודעים עדיין מהו. •
בנוסף נצטרך בהמשך את מספר הסריקה (מספר בין 1ל ) 4 -ו k -דגלים. •
QM’ = QM (M {})k {1,2,3,4} (0,1)k כלומר •
בתחילת הסריקה המצב ב M’ -יכיל: •
* 0
q * 1 0
0
47 *
דוגמאות
* 0 a1 0 * 0 a1 0
q * 1 0 , a2 0 q * 1 0 , a 2
0 , R
0
* 0 a3 * 0 a3 0
* 0 a1 1 a1 0 a1 1
q * 1 0 , a2 0 q * 1 0 , a2 0 , R
1
* 0 a3 a3 0 a3 1
48
24
ביצוע המעבר
• Mמבצעת את המעבר ) (q, bda) = (p, afc, RLLבצעד
אחד.
• איך ’ Mתעשה זאת?
– תסרוק את הסרט מימין לשמאל (סריקה שניה) ותחליף
כל תו שהדגל שלו הוא 1בתו המתאים.
• איך ’ Mתדע איזה תו לכתוב במקום תו קיים?
– האינפורמציה על המעבר הנדרש נמצאת במצב של ’. M
– תסרוק את הסרט משמאל לימין (סריקה שלישית) ותזיז
את הדגלים שצריכים לזוז ימינה.
– תסרוק את הסרט מימין לשמאל (סריקה רביעית) ותזיז
את הדגלים שצריכים לזוז שמאלה.
– תעבור למצב החדש עם כוכביות במקום התווים.
• כדי ליישם את הנ"ל נדרשות שתי התוספות שהזכרנו קודם
למצב של ’:M
• מספר בין 1ל 4 -שיסמן ל M’ -באיזו מהסריקות היא נמצאת עתה.
• {0, 1}kכדי לסמן ל M’ -אם ועל איזה תו צריך לשים את הדגל החדש
בסריקות השלישית והרביעית.
49
דוגמאות
b1 0 a1 0
q b2 2 0 , a2 1 • איך נגדיר את עבור המצב והתו הבאים:
0
b3 0 a3
b1 b2 b3 והתו q • במקרה זה תלוי במעבר ש M -מבצעת על המצב
• נסתכל לכן על המעבר המתאים ב:M -
– )( (q, b1 b2 b3) = (p, c1 c2 c3, L R Lה L R L -הוא כדוגמה)
• (נשים לב קודם לשוויון בין חלק מהa -ים לחלק מה b -ים או ה c -ים)
• והמעבר יהיה
b1 0 a1 0 b1 0 a1 0
q b2 2 0 , a2 1 q b2 2 0 , c2 1 , L
0
b3 0 a3 b3 0 a3 0
50
25
b1 0 a1 1
q b2 3 0 , a2 1 • מה לגבי
0
b3 0 a3
) הוא (כמו קודםM -• כאשר המעבר המתאים ב
(q, b1 b2 b3) = (p, c1 c2 c3, L R L) –
)... יםc ים אוb - ים לa -• (ונשים לב לקשר בין ה
• והמעבר יהיה
b1 0 a1 1
q b2 3 1 , a2 0 , R
b3 0 a3 0
51
b1 1 a1 0
q b2 4 0 , a2 0 • ומה לגבי
1
b3 0 a3
) הוא (כמו קודםM -• כאשר המעבר המתאים ב
(q, b1 b2 b3) = (p, c1 c2 c3, L R L) –
)... • (ושוב ישנו הקשר
• והמעבר יהיה
b1 1 a1 0 b1 0 a1 1
q b 2 4 0 , a2 0 q b 2 4 0 , a2 0 , L
1
b3 0 a3 b3 1 a3 0
52
26
יעילות
• מקום:
– השתמשנו במספר תאים כמו בסרט של Mהמשתמש
במספר הגדול ביותר של תאים .לכן:
))spaceM’(x) = O(spaceM(x
• זמן:
– כדי לבצע מעבר אחד של :M
• ’ Mהלכה לאורך הסרט שלה הלוך ושוב מספר קבוע של פעמים.
– מיעילות המקום נסיקtimeM’(x) = O(spaceM(x) timeM(x)) :
– לעיתים נרצה להביע את ) timeM’(xרק כפונקציה
של ).timeM(x
– נשתמש בכך שspaceM(x) timeM(x) -
)timeM’(x) = O(timeM(x)2 – ונקבל
53
54
27
מכונת טיורינג אוניברסלית
• בחישוביות היו מקרים שהקלט לתוכנית (בשפת )whileהיה בעצמו
תוכנית (בשפת .)while
• למשל:
– בעיית העצירה.
בדומה ,הקלט למכונת טיורינג יכול להיות מכונת טיורינג. •
בחישוביות נעזרנו בקלטים שהם בעצמם תוכניות כדי להראות (בין •
היתר):
– שיש שפות שלא ניתנות להכרעה.
בסיבוכיות נשתמש במ"ט שהם קלטים (בין היתר) כדי להוכיח משפטי •
היררכיה.
תוצאות לדוגמה ממשפטי ההיררכיה: •
– יש שפות שניתן להכריע בזמן ) O(n5אך לא בזמן ). O(n2
– P EXP
• נקרא למ"ט שמקבלת כקלט מ"ט Mוקלט xומריצה את Mעל – xמכונה
אוניברסלית.
• כדי שמ"ט Mתוכל להופיע כקלט למ"ט ,נצטרך לקודד את Mכמחרוזת.
55
56
28
קידוד הקלט ) Mו)x -
• תהי ).M = (QM, M, M, M
• איך נקודד את התווים ב M -ו? M -
– כמספרים | 1, 2, …, |Mבייצוג בינארי בעזרת log |M|ביטים.
– Mחלקית ל M -אז אין צורך לטפל בה.
• מה עם ? QM
– בדומה -כמספרים ( 0, 1, 2, …, |QM|– 1ונקבע 2 , 1 , 0הם , qaccept , qstart
.) qreject
מה לגבי ?M •
– תזכורת :מעבר ב M -נראה כך(q, a) = (p, b, R/L) :
– נקודד מעבר כחמישית מספרים ( q a p b dלפי הקידוד של MוQM -
ו 0/1 -עבור )R/L
• ומה עם Mכולה:
– ( <M> = |QM|;|M|;|M|;Mהגדלים בייצוג בינארי).
• ומה לגבי ? x = x1x2…xn
– כל xiהוא תו ב( M -והחלטנו כבר על הקידוד).
• קידוד הקלט > <M, xכולו:
– ><M, x> = <M>;<x
57
58
29
אתחול
• מה צריך לאתחל:
– סרט העבודה:
• להעתיק אליו את x
– סרט המצב:
• לכתוב בו 0
– מיקום הראשים:
• בתחילת הסרטים
• יעילות זמן:
– )|>( O(|<M,xליניארי)
• יעילות מקום:
• )|>( O(|<M,xליניארי)
59
60
30
• יעילות מקום:
– נחשב את המקום הנדרש בכל אחד מ 3 -הסרטים:
• סרט המכונה:
– )|>O(|<M,x
• סרט העבודה:
– ))O(log |M| spaceM(x
• סרט המצב:
– |log |QM
– סה"כ:
)|>O(log |M| spaceM(x) + |<M,x •
– סה"כ בהנחה ש M -משתמשת במקום |>|<M,xלפחות:
• ))O(log |M| spaceM(x
– ועבור מ"ט חד סרטית בהנחה ש M -רצה בזמן |>|<M,xלפחות:
• אותו הדבר.
61
62
31
תרגיל
חשבו חסם עליון (נמוך ככל האפשר) על
))timeM ( M U , ( M , x
U
63
64
32
השפה }> K = {<M> | M rejects <Mאינה כריעה
• נניח בשלילה ש:
– קיימת מ"ט Nשמכריעה את .K
– אז לכל קלט > ,<Mהמכונה Nמקבלת או דוחה את >.<M
• נבדוק מה Nעושה כאשר:
– Nרצה על >.<N
• אם Nמקבלת את > <Nאז:
– מההגדרה של הכרעת שפה ע"י מ"ט נקבל:
• <N> K
– מהגדרת השפה Kנקבל:
• <N> K
– משמעות:
• לא ייתכן ש N -מקבלת את >. <N
• באופן דומה נקבל ש:
– לא ייתכן ש N -דוחה את >.<N
• כלומר:
– קיבלנו קלט ש N -לא מקבלת ולא דוחה אותו .סתירה.
65
מחלקות סיבוכיות
• נרצה לחלק שפות למחלקות בהתאם למשאבים
הנדרשים בכדי לפתור אותן.
• המשאבים שראינו:
– זמן
– מקום
66
33
מחלקות סיבוכיות בסיסיות
• תהא f : N Nפונקציה.
• הגדרה DTime(f) :היא מחלקת השפות שניתן להכריען ע"י
מ"ט סטנדרטית בזמן )).O(f(n
• דוגמה :מה המשמעות ש?A DTime(n2) -
.1הכרעה:
קיימת מ"ט סטנדרטית Mשמכריעה את . Aכלומר: •
אם x Aאז Mמקבלת את . xאם x Aאז Mדוחה את . x –
.2יעילות:
• קיים קבוע cכך שלכל *: x
timeM(x) ≤ c |x|2
• דוגמה לשפה ב:DTime(n2) -
– PAL
• הגדרה DSpace(f) :היא
– מחלקת השפות שניתן להכריען ע"י מ"ט סטנדרטית במקום
)).O(f(n
67
34
סיכום
.1אם ) g = O(fאז:
– ) DTime(g) DTime(fוDSpace(g) DSpace(f) -
.2אם ) g = (fאז:
– ) DTime(g) = DTime(fוDSpace(g) = DSpace(f) -
DTime(f) DSpace(f) .3
DSpace(f) DTime(2O(f)) .4
69
משפטי ההיררכיה
ראינו שאם ) g = O(fאז )DSpace(g) DSpace(f •
מה קורה אם gקטנה מ f -בסדר גודל? •
)g ( n
פורמלית ) . g = o(fכלומר 0 •
n
)f ( n
למשל: •
– g(n) = n3ו-
– .f(n) = n4
• נראה שאז:1
( DSpace(g) DSpace(f) .1משפט ההיררכיה במקום)
• בדוגמה:
– )DSpace(n3) DSpace(n4
( DTime(g) DTime(f2) .2משפט ההיררכיה בזמן)
• בדוגמה:
– )DTime(n3) DTime(n8
• הוכחות של משפטי ההיררכיה משתמשות במ"ט
אוניברסלית ובטיעוני ליכסון.
70 1הערה "" :מייצג הכלה ממש
35
משפט ההיררכיה במקום
• ניסוח לא מדויק של המשפט:
אם ) g = o(fאזי )DSpace(g) DSpace(f
• אבחנה :הכלה חלשה נובעת מכך ש:
) g = o(fגורר )g = O(f •
• מה עוד צריך להראות:
– שקיימת שפה Sfכך ש:
Sf DSpace(f) .1
Sf DSpace(g) .2
– נוכיח את 1ע"י:
• בניית מ"ט.
– נוכיח את 2ע"י:
• בדומה להוכחה ש K -אינה כריעה.
71
36
)Sf DSpace(g
f (| M |)
S f M | M rejects M , spaceM ( M )
log | M |
• נניח בשלילה ש:
– קיימת מ"ט Nשרצה במקום )) O(g(nומכריעה את .Sf
– אז לכל קלט > ,<Mהמכונה Nמקבלת או דוחה את >.<M
• הערה :נשים לב שניתן להניח ש |<N>| -גדול כרצוננו .מדוע?
– ניתן למשל להוסיף ל N -מצבים שלא עושים כלום.
73
37
)|f (| N
spaceN ( N ) טענה :עבור |< |>Nמספיק גדול
| log | N
הוכחה:
– מהעובדה ש N -רצה במקום )) O(g(nנובע שקיים
קבוע cכך שspaceN ( N ) c g (| N |) :
38
ישימות במקום
f (| M |)
S f M | M rejects M , spaceM ( M )
log | M |
• במהלך הכרעת ,Sfהמכונה MUצריכה לחשב את )f(n
(כאשר |> n = |<Mהוא אורך הקלט) .נדרש עבור:
– מוני הזמן והמקום.
• אם המשאבים הנדרשים לחישוב fיהיו גדולים מדי אז:
– MUעלולה לא לעמוד בדרישות היעילות שלה.
• לכן נגביל את משפט ההיררכיה במקום לפונקציות ישימות
במקום.
• הגדרה :פונקציה h : N Nהיא ישימה במקום אם קיימת מ"ט
אשר על קלט nבייצוג אונרי:
מחשבת את ) h(nבקידוד אונרי.
משתמשת ב O(h(n)) -מקום.
כלומר: •
על קלט ,0nהמכונה צריכה לחשב ) 0h(nתוך שימוש ב O(h(n)) -תאים. •
• כל הפונקציות "הרגילות" (כמו )2n ,n2 ,nהן ישימות במקום .ראו
תרגיל .2
77
הוכחה:
• ראינו כבר:
– )Sf DSpace(g
– תיאור עילי של ההוכחה שSf DSpace(f) -
• נשאר לראות:
– תיאור מפורט של ההוכחה שSf DSpace(f) -
78
39
) – Sf DSpace(fתיאור מפורט
f (| M |)
S f M | M rejects M , spaceM ( M ) •
log | M |
)|f (| M
| log | M • מונה מקום יאותחל ל-
• מתי ואיך נעדכן אותו?
– בכל פעם ש M -כותבת לתא חדש MU ,תחסיר 1ממונה המקום.
)| f (| M
cM • מונה זמן יאותחל ל-
| log|M
2
CMהוא הקבוע מהחסם )).timeM (x) 2O(space (x
M
79
80
40
יעילות המקום
f (| M |)
S f M | M rejects M , spaceM ( M )
log | M |
נסמן |>n = |<M •
נראה שיעילות המקום של MUהיא )).O(f(n •
נתחיל בניתוח המקום על הסרטים הרגילים וננתח אח"כ •
את המקום הנדרש עבור מוני הזמן והמקום.
ניזכר לשם כך ביעילות המקום של מ"ט אוניברסלית: •
)|spaceM ( M , x ) O(log | M | spaceM ( x) | M , x
U
82
41
ניסוח (בלבד) של משפט ההיררכיה בזמן
משפט:
• תהא fפונקציה ישימה בזמן וכך ש.f(n) n -
• תהא gפונקציה המקיימת ).g = o(f
• אזי:
– ).DTime(g) DTime(f2
הגדרה:
• פונקציה fהיא ישימה בזמן אם:
– קיימת מ"ט רבת סרטים אשר מחשבת את fבקידוד אונרי
בזמן ) .O(fכלומר ,על קלט 0nהיא פולטת ) 0f(nורצה בזמן
)).O(f(n
83
42
תרגיל( P EXP :הכלה ממש)
• על הלוח:
– הוכחה שגויה (מצאו את השגיאה)... :
– הוכחה נכונה... :
• באופן דומה ניתן להראות:
– PSPACE EXPSPACE
85
86
43
הכרעת שפה ע"י מטא"ד
• מטא"ד ) M = (Q, , , מכריעה שפה * A אם
מתקיימים 3התנאים הבאים:
.1לכל * x המכונה Mעוצרת בכל תסריט ריצה על הקלט .x
.2אם :x Aאז קיים תסריט ריצה מקבל של Mעל .x
.3אם :x Aאז לא קיים תסריט ריצה מקבל של Mעל .x
(כלומר בכל תסריט ריצה Mדוחה את .)x
• הערה :ניתן להחליף את 2ו 3 -בתנאי יחיד:
– x Aאמ"מ קיים תסריט ריצה מקבל של Mעל .x
87
דיון
• האם מ"ט דטרמיניסטית היא מודל חישובי פרקטי?
– כן ,מדמה תוכנית בשפת מחשב.
• האם מטא"ד היא מודל חישובי פרקטי?
– לא ,אין דרך פרקטית לנחש נכון את המעבר הנכון כשיש מספר
אופציות .זהו מודל תיאורטי בלבד.
• אז למה צריך מכונות אי דטרמיניסטיות?
– השפות והמחלקות שניתן להגדיר בעזרתן מענינות.
88
44
השפה SAT
• משתנה בוליאני:
– משתנה שערכו אמת ) (Tאו שקר ).(F
• ליטרל:
– משתנה (למשל )x2או שלילתו ( .)x2
• פסוקית (הסגר) בצורת :CNF
– אוסף ליטרלים עם כמתי "או" ( )ביניהם .למשל ) ( x2 x1 x3
• נוסחה בצורת :CNF
– פסוקיות CNFשביניהם כמתי "וגם" ( .)למשל
) ( x1 x2 x3 ) ( x1 x3 ) ( x1 x2 x3
• נוסחה בצורת :kCNF
– נוסחה בצורת CNFשבכל פסוקית בה יש לכל היותר kליטרלים.
89
• השמה:
– התאמה של ערך Tאו Fלכל משתנה)x1, x2, x3) = (T, F, T) .
• השמה מספקת:
– השמה שהצבתה למשתני הנוסחה נותנת ערך Tלנוסחה.
– למשל ) )x1, x2, x3) = (T, F, Tבנוסחה ) ( x1 x2 x3 ) ( x1 x3 ) ( x1 x2 x3
– השמה לנוסחה בצורת CNFהיא מספקת אמ"מ
• יש ערך Tלליטרל אחד לפחות בכל פסוקית.
• נוסחה ספיקה:
– נוסחה שקיימת לה השמה מספקת.
• השפה :SAT
}SAT = { | is a satisfiable formula in CNF form
• השפה :kSAT
}kSAT = { | is a satisfiable formula in kCNF form
90
45
"ניחוש" במטא"ד
• כשנרצה להכריע שפה במטא"ד ,בד"כ ננצל את אי
הדטרמיניסטיות לביצוע ניחושים.
• הניחוש יהיה לרוב הפתרון לגרסת החיפוש של הבעיה.
• למשל ,כדי להכריע את SATהמכונה תנחש:
– השמה לכל אחד מהמשתנים.
• איך מיישמים ניחוש במטא"ד?
• נראה לדוגמה מטא"ד דו סרטית שמקבלת קלט }x {0, 1
*
באורך ,nומנחשת לסרט השני nביטים.
= ))(qstart, (0, B ))(qstart, (0, 0), (R, R .1
= ))(qstart, (0, B ))(qstart, (0, 1), (R, R .2
= ))(qstart, (1, B ))(qstart, (1, 0), (R, R .3
= ))(qstart, (1, B ))(qstart, (1, 1), (R, R .4
= ))(qstart, (B, B ))(q1, (B, B), (L, L .5
בד"כ נסתפק בתיאור עילי .למשל: •
"המכונה מנחשת nביטים (כאשר nהוא אורך הקלט)". –
אז מדוע שלא פשוט ננחש האם הקלט בשפה? •
המכונה עלולה לענות "כן" על קלט שאינו בשפה וזה לא בסדר. –
91
92
46
• טענה M :מכריעה את .SAT
• הוכחה:
– אם : SAT
• אז קיימת השמה מספקת ל. -
• בתסריט הריצה שבו Mתנחש השמה כזו:
– Mתקבל את .
– אם : SAT
• אז לא קיימת השמה מספקת ל. -
• לכן בכל תסריט ריצה הניחוש של :M
– לא יהיה השמה מספקת.
• לכן בכל תסריט ריצה Mתדחה את .
93
יעילות מטא"ד
• תהי Mמטא"ד ו x -קלט.
• ):timeM(x
– מספר הצעדים המירבי בריצת Mעל xעל פני כל
תסריטי הריצה האפשריים.
• ):spaceM(x
– מספר התאים המרבי אליהם הגיע ראש המכונה
בריצת Mעל xעל פני כל תסריטי הריצה האפשריים.
94
47
קשר בין זמן ומקום עבור מטא"ד
• טענה :אם מטא"ד Mעוצרת על קלט xבכל תסריט
ריצה אז:
)spaceM(x) timeM(x –
))time M (x) 2O(spaceM (x –
• כלומר בדיוק כמו עבור מ"ט דטרמיניסטית.
• הוכחה:
– ההוכחה זהה למקרה של מ"ט דטרמיניסטית:
• ספירת מספר הקונפיגורציות.
– מדוע מטא"ד שעוצרת אינה יכולה לחזור על קונפיגורציה?
• כי אחרת יהיה לה תסריט ריצה אינסופי.
95
48
מחלקות סיבוכיות א"ד בסיסיות
• תהה f : N Nפונקציה.
• הגדרה :NTime(f) -
– מחלקת השפות שניתן להכריע ע"י מטא"ד (סטנדרטית)
בזמן )).O(f(n
– כלומר שפה A מקיימת ) A NTime(fאמ"מ:
*
תכונות
• לכל fמתקיים:
– ) DTime(f) NTime(fוDSpace(f) NSpace(f) -
• אם fו g -מקיימות ) g = O(fאז:
– ) NTime(g) NTime(fוNSpace(g) NSpace(f) -
• אם fו g -מקיימות ) g = (fאז:
– ) NTime(g) = NTime(fוNSpace(g) = NSpace(f) -
• לכל fמתקיים:
– )NTime(f) NSpace(f
– ))NSpace(f) NTime(2O(f
98
49
מחלקות סיבוכיות א"ד גסות
= NP ) NTime(n
c 1
c
• מחלקת זמן
פולינומיאלי אי דטרמיניסטי
= NPSPACE ) NSpace(n
c 1
c
• מחלקת מקום
פולינומיאלי אי דטרמיניסטי
nc
= NEXP NTime(2
c 1
) • מחלקת זמן
אקספוננציאלי אי דטרמיניסטי
nc
= NEXPSPACE NSpace(2 ) • מחלקת מקום
c 1 אקספוננציאלי אי דטרמיניסטי
השאלה P = NP
• טענה.SAT NP :
• הוכחה:
– ראינו קודם מטא"ד המכריעה את SATבזמן פולינומיאלי.
• מה לגבי אלגוריתם דטרמיניסטי?
– לא ידוע אלגוריתם דטרמיניסטי המכריע את SATבזמן
פולינומיאלי.
– אך גם אין הוכחה שאלגוריתם כזה לא קיים.
• נראה בהמשך ש SAT -היא חלק מקבוצת שפות גדולה
עם התכונות הבאות:
– כל השפות בקבוצה זו שייכות ל.NP -
– אם יתברר שאחת השפות בקבוצה שייכת ל P -אז .P = NP
100
50
הגדרה אלטרנטיבית לNP -
• הגדרנו את NPתוך שימוש ב:
– מ"ט אי-דטרמיניסטיות
• נראה הגדרה אלטרנטיבית ל NP -המשתמשת ב:
– מ"ט דטרמיניסטית.
– עד לכל קלט בשפה.
• וכמובן נוכיח ש:
– ההגדרות שקולות.
• לעיתים ההגדרה האלטרנטיבית נוחה יותר לשימוש.
101
102
51
הגדרה אלטרנטיבית של NP
104
52
שקילות ההגדרות :מקורית אלטרנטיבית
• תהי A NPלפי ההגדרה המקורית.
עבור קבוע .k nk • קיימת מטא"ד Mהמכריעה את Aבזמן
• נראה:
– מ"ט דטרמיניסטית ’ Mופולינום pכך ש x A -אמ"מ
קיים )| w {0, 1}p(|xכך ש. M’(x, w) = True -
• מי יהיה העד wעבור ? x A
– העד יהיה תסריט ריצה מקבל של Mעל . x
• איך נייצג תסריט ריצה בעזרת מחרוזת מ?{0, 1} -
– אפשר לייצג מעבר של ( Mלמשל) ע"י מספר בין 1ל. |M| -
– מספר כזה אפשר לייצג ע"י | log|Mביטים.
– אפשר לכן לייצג תסריט ריצה של Mעל xע"י (נסמן |:)n = |x
• log|M| nkביטים.
• אז מי יהיו ’ Mו:p -
– ’: M
• ’ Mתרוץ על קלט xבדומה ל M -אך בכל מעבר אי-דטרמיניסטי של M’ , Mתבדוק
אם המעבר המתאים ב w -הוא אחד המעברים האי-דטרמיניסטיים האפשריים.
• אם כן – ’ Mתבצע את המעבר .אם לא – ’ Mתדחה את . x
– :p
• p(n) = log|M| nk
105
טיעוני ריפוד
ניזכר בשפה : SAT •
}SAT = { | is a satisfiable formula in CNF form
האלגוריתם הבא מכריע אותה: •
– על קלט , נבדוק עבור כל השמה אפשרית האם היא מספקת.
יעילות: •
– )|. O(|| 2|
– נסמן | n = |ונקבל )( O(n 2nכלומר אקספוננציאלי באורך הקלט).
מה לגבי אלגוריתם פולינומיאלי? •
– יש כזה אמ"מ ( P = NPנוכיח זאת בהמשך).
|| נרפד את : SAT •
} SAT ' { #0 2 | SAT
אלגוריתם להכרעת ’: SAT •
אותו אלגוריתם ובנוסף צריך לוודא שמספר האפסים הוא |. 2| –
יעילות: •
– אותה יעילות של )| . O(|| 2|ובנוסף יעילות חישוב |. 2|
– חישוב | 2|ניתן להיעשות ב( O(22||) -כי הפונקציה 2nישימה בזמן).
– סה"כ )|. O(22|
||
אז גם כאן היעילות אקספוננציאלית? •
| n = | #0 2 כדי לבדוק זאת נחשב את היעילות כפונקציה של אורך הקלט •
ונקבל יעילות של •
– ) - O(n2פולינומיאלי.
מסקנה :ריפוד הקלט עשוי לשפר מהותית את יעילות האלגוריתם (כפונקציה של אורך הקלט).
106
53
שימוש בטיעוני ריפוד ()padding
• יהיו ’ D, E, D’, Eמחלקות כך ש -כך ש D D’ -ו.E E’ -
• דוגמה P EXP :ו.NP NEXP -
• טיעוני ריפודי מאפשרים לנו לעיתים להסיק שאם D Eאז
– ’.D’ E
• דוגמה :נראה להלן שאם NP Pאז .NEXP EXP
• הרעיון הכללי:
Apad D Apad E
על קלט xניצור
= Apad )|{x#0f(|x }| x A )| x#0f(|xונשתמש
ב.Apad E -
’A D ’A E
107
108
54
NEXP EXP NP P
Apad NP Apad P
על קלט xניצור
}Apad = {x#0f(|x|) | x A )| x#0f(|xונשתמש
ב.Apad P -
A NEXP A EXP
k
• תהי MAמטא"ד המכריעה את Aבזמן 2 n
(לכל היותר) .כלומר ,על קלט xזמן הריצה |2| x
k
| x|k
110
2וכפונקציה של ... :n .2
55
Apad NP Apad P
על קלט xניצור | x|k
Apad {x#0
|x|k
2
}| x A x #0 2ונשתמש
ב.Apad P -
A NEXP A EXP
• מ Apad P -נסיק כי:
.nc – קיימת מ"ט דטרמיניסטית ’’ Mהמכריעה את Apadבזמן
• נבנה:
– מ"ט דטרמיניסטית Mהמכריעה את Aבזמן אקספוננציאלי.
– על קלט xהמכונה :M
k
112
56
רדוקציות ,קושי ושלמות
• רדוקציה משפה A *Aלשפה B *Bהיא
פונקציה f : *A *Bהמקיימת:
A B – x Aאמ"מ f(x) B
x )f(x
’x (’f)x
דוגמאות
• יהיה }.)A = {0, 1}( A = {00, 101
• נכון ,לא נכון או שקול לבעיה פתוחה:
– ... :A P PAL
– ... :PAL P A
• ומה אם Aהיתה שפה טריוויאלית (שפה שהיא ריקה או
מכילה את כל המחרוזות ב -א"ב)? ...
– ... :PAL P SAT
– ... :SAT P PAL
114
57
תכונות
A P B • A P B
• הוכחה... :
115
116
58
סגירות לרדוקציות פולינומיאליות
• מחלקה Dסגורה לרדוקציות פולינומיאליות אם:
– לכל שתי שפות Aו B -המקיימות B DוA P B -
מתקיים .A D
• האם המחלקות הגסות שראינו ( PSPACE ,NP ,Pו-
)EXPסגורות לרדוקציות פולינומיאליות?
– תשובה :כן
• נוכיח עבור ...EXP
117
59
קושי ושלמות למחלקה
• תהה Dמחלקת סיבוכיות.
• הגדרות:
– שפה Aהיא –Dקשה או קשה ל( D -תחת רדוקציות
פולינומיאליות) אם:
• לכל B Dמתקיים .B P A
– שפה Aהיא –Dשלמה (או שלמה ב )D -אם:
• Aהיא –Dקשה ו.A D -
• משפט קוק-לוין:
– SATהיא -NPקשה.
• הוכחה:
– בשבוע הבא.
• תוצאה:
– SATהיא -NPשלמה.
119
תכונות חשובות
טענה :1אם Aהיא –Dקשה ו A P B -אז Bהיא –Dקשה. •
תוצאה 3SAT :היא -NPקשה (ולכן גם -NPשלמה). •
טענה :2אם A Eהיא –Dקשה ו E -סגורה לרדוקציות •
פולינומיאליות אז .D E
תוצאות: •
.1אם איזושהי שפה -NPקשה היא ב P -אז .P = NP
SAT P .2אמ"מ P = NP
.3אם שפה Aהיא -EXPקשה אז A P
120
60
בעיית החתך המקסימלי ()Max-Cut
• חתך בגרף לא מכוון ) G = (V, Eהוא:
– חלוקה של Vלשתי קבוצות זרות ).(S, V – S
• גודל חתך הוא מספר הקשתות (u, v) E
כך ש:
– u Sו. v V – S -
• השפה :Max-Cut
} Gגרף לא מכוון המכיל חתך שגודלו לפחות (G, k) | k
• נראה:
– Max-Cutהיא -NPשלמה.
• מה לגבי השפה ?Min-Cut
} Gגרף לא מכוון המכיל חתך שגודלו לכל היותר {(G, k) | k
• את Min-Cutניתן להכריע בזמן פולינומיאלי בעזרת
אלגוריתם ל( Max-Flow -נוותר על הפרטים).
121
Max-Cutהיא -NPשלמה
• ... :Max-Cut NP
• להוכחת קשיות Max-Cutל NP -ניעזר בשפה .3NAE
• הגדרות:
– ספיקות במובן :)NAE-satisfiable( NAEנוסחה בצורת CNFהיא
ספיקה במובן )Not All Equal( NAEאם:
• קיימת השמה כך שבכל פסוקית יש ליטרל עם ערך Tוליטרל עם ערך . F
– השפה :3NAE
} 3NAE = { | is a formula in 3CNF form which is NAE-satisfiable
• נשתמש בכך ש:
– 3NAEהיא -NPקשה (ראו בתרגיל בית .)3
• מספיק לכן להראות ש3NAE P Max-Cut -
122
61
הרדוקציה
• הקלט לרדוקציה:
– נוסחה בצורת .3CNF
• הפלט הנדרש:
– גרף לא מכוון Gומספר טבעי .k
• וכך ש:
– ספיקה במובן NAEאמ"מ יש בגרף חתך בגודל .k
• נניח שבכל פסוקית ב -יש 3ליטרלים בדיוק
ושאין בפסוקית ליטרלים מנוגדים.
– הנחה זו היא ללא הגבלת הכלליות .מדוע? ...
123
124
62
(G, 2m+n) Max-Cut 3CNF
• קיימת ל -השמה מספקת במובן .NAE
• נסמן ב S -את קבוצת קדקודי Gשערכם Tבהשמה.
• נראה שגודל החתך ) (S, V–Sהוא :2m+n
– ערכם בהשמה של הקדקודים ב V-S -הוא:
• .F
– לכן קשתות החתך הן בדיוק הקשתות בין קדקודים שערכם
בהשמה הוא Tלבין אלו שערכם בהשמה הוא .F
– מספר קשתות המשתנים בחתך:
• ( nכל הקשתות).
– מספר קשתות הפסוקיות בחתך:
• כל אחת מהפסוקיות ספיקה במובן NAEולכן יש בה ליטרל אחד עם
ערך Tושניים עם ערך Fאו ההפך.
• לכן מתוך 3הקשתות של פסוקית:
– השתיים שמחברות קדקודים עם ערכים הפוכים הן בחתך .סה"כ:
» .2m
125
63
אלגוריתמי קירוב
• בהרבה מקרים אנו מעוניינים למצוא את הפתרון האופטימלי לבעיה ולא רק
להכריע אותה.
• גרסת האופטימיזציה של : Max-Cut
– בהינתן גרף לא מכוון Gיש למצוא את החתך הגדול ביותר ב. G -
האם קיים אלגוריתם פולינומיאלי לבעיה זו? •
– אם כן אז ניתן להכריע באמצעותו את גרסת ההכרעה
של Max-Cutולכן . P = NP
• אז מה אפשר בכל זאת לעשות?
– נראה בשקף הבא אלגוריתם פולינומיאלי שמוצא חתך שגודלו לפחות ½ ממספר
הקשתות.
משמעות :אמנם קשה למצוא חתך מכסימלי ,אך קל למצוא חתך שגודלו •
לפחות ½ מגודל החתך המכסימלי.
אלגוריתמים שמוצאים פתרון מקורב לבעיות אופטימיזציה נקראים אלגוריתמי •
קירוב.
במקרה זה האלגוריתם משיג יחס קירוב של ½ .כלומר ,גודל הפתרון •
שהאלגוריתם מוצא הוא לפחות ½ מגודל הפתרון האופטימלי.
בבעיות מקסימיזציה (כמו )Max-Cutנרצה יחס קירוב 1 שהוא: •
– גדול ככל הניתן.
בבעיות מינימיזציה (כמו בעיית הסוכן הנוסע) נרצה יחס קירוב 1 שהוא: •
– קטן ככל הניתן.
127
128
64
EXPCOM תרגיל – הוכחת קושי של השפה
EXPCOM = {<M, x, 0t>| M(x) = True. timeM(x) 2t}
:תרגיל
.קשה-EXP היאEXPCOM –
... :הוכחה
129
שלמה-NP היאSAT
שלמה-NP היאSAT :Cook-Levin • משפט
130
65
תרגום נוסחה בוליאנית לצורת CNF
• בהוכחת המשפט נצטרך לתרגם נוסחאות בוליאניות לצורת .CNF
• הצורה הכללית ביותר של נוסחה בוליאנית:
x
1 x 2 x 3 f • אבחנה (טריוויאלית):
0 0 0 1 – f(x1, x2, x3) = 1אמ"מ:
0 0 1 0 • לכל שורה שערך ה f -שלה הוא 0
0 1 0 0 x1, x2, x3שונים מערכי השורה.
0 1 1 1
1 0 0 1 • נבטא זאת בעזרת :CNF
1 0 1 1 ) ( x1 x2 x3 ) ( x1 x2 x3 ) ( x1 x2 x3
1 1 0 1 • כלומר על fעם mמשתנים נקבל:
1 1 1 0
– נוסחה שקולה בצורת CNFשגודלה:
• m 2m
– זמן הבניה:
• )O(m 2m
• בהוכחת קוק-לוין נשתמש בכך רק עבור mקבוע .היעילות תהיה:
– )O(1
131
משפט Cook-Levin
• צ"ל-NP SAT :קשה ,כלומר אם B NPאז .B ≤p SAT
• תהא ,B NPאזי קיים פולינום pומכונת טיורינג M
שרצה בזמן פולינומי וכך ש:
– לכל * x Σמתקיים x Bאם ורק אם
קיים )| w {0,1}p(|xכך ש.M(x,w) = True -
• לשם פשטות ההוכחה נניח גם:
– Mחצי אינסופית.
– אם Mעוצרת במצב מקבל אז מתקיים בנוסף:
• התא הראשון בסרט מכיל .B
• ראש המכונה הוא על תא זה.
132
66
ייצוג ריצת Mעל )(x, w
• ניתן לייצג את ריצת Mעל ) (x, wע"י טבלה .TM,x
הקונפיגורציה ההתחלתית • בשורה הראשונה של - TM,x
• מה חסר?
• נוסיף את מיקום הראש והמצב לכל תא.
x1 x2 xn w1 )|wp(|x B ... B
1 0 0 0 0 0 0
qs q q q q q q
133
134
67
1 2 )|q(|x
2
)|q(|x
ייצוג TM,xבבינארי
ניתן לייצג כל תא ב TM,x -ע"י מספר קבוע של ביטים. •
דוגמה :נניח ש = {0, 1, 2, 3, 4, 5} -ושQ = {0 .. 9} - •
כאשר 5 ,2 ,1 ,0מייצגים qreject ,qaccept ,qstartו.B -
נייצג את התווים והמצבים בבינרי על פי ערכם. •
אז ייצוג תא דורש 3 + 1 + 4 = 8ביטים .ובאופן כללי: •
log 1 log Q כלומר kביטים ,עבור קבוע .k
136
68
מה לגבי הרדוקציה?
• צריך להראות B P SAT
• כלומר:
– קלטx :
– פלט :נוסחה xבצורת CNF
– יעילות בניית הנוסחה :פולינומי ב|x| -
– נכונות:
xספיקה אמ"מ x B
137
בניית x
• תנאי הנכונות x :ספיקה אמ"מ .x B
• ובעזרת x :TM,xספיקה אמ"מ
ניתן לתת ערכים בינריים לתאי TM,xכך ש:
.Iערכי השורה הראשונה של TM,xמתאימים לקונפיגורציה
התחלתית של Mעל .x
.IIערכי השורה ה i -של TM,xמתקבלים מהשורה ה i-1 -ע"י
מעבר מ.M -
TM,x [q(|x|),1] = (B, 1, qaccept) .III
• הרעיון x :תייצג את TM,x
משתנים) )| k q (| x – איך נייצג כל ביט ב :TM,x -על ידי משתנה (סה"כ
2
69
טיפול בתנאי – Iהקונפיגורציה ההתחלתית
x1 x2 xn w1 )|wp(|x B ... B
1 0 0 0 0 0 0
qs q q q q q q
140
70
x1 x2 xn w1 )|wp(|x B ... B
1 0 0 0 0 0 0
qs q q q q q q
• נחזור לדוגמה :מה מספר השורות בנוסחה בוליאנית עבור ]28 ? TM,x[1,1
• מה ערך הפונקציה בכל אחת מהשורות?
– בשורה ( 011 1 0000ורק בה) יהיה . 1
• מה לגבי ]( TM,x[1,2נניח למשל ?)x2 = 6בשורות **** (110 0ורק בהן) יהיה . 1
• ומה לגבי ]( T[1, n+1התא של ?)w1
– בשורות **** 000 0ו( 001 0 **** -ורק בהן) יהיה . 1
• מה יעילות תרגום נוסחה כזו ל( CNF -ל k -שאינו בהכרח ?)8
– ) O(k 2kשזה ) O(1כי kקבוע
• באופן כללי :לכל תא בשורה 1של TM,xניתן בזמן קבוע ליצור נוסחה בצורת
CNFשהשמה מספקת אותה אמ"מ ההשמה נותנת ערך נכון לתא.
• אז איך ניצור נוסחה שתבטא את כל שורה ? 1
– ANDבין )| q(|xנוסחאות התאים של שורה . 1זו נוסחת CNFכנדרש !
– מה גודל הנוסחה? )|O(q(|x
141
142
71
נוסחה בוליאנית המביעה את התלות בין ]TM,x[i,j
לבין ] TM,x[i-1,j] ,TM,x[i-1,j-1ו.TM,x[i-1,j+1] -
• מה מספר השורות בנוסחה? 24k
• נסתכל על שורות מהצורה
****abc0**** def0**** ghi0**** jklm
• מה יהיה הערך של שורות כאלו?
– 1אם מתקיימים כל התנאים הבאים:
• אין חריגה מערכי באף אחד מהתאים.
• m=0
• def = jkl
– 0אחרת.
143
144
72
טיפול בתנאי :III
)TM,x [q(|x|),1] = (B, 1, qaccept
145
נכונות ויעילות
• נכונות הרדוקציה:
– x Bאמ"מ
• ניתן לתת ערכים בינאריים לכל תאי TM,xכך ש:
השורה הראשונה מייצגת קונפיגורציה התחלתית חוקית. .I
השורה ה i -מתקבלת מהשורה ה i-1 -ע"י מעבר של . M .II
). TM,x[q(|x|), 1] = (qaccept, 1, B .III
– אמ"מ
• קיימת השמה למשתני xהמספקת לכל תא של TM,xאת חלק הנוסחה
של xהמתאים לתא זה.
– אמ"מ
• קיימת השמה מספקת ל. x -
• יעילות הרדוקציה:
– החלק היקר ביותר היה טיפול בתנאי IIודרש )| O(q2(|xכלומר
זמן פולינומיאלי.
146
73
תרגילים
האם הטענה נכונה ,שגויה או שקולה לבעיה פתוחה?
.1קיים kטבעי עבורו ).SAT DTime(nk
.2קיים kטבעי עבורו ).NP DTime(nk
147
ההיררכיה הפולינומיאלית
• ההיררכיה הפולינומיאלית:
– סדרה אינסופית של מחלקות בין Pל.PSPACE -
– Pהיא ברמה 0של ההיררכיה.
– NPו( coNP -מוגדרת להלן) הן יחדיו ברמה 1של
ההיררכיה .נקראות גם 1ו( 1 -בהתאמה).
– ברמה הבאה של ההיררכיה 2ו .2 -וכך הלאה.
NP 2 3 …
74
מחלקות משלימות
• שפה משלימה :אם Aהיא שפה ,A * ,אז
השפה המשלימה ל A -היא
A {w Σ* | w A} Σ* - A
• מחלקה משלימה :עבור מחלקת שפות ,C
המחלקה המשלימה היא }coC {A | A C
• המחלקה :coNPמחלקת השפות המשלימות
לשפות ב .NP -למשל
SAT •
• 3 - Col
149
תכונות
• משפט :תהיינה Aו B -שפות ו D -ו E -מחלקות של
שפות .אזי
AA .1
A P B A ≤P Bאמ"מ .2
A D A coD .3
co(coD) = D .4
D Eאמ"מ coD coE .5
( D = coD D coDו)D = coD coD D - .6
Aקשה ל D -אמ"מ Aקשה לcoD - .7
Dסגורה לרדוקציות פולינומיאליות אמ"מ coDסגורה .8
לרדוקציות פולינומיאליות.
כל המחלקות הדטרמיניסטיות (למשל PSPACE ,Pו)EXP - .9
סגורות למשלים (כלומר EXP=coEXP ,P = coPוכ"ו).
150 הוכחות על הלוח
75
מה לגבי NPו?coNP -
• האם ?NP = coNP
– ננסה להראות NP coNPבדומה לדרך שבה הראינו
ש:P coP -
• יהיה .A NPעלינו להראות ש A coNP -כלומר שA NP -
• תהיה Mמטא"ד המכריעה את ( Aבזמן פולינומיאלי) .נבנה ’ Mהפועלת כמו
Mועונה ההפך ממנה.
עלינו להראות ש M’ -מכריעה את A
151
תכונות נוספות
טענה P NP coNP :1 •
הוכחה... : •
טענה :2אם P = NPאז NP = coNP •
הוכחה... : •
טענה A NP-hard :3אמ"מ A coNP - hard •
הוכחה :תכונה 7 •
טענה :4אם SAT coNPאז NP = coNP •
הוכחה: •
– לפי תכונה 6מספיק להראות NP coNPואכן ...
בדומה :אם SAT NPאז NP = coNP
• הכללה :ניתן להחליף את SATב -כל שפה -NPקשה.
152
76
קשיות גם ל NP -וגם לcoNP -
• קבוצה בלתי תלויה (קב"ת) בגרף:
– קבוצת קדקודים שאין ביניהם קשתות.
• השפה :)Independent Set( IS
– שפת הזוגות ) (G, kכך שהגרף Gמכיל קב"ת בגודל .k
• השפה :MAX-IS
– שפת הזוגות > <G, kכך ש G -מכיל קב"ת בגודל kואינו
מכיל קב"ת גדולה יותר.
• משפט:
– MAX-ISקשה גם ל NP -וגם לcoNP -
• תוצאה:
– אם NP coNPאז
• MAX-IS NPו.MAX-IS coNP -
153
77
MAX-ISקשה ל NP -וcoNP -
• קשיות ל:coNP -
– נראה ... IS P MAX- IS
• קשיות ל :NP -נראה רדוקציה מ SAT -ל .IS -אותה
רדוקציה היא גם רדוקציה מ SAT -ל.MAX-IS -
• תהי נוסחה בצורת CNFעם mפסוקיות.
• פלט הרדוקציה הוא הזוג > G .<G, mמוגדר
בשקף הבא.
155
156
78
x1 x2 x3 x1 x2 x3 x1 x3
157
158
79
הגדרה אלטרנטיבית לcoNP -
• הגדרה אלטרנטיבית ל( NP -ראינו) NP :היא
מחלקת השפות * A עבורן קיימים:
– פולינום p
– מ"ט דטרמיניסטית Mהרצה בזמן פולינומיאלי
וכך שלכל *:x
x A w {0,1} p (| x|) .M ( x, w) True
• ומכאן:
}x A w {0,1 )|p (| x
.M ( x, w) False
• ההגדרה האלטרנטיבית ל coNP -מתקבלת ע"י:
– הפיכת התשובה של המכונה ( Mועם אותו פולינום .)p
159
160
80
שימוש בהגדרה האלטרנטיבית של coNP
• דוגמה :נוכיח בעזרת ההגדרה האלטרנטיבית של
NPש. IS coNP -
• הוכחה:
– נבנה מ"ט דטרמיניסטית Mשעל קלט )((G, k), w
• אם wאינה קב"ת בגודל k
– Mתקבל.
• אחרת
– Mתדחה.
161
162
81
רמה 2 - 2
• הגדרה 2 :היא מחלקת השפות * A עבורן
קיימים:
– פולינום p
– מ"ט דטרמיניסטית Mהרצה בזמן פולינומיאלי
וכך שלכל * x מתקיים:
x A u {0,1} p (| x|) .v {0,1} p (| x|) .M ( x, u , v) True
כלומר:
x A u {0,1} p (| x|) .v {0,1} p (| x|) .M ( x, u , v) True
x A u {0,1} p (| x|) .v {0,1} p (| x|) .M ( x, u , v) False
163
82
MAX-IS 2
נבנה מכונה Mכך:
• קלט:
– גרף > <G, kושתי קבוצות קדקודים uו. v -
• Mתקבל אמ"מ שני התנאים הבאים מתקיימים:
uהיא קב"ת בגודל . k .1
vאינה קב"ת בגודל . k+1 .2
נכונות:
• :<G, k> MAX-IS
– אז קיימת קב"ת xבגודל x . kמקיימת את תנאי . 1
– כמו כן כל קבוצת קדקודים אינה קב"ת בגודל k+1ולכן מקיימת את תנאי . 2
– לכן עבור u = xולכל vמתקיים M((G, k), u, v) = Trueכנדרש.
• :<G, k> MAX-IS
– אז יש שתי אפשרויות:
• אין ב G -קב"ת בגודל . k
– אז לכל uתנאי 1אינו מתקיים .לכן לכל uולכל vמתקיים ( M((G, k), u, v) = Falseשזה חזק יותר
מהנדרש).
• יש ב G -קב"ת yבגודל . k+1
– yאינה מקיימת את תנאי . 2לכן לכל uועבור v = yמתקיים . M((G, k), u, v) = False
165
166
83
MAX-IS 2
– נבנה מכונה Mכך:
• קלט :גרף > <G, kושתי קבוצות קדקודים uו.v -
• Mתקבל אמ"מ שני התנאים הבאים מתקיימים:
uאינה קב"ת בגודל . k+1 .1
vהיא קב"ת בגודל . k .2
נכונות :להשלים.
167
נושאים על הלוח
• משפט NP :1ו coNP -מוכלות ב2 2 -
• הוכחה :נראה הכלה אחת .יהיה .A NPנוכיח A 2
– קיימים Mו p -כך שx A u{0,1}p(|x|).M(x,u)=True -
) (x, u, vהמכונה ’M – נבנה ’ Mכך :על קלט
• מריצה את Mעל ) (x,uועונה כמו ( Mכלומר מתעלמת מ.)v -
– ונקבלx A u{0,1}p(|x|).v{0,1}p(|x|).M’(x,u,v)=True :
• משפט :2אם NP = coNPאז NP = coNP = 2 = 2
– תוצאה :אם P = NPאז P = NP = coNP = 2 = 2
• הכללה :אם i = iאז i = i = i+1 = i+1
168
• הוכחת משפט :2נראה ( 2 NPבשקף הבא)
84
אם NP = coNPאז 2 NP
יהיה .A אז קיימים Mו p -כך ש:
• x A u{0,1}p(|x|).v{0,1}p(|x|).M (x,u,v)=T
נגדיר שפה
}A’ = {(x, u) | v{0,1)|p(|x • }.M (x,u,v)=T
אז
x A u{0,1}p(|x|).(x,u) A’ (1
A’ coNP (2
2-SAT
• הגדרה 2-SAT :היא שפת הנוסחאות
הבוליאניות ) = (x1, …, xn, y1, …, ynכך ש:
– כל השמה למשתנים x1, …, xnניתן להרחיב להשמה מספקת
ל. -
• טענה2-SAT 2 :
• הוכחה :נבנה מ"ט Mשעל קלט )(, u, v
– תסתכל על uכהשמה ל x1, …, xn -ועל vכהשמה לy1, …, yn -
ותקבל אמ"מ
• ההשמה מספקת.
– נכונות... :
• משפט 2-SAT :היא 2שלמה.
• ההוכחה דומה לזו של משפט .Cook-Levin
170
85
הגדרת i
• iמוגדרת עם iכמתים ומתחילה ב . -פורמלית:
• iהיא מחלקת השפות * A עבורן קיימים:
– פולינום p
– מ"ט דטרמיניסטית Mהרצה בזמן פולינומיאלי
וכך שלכל * x מתקיים x Aאמ"מ:
v1 {0,1} p (| x|) .v2 {0,1} p (| x|) ...Qvi {0,1} p (| x|) .M ( x, v1..., vi ) True
כאשר Qהוא הכמת עבור iאי זוגי ו -עבור iזוגי.
171
הגדרת i
• iמוגדרת עם iכמתים ומתחילה ב . -פורמלית:
• iהיא מחלקת השפות * A עבורן קיימים:
– פולינום p
– מ"ט דטרמיניסטית Mהרצה בזמן פולינומיאלי
וכך שלכל * x מתקיים x Aאמ"מ:
v1 {0,1} p (| x|) .v2 {0,1} p (| x|) ...Qvi {0,1} p (| x|) .M ( x, v1..., vi ) True
כאשר Qהוא הכמת עבור iאי זוגי ו -עבור iזוגי.
172
86
הגדרת PHותכונות ההיררכיה הפולינומיאלית
• :PHאיחוד כל מחלקות ההיררכיה הפולינומיאלית:
PH i
i 0 • תכונות:
הוכחה... : .1לכל i 1מתקיים i = coiוi = coi -
הוכחה... : .2לכל i 1מתקיים i i i+1 i+1
PH הוכחה... : i .3
i0
.4המחלקה PHסגורה למשלים ( )PH = coPHהוכחה... :
.5לכל i 1מתקיים iו i -סגורות לרדוקציות
פולינומיאליות .ההוכחה קצת מסורבלת – נוותר.
• תוצאה :גם PHסגורה לרדוקציות פולינומיאליות .הוכחה... :
173
174
87
שלמות ב PH -קריסת PH
• משפט :אם קיימת שפה שלמה ל PH -אז
– PHקורסת (לאיזושהי רמה .)i
• הוכחה... :
175
88