ים י ב ו יש יםח ל ד ו מ ות י כ ו ב י ס ותו י ב ו יש ח ה צ ר מ ן מ ר פ ו הק נ ר ו 'א פ ו ר פ ן ת ו הד י א |מ ת ל ג ר ת מ ב ‘ צ י י לד א י נ ד ט ד י מ רש ס י דק י ו ד מודלים חישוביים ,סיבוכיות | 67521 נכתב ע“י דויד קיסר-שמידט ודניאל דייצ’ב 4בפברואר 2023 מרצה | אורנה קופרמן מצאתם שגיאה? ספרו לנו! שלחו לנו מייל לאחת מהכתובות שכאן: daniel.deychev@mail.huji.ac.il david.keisarschm@mail.huji.ac.il c ,כל הזכויות שמורות לדויד קיסר-שמידט ודניאל דייצ’ב למרות שאין לנו באמת זכויות ואין להתייחס לכיתוב בשורה הקודמת ברצינות 2 תוכן העניינים תוכן העניינים תוכן העניינים I II 1 2 6 מבוא 9 מודלים חישוביים 9 אוטומט סופי דטרמינסטי )(DFA 1.1 פעולות על שפות . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.2 תכונות סגור של השפות הרגולריות . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 אוטומט סופי אי-דטרמינסטי )(NFA 2.1 17 שקילות בין NFAל. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DFA- 19 3 למת הניפוח לשפות רגולריות 22 4 משפט מייהיל-נרוד )(Myhill Nerode 25 4.1 5 מזעור אוטומטים . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . שפות חסרות הקשר 5.1 27 32 למת הניפוח לשפות ח“ה . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 IIIחישוביות 37 מכונת טיורינג 37 6 7 6.1 ספרנים ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (Enumerators 42 6.2 התזה של . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Church, Turing 43 6.3 תרגום אלגוריתמים למ“ט . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.4 אי כריעות ובעיית העצירה . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 רדוקציות 7.1 49 רדוקציות מיפוי . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IVסיבוכיות 49 55 8 מחלקות סיבוכיות זמן P, NP, EXP - 55 9 שלמות ב) NP-המחלקה (NPC 58 59 10רדוקציות פולינומיאליות 10.1בעיית ה. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subset Sum- 3 65 תוכן העניינים תוכן העניינים 67 11מחלקות סיבוכיות זכרון 11.1בעיות הריקנות והאוניברסליות . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12סיבוכיות זכרון תת-לינארית 70 75 12.1רדוקציה תת-לינארית . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 12.2משפט אימרמן . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 13חומר נוסף וצעדים להמשך 81 Vתרגולים 83 14תרגול - 1אוטומט סופי דטרמיניסטי 83 15תרגול - 2אוטומט סופי אי-דטרמיניסטי 88 16תרגול - 3ביטויים רגולריים ולמת הניפוח 90 17תרגול - 4למת הניפוח ומשפט מייהיל-נרוד 92 18תרגול - 5שפות חסרות הקשר 96 19תרגול - 6מכונת טיורינג 98 20תרגול - 7תכונות סגור של R, RE, coRE 101 21תרגול - 8רדוקציה ומשפט רייס 104 22תרגול - 9רדוקציות מיפוי וNP- 108 23תרגול - 10שלמות בNP- 110 24תרגול - 11שלמות בcoNP- 113 25תרגול - 12משפט סביץ’ 118 25.1השפה 119 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TQBF 122 26תרגול - 13משפטי ההירככיה 26.1משפט ההירככיה בזמן 122 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26.2משפט ההירככיה במקום 123 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIרשימת הגדרות ומשפטים 126 27הגדרות 126 28משפטים 134 4 תוכן העניינים תוכן העניינים VIIנספחים 139 29מחלקות חישוביות 139 30מחלקות סיבוכיות זמן 139 31סיכום מחלקות וסגירויות 140 5 שבוע 1 חלק I מבוא הקדמה בגדול ,בחישוביות יש לנו מחשב ,שזו מכונה שעושה מה שאומרים לה ,ואנחנו רוצים לברר: מה המחשב יכול לפתור )ומה לא( ובכמה משאבים? כפי שמרמז השם ,לקורס שלושה חלקים: .1מודלים חישוביים -בפרט נדבר על אוטומט ,שיעזור לנו לפרמל מה זה חישוב ובכלל מה זה מחשב )ואז נגיע למכונות טיורינג(. .2חישוביות -החלק הראשון בשאלה :מה מחשבים יכולים לפתור? .3סיבוכיות -החלק השני של השאלה :כמה עולה לפתור את הבעיה? נתמקד גם בחסמים תחתונים ,כדי לדעת כמה צריך להתאמץ כדי לפתור את הבעיה. נרצה לסקור את המושגים מעט יותר לעומק. סיבוכיות תורת הגרפים הגדרה .0.1יהי G = hV, Eiגרף לא מכוון .מעגל/מסלול אוילר הוא מעגל/מסלול ב G-שעובר בכל צלעות הגרף, בכל צלע בדיוק פעם אחת. דוגמה . .0.1האם בגרף הבא יש מעגל אוילר? התשובה היא שכן ,והפתרון הוא להתחיל מהקודקוד Xוללכת לפי החצים: 4 3 2 1 5 X 6 7 שאלה כיצד אפשר לבדוק האם יש מעגל אוילר בגרף? אוילר הציע את האלגוריתם הבא: 1 נעבור על כל הקודקודים ונבדוק שהדרגה שלהם זוגית ,אם זה נכון ,יש מעגל בגרף, אחרת אין .זהו אלגוריתם שרץ בזמן לינארי. 1זה גם היה האלגוריתם הראשון שהומצא אי פעם למעשה. 6 הרצאה 1א שבוע 1 הגדרה .0.2יהי G = hV, Eiגרף לא מכוון .מעגל/מסלול המילטון הוא מעגל/מסלול ב G-שעובר בכל קודקודי הגרף, בכל קודקוד בדיוק פעם אחת. דוגמה . .0.2האם בגרף מהדוגמה הקודמת יש מעגל המילטון? התשובה היא שכן .מתי אין? נגיד בגרף הבא ,כי לא משנה איזה מסלול נבחר נצטרך לעבור פעמיים בקודקוד .X X שאלה כיצד אפשר לבדוק האם יש מעגל המילטון בגרף? אלגוריתם נאיבי יעבור על כל האפשרויות ב ,O (|V |!)-כי יש !| |Vדרכים לסדר את כל הקודקודים .כמובן לא כל הדרכים לסדר קבילות ,אך במקרה הגרוע זו כמות האפשרויות עליהן נעבור .האם ידועה דרך טובה יותר? התשובה היא שלא! מדהים ,שאלות דומות מאוד ,אבל אחת לא מצליחים לפתור ביעילות ואת האחרת כן. נרצה אם כך: .1להוכיח שאי אפשר לפתור את הבעיות ביעילות. .2לסווג בעיות אלגוריתמיות למחלקות סיבוכיות. .3להוכיח קושי -להפסיק לחפש אלגוריתם יעיל .לאחר מכן נשתמש בקירובים. קריפטוגרפיה -פירוק ראשוניים נוכל לנצל קושי חישובי לטובתנו .למשל בקריפטוגרפיה: דוגמה .0.3נניח שנתון לנו מספר Nוידוע לנו שקיימים ראשוניים p, qטבעיים כך ש .N = p · q-בהינתן p, qקל לחשב את Nבזמן .O log2 Nאמנם ,בהינתן ,Nהאם אפשר לחשב את ?p, qבאופן כללי ,אנחנו לא מכירים אלגוריתם שיכול לבצע את זה בזמן שאינו אקספוננציאלי. √ את האלגוריתם הבא -נעבור על כל המספרים עד N נציע√ ,Oשזה לינארי ,האמנם? זה לינארי בגודל המספר ,ולא בגודל ייצוג המספר במחשב .גודל הייצוג הוא log Nואילו N √ 1 N = 2 2 log Nשזה אספוננציאלי ב.log N - ואם המספר ראשוני ומחלק את Nנעצור .הסיבוכיות היא יחד עם זאת אנחנו לא מצליחים להוכיח שזו בעיה קשה. נתון האלגוריתם הבא: .1לכל מספר בין 1ל:x- )א( הדפס ∗. מה סיבוכיות האלגוריתם? ,x = 11אז האלגוריתם לינארי באורך הקלט התשובה היא ,שזה תלוי .אם הקלט xנתון בייצוג אונארי ,כלומר }. . . 1 | {z .xאבל ,אם האלגוריתם נתון בייצוג בינארי ,כלומר בבסיס ,2אז אורך הקלט הוא log xולכן סיבוכיות האלגוריתם ! פעמים x היא אקספוננציאלית .כלומר ,וזו נקודה חשובה ,האלגוריתם אקספוננציאלי באורך הקלט שהוא אורך היצוג של המספר! 7 שבוע 1 חישוביות בעיית ריצוף האריחים דוגמה .0.4נרצה למצוא אלגוריתם לבעיה הבאה. קלט מספר סופי של אריחים ,כאשר כל אריח מוגדל על ידי רביעיה ) (li , ri , ui , diשמסמלת צבעים לצלעות הריבוע ,כאשר יש מספר סופי של צבעים )לא בהכרח רק .(4 פלט האם ניתן לרצף באופן חוקי ריבוע n × nלכל .n ≥ 1כאשר ריבוע חוקי מקיים שלכל זוג צלעות סמוכות ,יש צבע זהה )ואסור לסובב את האריחים(. למשל ,האם ניתן לרצף בדוגמה הבאה? )באיור הצבע של הצלע הוא הצלע של הרביע של אותה צלע( C A B ניתן ,נוכל לרצף כך למשל: .. . ··· A 4 A C 3 A C B 2 A C B A 1 4 3 2 1 ולמעשה אפשר לבצע זאת לכל n × nעל ידי השלמת האלכסונים באיור. שאלה כיצד נבדוק האם ניתן לבנות ריבוע כזה? תשובה אין אלגוריתם! לא ניתן לעבור על כל האפשרויות ,היות שיש אינסוף אפשרויות -האינסוף מגיע מגודל הריבוע - לכל n ∈ Nולא עבור גודל ספציפי. בעיית העצירה דוגמה .0.5נתונה תכנית מחשב Pאותה הרצנו על הקלט .xהתכנית לא עצרה .נרצה לענות על השאלה -מדוע? נרצה אולי לכתוב אלגוריתם שיבדוק עבורנו האם התכנית שלנו תעצור או לא. אם כך ,נגדיר את הבעיה הבאה: קלט תכנית מחשב ) Pקוד( וקלט xלתכנית. פלט האם Pעוצרת על .x האלגוריתם המתבקש הוא להריץ את התכנית על הקלט ,ואם היא עוצרת להחזיר אמת ואחרת שקר .אמנם אם היא לא עוצרת ,התכנית שלנו לא תעצור ,ולא נחזיר דבר. נוכל להוכיח בהמשך שאין אלגוריתם שפותר אותה. 8 1 שבוע 1 אוטומט סופי דטרמינסטי )(DFA חלק II מודלים חישוביים 1 אוטומט סופי דטרמינסטי )(DFA כדי להגדיר אוטומט נזדקק להגדרות הבאות: הגדרה .1.1אלפבית ) Σא“ב( הוא קבוצה סופית של אותיות )אובייקטים(. הגדרה .1.2מילה בא“ב Σהיא סדרה סופית של אותיות שנסמנה ב w = w1 w2 · · · wn -כך שכל אות ב .Σ-המילה הריקה מסומנת ב ε-ולא מכילה אף אות. S i נסמן ב Σ∗ -את כל המילים מכל אורך מעל ,Σכלומר ,Σ = {ε} ∪ · Σכאשר Σהיא קבוצת כל המילים מאורך ∗ i i∈N ,iונגדיר }.Σ0 = {ε הגדרה .1.3שפה מעל א“ב Σהיא קבוצה של מילים ∗.L ⊆ Σ ! שפה יכולה להיות קבוצה אינסופית ,אך מילה היא תמיד באורך סופי .אלפבת הוא תמיד קבוצה סופית. בנפנוף ידיים נאמר כי ”אוטומט הוא מחשב עם זכרון מוגבל“ .זהו מודל מתמטי שמתאר לנו חישוב ויהווה עבורנו תשתית תאורטית להמשך .פורמלית: הגדרה .1.4אוטומט ) (Automatonסופי דטרמינסטי ) (DFAהוא חמישיה A = hQ, Σ, δ, q0 , F iכאשר: Qקבוצת המצבים )קבוצה סופית(. Σהא“ב. δ : Q × Σ → Qפונקציית מעברים. q0מצב התחלתי. Fקבוצת המצבים המקבלים. דוגמה .1.1נתון עט דיגיטלי .ניתן לתת לעט שש פקודות .ON, OFF, U, D, L, Rנאמר כי סדרת פקודות היא חוקית ,אם היא מציירת קו רקיע משמאל לימין ).(Skyline קו רקיע • קו רקיע מוגדר להיות רצף המקיים: U .1מתחיל ב.ON- OFF R • R • • U D • • U .2מסתיים ב.OFF- • .3באמצע רק פקודות U, D, Rואחרי Uלא יבוא D R • R • R • U • U • U ישר Dולהפך. ON האוטומט המתאים לקוי רקיע נראה כבאיור הבא: 9 1 שבוע 1 אוטומט סופי דטרמינסטי )(DFA U q2 U OFF R OFF q1 q4 R OFF R ON q0 D q3 D אל המצב q4מגיעים ברגע שקוראים ,OFFוהוא מצב מקבל ,ולכן נסמנו בעיגול כפול .המצב ההתחלתי ,q0 ,מסומן בחץ שנכנס אליו .מצב זה יצפה לראות .ON נבחין כי תזוזה ,Rלא משנה את מצבנו באוטומט ,אבל ,אם ביצענו ,U/Dהשתנה המצב -יש מצב אחד ) (q2שבו אסור לנו לבצע אחריו Dומצב שני ) (q3בו אסור לבצע אחריו .U אנחנו נסיים ריצה על קלט במצב מקבל אם“ם הקלט חוקי. עבור אוטומט זה } Q = {q0 , q1 , q2 , q3 , q4 }Σ = {OFF, ON, U, D, L, R δ (q1 , U) = q2 . . . . . . } F = {q4 נשים לב שלא הגדרנו בציור מה עושה האוטומט אם במצב q0הוא מקבל לדוגמה ,Dוהוא פשוט נתקע .זה בגלל שמבחינתו מצב זה לא חוקי )אסור להתחיל עם משהו שהוא לא ,(ONולכן אפשר להגיד שאם אנחנו נמצאים במצב, ומקבלים קלט שאין חץ שמתאים אליו ,אז נוסיף מצב מיוחד ,שנסמנו ,q5שהוא מצב שאינו מקבל ,ואליו נעבור. נגדיר שכשאנחנו מגיעים ל q -אנחנו נשאר בו לנצח לא משנה מה הקלט הבא ,וכך נבטיח שנסיים במצב לא-מקבל ! על כל קלט לא חוקי. 5 לדוגמה ,בגלל שבשום שלב אסור לנו לקרוא ,Lאם נקבל בקלט Lאז נכנס ל q5 -ונישאר במצב לא-מקבל זה לנצח. מצב כזה כמו q5נקרא ”בור דוחה“ ,ונפרט על כך שוב בהמשך. דוגמה לאוטומט נביט באוטומט הבא ,עם המצב ההתחלתי :q0 }Σ = {0, 1 } Q = {q0 , q1 1 0 δ q1 q0 q0 q0 q1 q1 0 0 1 q0 q1 1 } F = {q0 האיור המתאים לאוטומט יראה כבאיור הנ“ל. 10 1 שבוע 1 אוטומט סופי דטרמינסטי )(DFA הגדרה .1.5ריצה של אוטומט Aעל מילה w = w1 w2 . . . wnמעל Σזו סדרה של מצבים r = r0 , r1 , . . . , rnכך שמתקיים: - r0 = q0 .1הריצה תמיד מתחילה ב.q0 - .2לכל i ≥ 0מתקיים ) - ri+1 = δ (ri , wi+1הריצה מכבדת את .δ הגדרה .1.6יהי אוטומט Aמילה wוריצה rשל wעל .A ∈ rnנאמר כי rדוחה ).(Rejecting rריצה מקבלת ) (Acceptingאם ,rn ∈ Fאחרת כאשר / F Aמקבל את wאם הריצה )יש ריצה אחת( של Aעל wהיא מקבלת. השפה של האוטומט Aמוגדרת להיות } הריצה של Aעל wמקבלת| ∗.L (A) = {w ∈ Σ דוגמה .1.2ריצה של האוטומט Aמהדוגמא הקודמת על 011היא .q0 , q0 , q1 , q0 השפה של האוטומט היא }מספר האחדות ב w-זוגי | ,L (A) = {w = w1 . . . wnניתן להוכיח זאת באינדוקציה. כפי שראינו בדוגמה של קו הרקיע ,באוטומטים שלנו הפונק’ δלא בהכרח שלמה .אבל ניתן להשלים אותה על ידי הוספת מצב שנקרא ”בור דוחה“ .כל מצב אחר יוכל להצביע אליו ,אבל לא ניתן יהיה לצאת ממנו ,מלבד לחזור לעצמו .כך במקרים בהם δלא מוגדרת ,נגדיר אותה להיות הבור הדוחה .נדגיש שכל ריצה שתגיע אליה ,לא תהיה ! ריצה מקבלת .מכאן אנו מסיקים שזה לא משנה אם δשלמה או חלקית. דוגמה לאוטומט נביט באוטומט הבא ,שנסמנו .A2 השפה של האוטומט היא: 1 יש ב w-לפחות 1אחד ∗ L (A2 ) = w ∈ Σ ואחרי ה 1-האחרון יש מספר זוגי של 0 0 0 q2 1 q1 q0 0, 1 נראה בתרגול כיצד להוכיח שזו אכן השפה. דוגמה לאוטומט נביט בשפה הבאה ,ונצייר אוטומט ,A3 ,שמתאים לשפה. 0, 1 1 0 0 } wמכילה את הרצף L3 = {w | 001 q3 לא קשה להשתכנע שזה אכן אוטומט שמתאים לשפה. 1 q2 0 q0 q1 1 סימון בהינתן מילה wואות ,aנסמן את מספר ה-a-ים ב w-בתור .#a w 11 הרצאה 1ב 1 שבוע 1 אוטומט סופי דטרמינסטי )(DFA הגדרה .1.7יהי A = hQ, Σ, δ, q0 , F iאוטומט .נגדיר δ ∗ : Q × Σ∗ → Qבאופן הבא: q w=ε w = w′ · σ, w′ ∈ Σ∗ , σ ∈ Σ = )δ ∗ (q, w )δ (δ (q, w ) , σ ∗ ′ ) δ ∗ (q, wמתאר למעשה את המצב אליו נגיע אם היינו רצים על אוטומט Aעם מילה ,wאם היינו מתחילים מהמצב ,qכלומר מדובר בהפעלה חוזרת של ,δבמילים אחרות” ,סגור“ .שימו לב כי δ : Q × Σ → Qאבל : Q × Σ∗ → Q ∗ ! .δ דוגמה לאוטומט b a נביט בשפה הבאה מעל הא“ב }:Σ = {a, b q0 q1 a } #a wאי-זוגי וגם wמסתיימת בL = {w | b- b a נגדיר לה אוטומט ,A ,באמצעות ציור b q2 אינטואיטיבית q0הוא המצב אליו תמיד נגיע כש #a w-זוגי ,ולכן .δ (q0 , b) = q0אם #a wהופך לאי-זוגי ,אנחנו עוברים ל ,q1 -ומשם אם אנחנו מקבלים גם bאנחנו עוברים ל q2 -שהוא מצב מקבל )כי אנחנו רוצים שמילה תסתיים ב .(b-אם אנחנו מקבלים עוד ,aאז #a wהופך לזוגי ואנחנו חוזרים ל .q0 -כלומר המשמעות של כל מצב היא: #a w - q0 .1זוגי. #a w - q1 .2אי-זוגי ו w-מסתיימת ב.a- #a w - q2 .3אי-זוגי ו w-מסתיימת ב.b- טענה .בסימוני הדוגמה הקודמת.L (A) = L , הוכחה .תהי ∗ .w ∈ Σהרעיון הוא לאפיין את השפה לפי המקרים שראינו קודם. אם כך ,נוכיח את הטענות הבאות: ): (i ∈ .(w אם δ ∗ (q0 , w) = q0אזי #a wזוגי )כלומר / L ): (ii ∈ .(w אם δ ∗ (q0 , w) = q1אזי #a wאי-זוגי ו w-מסתיימת ב) a-כלומר / L ) : (iiiאם δ ∗ (q0 , w) = q2אזי #a wאי-זוגי ו w-מסתיימת ב) b-כלומר .(w ∈ L כלומר חילקנו )חלוקה זרה!( את כל המילים ב w ∈ Σ∗ -לפי המצב ) δ ∗ (q0 , wבו הן יסיימו ,לכן אם נוכיח את הטענות הללו נוכל להסיק ש δ ∗ (q0 , w) = q2 -אם“ם 2 .w ∈ Lבנוסף ,מכיוון ש F = {q2 }-ינבע ש δ ∗ (q0 , w) ∈ F -אם“ם .w ∈ L נוכיח את הטענות הללו באינדוקציה על |.|w בסיס ) :(|w| = 0מהיות |w| = 0נובע .w = εלכן q0 הגדרת ∗ δ = ∗ ∗ ) δ (q0 , w) = δ (q0 , εואכן #a εזוגי .טענות )(ii), (iii ∗ מתקיימות באופן ריק ,כי אין אף מילה באורך 0עבורה .δ (q0 , w) 6= q0 2הקורא הסקרן מוזמן לוודא שהלוגיקה נכונה ,ושבזכות החלוקה הזרה הוכחת ששלושת הגרירות הללו הופכת כל גרירה לדו-כיוונית )כלומר לאם ורק אם(. 12 1 אוטומט סופי דטרמינסטי )(DFA שבוע 1 צעד ) :(w ⇒ w · σנניח שהטענה נכונה עבור מילה ,wונוכיח שהיא נכונה עבור .w · a, w · bנחלק למקרים לפי האות שבאה אחרי wובכל חלוקה נחלק שוב למקרים לפי הערך שמקבלת ∗ :δ נסתכל על :w · a ) : (iנניח כי .δ ∗ (q0 , w · a) = q0אז } ,δ ∗ (q0 , w) ∈ {q1 , q2כי אי אפשר להגיע מ q0 -לעצמו ,לכן לפני שרצנו על aהיינו או ב q1 -או ב .q2 -מהיות } ,δ ∗ (q0 , w) ∈ {q1 , q2מהנחת האינדוקציה בהכרח #a wאי-זוגי ,ולכן ) #a (w · aזוגי ,כנדרש. ) : (iiנניח כי .δ ∗ (q0 , w · a) = q1אז בהכרח ,δ ∗ (q0 , w) = q0כי לא יתכן שלפני שרצנו על aהיינו ב q2 -כי אי אפשר להגיע ממנו ל ,q1 -ולא יתכן שהיינו ב q1 -כי .δ (q1 , a) 6= q1כלומר בהכרח היינו קודם ב.q0 - לכן מהנחת האינדוקציה #a wזוגי ,ולכן ) #a (w · aאי-זוגי ,וכמובן w · aמסתיימת ב ,a-כנדרש. ) : (iiiנניח כי .δ ∗ (q0 , w · a) = q2מצב זה לא אפשרי כי לא משנה באיזה מצב היינו אחרי שרצנו על ,wאין מצב q עבורו ) δ (q, a) = q2הסתכלו על הציור של האוטומט והשתכנעו בכך( .לכן אין מה להוכיח. ההוכחה עבור w · bמתבצעת באופן דומה ,והיא הושארה כתרגיל לסטודנט המשקיע החכם היפה והחסון. הערה על ההוכחה | חלוקה למקרים וגרירה של טענות בגלל שזו נקודה מבלבלת מעט ,נרצה להבהיר .אנחנו למעשה הוכחנו 3תתי-טענות שאפשר לסכמן לשתי טענות כך: ∈ .w .1אם } δ ∗ (q0 , w) ∈ {q0 , q1אזי / L .2אם δ ∗ (q0 , w) = q2אזי .w ∈ L כידוע בלוגיקה אם A → Bאזי ) ¬B → ¬Aאם טענה Aגוררת את Bאז ”לא “Bגורר ”לא ,(“Aוזה משהו שמשתמשים בו כבר בקורסים בסיסיים במתמטיקה. ∗ ∈ wאזי לא מתקיים } .δ (q0 , w) ∈ {q0 , q1כלומר ,אם w ∈ L במקרה שלנו ,מטענה 1נובע אם לא מתקיים / L ∈ ) .δ ∗ (q0 , wכלומר אם w ∈ Lאזי .δ ∗ (q0 , w) = q2 אזי } / {q0 , q1 בטענה 2ראינו ש δ ∗ (q0 , w) = q2 -אזי ,w ∈ Lכלומר משתי הטענות יחד הראינו ש w ∈ L-אם“ם .δ ∗ (q0 , w) = q2 דוגמה .1.3אין אוטומט DFAששפתו היא }!L = {w | #a w = #b w אם ננסה לבנות אוטומט ,אז אנחנו נתחיל ממצב התחלתי בו קראנו אפס aואפס ,bועכשיו אם נקרא aנרצה מצב שזוכר ש a-מופיע פעם אחת יותר מ ,b-ואם שוב נקרא aנרצה לזכור שפעמיים ,וכן הלאה ,ונקבל משהו שהוא אינסופי .מהדוגמה הזו אנחנו מבינים שיש שפות שיש להן אוטומט ויש שפות שאין להן )כרגע לא נוכיח שאין לשפה הזו אין אוטומט( .מכאן מגיעה ההגדרה הבאה. הגדרה .1.8נסמן ב REG-את מחלקת השפות הרגולריות והיא מוגדרת ע“י }קיים A DFAעבורו REG = {L ⊆ Σ∗ | L (A) = L נאמר כי שפה Lהיא רגולרית אם . L ∈ REG 13 1 אוטומט סופי דטרמינסטי )(DFA 1.1 שבוע 2 1.1 פעולות על שפות פעולות על שפות הגדרה ) .1.9פעולות על שפות( תהי Σא“ב ותהיינה ∗ L, L1 , L2 ⊆ Σשפות .נגדיר את הפעולות הבאות: .1איחוד.L1 ∪ L2 = {w | w ∈ L1 ∨ w ∈ L2 } : .2שרשור ).L1 · L2 = {w1 · w2 | w1 ∈ L1 , w2 ∈ L2 } :(concatination .3כוכב )∀i ∈ [k] , wi ∈ L} :(kleene − star .L∗ = {w1 · . . . · wk | k ≥ 0 האם L1 , L2חייבות להיות מעל אותו א“ב? התשובה היא שלא ,אבל תמיד נניח שכן כי אם הן לא מעל אותו א“ב נסתכל פשוט על א“ב שהוא האיחוד שלהן. ! הערה בהגדרה של ∗ ,Lאפשרנו את המקרה k = 0כדי שיתקיים ∗ .ε ∈ Lבאופן כללי המשמעות של ∗ Lהיא שרשור סופי של מספר כלשהו )יתכן אפס( של מילים ב.L- דוגמה .1.4נגדיר } .Σ = {1, 2, 3, 4נגדיר } .L1 = {1, 333} , L2 = {22, 4444אזי: .L1 ∪ L2 = {1, 22, 333, 4444} .1 .L1 · L2 = {122, 14444, 33322, 3334444} .2אם εהיה ב L1 -לדוגמה ,אז גם 22היה ב L1 · L2 -למשל. L∗1 = {ε, 1, 333, 1 1, 1 1 1, 13331, 333 333 1 333, . . .} .3ולמעשה יש בקבוצה זו אינסוף מילים .נשים לב שלדוגמה ∈ .13313 / L∗1 שאלה מתי ∗ Lסופית? תשובה עבור ∅ = Lועבור } L = {εמתקיים } .L∗ = {εבכל מקרה אחר L∗ ,היא אינסופית ,ולמעשה עוצמתה היא .ℵ0 1.2תכונות סגור של השפות הרגולריות כפי שהמספרים הטבעיים סגורים לפעולת הכפל ,אבל לא לחילוק ,נרצה לראות לאילו פעולות השפות הרגולריות סגורות, ולאילו לא. סגירות למשלים שפות רגולריות סגורות למשלים משפט .1.1תהי .L ∈ REGאזי .L = Σ∗ \L ∈ REG הוכחה .מהיות L ∈ REGקיים A = hQ, Σ, δ, q0 , F i DFAעבורו .L (A) = Lנסתכל על האוטומט A′ = hQ, Σ, δ, q0 , Q\F i כלומר הפכנו את המצבים המקבלים ללא-מקבלים ולהפך .עכשיו כל מילה שהייתה ב L (A)-לא נמצאת ב L (A′ )-ולהפך. כלומר ∀w ∈ Σ∗ ,הריצה של Aעל wמגיעה ל Q\F1 -אם“ם A1דוחה את .wלכן .L (A′ ) = L 14 הרצאה 2א 1 אוטומט סופי דטרמינסטי )(DFA 1.2 שבוע 2 תכונות סגור של השפות הרגולריות סגירות לאיחוד שפות רגולריות סגורות לאיחוד משפט .1.2תהיינה .L1 , L2 ∈ REGאזי .L1 ∪ L2 ∈ REG רעיון ההוכחה ניקח אוטומט שמתאים ל L1 -ואחד שמתאים ל ,L2 -ונריץ את שניהם בו זמנית על מילה באמצעות בנייה של אוטומט מכפלה .אם אחד האוטומטים באוטומט המכפלה יסיים במצב מקבל ,נכריע שהאוטומט הגיע למצב מקבל. A1 = hQ1 , Σ, δ1 , s1 , F1 i שני -DFAים עבורם הוכחה .יהיו A2 = hQ2 , Σ, δ2 , s2 , F2 i ) .L (A) = L (A1 ) ∪ L (A2 L (A1 ) = L1 L (A2 ) = L2 .נבנה A = hQ, Σ, δ, s0 , F i DFAעבורו כדי ש A-יסמלץ את A1 , A2יחד ,נגדיר אותו להיות אוטומט המכפלה: Q = Q1 × Q2 s = hs1 , s2 i δ (hq1 , q2 i , σ) = hδ1 (q1 , σ) , δ2 (q2 , σ)i } F = (F1 × Q2 ) ∪ (Q1 × F2 ) = {(q1 , q2 ) | q1 ∈ F1 ∨ q2 ∈ F2 נשים לב שהגדרנו את Fכפי שהגדרנו ,כי אם מילה נמצאת ב w ∈ L1 ∪ L2 -אז w ∈ L1או .w ∈ L2אם לדוגמה w ∈ L1 אז הריצה שלה על A1תסתיים במצב מקבל ,אך יכול להיות שהריצה על A2תסתיים במצב לא מקבל .כדי ש A-יקבל את השפה L1 ∪ L2ובפרט את ,wאנחנו צריכים שאפילו אם רק אחד המצבים q1 , q2הוא מצב מקבל ,אז באוטומט A המצב ) (q1 , q2יהיה מקבל. נוכיח ש.L (A) = L (A1 ) ∪ L (A2 )- תהי ∗ .w = w1 w2 · · · wn ∈ Σתהי r = r0 , r1 , . . . , rn+1הריצה של Aעל .wנסמן q1i+1 = δ1 q1i , wi q10 = s1 . i+1נשים לב שהריצות של A1 , A2על wהן ,0 ≤ i שלכל לב נשים . q2 = δ2 q2i , wi q20 = s2 q1i , q2i = .∀i, riבסימונים שלנו, r1 = q10 , q11 , . . . , q1n r2 = q20 , q21 , . . . , q2n . עתה w ∈ L (A) ,אם“ם rמקבלת אם“ם hq1n , q2n i ∈ Fאם“ם q1n ∈ F1או q2n ∈ F2אם“ם r1מקבלת או r2מקבלת אם“ם ) w ∈ L (A1או ) w ∈ L (A2אם“ם ) .w ∈ L (A1 ) ∪ L (A2 כלומר ) ,L (A) = L (A1 ) ∪ L (A2כנדרש. בהוכחה הנחנו ש A1 , A2 -הם מעל אותו א“ב .זה בסדר כי כפי שאמרנו פעם ,בהקשר של פעולות על שפות ,אפשר פשוט להסתכל על Σשהוא איחוד הא“בים שלהם )ואז בכל אחד מהאוטומטים אם תשתנה(.יש מעבר על אות שלא ! נמצאת ב-א“ב המקורי ,ניכנס פשוט לבור דוחה ,וכך השפה של האוטומט לא דוגמה )אוטומט מכפלה( נגדיר } .Σ = {aנסתכל על האוטומטים A1 , A2הבאים ,ונגדיר עבורם אוטומט מכפלה .נשים }L (A1 ) = {w | |w| ≡ 0 mod 2 לב ש- 3 .להלן ניתן לראות ציורים המתאימים לאוטומטים A1, A2וכן לאוטומט }L (A2 ) = {w | |w| ≡ 0 mod 3 המכפלה .Aאכן לא קשה להשתכנע ש.L (A) = L (A1 ) ∪ L (A2 )- { } . i | ai ∈ L 3הערת צד :שפה ∗} L ⊆ {aמגדירה תת-קבוצה של המספרים הטבעיים: המספרים הראשוניים ,ועוד כל מיני שאלות מעניינות. 15 אפשר לשאול האם יש אוטומט שמגדיר את כל 1 אוטומט סופי דטרמינסטי )(DFA 1.2 שבוע 2 תכונות סגור של השפות הרגולריות דוגמה לאוטומט מכפלה עבור איחוד q1 , s 3 a q1 q2 A1 a q2 , s 2 a a a s2 q2 , s 1 a s1 a s3 q1 , s 1 A A2 a a a q1 , s 2 a q2 , s 3 סגירות לחיתוך שפות רגולריות סגורות לאיחוד משפט .1.3תהיינה .L1 , L2 ∈ REGאזי .L1 ∩ L2 ∈ REG הוכחה .נגדיר אוטומט מכפלה כמו קודם ,רק שהפעם המצבים המקבלים שלו יהיו } F = F1 × F2 = {(q1 , q2 ) | q1 ∈ F1 ∧ q2 ∈ F2 כי אנחנו רוצים שמילה תתקבל רק אם היא ב L1 -וגם ב .L2 -המשך ההוכחה הוא באותו אופן כמו עבור איחוד. סגירות לשרשור שפות רגולריות סגורות לשרשור משפט .1.4תהיינה .L1 , L2 ∈ REGאזי .L1 · L2 ∈ REG היינו רוצים לנסות להגדיר אוטומט Aכמו בהוכחות הקודמות ,שמורכב איכשהו מ .A1 , A2 -לצערנו ,להגדיר אוטומט מכפלה לא יעבוד כי אנחנו לא רצים כאן במקביל .בהינתן מילה w = w1 · w2כאשר w1 ∈ L1 , w2 ∈ L2יכלנו אולי לנסות איכשהו ש A-יריץ את ,A1ואז ברגע שהיה מסיים לרוץ על w1היינו ממשיכים את הריצה מ A2 -על ,w2אך אין לנו ממש דרך ∈ wאיך נדע לזהות לעשות את זה -איך בהינתן מילה w ∈ L1 · L2נדע כיצד ניתן לפרק אותה ל ?w1 · w2 -אם / L1 · L2 שזה המצב? היינו שמחים ,אם היה אפשר ,לבנות מנגנון שקופץ מהמצבים המקבלים של A1למצב ההתחלתי של - A2אבל לא ברור איך בדיוק קופצים .כלומר ,היינו רוצים לעבור על כל הפירוקים האפשריים של wלשתי מילים ,w1 , w2ולבדוק האם ,w1 ∈ L1 , w2 ∈ L2כלומר היינו מריצים את w1על ,A1ואם היינו מגיעים למצב מקבל היינו קופצים למצב ההתחלתי של A2וממשיכים לרוץ משם על המשך המילה.w2 , הבעיה היא שבאוטומט סופי דטרמיניסטי אין לנו איך לעבור על כל האפשרויות ,אין לנו דרך לנחש בדיוק איזה פירוק הוא הנכון .בשביל זה אנחנו צריכים מושג חדש -אוטומט סופי אי-דטרמיניסטי. ספוילר :נראה שאוטומטים סופיים אי-דטרמיניסטיים הם בעלי אותו כוח הבעה כמו סופיים דטרמיניסטיים ,כלומר הם שקולים .אנו נבנה אוטומט סופי אי-דטרמיניסטי שמקבל שרשור של שתי שפות ,ומכך נסיק ש! .L · L ∈ REG- 2 16 1 2 2 אוטומט סופי אי-דטרמינסטי )(NFA שבוע 2 אוטומט סופי אי-דטרמינסטי )(NFA אוטומט סופי אי-דטרמינסטי הוא מודל שהגו בשנת 1959רבין 4וסקוט ,והוא מוגדר כך: הגדרה .2.1אוטומט סופי אי-דטרמינסטי ) (NFAהוא חמישיה A = hQ, Σ, δ, Q0 , F iכאשר: Qקבוצת המצבים )קבוצה סופית(. Σהא“ב. δ : Q × (Σ ∪ {ε}) → 2Qפונק’ מעברים. Q0 ⊆ Qקבוצת המצבים ההתחלתיים. Fקבוצת המצבים המקבלים. הרעיון הוא שעכשיו אנחנו מאפשרים למילה לעבור כמה מסלולי ריצה ,ואנחנו אומרים שאוטומט מקבל מילה אם קיים למילה מסלול ריצה כלשהו שמסתיים במצב מקבל )גם אם יש ריצה דוחה ,זה לא משנה לנו כל עוד יש ריצה אחת לפחות שהיא מקבלת(. העובדה שיש כמה מסלולי ריצה מתבטאת בהגדרה בכמה דרכים: .Q0 ⊆ Q .1יכולים להיות כמה מצבים התחלתיים ,ולא רק אחד .כלומר ריצות שונות לא בהכרח יתחילו מאותו מצב. .δ : Q × (Σ ∪ {ε}) → 2Q .2אנחנו יכולים לעבור ממצב כלשהו לכמה מצבים ,ולא רק למצב יחיד. .δ : Q × (Σ ∪ {ε}) → 2Q .3יש לנו עכשיו מעברים מיוחדים בשם ”מעברי .“εמעבר אפסילון אומר שכתוב על קשת את המילה ,εשזה אומר שאנחנו יכולים לעבור ממצב למצב ,בלי להתקדם בקריאה -כלומר בלי לקרוא אות נוספת. הרעיון הוא שאם יש מילה כמו ,0100אז אפשר לחשוב עליה גם בתור 010ε0או ,ε0100כלומר אפשר להוסיף אפסילונים בכל מקום בלי לשנות את המילה ,ולכן נוכל לעבור ”בחינם“ על קשתות שכתוב עליהן .ε הבהרנו רעיונית מהי ריצה על האוטומט ,אך עכשיו נגדיר פורמלית מהי ריצה ומהי ריצה מקבלת: הגדרה .2.2ריצה של A NFAעל מילה w = w1 w2 . . . wnמעל Σזו סדרה של מצבים ,r = r0 , r1 , . . . , rmעבור ,m ≥ nכך שניתן לכתוב את wכ ,(xi ∈ Σ ∪ {ε}) w′ = x1 x2 . . . xm -וכך שמתקיים: - r0 ∈ Q0 .1הריצה מתחילה ממצב התחלתי כלשהו. .2לכל i ≥ 0מתקיים ) .ri+1 ∈ δ (ri , xi+1 הגדרה .2.3יהיו ,A NFAמילה wוריצה rשל wעל .Aנאמר כי: rריצה מקבלת אם .rm ∈ F Aמקבל את wאם קיימת ריצה מקבלת של Aעל .w השפה של Aהיא } Aמקבלת את .L (A) = {w ∈ Σ∗ |w הערה כשאנחנו אומרים שניתן לכתוב את wכ ,w′ -הכוונה היא שאם נוריד מ w′ -את כל האפסילונים ,נקבל את .w הערה בהגדרה של ריצה m ≥ nבגלל מעברי .ε 4מיכאל רבין היה חבר סגל באוניברסיטה העברית ,וקיבל פרס טיורינג על המודל הזה. 17 2 שבוע 2 אוטומט סופי אי-דטרמינסטי )(NFA נמחיש את כל הדברים הללו בדוגמאות הבאות: דוגמה לNFA- נרצה לבנות A NFAעבור השפה ∗ wמכילה את התת-מילה L = w ∈ {0, 1} | 011 0, 1 ב NFA-מימין אנחנו רואים שאם w ∈ Lאז יש ריצה 0, 1 1 q3 בה wבשלב כלשהו עוברת מ q0 -ל q1 -ואז ל q2 -ואז q2 1 q1 0 q0 ל q3 -ונשארת שם .ולמעשה w ∈ Lאם“ם יש ריצה של Aעל wשמסתיימת ב ,q3 -לכן .L (A) = A הערה נשים לב שבדוגמה הקודמת מתקיים למשל } ,δ (q0 , 0) = {q0 , q1זה מבטא פורמלית שיש יותר ממצב אחד אליו אפשר לעבור. דוגמה ל NFA-עם מעברי ε s0 ε 1 0 s1 s2 0, 1 0 נסתכל על ה NFA-לעיל .נשים לב שהמילה 0נמצאת בשפה של האוטומט ,כי נוכל לעבור מעבר εמ s0 -ל ,s1 -ואז לקרוא את 0ולעבור מ s1 -ל s0 -ולסיים שם ).(0 = ε0 גם 00בשפה כי נוכל בדומה לדוגמה הקודמת לחשוב על 00בתור ,ε0ε0ואז נלך במסלול 0 מעבר ε מעבר ε 0 s0 −−−→ s1 → s0 −−−→ s1 → s0 גם 1000בשפה :נלך במסלול 0 מעבר ε 0 0 1 s0 → s2 → s1 → s0 −−−→ s1 → s0 10לא בשפה לעומת זאת :בכל ריצה אנחנו נהיה חייבים לעבור מ s0 -ל ,s2 -ומשם או שנשאר ב s2 -או שנעבור לs1- -כך או כך באף ריצה לא נסיים במצב מקבל. 18 אוטומט סופי אי-דטרמינסטי )(NFA 2 2.1 2.1 שבוע 2 שקילות בין NFAלDFA- שקילות בין NFAלDFA- עכשיו נראה שלכל NFAיש DFAשמקבל את אותה שפה ,ולהפך .אם היינו פילוסופים ,היינו יכולים לדבר על איך שזה בעצם אומר שאין משמעות לבחירה חופשית )מעל מרחב מצבים סופי( ,וכל בחירה אפשר למדל עם דטרמיניזם .אבל אנחנו לא פילוסופים אז נוותר על הדיון ביינתים .מכך גם נסיק בסוף ששפות רגולריות סגורות לשרשור )היזכרו בטענה .(1.4 לפני שננסח את המשפט ונוכיח אותו ,אנחנו צריכים הגדרה דומה ל δ ∗ -עבור .NFAכפי שב δ ∗ DFA-אומרת לנו מה המצב אליו נגיע אחרי קריאה של מילה ,ב NFA-היא תגיד לנו מהי קבוצת המצבים אליהם אפשר להגיע אחרי קריאת מילה. הגדרה .2.4יהי .NFA A = hQ, Σ, δ, Q0 , F iנגדיר δ ∗ : 2Q × Σ∗ → 2Qבאופן הבא: w=ε w = σ, σ ∈ Σ w = w′ · σ, w′ ∈ Σ∗ , σ ∈ Σ S S ∗ )δ (S, w) = {t | ∃s ∈ S : t ∈ δ (s, σ)} = s∈S δ (s, σ )δ ∗ (δ ∗ (S, w′ ) , σ בהגדרה זו לא התחשבנו במעברי ,εזה כי כל NFAאפשר לכתוב ללא מעברי ) εראו משפט 15.1בתרגול( .לשם ! נוחות אפשר גם לחשוב ש δ -מטפלת גם במעברי .ε ∗ שקילות NFAוDFA- משפט .2.1לכל A NFAיש A′ DFAכך ש.L (A) = L (A′ )- רעיון ההוכחה נבנה ל A-אוטומט A′ DFAבו כל מצב הוא תת-קבוצה של המצבים ב ,A-לכן המצב ההתחלתי יוכל להיות קבוצת המצבים ההתחלתיים ב .A-פונק’ המעברים תהיה כל המצבים אליהם אפשר להגיע מתת הקבוצה הנוכחית באמצעות קריאה של אות .כך ינבע ש A′ -מגיע למצב ) Sבריצה היחידה שלו( אחרי קריאת מילה wאם“ם Aיכול להגיע לבדיוק כל המצבים ב S-אחרי קריאת .w חשוב להבין S :היא מצב ב ,A′ -ובו זמנית היא קבוצת מצבים ב.A- הוכחה .יהי .NFA A = hQ, Σ, Q0 , δ, F iנבנה A′ = hQ′ , Σ, q0′ , ρ, F ′ i DFAכך ש .L (A) = L (A′ )-נניח בה“כ שבA- אין מעברי ) εבתרגול ,15.1 ,ראינו כיצד להיפטר מהם( .נגדיר Q′ = 2 Q q0′ = Q0 }∅ =F ′ = {S ⊆ Q | S ∩ F 6 ונגדיר ρ : Q′ × Σ → Q′ע“י )δ (s, σ S = ).ρ (S, σ s∈S נציין שהגדרנו את Fכך כי מספיק שיש ריצה אחת מקבלת על ה NFA-כדי שנקבל את המילה .להגדיר } F ′ = {Fזו דרישה חזקה מדי כי אז אנחנו דורשים שריצה על wמגיעה לכל המצבים המקבלים ב.A- אנו נראה שמתקיים המצב ש A′ -מגיע אליו אחרי קריאת w קבוצת המצבים ש A-יכול להיות בה באחת הריצות שלו על w ↓ ↓ )δ ∗ (Q0 , w = 19 )ρ∗ (q0′ , w הרצאה 2ב 2 אוטומט סופי אי-דטרמינסטי )(NFA 2.1 שבוע 3 שקילות בין NFAלDFA- ומכך ינבע כרצוי: ∅ =ρ∗ (q0′ , w) ∩ F 6 )ρ∗ (q0′ ,w)=δ ∗ (Q0 ,w ⇒⇐ יש ריצה מקבלת של Aעל w ↓ ∅ =δ ∗ (Q0 , w) ∩ F 6 )w ∈ L (A ⇒⇐ ) ⇐⇒ ρ∗ (q0′ , w) ∈ F ′ ⇐⇒ w ∈ L (A′ תהי ∗ .w ∈ Σנראה כי ) ρ∗ (q0′ , w) = δ ∗ (Q0 , wבאינדוקציה על |:k = |w בסיס ) :(k = 0מהיות |w| = 0בהכרח .w = εאכן )Q0 = δ ∗ (Q0 , ε הגדרת A′ = q0′ = ).ρ∗ (q0′ , ε צעד ):(k ⇒ k + 1 )δ (s, σ) = δ ∗ (Q0 , w · σ [ הגדרת ρ = ה”א )ρ∗ (q0′ , w · σ) = ρ (ρ∗ (q0′ , w), σ) = ρ (δ ∗ (Q0 , w), σ )s∈δ ∗ (Q0 ,w כאשר המעבר האחרון נכון כי )δ (s, σ S )s∈δ ∗ (Q0 ,w היא קבוצת כל המצבים אליהם אפשר להגיע אם נתחיל ממצב בδ ∗ (Q0 , w)- ונעשה צד נוסף אחרי קריאה של ,σשאלה בדיוק כל המצבים אליהם אפשר להגיע בקריאה של w · σכשמתחילים ממצב ב ,q0 -שזה בדיוק ).δ ∗ (Q0 , w · σ דוגמה ) .2.1הבנייה בהוכחה( נסתכל על האוטומט Aהבא ,שמתאים לשפה }האות האחרונה כבר הופיעה ברישא שלא כוללת את האות האחרונה | L = {w ∈ .010 ∈ L, 110נשים לב ש ρ ({s0 , s4 } , 1) = {s0 , s2 , s4 }-כי בקריאה של 1אפשר להגיע מ s0 -לs0 - מתקיים למשל / L ומ s4 -ל .s2 , s4 -באופן דומה הגדרנו את יתר המעברים .יש מצבים נוספים ,כדוגמת } q ′ = {s0 , s1 , s2 , s3 , s4שלא ציירנו, כי הם ”לא רלוונטיים לאוטומט“ שכן אין איך להגיע אליהם מהמצב ההתחלתי. כמו כן ,נשים לב שהמצב } {s0 , s2 , s4הוא מצב מקבל כי ) s2שהוא מצב מקבל ב NFA-המתאים( נמצא בו. 5 דוגמה לבנייה בהוכחה | מימין NFAומשמאל ה DFA-המתאים לו 0 0, 1 s1 1 0 0 s0 0 s2 1 1 } {s1 , s2 , s4 0, 1 0, 1 } {s1 , s2 , s3 0 0, 1 } {s1 , s4 1 } {s0 , s3 0 0 s4 } {s1 , s3 1 0 1 s3 1 } {s0 , s2 , s4 1 } {s0 , s4 ראינו בהוכחה של המשפט הקודם ,שלכל A NFAבעל nמצבים ,אנחנו יכולים למצוא A′ DFAעם לכל היותר 2nמצבים. 5הפעולה של לבנות DFAהשקול ל NFA-נקראית גם ”לחרצן“ .אוטומט דטרמיניסטי נקרא ”עצמיון חרצני“ :עצמיון -אוטומט ,חרצני - דטרמיניסטי .לעשות דטרמיניזציה ,כלומר לחרצן ,זה לגרום לאוטומט להיות נחרץ בדעתו. 20 הרצאה 3א 2 אוטומט סופי אי-דטרמינסטי )(NFA 2.1 שבוע 3 שקילות בין NFAלDFA- 2n כלומר מצאנו חסם עליון .NFA −→ DFA -עתה נרצה למצוא חסם תחתון. אנו נראה שבאופן כללי אין פולינום pשבהינתן NFAעם nמצבים ניתן לייצר DFAשקול עם לכל היותר ) p (nמצבים. 2n → - NFA −החסם העליון הוא 2nוגם התחתון הוא .2n כלומר DFA 2n אם כך ,נראה שיש סדרת שפות ,Ln , n ∈ N ,כך שהפער בין כמות המצבים ב NFA-שמקבל את השפה ל DFA-המינימלי שמקבל את השפה הוא אקספוננציאלי. טענה .2.1נגדיר ∗ במקום ה-n-י מהסוף מופיע .∀n ∈ N, Ln = w ∈ {0, 1} | 0אזי קיים NFAעם n + 1מצבים המקבל את ,Lnוכל DFAהמקבל את Lnמכיל לפחות n 2מצבים. הוכחה .לא קשה לראות שה NFA-הבא מקבל את השפה ושיש לו רק n + 1מצבים: 0, 1 0, 1 ... 0, 1 sn s2 0, 1 s1 0 s0 עכשיו נניח בשלילה שקיים ,Dn = h{0, 1} , Q, q0 , δ, F i ,DFAעבורו L (Dn ) = Lnויש ל Dn -פחות מ 2n -מצבים .בגלל שבDn - n יש פחות מ 2n -מצבים ,ויש 2nמילים באורך nמעל } ,Σ = {0, 1אז מעקרון שובך היונים ,יש שתי מילים }w1 , w2 ∈ {0, 1 כך ש w1 6= w2 -ו Dn -מגיע לאותו מצב אחרי קריאת w1ואחרי קריאת .w2כלומר.q := δ ∗ (q0 , w1 ) = δ ∗ (q0 , w2 ) , מהיות w1 6= w2קיים 1 ≤ i ≤ nעבורו ] 6 .w1 [i] 6= w2 [iנניח בה“כ .w1 [i] = 0, w2 [i] = 1 נשים לב שמהאות ה i-אנחנו עוברים n − iמצבים עד שאנחנו מגיעים ל .q-היות שהריצות של המילים מתלכדות ב,q- נרצה להוסיף לכל אחת מהן סיפא כדי שהאות ה-i-ית ב w1 , w2 -תהפוך לאות ה-n-ית מהסוף .כלומר אנחנו נרצה לשרשר ל w1 , w2 -מילה באורך ) i − 1לא משנה איזו( ,ככה שכל אחת מהמילים המשורשרות תגיע לאותו מצב ,אבל אחת תתקבל ע“י האוטומט והאחרת לא -שכן במילה האחת יש 0במקום ה-n-י מהסוף ובאחרת יש .1זו כמובן סתירה ,כי מצב לא יכול להיות גם מקבל וגם לא מקבל. נבחר .x = 1i−1נסתכל על ) .s = δ ∗ (q, xאם s ∈ Fאז Dnמקבל את - w2 · xבסתירה לנכונות Dnכי ב w2 · x-האות ∈ ,sאבל אז Dnלא מקבל את ) w1 · xכי הריצה היחידה של w1 · xעל Dnמגיעה ל.(s- ה-n-ית מהסוף היא .1לכן / F זו סתירה לנכונות Dnכי ב w1 · x-האות ה-n-ית מהסוף היא .0 ]w1 [i |w1 [i+1],...,w1 [n]|=n−i 0 ]w1 [1],...,w1 [i−1 |w1 [i],...,w1 [n],x[1],...,x[i−1]|=n ◦s i−1 ◦ ◦ q0 q |w2 [i],...,w2 [n],x[1],...,x[i−1]|=n ]w2 [1],...,w2 [i−1 |w2 [i+1],...,w2 [n]|=n−i 1 ]w2 [i אין זה אומר שלכל NFAנדרש מספר אקספוננציאלי של מצבים כדי לעבור ל .DFA-אלא רק שבאופן .DFAכללי לא ניתן ! להתחייב לכמות שהיא לא אקספוננציאלית .למשל ,אוטומט עם מצב אחד ,הוא גם NFAוגם 6הסימון ] w [iהוא האות ה i-ב.w- 21 3 3 שבוע 3 למת הניפוח לשפות רגולריות למת הניפוח לשפות רגולריות טענה .3.1אין DFAעבור }.L = {0n 1n | n ≥ 0 הוכחה .נניח בשלילה שקיים A = hΣ, Q, q0 , δ, F i DFAעבורו .L (A) = Lיהי | .p = |Qנתבונן במילה .w = 0p 1p ∈ L הריצה של Aעל wמקבלת ,ונסמנה .r = q0 , q1 , . . . , q2pמעקרון שובך היונים ,ברישא q0 , . . . , qpיש מעגל .כלומר ,יש 0 ≤ l < j ≤ pכך ש 7 .ql = qj -נשים לב שאם נוסיף לאמצע את המילה עוד עותקים של האותיות שרצות במעגל ,אז נקבל שהריצה תסתיים באותו מצב ,כי אנחנו נרוץ עד ,qlנסתובב במעגל כמה פעמים שאנחנו רוצים )אפילו אם נסתובב 0פעמים זה בסדר( ,כלומר נוכל לנפח את המילה כאוות נפשנו ,ואז נמשיך מ qj -ל qp -ונסיים את הריצה .מכאן שיש ל A-ריצה ∈ 0p−(j−l) 1pבסתירה לכך ש.L (A) = L- מקבלת גם על ) 0p−(j−l) 1pכלומר דילגנו על המעגל( .עם זאת/ L , 0 0 0 0 q2p 1 1 ... 1 1 qp 0 0 0 ... 0 0 0 0 ... 0 0 ql = qj q0 הערה .באיור ניתן לראות שלכאורה qlשולח את האות 0לשני מצבים שונים -פעם אחת לתוך המעגל ופעם אחת לכיוון .q2pאפשר לחשוב שזו סתירה כי אוטומט DFAלא יכול להעביר אות לכמה מצבים .אז ראשית ,מי שזה מפריע לו יכול לדמיין שמדובר ב NFA-ולא ) DFAהרי ראינו שבהקשר של שפות רגולריות השניים שקולים( .שנית ,הציור הוא רק ציור שנועד לתת אינטואיציה -למעשה המצב qlתמיד שולח את האות 0לאותו מצב ,פשוט בציור זה נראה כמו מצב אחר. המצבים מ qj -עד qpחייביות להיות למעשה על המעגל עצמו ,ואז ברגע שאנחנו קוראים את האות 1אנחנו משתחררים בשלב מסויים מהמעגל ומגיעים ל) q2p -יכול להיות ש q2p -גם הוא נמצא על המעגל ,אך אין חובה לכך(. נכליל את הרעיון מההוכחה ,בו אנחנו מראים ששפה היא לא רגולרית באמצעות מציאת מעגלים וניפוח מילים לפי המעגלים שמצאנו. למת הניפוח לשפות רגולריות משפט .3.1תהי .L ∈ REGאזי קיים ) p ≥ 1קבוע הניפוח( כך שלכל מילה ,w ∈ Lאם |w| ≥ pאז קיימת חלוקה w = x · y · zכך שמתקיים: .|xy| ≤ p .1 |y| > 0 .2 ).(y 6= ε .∀i ≥ 0, xy i z ∈ L .3 מהיות ,L ∈ REGקיים ,A = hΣ, Q, q0 , δ, F i ,DFAעבורו הוכחה .ההוכחה תהיה דומה להוכחה בדוגמה הקודמת. .L (A) = Lנבחר | .p = |Qנתבונן במילה w = w1 . . . wn ∈ Lעבורה .|w| ≥ pנסמן את הריצה של Aעל wבתור .q0 , . . . , qnמעקרון שובך היונים ,קיים בריצה מצב שחוזר על עצמו בקריאת pהאותיות הראשונות .כלומר ,קיימים 0 ≤ l < j ≤ pכך ש.qj = ql - נגדיר :x = w1 . . . wl , y = wl+1 . . . wj , z = wj+1 . . . wn wj+1 w wj wl+1 w w n 1 l qn →q0 −− →. . . − →q −−−→ . . . −−→ qj −−−→ . . . −− | {z }|l {z } {z |} z y 7חשוב לשים לב שאחרי קריאת pאותיות אנו מבקרים ב p + 1-מצבים. 22 x 3 שבוע 3 למת הניפוח לשפות רגולריות נבדוק שמתקיימים התנאים: .1אכן |xy| ≤ pשכן .j ≤ p |y| > 0 .2כי .l < j i .3לכל ,iהריצה של xy zהיא q0 , . . . , ql , (ql+1 . . . , qj ) , qj+1 . . . qnוזו ריצה מקבלת כי ,qn ∈ Fשכן xyz ∈ Lוהריצה i של המילה הזו מסתיימת ב.qn - הערה אם Lסופית ,אפשר לקחת את קבוע הניפוח pלהיות גדול ממש מאורך המילה הארוכה ביותר ב ,L-ואז למת הניפוח מתקיימת באופן ריק )כי אף מילה w ∈ Lלא מקיימת .(|w| ≥ pכמו כן ,ההוכחה הייתה עובדת גם על .NFAנבחין כי הבחירה של pאיננה חייבת להיות מספר המצבים .המטרה שלנו היא למצוא מעגל ,זה אומר שמספיק לבחור את הקוטר של הגרף .1+ ∗ דוגמה .3.1נביט ב -במקום הלפני-אחרון מופיע w ∈ {0, 1} | 0 = .L נבחר p = 3ונקבל כי w = xyzכאשר .x = ε, |y| = 1, |z| = |w| − 1אכן מתקיים: .|xy| = 1 ≤ 3 = p .1 .|y| = 1 > 0 .2 .3לכל i ≥ 0המילה xy i z ∈ Lמכיוון ש |w| ≥ 3-חייב להתקיים ש |z| ≥ 2-לכן האות הלפני האחרונה ב xy i z-היא האות הלפני אחרונה ב.z- ! למת הניפוח היא חד כיוונית -יש שפות שמקיימות את הלמה אך אינן רגולריות. למת הניפוח אומרת שאם השפה רגולרית אז מתקיימים התנאים בלמה .זה אומר שאם שפה לא מקיימת את התנאים בלמה, היא בהכרח לא רגולרית .כלומר: מסקנה | שלילת למת הניפוח מסקנה .3.1תהי ∗ .L ∈ Σנניח שלכל p ≥ 1קיימת מילה w ∈ Lהמקיימת ש |w| ≥ p-אבל לכל חלוקה ,w = x · y · z ∈ .L ∈ .xy i zאזי / REG אם |xy| ≤ pו |y| > 0-אז קיים i ≥ 0כך ש/ L- ∈ } ,L1 = {0n 1n | n ≥ 0בצורה יותר פשוטה מבהוכחה של טענה .3.1 דוגמה .3.2נראה באמצעות המסקנה ש/ REG- הוכחה .יהי .p ≥ 1נתבונן במילה .w = 0p 1p ∈ L1 8 נשים לב כי .|w| ≥ pתהי w = xyzחלוקה המקיימת |xy| ≤ p ∈ xy i zונסיים .מהיות 1 |xy| ≤ pלא מופיע ב ,xy-כלומר ו .|y| > 0-נראה שקיים i ≥ 0כך ש/ L- ||xy .xy = 0לכן ∈ .xy 2 z = 0p 0j 1p = 0p+j 1p y = 0jעבור jכלשהו ,ונשים לב ש j ≥ 1-כי .|y| > 0לכן / L ∗ ∈ .L2 = w ∈ {0, 1} | #0 w = #1 w דוגמה .3.3נראה כי / REG הוכחה .יכולנו בטעות לומר שבגלל ש L1 ⊆ L2 -אז L2לא רגולרית .אולם זה לא טיעון נכון :זה ששפה לא רגולרית מוכלת בשפה כלשהי ,לא אומר שהיא עצמה לא רגולרית .לדוגמה ,כל השפות מוכלות ב ,Σ∗ -כולל השפות הלא-רגולריות ,אך ∗Σ היא דווקא כן רגולרית. מה כן נוכל לעשות? נסתכל על ∗ ∗ .L3 = 0 1 9 קל להשתכנע שזו שפה רגולרית ,ומתקיים .L1 = L2 ∩ L3אם בשלילה L2 הייתה רגולרית ,אז מסגירות של שפות רגולריות לחיתוך היינו מקבלים ש L1 -רגולרית ,אך הראינו בדוגמה הקודמת שזה לא נכון -סתירה. נוכיח עם למת הניפוח .נניח בשלילה ש L-רגולרית ולכן מקיימת את למת הניפוח .נביט במילה w = 0p 1pונכתוב w = xyz ∈ .xy 2 z עם .|xy| ≤ p, |y| > 0לכן x = 0j , y = 0k , z = 0l 1pעבור k > 0, j + k < pולכן / L 8זה החלק המאתגר בשימוש בלמה -בחירת המילה .w 9היזכרו בהגדרה של ביטויים רגולריים מהתרגול 23 הרצאה 3ב 3 שבוע 3 למת הניפוח לשפות רגולריות ∈ }.L = {0n 1m | n > m דוגמה .3.4נראה כי / REG הוכחה .נשתמש בלמת הניפוח )רק שהפעם ננפח למטה ,כלומר .(i = 0יהי .p ≥ 1נתבונן במילה .w = 0p+1 1p ∈ Lאכן .|w| ≥ pתהי w = xyzחלוקה המקיימת |xy| ≤ pו .|y| > 0-לכן בהכרח y = 0jעבור .j ≥ 1נבחר i = 0ונקבל כי ∈ .L ∈ ,xy i z = xz = 0p+1−j 1pשכן מהיות j > 1נובע כי .p + 1 − j ≤ pלכן מלמת הניפומ / REG / L2 ∈ } q ∨ q = 1ראשוני | .L = {aq דוגמה .3.5נראה כי / REG הוכחה .יהי .p ≥ 1יהי q > pראשוני .נתבונן במילה .w = aq ∈ Lאכן .|w| ≥ pתהי w = xyzחלוקה המקיימת |xy| ≤ p |y| = m ו .|y| > 0-נסמן )|z| = q − (n + m i = q + 1ונקבל )z = q + mq = q (m + 1 q+1 .|x| = nאזי ) . xy i z = n + m · i + q − (n + m) = q + m (i − 1נבחר . xyנשים לב ש q ≥ 2-כי הוא ראשוני .בנוסף ,מהיות m = |y| > 0נובע ∈ .L ∈ xy q+1 zולכן לפי למת הניפוח / REG m + 1 ≥ 2ולכן ) q (m + 1פריק ,כלומר / L ∗ ∈ wפלינדרום | }.L = w ∈ {0, 1 דוגמה / REG .3.6 הוכחה .בהינתן p ≥ 1נתבונן במילה .w = 0p 10pנבחין כי |w| ≥ pוכי .w ∈ Lעתה לכל חלוקה w = xyzכך ש|xy| ≤ p- וגם |y| > 0קיים j > 0עבורו .y = 0j ∈ 0+לכן xy 2 z = 0p+j 10p ומכיוון ש j ≥ 1-נקבל שהיא לא בשפה ,כי בחצי הראשון שלה אין אחדות ,אך בחצי השני יש אחד. n 2 o ∈ .L = 1n | n ≥ 0 דוגמה ) .3.7מהתרגול( / REG 2 הוכחה .יהי .p ≥ 1נתבונן במילה .w = 1p ∈ Lאכן .|w| ≥ pתהי w = xyzחלוקה המקיימת |xy| ≤ pו .|y| > 0-לכן x = 1j , y = 1k , z = 1lכאשר .k > 0, j + k ≤ p, j + k + l = p2 ננסה לנפח ב .i = 2-אזי +k 2 ,xy 2 z = 1j 1k 1k 1l = 1pאבל מתקיים 2 )p2 < p2 + k ≤ p2 + p < p2 + 2p + 1 = (p + 1 ∈ .L ∈ .xy 2 zלכן לפי למת הניפוח / REG ולכן p2 + kאינו ריבוע של מספר שלם ,ולכן / L 24 4משפט מייהיל-נרוד )(Myhill Nerode 4 שבוע 4 משפט מייהיל-נרוד )(Myhill Nerode הגדרה .4.1לכל שפה ∗ L ⊆ Σנגדיר יחס ∗ ∼L ⊆ Σ∗ × Σכך שלכל ∗ x, y ∈ Σמתקיים x ∼L yאם“ם לכל מילה ∗ z ∈ Σמתקיים x · z ∈ Lאם“ם .y · z ∈ Lנסמן ב [w]-את מחלקת השקילות של wב .L-יחד זה נקרא יחס מייהיל-נרוד ).(MN הערה .בהגדרה zנקרא זנב מפריד. הרצאה 4א טענה .4.1לכל שפה Lהיחס ∼Lהוא יחס שקילות. הוכחה .נוכיח את שלושת התנאים. .1רפקליסיביות :לכל ∗ x ∈ Σמתקיים - x ∼L xברור. .2סימטרי :לכל ∗ x1 , x2 ∈ Σמתקיים x1 ∼L x2אם“ם ) x2 ∼L x1כי התנאי בהגדרה סימטרי(. .3טרנזיטיביות :נוכיח כי לכל ∗ ,x1 , x2 , x3 ∈ Σאם x1 ∼L x2ו x2 ∼L x3 -אז .x1 ∼L x3נניח בשלילה שx1 6∼L x3 - אזי קיימת ∗ z ∈ Σכך שבה“כ x1 z ∈ Lנשאל ,האם ?x2 z ∈ Lאם כן אז x2 6∼L x3בסתירה להנחה .אחרת, x1 6∼L x2בסתירה להנחה. ∗ דוגמה .4.1נביט ב.L = (0 + 1) 0 (0 + 1)- ∈ 10אבל 00 ∈ Lולכן .0 6∼L 1 האם ?0 ∼L 1נבחין כי 0זנב מפריד ,שכן / L האם ?1 ∼L 11לכל ∗ z ∈ Σמתקיים כי 11 · z ∈ Lאם“ם z ∈ Lאם“ם .1 · z ∈ L נבחין כי 01 6∼L 10שכן εמפריד ביניהם. נרשום את מחלקות השקילות של Lב - Σ∗ -סה“כ יש 4מחלקות שקילות עבור שפה זו )השתכנעו שזה נכון( .החצים האדומים הם זנבות מפרידים בין מחלקות השקילות. מחלקות השקילות של L אותן מחלקות שקילות בבחירה ספציפית של נציגים 1 1 0 + Σ∗ 10 ϵ + 1 + Σ∗ 11 ϵ ϵ ][ϵ ϵ ϵ ϵ ϵ Σ∗ 00 ][0 ϵ ϵ Σ∗ 01 ][00 1 ][01 1 אבחנה אם x3 ∼L x4 ,x1 ∼L x2ו z-מפריד בין x1ל x3 -אזי zמפריד בין x2ל .x4 -בפרט בין כל האיברים במחלקות השקילות ] .[x1 ] , [x3 משפט מייהיל-נרוד משפט .4.1תהי ∗ .L ⊆ Σאזי L ∈ REGאם“ם יש ל ∼L -מספר סופי של מחלקות שקילות. הוכחה :⇒ .נניח כי ל ∼L -יש מספר סופי של מחלקות שקילות .נגדיר A = hΣ, Q, q0 , δ, F i DFAכך ש L (A) = L-באופן הבא: 25 4משפט מייהיל-נרוד )(Myhill Nerode שבוע 4 Qהיא קבוצת כל מחלקות השקילות ב) ∼L -מההנחה Qאכן סופית(. ].q0 = [ε ].δ ([w] , σ) = [w · σ }F = {[w] : w ∈ L נבחין כי ההגדרה של δלא תלויה בבחירת הנציג .כלומר ,אם y ∼L wאז לכל σ ∈ Σמתקיים ,yσ ∼L wσשכן אם z מפריד בין yσל wσ-אז σzמפריד בין yל w-בסתירה לכך ש .y ∼L w-לכן ).δ ([y] , σ) = δ ([w] , σ באופן דומה ,גם הגדרת Fלא תלויה בבחירת הנציג ,שכן אם w ∼L yאז .wε = w ∈ L ⇐⇒ yε = y ∈ L נוכיח שלכל ∗ w ∈ Σמתקיים כי ] δ ∗ (q0 , w) = [wואז מהגדרת Fנקבל כי w ∈ Lאם“ם .δ ∗ (q0 , w) ∈ Fנעשה זאת באינדוקציה על האורך |.|w ∗ בסיס (|w| = 0) :בהכרח .w = εאכן ].δ (q0 , ε) = [ε צעד :מתקיים כי )δ ∗ (q0 , u · σ) = δ (δ ∗ (q0 , u) , σ ] = δ ([u] , σ) = [u · σהנחת האינדוקציה ⇐ :נניח ש L-רגולרית .לכן קיים A = hΣ, Q, q0 , δ, F i DFAכך ש .L = L (A)-נראה שיש ל ∼L -מספר סופי של מחלקות שקילות .כדי לעשות זאת ,נראה שמספר מחלקות השקילות חסום על ידי מספר המצבים. ∗ נגדיר יחס ∗ ∼A ⊆ Σ∗ × Σכך :לכל ∗ x, y ∈ Σנאמר כי .δ (q0 , x) = δ ∗ (q0 , y) ⇐⇒ x ∼A yנבדוק מה מתקיים: .1האם ?x ∼A y ⇒ x ∼L y .2האם ?x ∼L y ⇒ x ∼A y נטען כי 1נכון .שכן אם x ∼A yאז לכל ∗ z ∈ Σמתקיים כי )δ ∗ (q0 , yz) = δ ∗ (δ ∗ (q0 , y) , z) = δ ∗ (δ ∗ (q0 , x) , z) = δ ∗ (q0 , xz ולכן yz ∈ L ⇐⇒ xz ∈ Lשזה אם“ם .y ∼L x נשים לב כי 2לא נכון .אפשר להסתכל כדוגמה נגדית על אוטומט עם כמה מצבים ,שכולם מקבלים .במקרה כזה ,יש מחלקת שקילות אחת והיא ∗ ,Σלכן .∀x, y ∈ Σ∗ , x ∼L yאולם לא כל המילים בהכרח מסיימות את ריצת באותו מצב )הן כן כולן יסיימו במצב מקבל ,כי כל המצבים מקבלים( ,ולכן לא בהכרח .x ∼A y מ 1-אנו מסיקים כי | ≤ |Qמספר המצבים הישיגים = #מספר מחלקות השקילות של # ≤ ∼Aמספר מחלקות השקילות של ∼L שכן אם ] [wמחלקת שקילות ב ∼A -אזי היא חלק ממחלקת שקילות ב) ∼L -כלומר ” ∼Aמעדן“ את .(∼Lקיבלנו אם כך כי מספר מחלקות השקילות של ∼Lסופי. מסקנה .תהי .L ∈ REGאזי כמות המצבים המינימלית של DFAהמקבל את Lהיא מספר מחלקות השקילות .∼L הוכחה .בתחילת ההוכחה של משפט מייהיל-נרוד בנינו אוטומט בו | |Qהיא מספר מחלקות השקילות של .∼Lבסוף ההוכחה הראינו כי | ≤ |Qממספר מחלקות השקילות של ,∼Lכנדרש. 26 4משפט מייהיל-נרוד )(Myhill Nerode 4.1 שבוע 4 מזעור אוטומטים ∗ דוגמה .4.2נמחיש את האוטומט Aמההוכחה באמצעות השפה מהדוגמה הקודמת ) .L = (0 + 1) 0 (0 + 1נשים לב שלמשל אכן ].δ ([00] , 1) = [001] = [01 0 ][00 1 0 1 0 ][0 0 1 ][ϵ 1 ][01 סיווג שפות באמצעות MN באמצעות משפט מייהיל-נרוד ) (MNנוכל לסווג האם L ∈ REGאו לא. דוגמה .4.3נביט בשפה } .L = {0n 1n : n ≥ 0נטען כי Lלא רגולרית .נראה שיש לה אינסוף מחלקות שקילות .לכל j, i ≥ 0 ∈ .0j 1j ∈ L, 0j 1iנציין שגם 1j , 01j+1 , . . .זנבות מפרידים. כך ש i 6= j-נטען כי .0i 6∼ 0jאכן 1jזנב מפריד כי / L ∈ .L מכאן ש [0] , [00] , [000] , . . .-הן כולן מחלקות שקילות שונות ,ויש אינסוף כאלה .כלומר / REG דוגמה .4.4נביט ב .L = 0i 1j : gcd (i, j) 6= 1 -נטען כי Lאיננה רגולרית .נראה שעבור שני ראשוניים p1 6= p2מתקיים כי .0p1 6∼L 0p2למשל 1p1זנב מפריד .מכיוון שיש אינסוף מספרים ראשוניים ,נובע שיש ל ∼L -אינסוף מ“ש. 4.1 מזעור אוטומטים נבחין כי באמצעות מייהיל-נרוד נוכל לנסות ”למזער“ אוטומט .למשל ,אם מספר מחלקות השקילות קטן ממספר המצבים, הרצאה 4ב נדע בוודאות שיש אוטומט קטן יותר. נראה אלגוריתם שבהינתן A = hΣ, Q, q0 , δ, F i DFAמחזיר A′ DFAהשקול ל ,A-כך שלכל A′′ DFAאם ) L (A) = L (A′′ אז | .|A′ | ≤ |A′′כלומר A′הוא אוטומט מינימלי שמתאר את השפה ,וכל אוטומט מינימלי אחר הוא איזומורפי אליו )אותו דבר עד כדי שינוי שמות(. נרצה להגדיר סדרה של מתקיים כי (s2 , z) ∈ F ... יחסים ,(∼i )i=0 ⊆ Q × Qכך ∗ .(⋆) δ ∗ (s1 , z) ∈ F ⇐⇒ δ s ש s1 ∼i s2 -עבור s1 , s2 ∈ Qאם“ם לכל ∗ z ∈ Σכך ש|z| ≤ i- בניסוח שקול ,לכל מצב sנגדיר ) L (Aהשפה של Aכש s-מצב התחלתי .אזי s1 ∼i s2אם“ם .L (As1 )∩Σ≤i = L (As2 )∩Σ≤i ככל ש i-גדל ככה יותר קשה להסכים על מילים -מספר מחלקות השקילות של ∼i+1גדולה או שווה ממספר מחלקות השקילות של .∼i אם נגדיר את ∼iבאמצעות )⋆( ,נקבל הגדרה נחמדה אך שלא שימושית למחשב שרוצה לחשב את ∼i+1באמצעות .∼iלכן ,אנו נגדיר את ∼iבצורה אחרת ,שיותר ”שימושית“ למחשב ,ונראה שהגדרה זו שקולה להגדרה ב.(⋆)- ! תיאור אלגוריתם המזעור נרצה להגדיר את ∼iבאופן כזה שגם יקיים את )⋆( וגם ניתן יהיה לחשב את המעבר מ ∼i -ל ∼i+1 -בזמן פולינומיאלי .נגדיר רקורסיבית: בסיס s1 ∼0 s2 :אם“ם .s2 ∈ F ⇐⇒ s1 ∈ F צעד s1 ∼i+1 s2 :אם“ם s1 ∼i s2וגם לכל σ ∈ Σמתקיים ).δ (s1 , σ) ∼i δ (s2 , σ האלגוריתם שלנו יחשב את ∼i+1באמצעות ∼iוהוא יעצור כאשר ,∼i =∼i+1כי אז נדע שמדובר בנקודת שבת .מחלקות השקילות של היחס ∼:=∼i+1מגדירות אוטומט )כפי שראינו בהוכחה של משפט מייהיל-נרוד( ואנו נטען שזהו אוטומט שקול ומינימלי. 27 4משפט מייהיל-נרוד )(Myhill Nerode 4.1 שבוע 4 מזעור אוטומטים ראשית ,נשים לב שהתהליך עוצר שכן ,∼i+1 ⊆∼iכי אם שני מצבים מסכימים על מילים באורך קטן מ i + 1-הם בפרט מסכימים על מילים באורך קטן מ .i-לכן .. . . ⊆∼2 ⊆∼1 ⊆∼0 ⊆ Q × Q ,מכאן שאם ,∼i+1 6=∼iאז כדי לקבל את ∼i+1 2 הורדנו מ ∼i -לפחות איבר אחד ב ,Q × Q-ולכן אחרי לכל היותר | |Q × Q| = |Qאיטרציות אנחנו נעצור ונקבל .∼i =∼i+1 בניסוח שקול ,בגלל שמדובר ביחס שקילות ,נשים לב ש ∼i+1 -לוקח את מחלקות השקילות של ∼iומפריד אותן למחלקות שקילות קטנות יותר .בגלל שיש רק | |Qמצבים ,יכולות להיות לכל היותר | |Qמחלקות שקילות שונות ,לכן בהכרח בשלב מסויים ,אחרי לכל היותר | |Qאיטרציות ∼i+1 ,כבר לא יפצל את ∼iונקבל .∼i =∼i+1לכן נקבל חסם אף יותר הדוק על כמות האיטרציות עד עצירה .|Q| - שנית ,נשים לב שהמעבר מ ∼i -ל ∼i+1 -ניתן לחישוב בזמן פולינומיאלי .בהינתן ∼iאפשר פשוט לעבור על כל זוג מצבים s1 , s2 ∈ Qולבדוק האם מתקיים ש s1 ∼i s2 -וגם לכל אות σ ∈ Σמתקיים ).δ (s1 , σ) ∼i δ (s2 , σ לסיום ,נוכיח טענה שיחד עם מה שאמרנו קודם תעזור לנו להראות שהאלגוריתם שתיארנו עוזר לבנות אוטומט שקול מינימלי לאוטומט המקורי. טענה .4.2לכל 0 ≤ iולכל s1 , s2 ∈ Qמתקיים ∀ |w| ≤ i, δ ∗ (s1 , w) ∈ F ⇔ δ ∗ (s2 , w) ∈ F ⇐⇒ s1 ∼i s2 כלומר s1 ∼i s2אם“ם .L (As1 ) ∩ Σ≤i = L (As2 ) ∩ Σ≤i הוכחה .נוכיח באינדוקציה על .i ∗ ∗ בסיס ) :(i = 0המילה היחידה מאורך 0היא .w = εמההגדרה s1 ∼0 s2 ,אם“ם .δ (s1 , ε) = s1 ∈ F ⇔ δ (s2 , ε) = s2 ∈ F צעד ) :(i ⇒ i + 1נניח שהטענה נכונה עבור .iנוכיח אותה עבור .i + 1 ∗ ∗ אנו צריכים להראות ש s1 ∼i+1 s2 -אם“ם לכל ∗ w ∈ Σעבורה |w| ≤ i + 1מתקיים .δ (s1 , w) ∈ F ⇔ δ (s2 , w) ∈ F בכיוון הראשון ,נניח כי .s1 ∼i+1 s2תהי ∗ w ∈ Σעבורה .|w| ≤ i + 1אם |w| < i + 1אז מכך ש) s1 ∼i s2 -שכן מההנחה .(s1 ∼i+1 s2לכן ,מה“א .δ ∗ (s1 , w) ∈ F ⇔ δ ∗ (s2 , w) ∈ Fאם |w| = i + 1אז w = σyעבור σ ∈ Σו.y ∈ Σi - מהגדרת ,∼i+1מתקיים .s′1 = δ (s1 , σ) ∼i δ (s2 , σ) = s′2לכן מה“א .δ ∗ (s′1 , y) ∈ F ⇔ δ ∗ (s′2 , y) ∈ Fאבל )δ ∗ (s′1 , y) = δ ∗ (δ (s1 , σ) , y) = δ ∗ (s1 , w )δ ∗ (s′2 , y) = δ ∗ (δ (s2 , σ) , y) = δ ∗ (s2 , w לכן .δ ∗ (s1 , w) ∈ F ⇔ δ ∗ (s2 , w) ∈ F בכיוון השני ,נניח שלכל ∗ w ∈ Σעבורה |w| ≤ i + 1מתקיים ) δ ∗ (s1 , w) ∈ F ⇔ δ ∗ (s2 , w) ∈ Fכלומר s1 , s2מסכימות על מילים שאורכן עד .(i + 1נראה כי .s1 ∼i+1 s2נניח בשלילה כי .s1 6∼i+1 s2לכן s1 6∼i s2או שקיימת σ ∈ Σעבורה ).δ (s1 , σ) 6∼i δ (s2 , σ ∗ ∗ ∗ ∈ ) - δ (s2 , yבסתירה אם s1 6∼i s2אז מה“א קיימת y ∈ Σעבורה |y| ≤ iכך שמתקיים )בה“כ( δ (s1 , y) ∈ Fאבל / F לכך ש s1 , s2 -מסכימות על מילים שאורכן עד .i + 1 אם קיימת σ ∈ Σעבורה ) ,δ (s1 , σ) 6∼i δ (s2 , σאז מה“א קיימת ∗ y ∈ Σעבורה |y| ≤ iוגם )בה“כ( δ ∗ (δ (s1 , σ) , y) ∈ F ∈ ) ,δ ∗ (δ (s2 , σ) , yלכן s1 , s2לא מסכימות על ,σyבסתירה לכך ש s1 , s2 -מסכימות על מילים שאורכן עד .i + 1 אבל / F הערה נשים לב שהטענה שהוכחנו זה עתה גם גוררת שהאלגוריתם יתכנס אחרי לכל היותר | |Qאיטרציות )כפי שכבר אמרנו(. אלגוריתם המינימיזציה משפט .4.2יהי .A = hΣ, Q, q0 , δ, F i DFA הוא היחס שהתקבל מהאלגוריתם הקודם. יהיו } S = {S1 , . . . , Skמחלקות השקילות של ∼ ,כאשר ∼ ′ ′ נגדיר A = hS, Σ, [q0 ] , δ , SF iכאשר } SF = {Si ∈ S | Si ⊆ F ו .δ ′ ([q] , σ) = [δ (q, σ)]-אזי A′הוא אוטומט מינימלי לשפה ).L (A הוכחה .הושארה כתרגיל לסטודנט המשקיע החכם היפה והחסון )ראו תרגיל בית(. 28 4משפט מייהיל-נרוד )(Myhill Nerode 4.1 שבוע 5 מזעור אוטומטים ∗ דוגמה .4.5נביט ב L = (0 + 1) 0 (0 + 1)-ובאוטומט Aהבא שעבורו :L (A) = L s4 1 1 1 0 s5 0 s3 0 0 1 s1 0 0 s0 1 1 s2 ננסה למזער אותו באמצעות האלגוריתם .נבחין כי מחלקות השקילות של ∼0הן } - {s0 , s1 , s2 } , {s3 , s4 , s5עבור מצבים אלה יש הסכמה על .ε עתה נרצה הסכמה על εוגם על מילים באורך .1נבחין כי ))s0 ∼1 s1 ⇐⇒ s0 ∼0 s1 ∧ (δ (s0 , 0) ∼0 δ (s1 , 0) ∧ δ (s0 , 1) ∼0 δ (s1 , 1 ∈ s1ולכן ) δ (s0 , 0) 6∼0 δ (s1 , 0כלומר .s0 6∼1 s1 נבחין כי / F 6∼0 s3 ∈ F נבחין כי ,s0 ∼1 s2ואפשר להמשיך ולבדוק את כל השקילויות ואז נקבל שמחלקות השקילות של ∼1הן } {s0 , s2 } , {s1 } , {s3 , s5 } , {s4 חישוב ∼2מראה ש ,∼2 =∼1 -כלומר המ“ש של ∼2הן גם } .{s0 , s2 } , {s1 } , {s3 , s5 } , {s4בגלל ש ,∼2 =∼1 -הגענו לנקודת שבת ונסיים את האלגוריתם ונדע שקיבלנו עכשיו אוטומט מינימלי שמוגדר באמצעות מחלקות שקילות אלה. )אי(-מזעור NFA ראינו שניתן למזער DFAבזמן פולינומיאלי .מה לגבי ?NFAאם נתון לנו A DFAעם kמצבים ,ואנחנו רוצים לדעת האם יש NFAעם פחות מצבים ,נוכל לעבור על כל ה-NFA-ים עם iמצבים ,כאשר ,1 ≤ i ≤ kולראות האם הם שקולים ל.A- יש כמות סופית של NFAעם כאלה לכן האלגוריתם עובד והוא יעצור ,אך זמן הריצה שלו הוא אקספוננציאלי. כדי לחקור את הבעיה הזו ,נסתכל על שתי שאלות בסיסיות על אוטומטים: .1בעיית הריקנות :בהינתן אוטומט ,Aהאם ∅ = )?L (A .2בעיית האוניברסליות :בהינתן אוטומט ,Aהאם ∗?L (A) = Σ פתרון) .בעיית הריקנות( נשים לב ש L (A) 6= ∅-אם“ם יש מילה שמתקבלת אם“ם בגרף של האוטומט יש מסלול מQ0 - ל .F -על כן ,ניתן להכריע את בעיית הריקנות בזמן פולינומיאלי באמצעות אלגוריתמים שמחפשים מסלולים בגרפים) .זה נכון גם עבור DFAוגם עבור .(NFA פתרון) .בעיית האוניברסיליות( נשים לב ש L (A) = Σ∗ -אם“ם ∅ = ) L (Aאם“ם ∅ = ,L Aכאשר Aהוא האוטומט שמקבל את כל המילים ש A-לא .ראינו בבעיית הריקנות כיצד להכריע האם ∅ = ,L Aלכן אנו מסיקים שניתן להכריע גם את בעיית האוניברסליות .צריך רק להסביר כיצד ניתן לבנות את .A 29 הרצאה 5א 4משפט מייהיל-נרוד )(Myhill Nerode 4.1 שבוע 5 מזעור אוטומטים עבור DFAפשוט ניקח אוטומט שזהה ל A-פרט לכך שהמצבים המקבלים בו הם - Q\Fכלומר תפקידי המצבים המקבלים והדוחים התחלפו ,וזה יהיה .A עבור NFAאי אפשר סתם להחליף את המצבים הדוחים והמקבלים -זה לא יהיה נכון כפי שמומחש בדוגמה הבאה: )L(A) = Σ∗ 6= Σ∗ \ L(A a, b }”L(A) = {w ∈ Σ∗ | w starts with ”a a, b a a, b a a, b a b a b a, b a, b בהינתן A NFAעם nמצבים ,כדי לפתור עבורו בעיית האוניברסליות נפעל לפי האלגוריתם הבא: .1נבצע דטרמיניזציה ל A-ונקבל DFAשקול ) .A′יש בו לכל היותר 2nמצבים( .2נבצע דואליזציה ל A′ -ונקבל את ) .A′בו יש גם לכל היותר 2nמצבים ,וזמן הריצה של הדואליזציה פולינומיאלי ב(2n - .3נבדוק את הריקנות של ) A′זה פולינומיאלי ב.(2n - כלומר קיבלנו אלגוריתם פולינומיאלי ב ,2n -כלומר אקספוננציאלי ב .n-בעתיד נראה שלא ניתן להשיג זמן ריצה יותר טוב, אך כרגע ניקח זאת כנתון) .הדבר הזה נקרא ,ALLNFAכאמור נדבר על הדברים האלה רק בהמשך( אנו נראה שאין פולינום ,pכך שבהינתן כל ,A NFAניתן לייצר Aכך ש . A ≤ p (|A|)-כלומר שימוש בדטרמיניזציה כדי לקבל את Aהיא דרך לגיטימית. נמצא משפחה של שפות L1 , L2 , . . .כך שלכל 1 ≤ nמתקיים: .1יש An NFAעבור Lnעם ) O (nמצבים. .2כל An NFAעבור Lnהוא בעל לפחות 2nמצבים. n נסתכל על משפחת השפות } ).Ln = {ww | w ∈ (0 + 1 נראה תחילה שיש An NFAעבור Ln = Lnעם ) O (nמצבים. נשים לב ש Ln -היא קבוצת המילים שאורכן שונה מ 2n-או שאורכן הוא 2nאך הן לא מהצורה .wwאם כך ,נסתכל על ה NFA-הבא: 0, 1 0, 1 0, 1 0, 1 ... 0, 1 0, 1 ... 0, 1 0, 1 0, 1 0, 1 1 0 1 0 0, 1 ... 0, 1 30 0, 1 4משפט מייהיל-נרוד )(Myhill Nerode 4.1 שבוע 5 מזעור אוטומטים החלק העליון בגרף ה NFA-הוא בעל 2n + 2מצבים ,כולם מקבלים חוץ מהמצב שלפני האחרון ,ה .2n + 1-חלק זה בודק האם אורך המילה שונה מ ,2n-ואם כן אז הוא מקבל את המילה. החלק התחתון בגרף ה NFA-נועד לטפל במילים מאורך 2nולוודא שהם לא מהצורה .wwהוא מורכב משני ”מסלולים“ אורך כל מסלול מתאים למעבר על בדיוק nאותיות .כאמור ,חלק זה בודק האם המילה היא לא מהצורה - x = wwכלומר האם יש אינדקס iכך ש:x [i] 6= x [n + i]- 1 1 n+i ··· 1 0 0 1 i ··· 1 0 בגלל שב NFA-מילה מתקבלת אם יש עליה ריצה מקבלת כלשהי ,אז יתקבלו כל המילים שהן באורך שונה מ 2n-או שהן באורך 2nולא מהצורה .wwכלומר זה בדיוק אוטומט של השפה .Ln עתה נראה שכל An NFAעבור Lnהוא בעל לפחות 2nמצבים. יהי NFA Anשמזהה את Lnונניח בשלילה כי ל An -יש פחות מ 2n -מצבים. לכל מילה n ) u ∈ (0 + 1נתבונן בקבוצת המצבים יש ריצה מקבלת של Anעל uuשמבקרת ב s-אחרי קריאת good (u) = s ∈ Q | u אם ל An -יש פחות מ 2n -מצבים אז מעקרון שובך היונים קיימים n = u1כך ש.good (u1 ) ∩ good (u2 ) 6= ∅- )6 u2 ∈ (0 + 1 יהי ) .s ∈ good (u1 ) ∩ good (u2 ◦ ◦ Q0 F u2 u2 s u1 u1 ◦ ◦ F ) s ∈ δ ∗ (Q0 , u1 וגם מההגדרה ) s ∈ δ ∗ (Q0 , u2 ) u1 u2ו ,(u2 u1 -בסתירה לנכונותו. ∅ =δ ∗ (s, u1 ) ∩ F 6 ∅ =δ ∗ (s, u2 ) ∩ F 6 Q0 .לכן ∅ = δ ∗ (Q0 , u1 u2 ) ∩ F 6ולכן Anמקבל בטעות גם את 31 5 5 שבוע 5 שפות חסרות הקשר שפות חסרות הקשר נעבור לדבר על סוג חדש של שפות :שפות חסרות הקשר ) ,(Context − Free Languagesאו בקיצור שפות ח“ה .כמו ששפות רגולריות ניתן להגדיר באמצעות אוטומטים ,שפות חסרות הקשר ניתן להגדיר באמצעות דקדוקים חסרי הקשר. נתחיל מלהציג את ההגדרה הפורמלית של שפות ח“ה ,וישר נעבור לראות דוגמה כי ככה קל מאוד להבין את ההגדרה. הגדרה .5.1דקדוק חסר הקשר ) (CFGהוא רביעיה G = hV, Σ, R, Siכאשר: - V .1קבוצה סופית של משתנים. - Σ .2קבוצה סופית של טרמינלים) .א“ב( - R .3קבוצה של חוקי גזירה מהצורה ∗ ).V → (V ∪ Σ - S .4משתנה התחלתי. הגדרה .5.2אם ∗ ) w, u, v ∈ (V ∪ Σו A → w-חוק בדקדוק ,אז נגיד ש uAv-מייצר/גוזר את uwvונסמן .uAv ⇒ uwv ∗ ∗ ∗ אם ) u, w ∈ (V ∪ Σנגיד ש u ⇒ w-אם קיימים k ≥ 1ו u1 , . . . , uk ∈ (V ∪ Σ) -עבורם ⇒ u = u1 ⇒ u2 ⇒ . . . .uk = w הגדרה .5.3השפה של Gהיא o ∗ n .L (G) = w ∈ Σ∗ | S ⇒ w הגדרה .5.4שפה Lתקרא שפה חסרת הקשר אם קיים G CFGכך ש .L (G) = L-נסמן את קבוצת כל השפות חסרות ההקשר בתור .CFL הערה .דקדוק ח“ה נקרא חסר הקשר כי יש בצד שמאל של החוק רק משתנה יחיד .יש גם מושג אחר ,שלא נלמד ,בשם דקדוק תלוי הקשר בו חלק מהחוקים הם עם יותר ממשתנה יחיד )או אפילו עם טרמינלים( בצד שמאל של החוק ,לדוגמה .AB → 0AB דוגמה .נסתכל על הדקדוק Gעם המשתנים } ,{A, Bהטרמינלים } ,{0, 1, #המשתנה ההתחלתי Aוהחוקים A → 0A1 | B B→# כאשר הקו האנכי | מציין ”או“ A -יכול ללכת ל 0A1-או ל.B- אנחנו מתחילים תמיד מהמשתנה ההתחלתי ,ואז אנחנו יכולים ללכת לפי החוקים עד שנישאר עם מילה שבנוייה מטרמינלים בלבד ,ללא משתנים .לדוגמה ,שתי שרשראות גזירה אפשריות הן: A → 0A1 → 0B1 → 0#1 A → 0A1 → 00A11 → 00B11 → 00#11 ואנחנו רואים שהשפה של Gהיא }.L (G) = {0n #1n | n ≥ 0 הערה .בדר“כ משתנים יסומנו באותיות גדולות ,טרמינלים באותיות קטנות ,והמצב ההתחלתי יהיה זה שיופיע ראשון בשרשרת גזירה .כך נוכל לקצר את רוב הכתיבה הפורמלית ופשוט להגדיר את חוקי הדקדוק. דוגמה .בעיבוד שפה טבעית יש חשיבות מיוחדת לשפות ח“ה .דקדוקים ח“ה מאוד מזכירים דקדוק של שפה טבעית ,למשל 32 5 שבוע 5 שפות חסרות הקשר נוכל להסתכל על דקדוק פשוט שמדמה משפטים באנגלית: Noun → Adj · Noun | hat | dog | ... Adj → red | big | very · Adj | . . . עם המשתנה ההתחלתי .Nounואז נוכל לקבל לדוגמה שאיבר בשפה הוא Noun → Adj · Noun → Adj · Adj · Noun → big · Adj · Noun → big · red · Noun → big · red · dog כמובן דקדוק זה לא מתאר באופן מושלם את השפה האנגלית ,וזו דוגמה פשטנית ,אך רואים שיש דמיון מובהק. לפעמים ,כפי שראינו כבר בדוגמה הראשונה ,חלק מהחוקים שלנו יהיו בצורה כמו .A → 0A1לכן ,המון פעמים יהיה לנו נוח להסתכל על עץ הגזירה במקום שרשרת הגזירה. למשל ,בדוגמה הראשונה שראינו נוכל להסתכל על שרשרת הגזירה ,בו המילה הנגזרת היא האיבר האחרון בשרשרת: A → 0A1 → 00A11 → 00B11 → 00#11 או על עץ הגזירה ,בו המילה הנגזרת מורכבת מהעלים: A 1 0 A 0 A 0 B # דוגמה .נגדיר G = h{S, A} , {0, 1} , R, Siכאשר קבוצת החוקים Rהיא S → A1A A → ε | 0A | 1A ∗ ∗ וקל להשתכנע ש - L (G) = (0 + 1) 1 (0 + 1) -כלומר המילים שמכילות את ,1למשל: A→ε A→1A A→ε A→0A S→A1A S −−−−−→ A1A −−−−→ 0A1A −−−−→ 0A11A −−−→ 011A −−−→ 011 ∗ נסמן ב L GA -את קבוצת המילים שנגזרות מ) A-כלומר בהן המשתנה ההתחלתי הוא ,(Aקל לראות ש.L GA = (0 + 1) - ∗ כלומר ,מ A-אנחנו יכולים לגזור את כל המילים ב .{0, 1} -למשל את המילה 1001נוכל לקבל כך: A→ε A→1A A→0A A→0A A→1A A −−−−→ 1A −−−−→ 10A −−−−→ 100A −−−−→ 1001A −−−→ 1001 נגדיר דקדוק ח“ה Gמעל הא“ב באמצעות החוק הבא: S → 0S1 | SS | ε 33 5 שבוע 5 שפות חסרות הקשר אזי השפה ) L (Gהיא שפת הסוגריים המקוננים חוקית ,כאשר 0מייצג את ( ו 1-מייצג את ) .כלומר צירופים חוקיים של 0 1 0 0 1 1 סוגריים כגון .הצירוף ))(()() לא חוקי לדוגמה ,כי יש בהתחלה ”)” ואין לפניו ”(”. ) ) ( ( ) ( ∈ ) L (Gשכן אחרת מסגירות של שפות רגולריות לחיתוך היינו נשים לב כי } ,L (G) ∩ 0∗ 1∗ = {0n 1n | n ≥ 0לכן / REG מקבלים ש.{0n 1n | n ≥ 0} ∈ REG- מסקנה CFL .5.1לא סגורה תחת חיתוך. הוכחה .הושאר כתרגיל לסטודנט המשקיע החכם היפה והחסון. משפט .REG ⊆ CFL .5.1 הוכחה .יהי .A = hQ, Σ, q0 , δ, F i DFAנבנה G = hV, Σ, R, Siכך ש .L (G) = L (A)-נגדיר: }V = {Vq | q ∈ Q S =Vq0 כאשר הרעיון הוא שניתן לגזור מ Vq -את כל המילים שמתקבלות מ .q-לכן נגדיר את אוסף החוקים Rבאופן הבא: לכל מצב q ∈ Qואות ,σ ∈ Σנסמן ) ,s = δ (q, σונוסיף חוק Vq → σVs ואם ,q ∈ Fנוסיף )בנוסף לשאר החוקים( את החוק Vq → ε ∗ נראה שלכל מצב q ∈ Qוכל מילה ,wמתקיים Vq ⇒ w ⇐⇒ δ ∗ (q, w) ∈ Fונסיים.. יהי .w = σ1 σ2 . . . σkאזי δ ∗ (q, w) ∈ Fאם“ם יש ריצה r0 , r1 , . . . , rkשל Aעל wכך ש r0 = q-ו0 ≤ ∀i < k, δ (ri , σi+1 ) = - ri+1וכן ) rk ∈ Fכלומר הריצה מקבלת( אם“ם .Vr0 ⇒ σ1 Vr1 ⇒ σ1 σ2 Vr2 ⇒ . . . ⇒ σ1 . . . σk Vrk ⇒ σ1 . . . σk נשים לב שקיים הכלל Vrk ⇒ εאם“ם rk ∈ Fולכן המעבר האחרון חוקי. דוגמה .5.1נסתכל על האוטומט הבא )המתאים לשפת כל המילים שמופיע בהם :(a a, b q1 b a q0 הדקדוק הח“ה המתאים לאוטומט זה הוא Vq0 → aVq1 | bVq0 Vq1 → aVq1 | bVq1 | ε 34 5 5.1 שבוע 5 שפות חסרות הקשר 5.1 למת הניפוח לשפות ח“ה למת הניפוח לשפות ח“ה לא תמיד קל להבין האם שפה היא ח“ה או לא .לדוגמה ,נרצה לדעת להגיד האם ?L = {0n 1n 2n | n ≥ 0} ∈ CFLלשם כך יש לנו כל מיני כלים ,בדומה למה שהיה באוטומטים .אחד הכלים הללו הוא למת הניפוח לשפות חסרות הקשר: למת הניפוח לשפות חסרות הקשר משפט .תהי .L ∈ CFLאזי קיים ) p ≥ 1קבוע הניפוח( כך שלכל מילה ,w ∈ Lאם |w| ≥ pאז קיימת חלוקה w = u · v · x · y · zכך שמתקיים: .|vxy| ≤ p .1 |vy| > 0 .2 ).(vy 6= ε .∀i ≥ 0, uv i xy i z ∈ L .3 רעיון ההוכחה נבצע דבר דומה להוכחה של למת הניפוח לשפות רגולריות ,בה השתמשנו בעקרון שובך היונים על מספר המצבים באוטומט .כאן אין מצבים ,אך יש משתנים ,לכן נסתכל על עץ הגזירה של הדקדוק .נסתכל על דרגת הפיצול של העץ ,היא בהכרח חסומה על ידי צד ימין הארוך ביותר בחוקי הדקדוק ,שנסמנו ב .b-נרצה שבמסלול מהשורש לעלה, יופיע משתנה פעמיים .נבחין כי אם מספר העלים גדול או שווה מ b|V |+1 -אזי גובה העץ בהכרח גדול או שווה מ) |V | + 1-ראינו זאת במבני נתונים( .על כן ,עבור מילה מספיק גדולה ,נוכל לקבל חזרתיות של משתנה .אבחנה חשובה נוספת היא שמספר העלים בעץ ,הוא האורך של המילה .wכדי להראות את תכונת הניפוח ,נסתכל על כללי דקדוק שנובעים מהבנייה שלנו ,ונראה שחייבת להיות חזרתיות ,בדומה למעגל בגרף שראינו בלמת הניפוח לשפות רגולריות. הוכחה .יהי G = hV, Σ, R, Siדקדוק המתאים לשפה .L נסמן ב b-את האורך של צד ימין הארוך ביותר בחוקים של .Gלמשל ,עבור סט החוקים A → aaAb | bA | ε הארוך ביותר הוא A → aaAbואורכו הוא .4 B → bAb החוק כזכור ,גזירה של כל מילה מגדירה עץ גזירה ,ובגלל שהחוק הארוך ביותר הוא באורך ,bלכל צומת בעץ יהיו לכל היותר b בנים ,כלומר דרגת הפיצול של העץ היא לכל היותר .b אזי לכל ,k ∈ Nאם מספר העלים בעץ הוא לפחות bkאז גובה העץ הוא לפחות .kעל כן ,נבחר |V |+1 .p = bתהי w ∈ L כך ש .|w| ≥ p-נסתכל על עץ הגזירה הקטן ביותר של ,wונשים לב שגובהו הוא לכל הפחות ,|V | + 1שכן מספר העלים בו הוא לפחות |.b|V |+1 ≤ |w מכאן שקיים מסלול מהשורש לעלה כלשהו ,שאורכו לפחות .|V | + 1מסלול זה מורכב כולו ממשתנים ,אם יש אות איפשהו במסלול זה אומר שהגענו לסוף ,כי אי אפשר לגזור עוד אותיות/משתנים מאות כלשהי -רק ממשתנה .לכן ,מעקרון שובך היונים ,יש משתנה במסלול שחוזר על עצמו פעמיים ב |V | + 1-הרמות התחתונות במסלול )שקרובות לעלים( .נקרא למשתנה זה ,Aכמתואר באיור הבא. 35 הרצאה 5ב 5 שפות חסרות הקשר 5.1 שבוע 5 למת הניפוח לשפות ח“ה A A A |V | + 1 A A z z y v x v y u u x y v נתבונן בחלוקה w = uvxyzכמו באיור )שמתקבלת מהסתכלות על החלק שהמופע הראשון של ” Aאחראי לגזור“ ,ועל החלק המופע השני ”אחראי לגזור“( ,ונראה שמתקיימים תנאי הלמה: ∗ S ⇒ uAz ∗ ) . (3נראה שלכל 0 ≤ iמתקיים .uv i xy i z ∈ Lנשים לב שA ⇒ vAy - ∗ A⇒x ∗ ∗ ∗ לכן ∗ ∗ ∗ S ⇒ uAz ⇒ uvAyz ⇒ uvvAyyz ⇒ . . . ⇒ uv i Ay i z ⇒ uv i xy i z בנייה זו מומחשת באיור הקודם. ) . (1צריך להראות ש .|vxy| ≤ p-נסתכל על העץ ונביט במופע הראשון של Aבמסלול שבחרנו )מסומן בסגול באיור הנ“ל(. נשים לב שקודקוד זה יוצר תת-עץ שגוזר את .vxyבגלל ש A-נמצא ב |V | + 1-הרמות התחתונות במסלול בעץ המקורי, אז גובה העץ בו Aהוא השורש הוא לכל היותר ,|V | + 1לכן מספר העלים הוא לכל היותר .p = b|V |+1 ) |vy| > 0 . (2כי בחרנו בהתחלה את עץ הגזירה להיות עץ הגזירה הקטן ביותר .אם v, yשניהם היו εאז היינו יכולים לקבל עץ קטן יותר שגוזר את .wאנחנו יכולים לחשוב על זה כך :ה A-העליון גוזר את המילה ,vגוזר את המילה ,y וגוזר את Aשגוזר את המילה .xאם ,v = ε, y = εאז Aהעליון מיותר -מספיק שהיינו משאירים את Aהתחתון שיגזור את xוהיינו מקבלים את אותה מילה wרק עם עץ קטן יותר. דוגמה .5.2כדוגמה ללמת הניפוח נסתכל על שפת הפלינדרומים מאורך זוגי .נבחר ,p = 3ובהינתן פלינדרום ,w = σ1 σ2 . . . σ2n נסתכל על החלוקה w = uvxyzהבאה: σn+2 . . . σ2n ε σn+1 σn σ1 . . . σn−1 נשים לב שמהיות wפלינדרום מתקיים σn = σn+1לכן לכל ,i ≥ 0המילה σn+2 . . . σ2n i σn+1 ε σni uv i xy i z = σ1 . . . σn−1 היא גם פלינדרום ,כלומר התנאי השלישי מתקיים .השניים הראשונים גם מתקיימים כי |vxy| = |σn εσn+1 | = 2 ≤ 3וכן .|vy| = |σn εσn+1 | = 3 > 0 בזאת נסיים את דיוננו על שפות חסרות הקשר ,אך נציין כי זה נושא רחב שאפשר להעמיק בו רבות. 36 6 שבוע 6 מכונת טיורינג חלק III חישוביות 6 מכונת טיורינג הגיע הזמן לדבר על חישוביות -מה המחשב יכול לעשות ומה לא. הרצאה 6א כשאנחנו שואלים מה מחשב יכול ולא יכול לעשות ,אנחנו צריכים קודם להבין מהו מחשב .כי לדוגמה ראינו שהשפה ∗ } L = w#w | w ∈ {0, 1היא לא ח“ה ובפרט גם לא רגולרית ,ולכן אין אוטומט שמתאר אותה .אבל באותו הזמן ,קל לכתוב בשפת התכנות החביבה עלינו תכנית מחשב קצרה שמכריעה את - Lבודקת האם מילה נמצאת בשפה או לא .לכן אנו מבינים שבסטנדרטים שלנו ,אוטומט )או דקדוק ח“ה( לא מספיק כדי לתאר מחשב כפי שהיינו רוצים .המודל בו נשתמש נקרא מכונת טיורינג. במכונת טיורינג יש לנו סרט אינסופי )זכרון( הבנוי מתאים ,וכדי לרוץ על מילת קלט כלשהי נכניס את האותיות של המילה לתאים הראשונים בסרט. בנוסף ,יש למכונה ראש שיכול לנוע ימינה ושמאלה על גבי הסרט ולקרוא אות/לכתוב אות. לסיום ,יש למכונה מצב פנימי מתוך קבוצה סופית של מצבים פנימיים ,לפיהם נקבל החלטות )בדומה לאוטומט(. להלן המחשה למכונת טיורינג .הסימון מציין שבתא זה לא רשומה אות )תא ריק(. ↓ ... a b b a נגדיר פורמלית מהי מכונת טיורינג: הגדרה .6.1מכונת טיורינג ) (Turing Machineהיא שביעיה M = hQ, Σ, Γ, δ, q0 , qacc , qrej iכאשר: Qקבוצת המצבים הפנימיים )קבוצה סופית(. ∈ Σא“ב הקלט )/ Σ (. Γא“ב העבודה )∈ Γ, Σ ⊆ Γ ( .אלה אותיות שאפשר לכתוב על הסרט. )}→ - δ : Q × Γ → (Q × Γ × {←,פונקציית מעברים. q0מצב התחלתי יחיד. qaccמצב מקבל יחיד .כאשר המכונה מגיע למצב זה היא עוצרת. qrejמצב דוחה יחיד .כאשר המכונה מגיע למצב זה היא עוצרת. הערה .המשמעות של δ (q, a) = hq ′ , b, →iהיא שכש M -במצב qקוראת את האות ,aהיא עוברת למצב ,q ′כותבת b במקום ,aומזיזה את הראש מקום אחד ימינה. במקרה הלא-דטרמיניסטי δתהיה )}→(Q×Γ×{←, δ : Q × Γ → 2כלומר נוכל להתקדם בכמה אפשרויות ולא רק אחת .אנחנו נניח שאנחנו במקרה הדטרמיניסטי והקורא המשקיע מוזמן לחשוב איך יראו ההגדרות במקרה הלא-דטרמיניסטי. נציין גם שלעיתים במקום }→ {←,נרשום }.{R, L הערה .נשים לב שאם הראש הקורא נמצא על התו זה לא אומר שהריצה תעצור. הוא תו ככל התווים ב Γ-ומעבר לכך שבו אנחנו משתמשים לריפוד )וכך שהוא לא נמצא ב ,(Σ-אין לו משמעות מיוחדת. הערה .נשים לב ש DFA-הוא מקרה פרטי של מכונת טיורינג בו δמאפשרת לנו להתקדם רק ימינה ,ואנחנו עוצרים את 37 6 שבוע 6 מכונת טיורינג הריצה ברגע שאנחנו מגיעים ל. - הגדרה .6.2תהי Mמכונת טיורינג )מ“ט( .הקונפיגורציה של Mבכל רגע נתון היא תיאור מלא של המצב של המכונה :המצב הפנימי הנוכחי ,מיקום הראש ותוכן הסרט .אם בסרט רשומה המילה ∗ w = uv ∈ Γוהראש נמצא על האות הראשונה של vוהוא המצב ,qנרשום את הקונפיגורציה הנוכחית של Mבתור .uqv q ↓ v ... u הגדרה .6.3תהי Mמ“ט .הקונפיגורציה ההתחלתית של Mעל מילה ∗ w ∈ Σהיא .εq0 w = q0 w קונפיגורציה מקבלת היא קונפ’ שהמצב שלה הוא qaccוקונפיגורציה דוחה היא קונפ’ שהמצב שלה הוא .qrejלכל אחת משתי קונפיגורציות אלה ,המקבלת והדוחה ,נקרא קונפיגורציה סופית/עוצרת. הגדרה .6.4בהינתן קונפ’ uaqbvכאשר ,u, v ∈ Γ∗ , q ∈ Q, a, b ∈ Γאם δ (q, b) = hq ′ , c, →iאז הקונפ’ העוקבת היא uacq ′ vונסמן .uaqbv → uacq ′ vאחרת ,אם ,δ (q, b) = hq ′ , c, ←iאז הקונפ’ העוקבת היא uq ′ acvונסמן .uaqbv → uq ′ acv במקרה שהקונפיגורציה היא qbvו ,δ (q, b) = hq , c, ←i-אז נגדיר את הקונפיגורציה העוקבת להיות q cvכי אין ′ ′ לנו איך להתקדם עוד שמאלה. אם שתי קונפיגורציות הן עוקבות ,נאמר שהראשונה גוררת ) (yieldsאת השנייה. הגדרה .6.5תהי Mמ“ט .ריצה של Mעל ∗ w ∈ Σהיא סדרה של קונפ’ c0 , c1 , c2 , . . .כך ש c0 -היא הקונפ’ ההתחלתית של Mעל ci+1 ,wעוקבת ל ,ci -ובנוסף או שהסדרה סופית ומסתיימת בקונפ’ עוצרת או שאינה סופית. הגדרה .6.6תהי Mמ“ט .נאמר כי Mמקבלת את ∗ w ∈ Σאם הריצה של Mעל wשמגיעה לקונפ’ מקבלת. אחרת )אם מגיעים לקונפ’ דוחה או שהריצה לא מסתיימת אף פעם( נאמר ש M -לא מקבלת את .wנסמן בL (M )- את קבוצת המילים ∗ w ∈ Σש M -מקבלת הערה .המשמעות של קונפיגורציה עוקבת היא פשוט להתקדם קדימה בתהליך החישוב של מכונת הטיורינג )כמו הרצה של עוד פקודה במחשב(. דוגמה .נבנה מכונת טיורינג עבורה ∗ } .L (M ) = w#w | w ∈ {0, 1הרעיון בבנייה הוא כזה: ) (iאנחנו נתחיל מהאות הראשונה בקלט ונזכור אותה .נסמן במקומה × כדי שנזכור שקראנו אותה כבר. ) (iiעכשיו נתקדם ימינה עד ל) #-אם נגיע ל- בלי לקרוא #אז נעבור למצב (qrejואז נתקדם ימינה עד למקום בו אין ×. ) (iiiנשווה את האות הרשומה לאות שזכרנו .אם האותיות שוות ,נסמן × כדי לזכור שסיימנו עם האות הזו. ) (ivנתקדם שמאלה עד ל #-ואז נמשיך שמאלה עד ל ×-הראשון שניתקל בו .עתה נזיז את הראש מקום אחד ימינה ,נקרא את האות ונזכור אותה .נסמן במקומה × כדי שנזכור שקראנו אותה כבר .מכאן נחזור על התהליך שתיארנו עד שנסיים עם כל האותיות בקלט. להלן דוגמה לריצה על הקלט .010#010 38 6 )(1 מכונת טיורינג שבוע 6 מתחילים מהמצב ההתחלתי ··· נקרא את האות הראשונה ,נזכור את ערכה באמצעות 0 1 0 # 0 1 0 מעבר למצב ייעודי .נסמן × במקום האות כדי שנדע שהיינו במקום הזה כבר ,ונתקדם ימינה עד ל.#- )(2 נתקדם ימינה עד ל.#- )(3 נתקדם ימינה עד ל.#- )(4 קראנו #ונתקדם עד המקום הראשון בו אין ×. )(5 עתה הגענו לתא בו אין × .אם הערך בתא שונה מהערך שזכרנו ,נעבור ל .qrej -במקרה שלנו ,הערכים שווים לכן ··· 0 ··· 0 1 1 # 0 0 0 1 × # 0 1 × ··· 0 1 0 # 0 1 × ··· 0 1 × # 0 1 × נמשיך :נסמן × בתא הנוכחי ונזוז שמאלה עד ל.#- )(6 נזוז שמאלה עד ל#- )(7 הגענו ל ,#-לכן נתקדם עד שנתקל ב.×- )(8 נתקדם עד שנתקל ב.×- )(9 הגענו ל ×-לכן נזוז מקום אחד ימינה. )(10 נזכור את ערכה באמצעות מעבר למצב ייעודי .נסמן × במקום האות כדי שנדע שהיינו במקום הזה כבר ,ונתקדם ··· 0 1 × # 0 1 × ··· 0 1 × # 0 1 × ··· 0 1 × # 0 1 × ··· 0 1 × # 0 1 × ··· 0 × # × × 1 0 ימינה עד ל .#-מכאן נמשיך את התהליך שתיארנו באותו אופן. באופן פורמלי המ“ט שלנו היא M = hQ, Σ, Γ, δ, q0 , qacc , qrej iכאשר } ,Σ = {0, 1, #} , Γ = {0, 1, #, ×,ו Q, δ-מוגדרים ע“י הגרף הבא ,כאשר על כל קשת בין שני מצבים רשומה האות שצריך לקרוא כדי לעבור לאותו מצב ,האות שנרשום בתא 39 6 שבוע 6 מכונת טיורינג הנוכחי ,והכיוון אליו נתקדם. המצב ההתחלתי הוא .q0ממנו אפשר לעבור למצב q1שזוכר שקראנו 0או למצב q2הזוכר שקראנו .1עבור שני מצבים אלה אנחנו זזים ימינה עד שמגיעים ל #-ומשם עוברים למצבים מתאימים ) (q3 , q4שזוכרים את האות שקראנו בהתחלה וזוכרים שצריך להתקדם עד שנתקלים בתו שאינו ×. ברגע שמגיעים לתו שאינו × ,אם אין התאמה בין האות שזכרנו לאות הנוכחית עבורים ל qrej -ומסיימים את הריצה .אחרת, עוברים ל q5 -שתפקידו להחזיר אותנו עד ל .#-משם עוברים למצב q6שתפקידו להתקדם שמאלה עד שניתקל ב ,×-ואז נגיע ל q0 -ונתחיל את התהליך מחדש. אחרי שנעבור מספיק איטרציות ,נסיים לעבור על המילה ונצפה לקבל שהקונפ’ היא · · · × .× . . . × q0 # × . . .אז נעבור למצב q7שתפקידו לוודא שאחרי ה × . . . × # × . . . ×-לא רשומה אות נוספת )כדי שלא נקבל מילים כמו w#w0לדוגמה(. )0 → (0, R )1 → (1, R )× → (×, R q3 )0 → (0, L )1 → (1, R qrej )# → (#, R q1 )0 → (×, L )× → (×, L q5 )0 → (×, R )1 → (1, L )# → (#, L q6 )× → (×, R )0 → (0, R q0 )1 → (×, R )# → (#, R q4 q2 )# → (#, R )× → (×, R )0 → (0, R qacc )→ ( , L q7 )1 → (1, R )× → (×, R הגדרה .6.7תהי Mמ“ט .נאמר ש M -מזהה את Lאם .L (M ) = L הגדרה .6.8תהי Mמ“ט ותהי Lשפה .נאמר ש M -מכריעה ) (decidesאת Lאם Mמזהה את Lובנוסף היא עוצרת על כל קלט. הגדרה .6.9נסמן ב RE-את מחלקת השפות הניתנות לזיהוי ע“י מכונת טיורינג ונסמן ב R-את מחלקת השפות שניתנות להכרעה ע“י מכונת טיורינג. הערה RE .זהו קיצור של Recursively Enumerableו R-זהו קיצור של .Recursive הערה .חשוב לשים לב ש M -לא בהכרח תעצור על קלט מסויים )או אף קלט( .לדוגמה ,המ“ט שפשוט זזה ימינה כל הזמן, עד אינסוף ,ונשארת כל הזמן במצב ,q0לא תעצור לעולם על אף קלט. דוגמה .6.1נגדיר את Lלהיות השפה של כל תכניות המחשב )תכנית מחשב היא בעצם קוד שמקבל קומפיילר( שכתובות ב c-שעוצרות על הקלט .4אינטואיטיבית מראש אנחנו מבינים שאפשר לבנות מכונת טיורינג Mשתקבל את השפה M - 40 6 שבוע 6 מכונת טיורינג פשוט תריץ את התכנית על הקלט ,4ואם היא תעצור היא תעבור למצב מקבל ,ואם היא לא תעצור אז מההגדרה של M היא לא תקבל את התכנית .לכן Mמזהה את ) Lכמובן לא הוכחנו כלום והכל אינטואיטיבית(. דוגמה .6.2בניגוד לדוגמה הקודמת ,אם נגדיר את Lלהיות שפת כל תכניות המחשב שכתובות ב c-שעוצרות על כל קלט, לא ברור איך לבנות Mשתכריע או אף תזהה את .Lבהמשך נראה שלא ניתן לבנות Mכזה )ראו .(21.1 באוטומטים הייתה לנו רק הגדרה של לזהות/לקבל שפה כלשהי ,ובמכונות טיורינג יש לנו מושג חדש של הכרעה והוא יעניין אותנו מאוד כפי שהבנו מהדוגמה הקודמת. שאלה בהינתן מ“ט Mנסתכל על ) .L = L (Mנגדיר ̃ Mבאמצעות החלפת התפקידים של qaccו .qrej -האם בהכרח ?L M̃ = Σ∗ \L = L ∈ wאז w ∈ L ∈ .wאבל אם ) / L (M ∈ wאבל גם ̃/ L M תשובה לא .אם יש מילה wש M -לא מכריעה אז ) / L (M לכן ̃ .L 6= L Mלעומת זאת ,אם Mכן מכריעה את Lאז אנחנו רואים שאכן ̃ .L = L Mכלומר אנחנו לא בטוחים עדיין ש RE-סגורה למשלים ,אך אנחנו כן יודעים בוודאות עכשיו ש R-סגורה למשלים. מסקנה R .6.1סגורה למשלים. הגדרה .6.10נגדיר .coRE = L | L ∈ RE הערה coRE .6.1למעשה מכילה שפות שעבור כל קלט ,אפשר לקבוע האם הוא לא בשפה .במילים אחרות ,אם יש לנו בעיה מסויימת ב ,coRE-אז נוכל לקבוע האם קלט מסויים לא מהווה פתרון לבעיה .נעמיק על כך בהמשך. נרצה לחקור את טיב היחסים בין Rו RE-ו.coRE- משפט .R = RE ∩ coRE .6.1 הוכחה .נראה הכלה דו כיוונית. ⇐ :נתחיל מ .R ⊆ RE ∩ coRE-מההגדרה R ⊆ REובגלל ש R-סגור למשלים אז R ⊆ coREלכן .R ⊆ RE ∩ coRE ⇒ :נראה כי .RE ∩ coRE ⊆ Rתהי .L ∈ RE ∩ coREאזי קיימת מ“ט Mשמזהה את Lויש מ“ט ̂ Mשמזהה את .L נבנה באמצעות ̂ M, Mמ“ט M ′שמכריעה את Lונסיים. אנחנו יודעים שביחד ̂ M, Mמכריעות את כל המילים M -מכריעה את כל המילים ב L-ו M̂ -מכריעה את כל המילים ב) L-פשוט כל אחת בנפרד לא בהכרח מכריעה את כל המילים ב .(Σ∗ -לכן נרצה איכשהו להריץ את שתיהן .הבעיה היא שאם ננסה להריץ קודם את Mואז את ̂ ,Mיתכן שניתקע בריצה אינסופית .לכן נרצה לבנות אוטומט שסוג-של מריץ את שתיהן במקביל ,ואז ברגע שאחת מהן תסיים את ריצתה ותכריע את המילה ,אז נעצור את הריצה של .M ′ באופן מפורט יותר )אך עדיין לא פורמלי עד הסוף( ,בהינתן קלט wהמ“ט M ′פועלת כך: .1נגדיר מונה iולכל ערך :i = 1, 2, 3, . . . )א( נריץ את Mעל i wצעדים .אם Mקיבלה את ,wעצור וקבל. )ב( נריץ את ̂ Mעל i wצעדים .אם ̂ Mקיבלה את ,wעצור ודחה. נשים לב ש M ′ -עוצרת על כל קלט :wאם w ∈ Lאז לריצה המקבלת rשל Mעל wיש מספר סופי jשל צעדים ,ואז M ′תעצור באיטרציה .j אחרת ,לריצה של ̂ Mעל wיש מספר סופי kשל צעדים ,ואז M ′תעצור באיטרציה .kבנוסף L (M ′ ) = L (M ) ,כי ) w ∈ L (M ′אם“ם היא התקבלה בעקבות ריצה מקבלת של Mעל wאם“ם ) .w ∈ L (M 41 הרצאה 6ב 6 מכונת טיורינג 6.1ספרנים )(Enumerators שבוע 7 כדי להוכיח את הטענה באופן פורמלי ,נצטרך להגדיר במפורש את ,M ′ונוכל לפעול בשתי שיטות :הראשונה היא לממש במפורש את האלגוריתם שתיארנו קודם -נרשום על הסרט לצד הקלט המקורי את ערכו של המונה ,ואז נעתיק גם את הקלט המקורי כדי שנוכל לתת ל M̂ -לרוץ עליו .כמו כן ,נצטרך לרשום על הסרט מונים שיזכרו באיזו איטרציה אנחנו וכו’. על כן ,הסרט יראה בערך כך: copy input iteration current ··· ··· j # ······w input counter # i # ······w הפרטים הקטנים לפתרון הושארו כתרגיל לסטודנט המשקיע החכם היפה והחסון. במקום בנייה זו ,אפשרות נוספת היא לבנות מכונה שמדמה ריצה על שני סרטים במקבלים. 6.1ספרנים )(Enumerators נרצה להבין מה המשמעות של .RE = Recursively Enumerableאנו מכירים את המונח ”קבוצה בת מנייה“ ,ונראה שRE- היא למעשה כל השפות שניתן לסדר את איבריהן באופן אלגוריתמי. כדי להראות זאת ,נחקור את מושג ה“-ספרן“ .ספרן הוא למעשה מ“ט שלא מקבלת קלט ,ואנו נראה שהוא שקול למ“ט שמזהה שפה .באופן )קצת( יותר פורמלי, ספרן הוא מ“ט עם מדפסת ,שלא מקבלת קלט ,אך יש לה סרט פלט ,שם היא מדפיסה מילים .שפת הספרן מוגדרת כ E}-בסופו של דבר מדפיסה את .L (E) = {w : w הגדרה .6.11ספרן ) (Enumeratorהוא מ“ט עם מדפסת ,שלא מקבלת קלט .כלומר ,יש לה סרט פלט ,שם היא מדפיסה מילים. הגדרה .6.12שפת הספרן מוגדרת על ידי כל המילים שהוא מדפיסת כלומר } Eבסופו של דבר מדפיסה את L (E) = {w : w }קיים מספר tשל צעדים כך ש E-מדפיס את wלאחר tצעדים = {w : עתה ,נראה את השקילות בין המונחים. משפט .6.2לכל שפה ∗ L ⊆ Σמתקיים כי L ∈ REאם“ם קיים ספרן Eכך ש.L (E) = L- הוכחה .נוכיח את שני הכיוונים. ⇒ :נניח שיש ספרן Eכך ש .L (E) = L-נייצר Mשמזהה את .L בהינתן מילה ,wהמ“ט Mתפעל כך: M .1מריצה את .E .2כל פעם ש E-מדפיסה מילה M ,yבודקת האם .y = w )א( אם כן ,היא עוצרת ומקבלת. )ב( אם לא ,ממשיכה להריץ את .E 42 הרצאה 7א 6 שבוע 7 מכונת טיורינג 6.2 התזה של Church, Turing נבחין כי Mמזהה את ,Lכי אם w ∈ Lאזי Eידפיס את wבסופו של דבר ,ולכן Mתעצור ותקבל .מצד שני ,אם ∈ wאזי Eלא ידפיס את ,wולכן Mתרוץ לנצח ולא תקבל את .wכמו כן ,אם Eיעצור מבלי להדפיס את M ,w /L תעצור מבלי לקבל את .w ⇐ :היות ש Σ∗ -בת מנייה ,נוכל לסדר את המילים בה ,למשל ,בסדר לקסיקוגרפי ,ולקבל סידור שלה .{wi }i∈Nכאן מגיעה תפנית מסוכנת בהוכחה .מישהו עלול לבנות ספרן שמריץ את Mעל כל מילה ,ובמידה שהיא מקבלת ,להדפיס אותה ,ואחרת, לעבור למילה הבאה .הבעיה היא ,ש M -רק מקבלת את Lולא מכריעה אותה ,ולכן ייתכן שהיא לא תעצור בכלל .על כן, נבצע הרצה במקביל. .1עבור .i = 1, 2, . . . )א( נריץ את Mעל w1 , . . . , wiבדיוק iצעדים ,על כל מילה בנפרד. )ב( אם Mמקבלת את wjעבור 1 ≤ j ≤ iבמהלך הריצה ,נדפיס אותו. הבנייה נכונה ,היות שאם w ∈ Lאז wתודפס בסופו של דבר .יהי w ∈ Lאזי יש iכך ש ,w = wi -ויש tכך ש M -מקבלת ∈ wאז Eלא תדפיס את .w את wתוך tצעדים .על כן w ,תודפס ,בכל איטרציה } .k ≥ max {i, tמצד שני ,אם / L נבחין כי כל מילה בשפה תודפס אינסוף פעמים ,גם עבור שפות סופיות .כמו כן ,אין כאן דגש על יעילות ,על זאת נדבר בהמשך הקורס. מסקנה RE .6.2אלה כל השפות שניתן לסדר את האיברים בהן באמצעות אלגוריתם. 6.2 התזה של Church, Turing אנחנו רוצים להשתכנע שאפשר לנתח מכונות טיורינג ולהסיק על תכניות מחשב באופן כללי .כלומר נענה על השאלה” ,מהו אלגוריתם?“. רקע היסטורי ב 8.8.1900-התכנסה ועידה של מתמטיקאים שם הציג דוד-הילברט את ” 23הבעיות של הילברט“ ,להן עוד לא הוצג פתרון. מה שיעסיק אותנו הוא הבעיה ה :10-לתאר אלגוריתם שבהינתן פולינום במספר משתנים יכריע האם יש לו שורש שלם. למשל ,עבור 6x yz + 3xy − x − 10ו.x = 5, y = 3, z = 0- 3 2 2 3 בתקופותו של הילברט ,לא הוגדר באופן פורמלי מושג ה“-אלגוריתם“ ,ולכן הילברט ניסח זאת כ“-תהליך שיכריע תוך מספר סופי של צעדים“. ב 1970-הוכיחו שאין אלגוריתם ,על ידי שימוש במכונות טיורינג. טענה .6.1נגדיר }קיים ל p-שורש שלם | H = {hpiאזי .H ∈ RE הוכחה .נדגיש כי מכונה שמקבלת פולינום כקלט ,מקבלת אותו כייצוג של משתנה-חזקה-אופרטור ,למשל .(x3z3 + y3) :נבנה מ“ט Mבאופן הבא. .1אם יש ב p-בדיוק nמשתנים ,נרוץ על סידור של .Znאפשר לעשות זאת ,כי היא בת מנייה. .2לכל השמה (a1 , . . . , an ) ∈ Zn ,נבדוק האם היא שורש של .p .3אם כן ,נעצור ונקבל .אחרת ,נעבור להשמה הבאה. 43 6 מכונת טיורינג 6.3 שבוע 7 תרגום אלגוריתמים למ“ט ברגע שנוכל לקבוע שאלגוריתם משמעותו קיום של מכונת טיורינג שמכריעה את השפה ,נוכל לפרמל את הבעיה העשירית, לכדי השאלה ,האם } ∈ Rקיים ל p-שורש שלם | ?H = {hpi פריצת הדרך הגדולה שמאפשרת לקבוע זאת ,היא התזה Church&Turingמ:1936- Turingטען שהכרעה על ידי מ“ט שקולה לקיום אלגוריתם. Churchהגיע לכך באמצעות ,λ − calculusעליו לא נעמיק. התזה היא איננה משפט ,אלא משהו שצריך להשתכנע בו .נעשה זאת על ידי תיאור של אלגוריתם בשלבים עוקבים. השלב הראשון הוא ,מידול על ידי מ“ט .M = hΣ, Γ, . . .iהבעיה היא שאלגוריתמים פועלים על גרפים ,פולינומים ,מטריצות, מכונות טיורינג ,וכו ′ואילו מ“ט פועלות על מילים .הפתרון לבעיה ,הוא שניתן לקודד עצמים ,ולכן עבור עצם Aנוכל להסתכל על הקידוד ,hAiעליו תעבוד המ“ט .כלומר ,לכל מ“ט יש פורמט לו היא מצפה .על כן ,נסיק כי אפשר למדל את האלגוריתם עצמו כמ“ט .למשל ,נוכל לקודד גרף G = hV, Eiלפי רשימת קודקודים וצלעות שרשומות בפורמט כלשהו על הסרט. השלב השני הוא תיאור הפעולות של המ“ט. השלב השלישי הוא תיאור של pseudo − codeבשפה עילית. התזה קובעת שהשלב השני והשלישי שקולים ,כלומר pseudo − code ,קובע פעולות על מ“ט ,ומכך שאפשר לקודד עצמים ולייצג אלגוריתם כמ“ט ,נקבל כי אלגוריתם שקול למ“ט. 6.3 תרגום אלגוריתמים למ“ט נמחיש שניתן לקודד כל אלגוריתם על ידי קידוד של קשירות של גרף. כלומר נבנה מ“ט שמכריעה את } Gגרף לא מכוון קשיר | .CG = {hGi כדי לעשות זאת ,נסביר קודם כל כיצד נקודד את .Gהקידוד שלנו יהיה רשימת קודקודים ממוספרים בבסיס ,2מופרדים על ידי ,#ואחריהם ,רשימת קשתות ,מופרדות ב.$- נציע את האלגוריתם הבא ב:pseudo − code- Algorithm 1 Connected Graph } Define C = ∅, T = {v0 while T 6= ∅ do ) v = pop(T )push(v, C for all u ∈ V \ (C ∪ T ) do if E(u, v) then ) push(u, T if C = V then accept else reject 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: מטרתנו עכשיו היא לתאר אלגוריתם זה במכונת טיורינג. אנו יודעים כי } .Σ = {0, 1, #, $נציע אלפבית עבודה: סימונים Γ = Σ ∪ { } ∪ ({0, 1} × {C, T, A}) + כאשר סימון הוא ביטוי מהצורה ”המכונה −Cתסמן“ או ”−Aתסמן” או ” −Tתסמן“ וכו’ ,שמשמעותו היא סימון קודקודים על ידי הפיכת התו הראשון בקידוד שלהם לתו ב.{h0, T /C/Ai , h1, T /C/Ai}- כלומר כאשר קודקוד ,00 ∈ Tהמשמעות היא שהחלפנו את ” “00בקידוד ” .“0T 0נתאר את האלגוריתם לפי שלב :2 44 6 שבוע 7 מכונת טיורינג 6.4 אי כריעות ובעיית העצירה -T .1סמן את הקודקוד הראשון. .2חזור כל עוד יש קודקודים -Tמסומנים) .אתחלנו את Tמהפסידו-קוד(. )א( -Aסמן קודקוד -Tמסומן) .פעולת ה Pop-בפסידו-קוד(. )ב( עבור על רשימת הקודקודים ,אם יש קודקוד לא מסומן ,בדוק האם יש קשת בינו ובין הקודקוד ה-A-מסומן, על ידי מעבר על רשימת הקשתות .אם יש ,אז -Tסמן את הקודקוד הנבדק) .ביצענו את הלולאה הפנימית בפסידו-קוד(. )ג( -Cסמן את הקודקוד ה A-מסומן) .פעולת ה Push-בפסידו-קוד(. .3אם כל הקודקודים -Cמסומנים ,קבל .אחרת ,דחה) .התנאי האחרון בפסידו-קוד(. הדוגמא שהצגנו כאן הייתה מפורטת .לרוב נראה דוגמאות פחות מפורטות. ( ) Aהוא DFA .ADFA = hA, wiכל אוטומט אפשר לקודד בכך שנרשום את הפרמטרים דוגמה .6.3נגדיר את השפה )w ∈ L (A שמגדירים אותו :מצבים ,פונק’ מעברים וכו’. נגדיר מ“ט Mשמכריעה את ADFAעל ידי סמלוץ של Aעל .w .1בכל צעד היא תכתוב על הסרט: )א( מצב נכחי )מתחילה מ.(q0 - )ב( אינדקס במילה. .2בכל איטרציה ,תעדכן מצב ותגדיל אינדקס ,על ידי חישוב ) δ (q, wiכאשר wiהאות באינדקס הנוכחי ו q-המצב הנוכחי. .3בסיכום הסימולציה ,תקבל אם“ם המצב הנוכחי שייך ל ,F -כלומר נמצא בסרט במקום שכתובים המצבים .F ( ) Aהוא NFA .ANFA = hA, wiנגדיר מ“ט שתסמלץ תוך כדי ריצה דוגמה .6.4בהמשך לדוגמא הקודמת נביט בשפה )w ∈ L (A את ה .subest − construction-בכל איטרציה M ,תכתוב על הסרט קבוצה של מצבים ,ואינדקס .כלומר עבור Sעל הסרט באינדקס :iיתקיים .δ ∗ (Q0 , w [0 . . . i]) = S דרך נוחה היא להסתכל על זה כמכונה עם כמה סרטים ,במקום תו מפריד ,כמו שראינו בתרגול )ראו .(19.1 6.4 אי כריעות ובעיית העצירה נראה כיצד לקבוע האם ניתן להכריע שפה. ∈ .L משפט .6.3יש שפה ∗ L ⊆ Σכך ש/ R- הוכחה) .משיקולי ספירה( קיימות 2ℵ0שפות ∗ ,L ⊆ Σשכן .|Σ∗ | = ℵ0 בנוסף ,יש רק ℵ0מ“ט ,שכן כל מ“ט היא מהצורה M = hΣ, Γ, Q, q0 , δ, qacc , qrej iולכן ניתן לקודד את Mע“י מילה ב .{0, 1, #, $}-כלומר קיימת העתקה ∗ } f : TM → {0, 1, #, $חח“ע ועל. ממשפט קנטור 2ℵ0 > ℵ0 ,ולכן אנחנו מסיקים שיש יותר שפות ממכונות טיורינג ,ולכן קיימת שפה Lכך שלא קיימת מכונת ∈ .L טיורינג שמקבלת או מכריעה אותה .בפרט/ R , 45 6 מכונת טיורינג שבוע 7 ) הגדרה .6.13נגדיר את השפה Mהיא מ״ט ) w ∈ L (M 6.4 אי כריעות ובעיית העצירה ( hM, wi = .ATM נראה הוכחה שימושית יותר למשפט הקודם ,שמצביעה על שפה שאינה כריעה. הוכחה) .קונסטרוקטיבית( 10 נביט בשפה .ATMנראה שלא קיימת מכונת טיורינג שמכריעה אותה .נראה ש ATM ∈ RE-אבל ∈ ,ATMשכן .coRE ∩ RE = R לא ב ,R-מכאן גם ינבע ש/ coRE- נגדיר מ“ט M1שמזהה את ATMבאופן הבא .בהינתן Mו ,w-מריצה )מסמלצת( את Mעל wועונה כמותה. אם Mמקבלת את wאז M1תקבל את .hM, wiאם M1מקבלת את hM, wiאז Mבהכרח מקבלת את .wייתכן ש M1 -תתקע ,זה יקרה רק אם Mלא מקבלת את .w acc M (w) = acc = ) ,H (hM i , wומתקיים ∈ .ATMנניח בשלילה שיש מ“ט Hשמכריעה את .ATMאזי נראה ש/ R- rej M (w) 6= acc M (w) 6= accאם }⊥ M (w) ∈ {rej,כאשר ⊥ מסמן אי-עצירה. נבנה מ H-מ“ט Dהמקבלת כקלט מכונה Mואת הקידוד שלה כמילה ,כלומר acc M (hM i) = acc = )D (hM i) = H (hM i , hM i rej M (hM i) 6= acc D D נגרום ל” D-להתבלבל“ .מ D-נבנה מכונה ̃ Dעל ידי החלפת ,qrejכלומר qaccב- rej M (hM i) = acc acc M (hM i) 6= acc D E ̃D מה הוא = )D̃ (hM i ̃ ?Dמתקיים כי D E ̃D E rej D̃ D = acc D E ̃D̃ D = ̃acc D̃ D 6= acc קיבלנו סתירה. הוכחה זו קשורה לאלכסון של קנטור. 10ההוכחה שימושית יותר ,כיוון שבזכות השפה ATMנוכל להוכיח ששפות אחרות אינן ב ,R-באמצעות רדוקציה אלי .זאת נראה במפורט בהמשך. 46 הרצאה 7ב 6 מכונת טיורינג 6.4 שבוע 7 אי כריעות ובעיית העצירה האלכסון של קנטור קנטור הוכיח ש 2ℵ0 > ℵ0 -ע“י הנחה בשלילה שיש סידור של 2Nשנסמנו .s1 , s2 , . . .נסתכל על הגריד הבא ,כאשר ... 4 5 ··· 3 2 ∈j / si × = ):si (j 1 )s1 (3 )s1 (2 )s1 (1 s1 )s2 (3 )s2 (2 )s2 (1 s2 )s3 (3 )s3 (2 )s3 (1 s3 )s4 (4 s4 .. . )s5 (5 . j ∈ si ✓ s5 .. . .. ∈ .∀i ∈ N : i ∈ S ⇐⇒ iקל לראות ש ,S ∈ 2N -וכן ,לכל i ∈ Nמתקיים נתבונן בקבוצה ”דואלית לאלכסון“ ,S ,המוגדרת על ידי / si ∈S ∈ Sלא נמצאת באף מקום בסידור שלנו של ,s1 , s2 , . . .כלומר / 2N ∈ ,i ∈ S ⇔ iולכן / 2N S 6= siשכן מהגדרת ,S, siמתקיים / si בסתירה להנחה. הוכחה מסוג זה נקראית ”הוכחה בלכסון“. בהוכחה שלנו ,הסתכלנו על הטבלה של כל המ“ט M1 , M2 , . . .וניתן לעשות זאת ,היות שיש ℵ0מכונות טיורינג .מכאן אפשר להסתכל על ⟩ ⟨M5 ... ⟩ ⟨M4 ⟩ ⟨M3 ⟩ ⟨M2 ⟩ ⟨M1 )⟩ M1 (⟨M1 )⟩ M2 (⟨M2 )⟩ M3 (⟨M3 )⟩ M4 (⟨M4 M2 M3 M4 )⟩ M5 (⟨M5 . M1 M5 .. . .. כאשר ) M (hM iמוגדר כאן כ acc-בקבלה ו rej-בכל מקרה אחר )כולל אי-עצירה( .על כן ,נוכל להסתכל על Hשהיא מכונה שממלאת את הטבלה ,כלומר ) H (hM iמגדירה לנו האם ) Mi (hMj iמקבל או דוחה )או לא עוצר( .עתה D ,היא המכונה המגדירה את האלכסון, ואז בהוכחה הגדרנו את ̃ Dשהיא דואלית לאלכסון ,וזו סתירה ,היות ש D̃-גם היא מ“ט ולכן אמורה להיות גם בטבלה ,כלומר להסכים עם האלכסון לפחות בתא אחד. מסקנה R 6= RE .6.3ולכן גם .coRE 6= RE בעיית העצירה ברגע שמצאנו שפה אחת שלא ב ,R-קל למצוא נוספות .נחקור את הבעיה הבאה ,הקשורה לשפה שראינו לפני רגע. הגדרה .6.14נגדיר את השפה } Mעוצרת על .HALTTM = {hM, wi | w ∈ .HALTTM משפט / R .6.4 הוכחה .נטען שלו הייתה מכונה M2שמכריעה את ,HALTTMאז הייתה מכונה M1שמכריעה את ,ATMבאופן הבא. בהינתן ,hM, wiהמכונה M1תפעל באופן הבא. 47 6 מכונת טיורינג שבוע 7 6.4 אי כריעות ובעיית העצירה M1 .1מריצה את M2על .hM, wi )א( אם M2עצרה ודחתה M1 ,דחתה גם ,כי .M (w) 6= acc )ב( אחרת ,אם M2עצרה וקיבלה ,אז M1מריצה את Mעל wללא חשש ששתתקע ,ועונה כמו Mעל .w ∈ .ATM מכאן M1מכריעה את ,ATMבסתירה לכך ש/ R- בהוכחה הראנו ש ,HALTTM ∈ R ⇒ ATM ∈ R-ולכן במקום לדבר על HALTTMהסתכלנו על .ATMדבר זה ניתן להכליל למושג ה“-רדוקציה“ ,שם במקום לדבר על שפה אחת ,נתבונן על שפה אחרת שאנו מכירים ,ונגיע לסתירה לפי ההנחה על השפה המקורית .למעשה ,במדעי המחשב אנחנו משתמשים לרוב ברדוקציה כדי לומר דברים טובים על שפות ,אך כאן אנו נעשה את הדבר ההפוך -נשתמש בתכונה ”רעה“ של שפה ,כדי להוכיח תכונה של שפה אחרת ,ברדוקציה. 48 7 שבוע 8 רדוקציות 7רדוקציות 7.1 רדוקציות מיפוי נמשיך לדבר על מה מחשבים יכולים לעשות ומה לא ,ולשם כך נציג הגדרה: הגדרה .7.1נאמר כי ∗ f : Σ∗ → Σהיא פונק’ ניתנת לחישוב ) ,(computable − functionאם קיימת מ“ט Mf שבהינתן קלט xעוצרת עם ) f (xעל הסרט. דוגמה f : N × N → N .7.1המוגדרת על ידי .f (x, y) = x + yהקלטים יהיו נתונים בקידוד .x#yאם הקלטים נתונים באונרית ,כלומר הם מהצורה ,11111#111המכונה תמחק את #ותזיז את yמקום אחד שמאלה .אם הקלט נתון בבינארית )או בבסיס אחר( ,נוכל לעשות זאת על ידי חיבור ארוך. כלומר fהיא פונק’ ניתנת לחישוב )פנ“ל( דוגמה f : TM → TM .7.2המוגדרת ע“י f (hM i) = hM ′ iכך ש L (M ) = L (M ′ )-ו M ′ -לא עוצרת על קלטים שאינם ב .L (M )-גם היא פנ“ל ,שכן Mfתוסיף מצב ,qloopתשנה מעברים שהלכו ל qrej -שילכו ל qloop -ותוסיף חוג עצמי ל.qloop - במילים אחרות ,היא תערוך את הקידוד של ,hM iבפרט כל הופעה של qrejבקידוד של δתוחלף ב.qloop - הגדרה .7.2עבור שתי שפות ∗ ,A, B ⊆ Σנאמר ש A-ניתנת לרידוקציית מיפוי ל,(A is mapping reducible to B) B- ונסמן , A ≤m Bאם קיימת פנ“ל ∗ f : Σ∗ → Σכך שלכל ∗ w ∈ Σמתקיים . w ∈ A ⇐⇒ f (w) ∈ B במילים אחרות ,אפשר לשאול שאלות על שייכות ל B-במקום על שייכות ל .A-למשל ,אם },A = {x : |x| ≤ 5} , B = {x : |x| ≤ 10 אזי y ∈ Aאם“ם ,f (y) = 2y ∈ Bלכן כדי להגיד האם y ∈ Aמספיק להכריע האם .f (y) ∈ B B A f f f f f שימו לב כיצד באיור הקודם ,במיפוי-רידוקציה fיכולים להופיע החצים השחורים והם תקינים )החץ יוצא מ A-אם“ם הוא נכנס ל ,(B-אך החצים האדומים הם בעיתיים ולא יכולים להופיע ברדוקציה. אינטואיטיבית A ≤m B ,גורר ש” A-קלה לחישוב“ מ ,B-את זאת נפרמל באופן הבא. משפט הרדוקציה לR- משפט .לכל ∗ A, B ⊆ Σאם A ≤m Bו B ∈ R-אזי ) .A ∈ Rובאופן דומה עבור (RE, coRE 49 הרצאה 8א 7 רדוקציות 7.1 שבוע 8 רדוקציות מיפוי הוכחה .מההנחה ,קיימות מ“ט MBשמכריעה את Bומ“ט Mfשמחשבת רדוקציה מ A-ל .B-נבנה מ“ט MAשמכריעה את .Aבהינתן קלט ∗ MA ,w ∈ Σמריצה את Mfעל ,wואז מריצה את MBעל התוצאה ) f (wועונה כמותה. נשים לב ש MA -עוצרת על כל קלט כי Mf , MBעוצרות על כל קלט .מצד שני MA ,נכונה כי f (w) ∈ B ⇐⇒ w ∈ A אם“ם MBמקבלת את ).f (w הערה .7.1מאוד קל לזכור את המשפט על ידי הבנה של ההוכחה A ≤m B -גורר שיש fפנ“ל כך שw ∈ A ⇐⇒ f (w) ∈ B- לכן בהינתן B ∈ Rוקלט ∗ w ∈ Σאפשר לחשב את ) f (wולבדוק אם היא ב .B-מצד שני ,אם ,A ∈ Rאז בהינתן קלט ∗ w ∈ Σעלינו להפעיל את ) ,f −1 (wולא ידוע כיצד לחשב אותה ,והאם היא בכלל קיימת. ∈ .B ∈ Aאז / R מסקנה .7.1אם A ≤m Bו/ R- הוכחה .לכל שתי טענות ,α ⇒ β ⇐⇒ ¬β ⇒ ¬αולכן המסקנה נובעת מהמשפט .אינטואיטיבית ,אם Aקלה יותר מB- ולא ניתן להכריע אותה ,אז גם לא ניתן להכריע שפות קשות יותר )כמו .(A ∈ .HALTTM טענה / R .7.1 ∈ .ATMלכן מספיק להראות ש .ATM ≤m HALTTM -נסמן ב INPUTSATM -את הקלטים האפשריים הוכחה .אנחנו יודעים ש/ R- ל ATM -וב INPUTSHALTTM -את הקלטים ל.HALTTM - נבנה אם כך f : INPUTSATM → INPUTSHALTTMהמקיימת f (hM, wi) = hM ′ , w′ iכך ש M -מקבלת את wאם“ם M ′ עוצרת על .w′ בהינתן hM, wiהפונקציה fתחזיר w′ = wו M ′ -היא כזו ש .L (M ) = L (M ′ )-כמו כן M ′ ,לא עוצרת על מילים שאינן בשפה -איך לבנות M ′כזו כבר ראינו בדוגמה .7.2נוכיח את נכונות הרדוקציה .מתקיים: f .1ניתנת לחישוב ,שכן התיאור של M ′מתקבל אחרי מספר סופי של צעדים מהתיאור של Mו.w = w′ - ,hM, wi ∈ ATM ⇐⇒ hM ′ , w′ i ∈ HALTTM .2שכן אם hM, wi ∈ ATMאזי M ′עוצרת על .w אחרת ,אם ∈ hM, wiאזי אם Mלא עצרה על ,wאז M ′לא עצרה על w′ואם Mדחתה את ,wאז M ′תגיע לqloop - / ATM ותתקע על .w′ מכאן ,ATM ≤m HALTTMכנדרש. הגדרה .7.3נגדיר את השפה } Mעוצרת על .HALTεTM = {hM i | ε קל לראות ש ,HALTεTM ∈ RE-אבל האם היא ניתנת להכרעה? ∈ .HALTεTM טענה / R .7.2 ∈ .HALTεTMלשם כך נמצא פנ“ל .f : INPUTSHALTTM → INPUTSHALTεTM הוכחה .נראה ש HALTTM ≤m HALTεTM -ונסיק / R נבנה מכונה Mfשמחשבת את הרדוקציה Mf .תפעל כך: בהינתן ,M, wהמכונה Mfתכתוב על הסרט קידוד של מכונה Mw′ שפועלת על קלט xבאופן הבא: .1כותבת על הסרט wבמקום .x .2מריצה את Mעל .w נבחין שאכן כל הפעולות שביצענו ניתנות לביצוע ע“י מ“ט ,כי רק הוספנו מצבים שמוחקים את הסרט ,כותבים עליו את w ועוברים למצב ההתחלתי של .Mבנוסף M ,עוצרת על wאם“ם Mw′עוצרת על ,εכי Mw′מסמלצת ריצה של Mעל ,w וסיימנו. 50 7 רדוקציות 7.1 שבוע 8 רדוקציות מיפוי הערה .אפשר להוכיח בקלות ש ,HALTεTM ≤m HALTTM -באמצעות הפונק’ .f (hM, εi) = hM, εiאך זה לא היה עוזר לנו, ∈ ,HALTεTMומרדוקציה זו לא נוכל להסיק זאת )אנחנו רוצים רדוקציה בכיוון ההפוך(. כי אנו רוצים להוכיח ש/ R- הגדרה .7.4נגדיר את השפה }.REGTM = {hM i | L (M ) ∈ REG ∈ .REGTM טענה / R .7.3 הוכחה .נראה ש ,ATM ≤m REGTM -כלומר נראה שיש פנ“ל fשמהווה רדוקציה ,כלומר: f : INPUTS ATM → INPUTS REGTM M′ M,w כך שאם f (hM, wi) = hM ′ iאז Mמקבלת את wאם“ם השפה של M ′רגולרית. בהינתן ,M, wהרדוקציה fתחזיר M ′מעל א“ב }) {0, 1סתם בחרנו א“ב כלשהו( שפועלת על קלט ∗ ) x ∈ (0 + 1באופן הבא: .1אם } x ∈ {0n 1n | n ≥ 0אזי M ′מקבלת את .x .2אחרת M ′ ,מריצה את Mעל wועונה כמוה. נשים לב שהפונקציה ) fשמגדירה את Mfשמחשבת את (M ′ניתנת לחישוב. נטען כי הרדוקציה נכונה ,כלומר .hM ′ i ∈ REGTM ⇐⇒ hM, wi ∈ ATM אם Mמקבלת את wאזי לכל ∗ ) x ∈ (0 + 1מתקיים כי ) M ′מאל א“ב } ({0, 1תקבל את ,xשכן או שהיא תקבל במקרה הראשון ,או במקרה השני .לכן ∗ ′ ) L (M ) = (0 + 1רגולרית. ∗ ′ אחרת ,אם Mלא מקבלת את ,wאזי לכל מילה ) x ∈ (0 + 1מתקיים כי Mמקבלת את xאם“ם }x ∈ {0 1 | n ≥ 0 n n כלומר אם“ם }) L (M ′ ) = {0n 1n | n ≥ 0וזו שפה לא רגולרית( .לכן הרדוקציה נכונה. הערה .7.2בהוכחה יכולנו לבחור כל שפה לא רגולרית אחרת הניתנת להכרעה ,ולא בהכרח את }.{0n 1n | n ≥ 0 כמו שהוכחנו את משפט הרדוקציה עבור ,Rאפשר לנסח משפטי רדוקציה דומים עבור ,RE, coREאותם נוכיח בתרגול. ∈ .REGTM מסקנה / RE, coRE .7.2 ∈ .ATMכמו כן ,ראינו כי ,ATM ≤m REGTMולכן ∈ ,ATMשכן ATM ∈ REאבל / R הוכחה .ראשית ,נבחין כי / coRE ∈ REGTMממשפט הרדוקציה ל.coRE- / coRE ∈ .ATMאם כך ,נראה כי .ATM ≤m REGTM ∈ ATMכי / coRE ∈ .REGTMידוע ש/ RE- נותר להוכיח ש/ RE- נשים לב שלכל שתי שפות ,A, Bמתקיים כי A ≤m Bאם“ם .A ≤m B שכן ,אם ∗ f : Σ∗ → Σהיא כזו ∈ ,wכלומר הרדוקציה היא עם אותה פנ“ל. ∈ )/ A ⇐⇒ f (w ש w ∈ A ⇐⇒ f (w) ∈ B-אזי / B ′ מכאן נובע כי מספיק להראות ש .ATM ≤m REGTM -נבנה f (M, w) = M ′כך ש M -מקבלת את wאם“ם ) L (Mלא רגולרית .על קלט ∗ ) x ∈ (0 + 1המכונה M ′תפעל כך. .1אם } x ∈ {0n 1n | n ≥ 0אזי M ′מריצה את Mעל wועונה כמוה. .2אחרת M ′ ,דוחה את .x לכן אם Mמקבלת את wאזי } ,L (M ′ ) = {0n 1n | n ≥ 0כי אז כל המילים } x ∈ {0n 1n | n ≥ 0תתקבלה בשלב .2 אחרת ,אם Mלא מקבלת את wאז ∅ = ) L (M ′והיא רגולרית. 51 7 רדוקציות 7.1 שבוע 8 רדוקציות מיפוי ניזכר בבעיית ריצוף האריחים ) .(0.4אמרנו שאין אלגוריתם שיודע להגיד האם לכל n ∈ Nניתן לרצף באופן חוקי ריבוע בגודל ,n × n 11 ועכשיו יש לנו הכלים להוכיח זאת .קודם נתאר פורמלית את הבעיה: הגדרה .7.5נגדיר את השפה }יש ריצוף חוקי ,TILE = {hT, H, V, t0 i : ∀n ≥ 1 n × nכאשר Tמתאר את קבוצת האריחים )קבוצה סופית( H ⊆ T × T ,היא קבוצת תנאי השכנות האופקיים ו V ⊆ T × T -היא קבוצת תנאי השכנות האנכיים ,ו.t0 ∈ T - ריצוף חוקי n × nהוא f : {1, . . . , n} × {1, . . . , n} → Tכך ש f (1, 1) = t0 -ובנוסף מתקיימים האילוצים האנכיים והאופקיים: (f (i, j) , f (i + 1, j)) ∈ H (f (i, j) , f (i, j + 1)) ∈ V 1 ≤ ∀i ≤ n − 1 1 ≤ ∀j ≤ n 1 ≤ ∀i ≤ n 1 ≤ ∀j ≤ n − 1 נשים לב ש TILE ∈ coRE-כי TILE ∈ REשכן TILEהיא קבוצת האריחים )והחוקים( כך שקיים n ≥ 1כך שאין ריצוף חוקי .n × nאנחנו אכן יכולים לבנות מ“ט Mשמזהה את M - TILEתעבור על כל nותנסה את כל הריצופים האפשריים ,שכן יש n2 | |Tאפשרויות .אם יש ריצוף חוקי ,היא תעבור ל n-הבא .אם אין ריצוף חוקי ,היא תקבל את קבוצת האריחים .קל להשתכנע מהתיאור הזה שאכן .L (M ) = TILEנשים לב שאם יש ריצוף חוקי לכל nאז Mלא תעצור ולכן אנחנו יכולים להסיק רק .TILE ∈ RE ∈ ,TILEאך קודם עלינו לבצע הבחנה חשובה: אנו נראה שמתקיים / RE הבחנה הגדרה שקולה ל TILE-היא קבוצת כל הרביעיות hT, H, V, t0 iכך שקיים ריצוף חוקי של כל ) N × Nולא סתם שיש ריצוף חוקי n × nלכל .(n הכיוון הראשון של השקילות קל ,אם יש ריצוף חוקי של N × Nאז בפרט לכל nיש ריצוף חוקי ) n × nפשוט נסתכל על הריבוע n × nבריצוף החוקי של .(N × N למה הכיוון השני נכון? זה נובע מהלמה של קניג ):(K önig הלמה של קניג משפט .בעץ מכוון אינסופי עם דרגת פיצול סופית )כלומר כל קודקוד הוא מדרגה סופית( ,יש מסלול אינסופי. אם לכל nיש ריצוף חוקי ,n × nאז אנחנו יכולים לבנות עץ עם אינסוף רמות בו הרמה ה k-היא כל הריצופים החוקיים בגודל ,k × kכך שכל איבר Rברמה ה k − 1-מחברים בקשת לאיברים R′ברמה ה k-כך שהריצוף של R′מתקבל מהריצוף Rבאמצעות הוספת אריחים בשורה ה k-והעמודה ה .k-למשל ,נוכל לקבל עץ כזה )אין משמעות לשמות האריחים ,זו רק דוגמה(: 11ניתן להכריע זאת לכל בחירה של nספציפי ,למשל ע“י מעבר על כל האפשרויות ,אך לא ניתן להכריע זאת לכל ה-n-ים ,כי יש אינסוף כאלה. 52 הרצאה 8ב 7 רדוקציות 7.1 שבוע 8 רדוקציות מיפוי .. . t0 ··· 1 1 .. . ··· t4 t3 2 t2 t0 1 2 1 .. . ··· t2 t1 2 t1 t0 1 2 1 .. . .. . ... ··· t2 t4 t5 3 t3 t2 t1 2 t1 t1 t0 1 3 2 1 ושימו לב כיצד בסגול אנחנו רואים שהריצוף הוא תת-ריצוף של הבן בעץ. בעץ הזה ,שהוא אינסופי וקשיר )כי מההנחה לכל nיש ריצוף חוקי( ,כל קודקוד הוא מדרגה סופית -כל קודקוד מתחבר רק לריצופים תקינים שנמצאים ברמה מתחתיו ומכילים אותו ,ויש כמובן רק כמות סופית .לכן ,מהלמה של קניג יש מסלול אינסופי ,והמסלול הזה מגדיר לנו ריצוף חוקי של .N × N למה צריך את הלמה של קניג? למה אי אפשר להסיק ישירות שקיים ריצוף חוקי של ?N × Nיכול להיות שהייתם רוצים לבוא ולהגיד ”בגלל שיש ריצוף חוקי עבור n = 1נשתמש בו ,ואז לשורה והעמודה הבאה נוסיף אריחים הריצוף חוקי של n = 2ואז נוסיף אריחים מריצוף חוקי של n = 3וכן הלאה ...הבעיה בכך היא שבלי הלמה של קניג לא ! ניתן היה להניח שכל אחד מהריצופים שדיברנו עליהם כאן ,מוכלים אחד בשני. ∈ .TILE עכשיו אנחנו מוכנים להוכיח ש/ RE- ∈ ) HALTεTMראינו ש∈ RE\R- נשים לב ש/ RE- .(HALTεTM לכן ,מספיק להראות ש≤m TILE- ε .HALTTM כלומר ,בהינתן מ“ט Mאנחנו רוצים לבנות ,hT, H, V, t0 iכך ש hT, H, V, t0 i-הוא ריצוף חוקי של N × Nאם“ם Mלא עוצרת על .ε ∗ ∗ הרעיון הוא להשתמש בקונפיגורציות של .Mכל קונפ’ ניתן לתאר כמילה ב ,Γ · (Q × Γ) · Γ -אנחנו הולכים להשתמש בקונפ’ כדי לרצף את כל המרחב -כל פונק’ תהווה שורה ,ונשים קונפ’ עוקבות אחת מעל השנייה )עוד מעט נראה בדיוק איך זה יעבוד(. q0 ↓ היא . . . .(q0 , a) abואם נניח שδ (q0 , a) = (q1 , b, →)- למשל הקונפ’ המתאימה לסרט הבא: a a b ... אז הקונפ’ העוקבת היא . . . ,b (q1 , a) bואז סמנטית שתי השורות הראשונות בטבלת הריצוף תהיינה: .. . ··· b )(q1 , a b 2 ··· b a )(q0 , a 1 3 2 1 ··· 4 פורמלית ,יהיו לנו 3סוגים מרצפות: 53 7 שבוע 10 רדוקציות ) .1מרצפות השורה הראשונה - (q0 , ∗ ∗ = t0ו- ∗ רדוקציות מיפוי 7.1 = .t1בגלל שהקלט של האוטומט הוא המילה הריקה, .. . ... ) (q0 ,זו אכן הקונפ’ ההתחלתית ,לכן נרצה לרצף את השורה הראשונה בתור .2ריפוד -לכל c ∈ Γנגדיר אריח ∗ c c ∗ ··· t1 t1 t1 t0 ··· 4 3 2 1 . 1 . .3מרצפות שמתאימות לתזוזה של הראש -עבור המעבר )) δ (q, a) = (q ′ , b, Lעבור (q 6= qacc , qrejנגדיר אריח b )(q′ ,L ∗ )(q,a אריח זה מציין שאנחנו מעבירים את הראש לאריח שמשמאלנו במצב .q ′כמו כן ,כן לכל c ∈ Γנגדיר אריח)(q′ ,c ∗ -זהו אריח המקבל את הראש. )(q′ ,L c באופן דומה עבור תזוזה של הראש ימינה נגדיר אריחים )(q′ ,R ′ b ∗ )(q,a )(q ,c ולכל c ∈ Γנגדיר אריח ∗ ). (q′ ,R c ראשית נשים לב שיש כמות סופית של מרצפות 2 -סוגים של מרצפות שורה ראשונה |Γ| ,מרצפות ריפוד ועוד כמות סופית של מרצפות המתאימות לתזוזה של הראש ,שכן עבור תזוזה מסויימת ,יש | 1 + |Γמרצפות ,והיות ש Γ, Q-סופיות ,נקבל כי יש מספר סופי של מרצפות כנ“ל. כמו כן ,אנו רואים שאכן מרצפות אלה מתארות לנו קונפיגורציות עוקבות של מ“ט .למשל: ... 3 ··· ∗ ∗ ∗ 2 ··· ∗ ∗ ∗ 1 ··· ... ... ... ) (q2 , b b )(q2 , R) (q2 , R ∗ ∗ ∗ ∗ ··· b b ∗ ) (q1 , b ) (q1 , b )(q1 , R) (q1 , R ··· b ∗ ) (q0 , ··· ) (q0 , ∗ ∗ ∗ ∗ ∗ משפט M .7.1לא עוצרת על εאם“ם יש ריצוף חוקי של רבע המישור. הוכחה .בכיוון האחד ,אם Mלא עוצרת על εאז יש סדרת קונפיגורציות חוקית אינסופית ,ובה ניתן להשתמש כדי לרצף את רבע המישור .בכיוון השני ,אם יש ריצוף חוקי של רבע המישור ,ריצוף זה מתאר בדיוק את הריצה של Mעל εובגלל שהריצוף אינסופי M ,לא עוצרת אף פעם על .ε ∈ HALTεTMומצאנו רדוקציה .HALTεTM ≤m TILE ∈ TILEשכן / RE מסקנה / RE .7.3 54 הרצאה 9א 8 שבוע 10 מחלקות סיבוכיות זמן P, NP, EXP - חלק IV סיבוכיות חקרנו מחלקות שונות כגון R, RE, coREועתה נרצה להתמקד ב .R-אנו נסתכל על בעיות שניתנות להכרעה ,ונרצה לסווג אותן לפי קושי במובן מסויים .קושי ניתן לאפיין בכמה דרכים ,למשל: .1שייכות לקבוצת מודלים חישוביים CFL, REG -וכו’. .2משאבים שדרושים להכרעה -זמן ,זכרון ,אקראיות ,מקביליות וכו’. אנו נתמקד באפיון השני -משאבים ובפרט זמן וזכרון. כך למשל ,נוכל לשאול מהו זמן הריצה )במובן של כמות הפעולות שצריך לבצע( שצריך כדי להכריע האם מילה כלשהי נמצאת בשפה .L = 0k 1k | k ≥ 0ראינו כבר מ“ט שמכריעה אותה )למעשה זה היה על שפה מאוד דומה ,ראו דוגמה (6 באמצעות שימוש בתהליך איטרטיבי: עבור מילה באורך ,nאנחנו מבצעים לכל היותר n 2 איטרציות כאשר באיטרציה ה i-אנחנו משווים את האיבר ה i-לאיבר ה ,i + n2 -ובגלל שצריך לזוז מהאיבר ה i-לאיבר ה ,i + n2 -כל איטרציה עולה לנו בערך .O n2 8 n 2 פעולות ,לכן זמן הריצה הוא מחלקות סיבוכיות זמן P, NP, EXP - הגדרה .8.1תהי .t : N → Nנגדיר מחלקה קיימת מ”ט דטרמיניסטית חד-סרטית שמכריעה את Lועוצרת על כל קלט wתוך ))| O (t (|wצעדים ∗L ⊆ Σ = ))TIME (t (n על כן אנחנו יכולים להגיד ש ,L = 0k 1k | k ≥ 0 ∈ TIME n2 -ולמעשה ניתן למצוא אלגוריתם חכם יותר 12 עם סיבוכיות זמן ריצה ) O (n log nולהסיק ) .L ∈ TIME (n log nלמעשה זוהי דוגמה לתופעה כללית יותר: משפט .8.1אם ניתן להכריע שפה Lבזמן ) o (n log nאזי Lרגולרית) .כאשר מדובר על סימון oקטן ולא Oגדול( ניזכר שבתרגול ) 6משפט (19.1ראינו שמ“ט עם שני סרטים )ובאופן כללי גם מ“ט עם כמה סרטים( שקולה למ“ט עם סרט אחד. בפרט ,מהבנייה בהוכחה אנחנו מסיקים שלכל מ“ט דטר’ רב-סרטית שרצה בזמן )) ,O (t (nיש מ“ט דטר’ שקולה שרצה בזמן ).O t2 (n בגלל שאנו הולכים לדבר על זמני ריצה פולינומיאליים ואקספוננציאליים ,לא תעניין אותנו המעלה של הפולינום ,ולכן לא ישנה לנו כמה סרטים יש במ“ט שלנו. 12הרעיון של האלגוריתם הוא למחוק חצי מהאותיות בכל איטרציה ואז לצופף את האותיות שנשארו ,אולם אין זה קורס באלגוריתמים ולכן לא נעמיק בכך. 55 8 שבוע 10 מחלקות סיבוכיות זמן P, NP, EXP - הגדרה .8.2נגדיר מחלקה ,PTIMEאו בקיצור ,Pע“י TIME ni [ = PTIME i≥0 הגדרה .8.3נגדיר מחלקה ,EXPTIMEאו בקיצור ,EXPע“י i TIME 2n [ = EXPTIME i≥0 הערה P .היא מחלקת השפות שניתן להכריע בזמן פולינומיאלי ,ובגלל שלא משנה מהי דרגת הפולינום” ,מותר“ לנו להשתמש במ“ט רב-סרטית EXP .היא מחלקת השפות שניתן להכריע בזמן מעריכי. הגדרה .8.4מכונת טיורינג אי-דטרמיניסטית היא שביעיה M = hQ, Σ, Γ, δ, q0 , qacc , qrej iהמוגדרת באותו אופן כמו במ“ט רגילה ,רק ש δ-יכולה להעביר אותנו לכמה קונפיגורציות שונות בכל צעד ,כלומר }.δ : Q × Γ → 2Q×Γ×{R,L הגדרה .8.5נאמר שמ“ט אי-דטרמיניסטית )א“ד( Mמקבלת מילה wאם יש ריצה של Mהמסתיימת ב.qacc - אחרת) ,כלומר כל הריצות דוחות או לא עוצרות( נאמר ש M -דוחה את .wלסיום נאמר ש M -מכריעה שפה L אם L (M ) = Lובנוסף Mעוצרת על כל מילה wבכל הריצות האפשריות שלה. הגדרה .8.6זמן הריצה של מ“ט אי-דטר’ Mעל מילה wמסומן ב t (|w|)-והוא מוגדר להיות זמן הריצה של הריצה הכי ארוכה מבין כל הריצות האפשריות של Mעל .w הגדרה .8.7תהי .t : N → Nנגדיר מחלקה קיימת מ”ט א”ד חד-סרטית ∗L ⊆ Σ שמכריעה את Lועוצרת על כל קלט wתוך ))| O (t (|wצעדים בכל ריצה אפשרית = ))NTIME (t (n הגדרה .8.8נגדיר מחלקה ,NPTIMEאו בקיצור ,NPע“י NTIME ni [ = NPTIME i≥0 משפט .P ⊆ NP ⊆ EXP .8.2 הוכחה .מ“ט דטר’ היא מקרה פרטי של מ“ט א“ד לכן כמובן .P ⊆ NPכמו כן ,אנו ראינו בתרגול ) 6ראו משפט (20.1 שלכל מ“ט א“ד הרצה בזמן )) O (t (nיש מ“ט דטר’ שקולה שרצה בזמן )) ,2O(t(nולכן .NP ⊆ EXP על אף שהראינו ש ,P ⊆ NP ⊆ EXP-לא ידוע האם מדובר בהכלות ממש או בשוויונות .בפרט השאלה האם P = NP היא שאלה מפורסמת שאין עליה תשובה )וגם האם NP = EXP נותרה.Pללא תשובה כיום( .כן יודעים ש! P 6= EXP- ולכן אם P = NPאז בהכרח NP 6= EXPואם NP = EXPאז 6= NP 56 8 מחלקות סיבוכיות זמן P, NP, EXP - שבוע 10 הכוח של שימוש במ“ט א“ד ינבע בעיקר מהיכולת שלה לבצע ניחושים ,כפי שניתן לראות בדוגמה הבאה: דוגמה .נסתכל על } ,COMPOSITE = {x ∈ N | 1 < ∃p, q ∈ N, x = pqכאשר xנתון בייצוג בינארי. √ COMPOSITE ∈ EXPכי אנחנו יכולים לעבור על כל האיבר מ 1-עד x נשים לב ש- ולבדוק האם הם מחלקים את .xעל אף שסיבוכיות האלגוריתם איננה אקספוננציאלית ביחס ל ,x-חשוב לזכור שסיבוכיות האלגוריתם נמדדת ביחס לאורך הקלט ,לכן √ xהוא אקספוננציאלי באורך הקלט שהוא .log x בנוסף COMPOSITE ∈ NP ,כי אנחנו יכולים להגדיר מ“ט א“ד שמכריעה את השפה בזמן פולינומיאלי ,בכך שבהינתן x המ“ט תנחש 1 < p < x − 1ותקבל את xאם“ם pמחלק את ) xואלגוריתם זה כמובן פולינומיאלי באורך הקלט( .כיצד ניתן להגריל pשכזה? למ“ט שלנו יהיה מצב qשאחראי לכתוב במיקום כלשהו בסרט מספר כלשהו באופן לא דטרמיניסטי, כלומר }iלסיים את הכתיבהi , hלכתוב i , h1לכתוב δ (q, ) = {h0 וכך אנחנו יכולים לקבל כל מספר .pכמובן התיאור הזה מעט פשטני וצריך לדאוג שלא נכתוב מספר ארוך עד אינסוף וחסרים פרטים קטנים ,אך באנו רק להציג את הרעיון הכללי ולהראות שזה אכן אפשרי. הערה .לא מזמן גילו שלמעשה .COMPOSITE ∈ Pזו תוצאה יחסית חדשה ,והיא מהווה דוגמה לאובייקט שחשבנו שאין לו פתרון יעיל ,אך לבסוף התברר שכן .לא נלמד את האלגוריתם בו השתמשו כי הוא מסובך. דוגמה .כדוגמאות קונקרטיות לבעיות ב( NP-וב ,P-נסתכל על מסלולי המילטון ומסלולי אוילר )הזכרו בהגדרות .(0.2,0.1נגדיר ) Gגרף מכוון D − ST − HamPATH = hG, s, tiכאשר Dמציין שהגרף מכוון ) (DirectedוST- יש מסלול המילטון מ s -לt - מציין שהמסלול מתחיל מקודקוד sומסתיים ב .t-באותו אופן ניתן להגדיר בעיות אנלוגיות עבור גרפים לא מכוונים ,עבור מסלולי אוילר ,עבור גרפים בהם לא משנה איפה מתחילים ואיפה מסיימים ,והאם מדובר במסלול או במעגל. ראינו בתחילת הקורס שיש אלגוריתם יעיל שמכריע האם בגרף יש מעגל אוילר ולכן .D − ST − EULPATH ∈ P לעומת זאת ,עבור הבעיה של מסלולי המילטון ,המצב שונה .אנו יודעים ש D − ST − HAMPATH ∈ EXP-כי אנחנו פשוט יכולים לעבור על כל המילים )איברים( ב V n -ולבדוק האם אחד מהם הוא מסלול המילטון שמתחיל ב s-ומסתיים ב,t- וכמובן מעבר על כל האפשרויות יקח זמן אקספוננציאלי. כמו כן D − ST − HAMPATH ∈ NP ,כי נוכל לבנות מ“ט א“ד שמכריעה אותה בזמן פולינומיאלי באופן הבא :בהינתן hG, s, tiנפעל באופן הבא :ננחש מילה אחת π ∈ V nונקבל אם“ם πהיא מסלול המילטון מ s-ל .t-הגרלה ובדיקה שתיהן פעולות שיקחו לנו זמן פולינומיאלי ,לכן המכונה אכן רצה בזמן פולינומיאלי. שימו לב :כמות הניחושים האפשריים היא אקספוננציאלית ,אך כמות הפעולות שמבצעים על כל ניחוש היא פולינומיאלית - זה הכוח של מ“ט א“ד. ? האם ?D − ST − HAMPATH ∈ Pלא יודעים .יתכן שיש תכונה מתמטית מעניינת שטרם גילה האדם שבה ניתן להשתמש כדי להראות שכן ,אך ביינתים זו שאלה פתוחה. Pהיא מחלקת השפות שניתן להכריע בזמן פולינומיאלי ,בעוד NPהיא מחלקת השפות שניתן להכריע בזמן פולינומיאלי ע“י מ“ט א“ד .בגלל שהמון פעמים השימוש שלנו באי-דטרמיניזם יהיה כדי לנחש פתרון ואז רק לבדוק האם הוא מתאים או לא ,אז אינטואיטיבית ניתן לחשוב על Pכמחלקת הבעיות שניתן לפתור בזמן פולינומיאלי ,ועל NPכמחלקת ! הבעיות שניתן לבדוק האם פתרון כלשהו הוא נכון בזמן פולינומיאלי. נפרמל את האינטואיציה לגבי NPמההערה הקודמת. הרצאה 9ב 57 9 שבוע 10 שלמות ב) NP-המחלקה (NPC הגדרה .8.9מוודא לשפה Lהוא מ“ט דטר’ Vכך שעבורה מתקיים }קיים cכך ש V -מקבלת את )L = {w | (w, c הערך cנקרא סרטיפיקט/עד. הרעיון הוא ש V -יודעת לוודא האם ”פתרון לבעיה“ הוא נכון .במקרה של מסלול המילטון ,אנחנו יכולים להגדיר מוודא V שבהינתן גרף )שהוא wהמילה עליה רצים( ובהינתן מסלול )זהו הסרטיפיקט (cפשוט בודק האם המסלול המילטוני המתחיל ב s-ומסתיים ב ,t-ואם כן אז הוא מקבל את המילה ואחרת דוחה .כלומר, } Gגרף π ,מסלול המילטון מ s -לL (V ) = {hG, s, t, πi | t - אפיון המחלקה NP משפט L ∈ NP .8.3אם“ם יש ל L-מוודא דטרמיניסטי Vשרץ בזמן פולינומיאלי ב.w- הוכחה .בתרגול )ראו .(22.1 הקלט של Vהוא זוג ) (w, cכאשר wהיא המילה שאנחנו בודקים )אחרת וc-לא היאנוכלהעד.לעבורכדיעלשV -כולו(.תיחשב כמוודא פולינומיאלי ! ב ,w-אז האורך של העד cצריך להיות פולינומיאלי בw- 9 שלמות ב) NP-המחלקה (NPC אנו רוצים להגיד האם לאלגוריתם יש פתרון פולינומיאלי או לא .לצערנו ,לאנושות אין דרך לעשות זאת כיום ,לכן נשתמש בדבר הכי טוב הבא :המושג של -NPשלמות .מושג זה יגיד שאם שפה L ∈ NPהיא -NPשלמה ,אז אנחנו לא בהכרח יודעים להגיד אם היא פולינומיאלית ,אבל אם היא זה אומר שכל שפה ב NP-היא פולינומיאלית: הגדרה .9.1שפה Lתקרא -NPשלמה ) (NPCאם: .L ∈ NP .1 .2אם L ∈ Pאזי .P = NP בקצרה | על חשיבות המושג -NPשלמות מההגדרה אנו מבינים שהשפות שהן -NPשלמות הן שפות שאם נפתור אותן בזמן יעיל ,אנחנו נפתור בזמן יעיל את כל השפות ב NP-באשר הן! זהו קונספט עוצמתי למדי .זה אומר שאם יש לנו בעיה שהראינו שהיא -NPשלמה אבל לא הצלחנו להראות שהיא ,Pאם הבוס שלנו בעבודה ישאל ”בטוח אין אלגוריתם יעיל?“ אז לא נדע לענות לו ,אבל נוכל לפחות לומר ”לא ידוע ,אבל אם כן יש אלגוריתם יעיל אז נצליח לפתור ביעילות את כל שאר הבעיות ב,NP- בעוד ששאר האנושות טרם פתרה אותן ביעילות“ ,ובתקווה זה ישכנע אותו. להראות ששפה היא ב NP-נותן לנו חסם עליון על קושי השפה ,ולהראות שהיא -NPשלמה נותן חסם תחתון. כדוגמה ,נסתכל על השפה הראשונה שהראו שהיא -NPשלמה )הוכח ע“י קוק ולוין בשנות ה - (70-שפת הנוסחאות הספיקות. 58 10 שבוע 11 רדוקציות פולינומיאליות הגדרה .9.2משתנה בוליאני/פסוקי הוא משתנה שמקבל ערכים מ) {T, F}-אמת/שקר( .קבוצת משתנים בוליאניים תסומן בדר“כ בתור } .X = {x1 , . . . , xn נוסחה בוליאנית/פסוקית מוגדרת באופן רקורסיבי: .1כל משתנה בוליאני הוא נוסחה בוליאנית. .2אם φ1 , φ2נוסחאות בוליאניות אז גם .¬φ1 , φ1 ∧ φ2 , φ1 ∨ φ2 בהינתן השמה } f : X → {T, Fלמשתני הנוסחה ,ניתן לחשב את ערך הנוסחה )אמת/שקר( .נאמר שנוסחה Θספיקה אם יש השמה שמספקת אותה )כלומר השמה כך ש Θ-תקבל את הערך ”אמת“(. הגדרה .9.3נאמר שנוסחה Θהיא ב (Conjunctive Normal Form) CNF-אם Θהיא מהצורה 1 2 km l11 ∨ l12 . . . ∨ l1k1 ∧ . . . ∧ lm ∨ lm . . . ∨ lm כך ש lij -היא ליטרל ,כלומר } .lij ∈ {x1 , . . . , xn , x1 , . . . , xn הגדרה .9.4נגדיר את השפה } Θנוסחה ספיקה ב.SAT = {hΘi | CNF - דוגמה .בהינתן } X = {x1 , x2והנוסחה ) ) φ = (x1 ∨ x2 )∧(x1נשים לב שנוסחה זו היא ב ,(CNF-נוכל להציב x1 = T, x2 = F ולקבל שהערך של φהוא . T ∨ F ∧ (T) = F ∧ T = F בפרט נראה שבהנתן השמה ונוסחת ,CNFאפשר לבדוק אם הערך המתקבל הוא T, Fבזמן פולינומיאלי ,בפרט אפשר לעשות אקספוננציאלי.זאת בזמן לינארי .כמו כן ,כל נוסחא בוליאנית ניתנת לתרגום לנוסחת CNFשקולה ,במחיר של ניפוח ! משפט קוק-לוין משפט.SAT ∈ NPC . הוכחה .לכל נוסחה ,בהינתן השמה כלשהי למשתני הנוסחה ,ניתן לבדוק בזמן פולינומיאלי האם ההצבה נותנת Tאו ,Fולכן ,SAT ∈ NPכי יש לה מוודא פולינומיאלי .נותר להראות ש SAT ∈ P-אם“ם .P = NPלפני שנוכל לעשות זאת נצטרך להכיר נושא חדש -רדוקציות פולינומיאליות. 10 רדוקציות פולינומיאליות רדוקציות פולינומיאליות הן מקרה פרטי של רדוקציות מיפוי. הרצאה 10א הגדרה f : Σ∗ → Σ∗ .10.1היא פונקציה ניתנת לחישוב בזמן פולינומיאלי אם קיימת מ״ט Mfשעל קלט xעוצרת תוך מספר פולינומיאלי של צעדים עם ) f (xעל הסרט. הגדרה .10.2עבור ∗ A, B ⊆ Σנאמר ש A-ניתנת לרדוקציה פולינומיאלית ל B-ונסמן A ≤p Bאם קיימת ∗f : Σ∗ → Σ פונק ′ניתנת לחישוב בזמן פולינומיאלי ,כך ש.w ∈ A ⇐⇒ f (w) ∈ B- נבחין כי היות ש Mf -עוצרת לאחר מספר פולינומיאלי של צעדים ,זה גורר ש f (x)-באורך פולינומיאלי ב.x- 59 ! 10 שבוע 11 רדוקציות פולינומיאליות משפט הרדוקציה הפולינומיאלית משפט .לכל ∗ A, B ⊆ Σאם A ≤p Bו B ∈ P-אזי .A ∈ P הוכחה .בהנתן Mfשמחשבת את הרדוקציה ,ו MB -שמכריעה את Bבזמן פולינומיאלי ,נבנה MAשמכריעה את Aבזמן פולינומיאלי .בהנתן ∗ w ∈ Σהמכונה MAתריץ את Mfוכך תחשב בזמן פולינומיאלי את ) ,f (wתריץ את MBעל )f (w בזמן פולינומיאלי ב |f (w)|-וידוע ש |f (w)|-פולינומיאלי ב.|w|- עכשיו נראה מה התחליף שלנו לקבוע שאין אלגוריתם פולינומיאלי שפותר בעיה ,בפרט זו הגדרה שקולה לשלמות ב.NP- הגדרה .10.3נאמר ששפה ∗ L ⊆ Σהיא -NPקשה ) (NPHאם לכל שפה L′ ∈ NPמתקיים .L′ ≤p L הגדרה .10.4נאמר ששפה ∗ L ⊆ Σהיא -NPשלמה ) (NPCאם: ) .1חסם עליון( .L ∈ NP ) .2חסם תחתון( .L ∈ NPH טענה .10.1אם L ∈ NPHו L ∈ P-אזי .P = NP הוכחה .תהי .L′ ∈ NPמכיוון ש L-היא -NPקשה L′ ≤p L ,ולכן אם L ∈ Pגם .L′ ∈ P טענה .10.2תהי .L′′ ∈ NPHאם L′′ ≤p Lאזי L ∈ NPH הוכחה .תהי L′ ∈ NPאזי L′ ≤p L′′ ≤p Lולכן מטרנזיטיביות נובע .L′ ≤p L על כן מספיק שנמצא שפה -NPקשה אחת ונקבל כלי להוכחת -NPקשיות לשפות אחרות. טענה .10.3אם A ∈ Pאז A ≤p Bלכל ∗.B 6= ∅, Σ הוכחה .נבנה f : INPUTSA → INPUTSBכך ש Mf .w ∈ A ⇐⇒ f (w) ∈ B-תפעל כך .בהנתן ,wהיא תבדוק בזמן ∈ .ws ∈ B, wnאם w ∈ Aנחזיר ,wsואחרת נחזיר פולינומיאלי האם .w ∈ Aמכך ש B-לא טריוויאלית ,קיימות / B .wn משפט קוק-לוין הגדרה Θ} .10.5נוסחא ספיקה ב.3SAT = {hΘi | 3CNF- הגדרה .10.6יהי G = hV, Eiגרף .נאמר כי S ⊆ Vהיא -kקליקה )או -kקליק( בגרף אם |S| = kוE (v1 , v2 )- לכל .v1 , v2 ∈ S הגדרה G} .10.7גרף לא מכוון שיש בו קליקה בגודל .CLIQUE = {hG, ki | k מסקנה ) .3SAT, CLIQUE ∈ NP .10.1קל להשתכנע שזה נכון באמצעות מוודא( אם נראה ש) 3SAT ∈ NPC-זאת נוכיח בהמשך( אז נסיק שגם :CLIQUE ∈ NPC משפט.3SAT ≤p CLIQUE . 60 10 שבוע 12 רדוקציות פולינומיאליות הוכחה .נבנה רדוקציה .fבהינתן Θ = c1 ∧ c2 ∧ . . . ∧ cmכאשר ci = li1 ∨ li2 ∨ li3ו:lij ∈ {x1 , . . . , xn , x1 , . . . , xn }- fתחזיר G = hV, Eiו ,k = m-כך ש- 1 2 3 V = l11 , l12 , l13 , . . . , lm , lm , lm )E = V × V \ (A ∪ B } v1 , v2הם משתנה ושלילתו | ) A = {(v1 , v2 } v1 , v2ליטרלים של אותה פסוקית ciעבור iכלשהו | ) B = {(v1 , v2 נשים לב כי .|V | = 3mבהגדרה של Eאנו מורידים את הצלעות ב A, B-שנחשבות ”רעות“. הרדוקציה פולינומיאלית כי יש 3mקודקודים ,ועוברים על 2 ) (3mקשתות אפשריות עבור בניית .E נוכיח כי הרדוקציה נכונה ,כלומר Θ ∈ 3SATאם“ם .(G, m) ∈ CLIQUE ⇐ :נניח ש Θ-ספיקה .תהי ng : X → {T, F}oכך ש g-מספקת את ,Θכלומר בכל פסוקית ciיש לפחות ליטרל אחד ש g-מספקת .נטען ש⊆ V - liji jm S = l1j1 , l2j2 , . . . , lmהיא -mקליקה .אכן ,לכל u1 , u2 ∈ Sמתקיים כי (u1 , u2 ) ∈ Eכי הם מזוהים עם ליטרלים מפסוקיות שונות שלא מזוהים עם משתנה ושלילתו ,כי gהיא השמה ,אז לכל } i ∈ {1, . . . , nאו שרק ליטרלים עם xiמופיעים ב S-או רק כאלה עם ) xiלא יתכן שגם xiהוא אמת וגם xiהוא אמת(. ⇒ :נניח שיש ב-m G-קליק .Sבהכרח לכל פסוקית ciיש ב S-לכל היותר נציג אחד שהוא מהצורה ,li1 , li2 , li3 כי קודקודים שמזוהים עם ליטרלים מאותה פסוקית ,אין בהם קשת .מכיוון ש ,|S| = m-אז יש לכל פסוקית בדיוק נציג אחד .לכל משתנה xi ∈ Xהקודקודים שבקליק שמזוהים עם x1או ,x1הם כולם מזוהים עם x1או כולם מזוהים עם ,x1כי S קליק וב G-אין קשתות בין קודקודים שמזוהים עם משתנה ושלילתו .לכן Sמשרה השמה } .g : X → {T, Fכמו כןg , מספקת כי ל S-נציג בכל פסוקית. דוגמה .להמחשת הגרף מההוכחה .Θ = (x1 ∨ x1 ∨ x2 ) ∧ (x1 ∨ x2 ∨ x2 ) ∧ (x1 ∨ x2 ∨ x2 ) .נשים לב ש Θ-ספיקה כי נוכל לבחור בהשמה המקבל .x1 = F, x2 = Tנבנה את הגרף הבא: x2 x2 x1 l23 l22 l21 l33 x2 x2 l13 l32 x2 x1 l12 l31 x1 x1 l11 נשים לב כיצד למשל l13מחובר ל l21 -בקשת ,כי הם לא מאותה פסוקית l13 ) ciהוא מ c1 -ו l21 -הוא מ (c2 -והם לא משתנה ושלילתו ) x2הוא לא השלילה של .(x1ולעומת זאת l31 ,לא מחובר ל l33 -כי הם מאותה פסוקית .c3 משפט קוק לוין משפט ,3SAT ∈ NPH .כלומר לכל L ∈ NPמתקיים .L ≤p 3SAT 61 הרצאה 10ב 10 שבוע 12 רדוקציות פולינומיאליות רעיון ההוכחה הרדוקציה שנבנה תיקח מ“ט א“ד Mשמכריעה את ,Lולכל מילה wהרדוקציה תסתכל על הקונפיגורציות בריצה של Mעל ,wותבנה מהן נוסחה )שתהיה נוסחת CNFאך נראה שניתן להפוך כל נוסחה כזו לנוסחת (3 − CNF שתהיה ספיקה אם“ם תיאור הריצה של Mעל wהיא חוקית ומקבלת. לשם כך נבדוק ארבעה דברים בנוסחה: שהקונפ’ הראשונה היא ההתחלתית ,שהקונפ’ האחרונה מקבלת ,שכל הקונפ’ עוקבות זו לזו ,שתיאור הקונפ’ תקין )אין כמה אותיות באותו תא/כמה מצבים במקביל(. מכך אנו מסיקים שאכן יש ריצה מקבלת של Mעל wאם“ם הנוסחה ספיקה. הוכחה .נניח ש ,w ∈ L-אזי יש סדרה c0 , c1 , . . . , cmשל קונפ ′כך ש c0 -הקונפ ′ההתחלתית של ,Mולכל 0 ≤ i ≤ m − 1 מתקיים ci+1עוקבת ל ,ci -ו cm -קונפ ′מקבלת .היות ש M -עוצרת לאחר )| t (|wצעדים ,נקבל כי )| .m ≤ t (|wיתר על כן ,לכל ,iהתאים מעבר לתא ה t (|w|) + 1-הם כולם ,והראש הקורא לא מגיע אליהם. נתאר קונפ ′על ידי מילה ב .#Γ∗ QΓ∗ #-אזי ניתן לייצג ריצה של Mעל wעל ידי טבלה Tשבכל כתובת שלה יש אותיות בקבוצה } .S = Γ ∪ Q ∪ {#נסמן | n = |wולכן מימדי הטבלה הם ):(t (n) + 3) × t (n t (n) + 3הוא האורך הדרוש לתאור קונפ ′שמשתמשת ב t (n)-תאים לכל היותר ,שכן נצטרך עוד שני -#ים ועוד מצב .q ∈ Q ) t (nמסמל את גובה ,ובפרט את מספר הקונפ ′העוקבות. מכאן ,הנוסחה φתגיד אם אפשר למלא טבלה ) (t (n) + 3) × t (nבאותיות מ S-באופן שמתאר ריצה מקבלת חוקית .לכן, עלינו להגדיר את משתני הנוסחה בצורה מתאימה .תהי g : {1, . . . , t (n) + 3} × {1, . . . , t (n)} → Sהפונקציה המעתיקה את הכניסה במטריצה לאיבר הנמצא בה. לכל 1 ≤ i ≤ t (n) + 3ו 1 ≤ j ≤ t (n)-ואות s ∈ Sנגדיר משתנה .xi,j,s = 1g(i,j)=sאזי השמה gלמשתנים משרה טבלה Tכך ש.T [i, j] = s ⇐⇒ g (xi,j,s ) = True- נגדיר אם כך φ = φcell ∨ φinit ∨ φacc ∨ φmove כאשר: φcellמציינת שהשמה מספקת אכן מתארת מטריצה -בפרט היא קובעת שבכל משבצת יש בדיוק אות אחת .למשל ,בהנתן המשתנים x4,2,a , x4,2,bוהשמה gהמקיימת ) .g (x4,2,a ) = True = g (x4,2,bנקבל כי gלא מתארת מטריצה ,היות שהאיבר 4, 2לא מוגדר היטב -זה כאילו רשום בו גם aוגם .bעל כן ,בדוגמה זו ,נבחר ) ,φcell = (x4,2,a ∨ x4,2,b ) ∧ (x4,2,a ∨ x4,2,b וזה יבטיח לנו שבתא 4, 2תהיה רשומה אות אחת ואות אחת בלבד. לכן במקרה הכללי ! _ ^ (xi,j,s ) ∧ (xi,j,s1 ∨ xi,j,s2 ) s ,s ∈S | s∈S {z } | 1 2 {z } אין יותר מאות אחת יש לפחות אות אחת ^ = φcell 1≤i≤t(n)+3 )1≤j≤t(n φinitמציינת שהשורה הראשונה במטריצה מקודדת את - c0כלומר ∧ . . . ∧ xt(n)+3,1,# φinit = x1,1,# ∧ x2,1,q0 ∧ x3,1,w1 ∧ x4,1,w2 ∧ . . . ∧ xn+2,1,wn ∧ xn+3,1, 62 10 שבוע 12 רדוקציות פולינומיאליות φaccמציינת שבאחת הקומות יש קונפ ′מקבלת -כלומר שאיפשהו מופיע qaccלכן _ xi,j,qacc = φacc 1≤i≤t(n)+3 )1≤j≤t(n φmoveמציינת שהקונפ’ עוקבות זו לזו -מסתבר שניתן לתאר זאת באמצעות הסתכלות על חלונות בגודל 3 × 2בטבלה ובדיקה האם הם חוקיים )כי במעבר מקונפ’ לקונפ’ משתנים רק 3תאים ,כפי שניתן לראות בהמשך( ,לכן ^ )legal (i, j = φmove 1≤i≤t(n)+1 1≤j≤t(n)−1 כאשר ) legal (i, jמציין חלון בגודל 3 × 2שמתחיל ב ,(i, j)-וחוקי .במפורש -תהיה לנו קבוצה סופית Wשל חלונות חוקיים בגודל ,3 × 2ואנחנו נדרוש שלפחות אחד מהחלונות האלה החוקיים האלה יתאר את החלון הנוכחי ,כלומר: _ xi,j,s1 ∧ xi+1,j,s2 ∧ xi+2,j,s3 ∧ xi,j+1,s4 ∧ xi+1,j+1,s5 ∧ xi+2,j+1,s6 = )legal (i, j (s1 ,s2 ,s3 ,s4 ,s5 ,s6 )∈W נותר להגיד מי הם כל החלונות החוקיים ,Wולשם כך צריך להסתכל על מעברים ימינה ושמאלה: לכל מעבר ) ,δ (q, a) = (q ′ , b, Rולכל ,c1 , . . . , c6 ∈ Γכלומר עבור מעבר מהצורה c1 c2 c3 b q ′ c4 c5 c6 c1 c2 c3 q a c 4 c5 c6 נוסיף את החלונות בגודל 3 × 2הבאים: q ′ c4 c5 a c 4 c5 וכן החלון הקבוע c1 c2 c3 c1 c2 c3 , b q ′ c4 q a c4 , c3 b q ′ c3 q q , c2 c3 b c2 c3 q .היות ש Γ ∪ Q-סופי ,נקבל כי הוספנו מספר סופי של חלונות. לכל מעבר ) ,δ (q, a) = (q ′ , b, Lכלומר c1 c2 q ′ c3 b c 4 c5 c6 c1 c2 c3 q a c 4 c5 c6 נוסיף חלונות בדומה למקרה הקודם. ניואנס קטן שצריך להתייחס אליו הוא המקרה שאנו מנסים להתקדם שמאלה כאשר הראש הקורא מצביע על התא הראשון, ′ ובמקרה זה פשוט צריך להוסיף את החלון , ## qq abובאופן כללי צריך להוסיף חלונות המתחשבים ב #-עבור המקרים בהם אנו מסתכלים על קצה הטבלה. מכך שהחלונות מתייחסים לשתי קונפיגורציות שבאות אחת אחרי השנייה ,נסיק כי φmoveבאמת מייצגת קונפיגורציות עוקבות. נשים לב ש legal (i, j)-לא ב ,CNF-אבל אפשר להמיר אותה לנוסחא ב .CNF-היות שאורכה קבוע ,לכן אפשר להעביר אותה ,בזמן פולינומיאלי ,היות שהניפוח האקספוננציאלי הוא על קבוע ,ולכן גם קבוע .קיבלנו אפוא נוסחת CNFאך אנחנו רוצים נוסחא ב ,3CNF-לכן בלמה הבאה ) (10.1נראה ש.SAT ≤p 3SAT- לסיום ההוכחה ,נראה כי Mמקבלת את φ ⇐⇒ wספיקה. ⇐ :נניח ש M -מקבלת את ,wאזי יש ריצה מקבלת ,לכן המטריצה שמתארת אותה משרה השמה מספקת את .w ⇒ :נניח ש φ-ספיקה .תהי gהשמה מספקת .מ φcell -אנחנו מבינים ש g-מתארת מטריצה .מ φinit -אנחנו יודעים שהשורה הראשונה במטריצה מתאת קונפ ′התחלתית של Mעל .wמ φmove -אנחנו יודעים שמעבר בין שורות במטריצה מתאים למעבר בין קונפ ′עוקבות .מ φacc -אנחנו יודעים שסדרת הקונפ ′העוקבות מגיעה לקונפ ′מקבלת .סך הכל M ,מקבלת את .w כמובטח ,נראה כי .SAT ≤p 3SAT הרצאה 11א 63 10 רדוקציות פולינומיאליות שבוע 12 למה .SAT ≤p 3SAT .10.1 הוכחה .נבנה רדוקציה באופן הבא: בנייה :בהינתן קלט hϕiכאשר ϕהיא נוסחת ,CNFהרדוקציה תבנה נוסחת 3CNFשנסמן ϕ′המוגדרת באופן הבא :לכל פסוקית ctב:ϕ- .1אם ctמכילה בדיוק 3ליטרלים ,נוסיף אותה ל.ϕ′ - .2אם ctמכילה פחות מ 3-ליטרלים ,נשכפל את אחד הליטרלים עד שיהיו לנו שלושה .כך למשל הפסוקית l1תהפוך ל.l1 ∨ l1 ∨ l1 - t y1t , . . . , yk−1ונוסיף את הפסוקיות .3אם ctמכילה יותר מ 3-ליטרלים ,ct = (l1 ∨ . . . ∨ lk ) ,נוסיף משתנים חדשים הבאות ל:ϕ′ - t t t t l1 ∨ y1t ∨ y1t ∧ l2 ∨ y1t ∨ y2t ∧ l3 ∨ y2t ∨ y3t ∧ . . . ∧ lk−1 ∨ yk−2 ∨ yk−1 ∧ lk ∨ yk−1 ∨ yk−1 חישוביות :לכל פסוקית ,הרדוקציה רושמת לפלט מספר פולינומיאלי של פסוקיות מגודל ,3לכן הרדוקציה רצה בזמן שפולינומיאלי ב.hϕi- נכונות :ראשית ,נניח כי .hϕi ∈ CNF − SATנסמן את המשתנים ב ϕ-ע“י x1 , . . . , xnותהי aהשמה מספקת עבור .ϕ נוכיח כי hϕ′ i ∈ 3 − SATבכך שנבנה השמה מספקת bעבור ) ϕ′וברור ש ϕ′ -היא נוסחת .(3 − CNFראשית b ,תסכים עם aעל ההשמות של .x1 , . . . , xnנסתכל על פסוקית ) ct = (l1 ∨ . . . ∨ lkב .ϕ-בגלל ש ct -מסופקת ע“י ,aקיים iעבורו t y1t , . . . , yi−1וערך FALSE הליטרל liמקבל ערך אמת בהשמה של .aלכן נגדיר שההשמה bתיתן ערך TRUEלמשתנים t .yit , . . . , yk−1נשים לב שהשמה זו מספקת את כל הפסוקיות בבנייה שלנו שנגזרות מ ,ct -וזה נכון לכל ,ctלכן למשתנים ההשמה bמספקת את כל .ϕ′ בכיוון השני ,נניח כי hϕ′ iמסופקת ע“י איזשהי השמה .bנסתכל על ההשמה aשהיא הצמצום של bלמשתנים .x1 , . . . , xn נראה ש a-השמה מספקת עבור ϕונסיים. נסתכל על כל פסוקית ) ct = (l1 ∨ . . . ∨ lkב .ϕ-נניח בשלילה ש a-לא מספקת את .ctאז אף אחד מבין l1 ∨ . . . ∨ lkלא מסופק ע“י .bעם זאת ,היות ש b-מספקת את הפסוקיות המתאימות ב:ϕ′ - t t t t ∨ yk−1 ∧ lk ∨ yk−1 ∨ yk−1 l1 ∨ y1t ∨ y1t ∧ l2 ∨ y1t ∨ y2t ∧ l3 ∨ y2t ∨ y3t ∧ . . . ∧ lk−1 ∨ yk−2 אז בגלל ש b-לא מספקת את ) l1 , . . . , lkכלומר הם כולם עם ערך (FALSEהיא בהכרח מספקת את t t t t y1t ∨ y1t ∧ y1t ∨ y2t ∧ y2t ∨ y3t ∧ . . . ∧ yk−2 ∨ yk−1 ∨ yk−1 ∧ yk−1 ונשים לב כי מהפסוקית הראשונה והאחרונה אנו מסיקים ש b-חייבת לתת ערך TRUEל y1 -ו FALSE-ל .yk−1 -מהפסוקית t ממשיך .אנו מסיקים השנייה והלפני-אחרונה אנו מסיקים ש y2 -חייב לקבל TRUEו yk−1 -חייב לקבל ,FALSEוכך התהליך t t , yit ∨ yi+1בסתירה להנחה ,yi+1ולכן bלא מספקת את שחייב להיות iכך ש b-נותנת ערך TRUEל yit -ו FALSE-ל- ש b-מספקת את .ϕ′לכן בהכרח aמספקת את .ϕ 64 10 רדוקציות פולינומיאליות 10.1 שבוע 12 בעיית הSubset Sum- 10.1בעיית הSubset Sum- הגדרה .10.8בעיית ה Subset Sum-מוגדרת באופן הבא. קלט קבוצה )ייתכן עם חזרות( של מספרים טבעיים } A = {a1 , . . . , anומספר יעד .s ∈ N פלט האם יש B ⊆ Aכך שai - P ai ∈B = .s נגדיר את שפת בעיית ה Subset Sum-על ידי ) ai = s P ai ∈B ( hA, si | ∃B ⊆ A : = .SS משפטSS ∈ NPC . הוכחה .מתקיים כי SS ∈ NPכי מ“ט יכולה לנחש מהו Bולבדוק .או באופן שקול ,יש לה מוודא פולינומיאלי )העד הוא .(Bנבחין שהסיבוכיות פולי’ לא משנה מהו בסיס הספירה. נוכיח כי .SS ∈ NPHעל ידי כך שנראה ש .3SAT ≤p SS-נבנה f : φCNF → INPUTSSSכך שלכל Θ ∈ 3CNFמתקיים ש Θ-ספיקה אם“ם .hA, si ∈ SS תהי Θמעל } {x1 , . . . , xnעם mפסוקיות .c1 , . . . , cmנייצר ) 2 (n + mמספרים בבסיס 10ובכל אחד מהם יהיו n + m ספרות .לכל משתנה xiיהיו שני מספרים fi , tiשיקבעו לפי ערך האמת של ,xiוגם לכל פסוקית cjנייצר שני מספרים qj , pjכריפוד. במספרים ti , fiעבור 1 ≤ i ≤ nהספרה ה-i-ית היא 1וכל השאר אפס ,כלומר הם מסמנים את המשתנה .xiעבור 1 ≤ j ≤ mהספרה ה n + j-ב ti -היא 1אם xiמופיע חיובי ב ,cj -והספרה ה n + j-ב fi -היא 1אם xiמופיע שלילי ב .cj -ההצגה היא עשרונית. עבור 1 ≤ j ≤ mהגדרת pj , qjבספרה ה n + j-היא 1וכל השאר .0 כמו כן ,מספר היעד sיהיה מספר בעל n + mספרות כך שלכל 1 ≤ i ≤ nהספרה ה i-היא ,1ולכל 1 ≤ j ≤ mהספרה ה n + j-היא ,3כלומר }. . 3 .s = 1| .{zלמשל עבור n = 3ו m = 2-נקבל - s = 11133כלומר sהוא המספר אחת . . 1} 3| .{z mפעמים nפעמים עשר אלף ,מאה שלושים ושלוש. נשים לב שאם נסכום איברים בתתי קבוצות של } {t1 , f1 , . . . , tn , fn , p1 , q1 , . . . , pm , qmבשיטה של סכום ארוך ,אנו נשים לב שאין לנו - carryאין מספרים שצריך לזכור ולסחוב איתנו בחישוב ,כפי שניתן לראות בדוגמה למטה .זה אומר שהסכום של כל עמודה בלתי-תלוי בעמודות האחרות )קרי ,לא יתכן מצב שלמשל סכום האיברים בעמודה הימנית ביותר יהיה 16 ואז נצטרך לסחוב 1בחישוב של העמודה הבאה(. עתה נראה שהרדוקציה נכונה: ⇐ :תהי φספיקה ותהי fהשמה מספקת .נכניס ל B-את המספרים הבאים. לכל ,1 ≤ i ≤ nאם ,f (xi ) = Trueנכניס את .tiאם ,f (xi ) = Falseנכניס את .fiכלומר עד כה קיבלנו סכום שממלא את nהספרות הראשונות של sבאחדות ,כרצוי. היות שכל פסוקית מכילה 3ליטרלים ,אנחנו רוצים לקבל 3סך הכל מהפסוקית .לכן נוסיף ריפוד במידת הצורך .כלומר, לכל ,1 ≤ j ≤ mאם fמספקת 3ליטרלים ,לא נכניס את ,qj , piאם היא מספקת 2ליטרלים ,נכניס רק את ,piואם P . היא מספקת ליטרלי אחד ,נכניס את .pi , qjלכן ai = s ai ∈B P = .sמובטח שלכל 1 ≤ i ≤ n ⇒ :אם hA, si ∈ SSאז נגדיר את } f : X → {False, Trueבאופן הבא .יהי Bכך שB- בדיוק אחד מתוך ti , fiבתוך ) Bכי הספרות 1, . . . , nב B-הן .(1נגדיר f (xi ) = Trueאם ti ∈ Bוf (xi ) = False- אם .fi ∈ Bאזי fאכן מספקת ,כי כדי להגיע ל ,3-אז לכל פסוקית ,cjנתרם לפחות 1מהליטרלים של .X דוגמה ) .10.1הבנייה בהוכחה( עבור ) Θ = (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x3 ) ∧ (x1 ∨ x2 ∨ x2המספרים 65 10 רדוקציות פולינומיאליות 10.1 שבוע 12 הם )אנו מזכירים שצריך להתייחס לשורות בטבלה כמספרים(: 4 3 2 1 3 1 2 1 0 0 1 0 1 0 t1 0 1 1 0 0 1 0 f1 0 1 0 1 0 0 1 t2 1 0 1 0 0 0 1 f2 0 0 1 1 1 0 0 t3 0 1 0 0 1 0 0 f3 0 0 0 1 0 0 0 p1 0 0 0 1 0 0 0 q1 0 0 1 0 0 0 0 p2 0 0 1 0 0 0 0 q2 0 1 0 0 0 0 0 p3 0 1 0 0 0 0 0 q3 1 0 0 0 0 0 0 p4 1 0 0 0 0 0 0 q4 3 3 3 3 1 1 1 s 66 בעיית הSubset Sum- 11מחלקות סיבוכיות זכרון 11 שבוע 12 מחלקות סיבוכיות זכרון הגדרה .11.1תהי Mמ“ט דטרמינסטית ,חד סרטית ,העוצרת על כל קלט .סיבוכיות הזכרון של Mהיא פונקציה s : N → Nכך שעל כל קלט באורך M ,nמשתמשת לכל היותר ב s (n)-תאים .במקרה זה נאמר ש M -רצה בשטח ).s (n עבור מ“ט א“ד סיבוכיות הזכרון ) s (nהיא כמות התאים המקסימלית ש M -צריכה על פני כל הריצות האפשריות שלה על מילה באורך .n הגדרה .11.2תהי .s : N → Nנגדיר מחלקה קיימת מ”ט דטרמיניסטית חד-סרטית עם סיבוכיות זכרון )s (n שמכריעה את L קיימת מ”ט אי-דטרמיניסטית חד-סרטית עם סיבוכיות זכרון )s (n שמכריעה את L ∗L ⊆ Σ ∗L ⊆ Σ = ))SPACE (s (n = ))NSPACE (s (n עולה השאלה ,מה הקשר בין .TIME, SPACE הרצאה 11ב משפט .לכל פונקציה f : N → Nמתקיים )).TIME (f (n)) ⊆ SPACE (f (n הוכחה .אם מ“ט Mעוצרת תוך ) f (nצעדים ,היא עוברת בלכל היותר ) f (nתאים )במקרה הקיצוני היא תתקדם כל הזמן ימינה(. אך האם ההכלה השנייה נכונה? משפט .לכל פונקציה f : N → Nמתקיים )).SPACE (f (n)) ⊆ TIME 2O(f (n הוכחה .נבחין שמכונה דטר ′שעוצרת ,לא מבקרת באותה קונפ ′פעמיים ,כי אחרת ,הייתה נכנסת ללולאה ,ולא עוצרת .נשאל, כמה קונפ ′שונות יש למוכנה עם סיבוכיות זכרון ) ?s (nכל קונפ ′ניתנת לתיאור כמילה ב- )Q × s (n) × Γs(n תוכן ↓ הסרט מיקום ↓ ↓ לראש מצב אבל |Q| = c1קבוע ו |Γ| = c2 -גם קבוע ,לכן מספר הקונפ ′הוא לכל היותר ))= 2log c1 · 2log(s(n)) · 2s(n) log c2 = 2O(s(n מכך שאין כפילויות ,המכונה עוצרת לאחר לכל היותר )) 2O(s(nצעדים. 67 )s(n c1 · s (n) · c2 שבוע 12 11מחלקות סיבוכיות זכרון הגדרה .11.3נגדיר SPACE nk [ = PSPACE k∈N NSPACE nk [ = NPSPACE k∈N מסקנה PTIME ⊆ PSPACE .11.1ו.NPTIME ⊆ NPSPACE- אבל מה היחס בין ?NP, PSPACEהטענה הבאה תיתן אינטואיציה. טענה .SAT ∈ SPACE (n) .11.1 הוכחה .נבנה מ“ט דטרמינסטית Mשרצה בשטח לינארי .היא תעבור על כל ההשמות האפשריות ,ותקבל אם אחת מהן מספקת את הנוסחא ,רק שבכל שלב ,היא תחזיק רק השמה אחת על הסרט -לכן סיבוכיות זמן הריצה יהיה אקספוננציאלי אך סיבוכיות הזכרון תהיה לינארית. תהי }⊥{ ∪ g : 2X → 2Xפונקציה שממפה השמות להשמות עוקבות באופן שמכסה את כל X ,2כלומר קיים סידור | f1 , f2 , f3 , . . . f2|Xשל ,2Xכך שלכל השמה fiיתקיים g (fi ) = fi+1ו .g (f2|X| ) =⊥-היא ניתנת לחישוב בשטח לינארי )למשל סידור לקסיקוגרפי(. בהנתן נוסחא φמעל .Xתהי gפונקציה שעוברת על כל ההשמות M .תפעל באופן הבא. M .1כותבת על הסרט את .f1 M .2משערכת את φלפי הנוסחא שרשומה על הסרט. )א( אם השתערכה ל ,T-מקבלת. )ב( אם השתערכה ל ,F-היא מחשבת את ) - g (fiאם ⊥= ) g (fiהיא דוחה ואחרת חוזרת ל.2- משפט.NP ⊆ PSPACE . הוכחה .תהי .L ∈ NPאזי קיים מוודא פולינומיאלי ל .L-כלומר קיימת מ“ט דטרמינסטית ,Vשרצה בסיבוכיות פול ′ ) ,t (nכך ש V }-מקבלת את .L = {w | ∃c ∈ Σ∗ : wנבנה מכונה Mשמכריעה את Lבזכרון פול .′בהנתן מילה ,wיהי c1 , . . . , ckסידור של כל המילים ב .Σt(|w|) -המכונה עוברת על כל העדים ומריצה את Vעל ) (w, ciעל כל עד .ciכל ההרצות משתמשות באותו זכרון .מכיוון ש V -רצה בזמן פולינומיאלי )| ,t (|wהיא משתמשת בזכרון פולינומיאלי )|.t (|w אם יש עד ciכך ש V -מקבלת את ) ,(w, ciאזי המכונה עוצרת ומקבלת ,ואחרת היא עוצרת ודוחה .על כן סיבוכיות הזכרון שלה היא מעבר על כל העדים ,והרצה של .Vמכיוון ש V -רץ בזמן פולינומיאלי ,מתקבל סך הכל זכרון פולינומיאלי ,בפרט ב.O (t (|w|))- מסקנה .P ⊆ NP ⊆ PSPACE ⊆ NPSPACE .11.2 68 11מחלקות סיבוכיות זכרון שבוע 12 הגדרה .11.4נאמר ששפה ∗ L ⊆ Σהיא -NPSPACEקשה ) (NPSPACE − Hאם לכל שפה L′ ∈ NPSPACEמתקיים .L′ ≤p L ′ ′ נאמר ש L-היא -PSPACEקשה ) (PSPACE − Hאם לכל שפה L ∈ PSPACEמתקיים .L ≤p L הגדרה .11.5נאמר ששפה ∗ L ⊆ Σהיא -PSPACEשלמה ) (PSPACE − Cאם: ) .1חסם עליון( .L ∈ PSPACE ) .2חסם תחתון( .L ∈ PSPACE − H והגדרה דומה מתקבלת עבור .NPSPACE הערה | על ההגדרה למה הגדרנו שפה -PSPACEקשה באמצעות רדוקציה פולינומאילית בזמן ) (L′ ≤p Lולא פולינומיאלית במקום? נשים לב שכל שפה L′ ∈ PSPACEניתן להוריד ברדוקציה בסיבוכיות מקום פולינומיאלית לכל שפה לא טריוויאלית - Lכי אם L′ ∈ PSPACEאז יכלנו לקחת רדוקציה שפשוט פותרת את ,L′כלומר בניית הרדוקציה הייתה נעשית באמצעות לקיחת מ“ט Mשפותרת את L′בסיבוכיות מקום פולינומיאלית )וקיימת כזו מההנחה (L′ ∈ PSPACE ∈ w′שנבחר ואז אם Mמקבלת מילה כלשהי ,אז הרדוקציה תחזיר מילה ,w ∈ Lואחרת תחזיר מילה כלשהי / L מראש )קיימות כאלה מילים מההנחה ש L-לא טריוויאלית(. כלומר ,כדי שההגדרה תהיה מעניינת ויהיה בכלל על מה לדבר ,צריך רדוקציה שפולינומיאלית בזמן ולא במקום. )בפרט כל רדוקציה שחזקה יותר מ ,P-כמו למשל רדוקציה ב ,PSPACE-לא תיתן לנו מידע לגבי בעיות ב.(P- נותר להבין מה הקשר בין .NPH, PSPACE − Hבפרט נרצה לדעת האם ) NP = PSPACEלמעשה זה לא ידוע!(. הערה .נניח שיש לנו שפה Lשהיא -NPSPACEקשה .אם L ∈ NPאז ,NP = PSPACEואם L ∈ Pאז .P = PSPACE כיום לא ידוע אם קיימת שפה כזו. 69 11מחלקות סיבוכיות זכרון 11.1 11.1 שבוע 13 בעיות הריקנות והאוניברסליות בעיות הריקנות והאוניברסליות ניזכר בבעיות הריקנות והאוניברסליות )ראו :(4.1 הרצאה 12א הגדרה .11.6נגדיר } Aהוא NFAכך שEMPTYNFA = {hAi : L (A) = ∅ - } Aהוא NFAכך שALLNFA = {hAi : L (A) = Σ∗ - מתקיים EMPTYNFA ∈ Pכי EMPTYNFA ∈ Pשכן אנחנו יכולים לבדוק באמצעות אלגוריתם BFSהאם יש מסלול למצב מקבל )ו P-סגורה למשלים(. ∗ כמו כן) ALLDFA ∈ P ,שימו לב DFA :ולא (NFAכי עבור A DFAמתקיים A ∈ ALLDFAאם“ם L (A) = Σאם“ם ∅ = L Aאם“ם ,A ∈ EMPTYNFAובגלל שהבנייה של Aמתקבלת מהחלפת המצב הדוחה והמקבל אז האלגוריתם פולינומיאלי. בנייה זו לא עובדת עבור ) NFAהיזכרו בדיון לאחר ,(4.1לכן ננסה לראות מה כן אפשר להגיד על - ALLNFAבפרט נראה כי .ALLNFA ∈ NPSPACE נשים לב שעבור A NFAניתן לבדוק האם ) w ∈ L (Aבזמן פולי’: נגדיר Aw DFAעבורו }) L (Aw ) = {wבגרף של Awיהיה מסלול ישיר מהמצב ההתחלתי למצב המקבל שמתאים ל,w- ובהינתן כל ”סטייה“ מהמילה wאנחנו ניכנס לבור דוחה( .ניתן בזמן פולי’ לחשב אוטומט מכפלה של ,A, Awואז באמצעות השפה של אוטומט המכפלה אפשר להכריע כי ) w ∈ L (Aאם“ם ∅ =.L (A) ∩ L (Aw ) 6 טענה שגויה ∈ wכך ש |w|-פולינומיאלי ב.A- טענה) .שגויה!( אם ∗ L (A) 6= Σאז יש מילה )/ L (A לו טענה זו הייתה נכונה היינו מסיקים ממנה כי ,ALLNFA ∈ NPכי אפשר בזמן פולינומיאלי האם ).w ∈ L (A נראה )כהעשרה( דוגמה נגדית לטענה הנ“ל: נגדיר משפחת -NFAים A1 , A2 , . . .כך שלכל i ≥ 1מתקיים ש ,L (Ai ) 6= Σ∗ -הגודל של Aiפולי’ ב ,i-וכן אורך המילה הקצרה ביותר שלא ב L (Ai )-אקספוננציאלי ב.A- תהי p1 , p2 , . . .סדרת המספרים הראשוניים )קרי .(p1 = 2, p2 = 3, p3 = 5, . . . ,לכל iנגדיר Ai NFAמעל הא“ב }Σ = {a כך ש- mod pi mod p2 ∨ . . . ∨ k 6= 0 mod p1 ∨ k 6= 0 = L (Ai ) = ak | k = 0 ∨ k 6 0 ניתן להגדיר Aiכזו עם i + 1מצבים התחלתיים } {q0 , . . . , qiכך שמ q0 -נקבל את ,εומ) qj -לכל (1 ≤ j ≤ iנעבור בלולאה עם pjמצבים שכולם מקבלים למעט - qjלכן מ qj -אנו מקבלים מילים מהצורה akכך ש .k 6= 0 mod pj -מספר המצבים ב Ai -הוא 1 + p1 + p2 + . . . + piוידוע ש pi -הוא )) O (i log iראו משפט צ’בישב מתורת המספרים האלמנטרית(, ולכן הגודל של Aiאכן פולי’ ב.i- i Q ∈ akשכן k 6= 0וכן k ≡ 0 mod pלכל } .p ∈ {p1 , . . . , piלכן ∗.L (Ai ) 6= Σ = .kנשים לב ש/ L (Ai )- יהי pk k=1 עתה ,נסתכל על מספר xכך ש .x < k-אזי ישנו מספר ראשוני } p ∈ {p1 , . . . , piכך ש) p ∤ x-כלומר pלא מופיע בפירוק של xלראשוניים( ,ולכן x 6= 0 mod pולכן ) ,ax ∈ L (Aiלכן akהיא המילה הקצרה ביותר שאינה ב ,L (Ai )-וכמובן k אקספוננציאלי ב ,i-לכן סיימנו. 70 11מחלקות סיבוכיות זכרון 11.1 שבוע 13 בעיות הריקנות והאוניברסליות אז מה כן אפשר להגיד אם הטענה הקודמת שגויה? טענה נכונה ∈ wכך ש.|w| ≤ 2|Q| - טענה) .נכונה!( אם ∗ L (A) 6= Σאז יש מילה )/ L (A הוכחה w .עד לחוסר הריקנות של .Aכזכור כאן Aלא מתקבל ע“י סתם החלפת המצבים שכן הוא ,NFAאלא למשל באמצעות ה .Subset Construction-לכן wכתוב על מסלול פשוט מ) Q0 -המצב ההתחלתי ב (A-ל F ′ -ב,A- ואורך מסלול זה הוא לכל היותר |.2|Q טענה .ALLNFA ∈ NPSPACE .11.2 הוכחה .מהטענה הקודמת ,אנו מסיקים שכדי להראות ש ,ALLNFA ∈ NPSPACE -מספיק לעבור על כל המילים wשאורכן ∈ .wאולם | 2|Qהוא גודל אקספוננציאלי ,ולכן כדי להשתמש בכמות זכרון פולי’ לא קטן מ ,2|Q| -ולבדוק האם )/ L (A נשמור את כל המילה wאלא נבצע מעין On − the − fly Subset Constructionבאמצעות מ“ט א“ד ,Mשתנחש כל פעם אות נוספת ,ותראה לאילו מצבים היא מובילה אותנו .אם בשלב מסויים ,אחרי רצף אותיות ,σ1 , . . . , σkאנחנו מגיעים למצב ש ,S ∩ F = ∅-זה אומר שאין ריצה מקבלת של Aעל ,w = σ1 · . . . · σkולכן נקבל את המילה. קונקרטית ,בהינתן M ,A NFAתפעל כך: .1נאתחל c = 0 .S := Q0 , .2כל עוד |:c ≤ 2|Q )א( אם ∅ = S ∩ Fאז נעצור ונקבל. )ב( אחרת ,ננחש )באמצעות הא“ד של (Mאות σ ∈ Σונבצע השמה ) ,S := δ (S, σונבצע .c + + .3אם הגענו לשלב זה )כלומר לא קיבלנו את המילה בשלב ,(2נדחה את המילה. ∈ wכך ש ,|w| ≤ 2|Q| -ולכן יש ריצה של Mשתנחש את wותקבל נכונות :ראינו שאם ∗ L (A) 6= Σאז יש מילה )/ L (A את .Aאם ∗ L (A) = Σאז כמובן כל ריצה של Mתדחה. זכרון :בכל רגע נתון אנחנו שומרים רק את c - c, Sהוא מספר הקטן מ 2|Q| -ולכן צריך רק | |Qתאים כדי לייצג אותו )בבינארית למשל( S ⊆ Q ,ולכן ,|S| ≤ Qולכן c, Sדורשים כמות זכרון פולי’. הערה .אלגוריתם זה רץ בזמן שאינו פולי’ )אלא אקספוננציאלי( ולכן לא הכנסנו את השפה ל.NP- בתרגול נוכיח את משפט סביץ’ שיעזור לנו להסיק PSPACE = NPSPACEובפרט נסיק .ALLNFA ∈ PSPACE ′ משפט סביץ משפט .לכל פונקציה ) S (n) ∈ Ω (log nמתקיים ).NPSPACE (S (n)) ⊆ SPACE S 2 (n הוכחה .ראו משפט 25מהתרגול. מסקנה .ALLNFA ∈ PSPACE .11.3 הוכחה .ממשפט סאביץ’ נובע PSPACE = NPSPACEולכן הדרוש מתקיים. 71 11מחלקות סיבוכיות זכרון 11.1 שבוע 13 בעיות הריקנות והאוניברסליות טענה .ALLNFA ∈ PSPACE − H .11.3 הוכחה .תהי .L ∈ PSPACEנרצה להראות ש ,L ≤p ALLNFA -ולשם כך נראה באופן שקול כי - L ≤p ALLNFAאותה ∈w ∈ )/ L ⇔ f (w רדוקציה fמתאימה ל L ≤p ALLNFA -כי אם w ∈ L ⇔ f (w) ∈ ALLNFAאז באופן שקול / ALLNFA כלומר .w ∈ L ⇔ f (w) ∈ ALLNFA על כן ,אנו רוצים לבנות פונק’ fהניתנת לחישוב בזמן פולי’ ,שבהינתן מילה ∈ .w ∗/ L ⇔ L (A) = Σ′ ∗ w ∈ Σמחזירה A NFAכך ש- 13 מהיות ,L ∈ PSPACEקיימת מ“ט דטר’ Mשמכריעה את Lבשטח פולי’ ).s (n ברעיון ההוכחה ,נבנה את Aכך שיקבל קלט xאם“ם מתקיים אחד התנאים הבאים: x .1לא קידוד חוקי של ריצה של Mעל .w x .2קידוד של ריצה דוחה של Mעל .w הא“ב של Aהוא }.Σ′ = Γ ∪ (Q × Γ) ∪ {# 14 כל קונפ’ תקודד ע“י רצף אותיות באופן הבא.#γ1 γ2 . . . (q, γi ) . . . γs(n) # : ∗ ∈ wאז אין אף ריצה מקבלת ,ולכן תמיד אחד מבין התנאים 1, 2חייב להתקיים ,לכן לכל ) A ,x ∈ (Σ′תקבל אם / L את ) xאפילו אם xבמקרה מקודד באופן חוקי את הריצה של Mעל wעדיין נקבל אותה כי אין ריצה מקבלת מההנחה ∈ .(wמנגד אם w ∈ Lאז כן יש xשמתאר ריצה חוקית מקבלת של Mעל ,wולכן לא נקבל אותו .כלומר / L ∈ wכנדרש. ∗/ L ⇔ L (A) = Σ′ כדי להשלים את ההוכחה נותר לתאר איך בדיוק ה A NFA-תעשה את מה שאנחנו רוצים .נסמן .w = a1 a2 . . . an כדי לבדוק שמילה ) xלא( מתארת ריצה חוקית מקבלת נבדוק ארבעה דברים -ש x-מתארת קונפ’ חוקיות ,שהקונפ’ הראשונה היא ההתחלתית ,שכל הקונפ’ ש x-מקודדת עוקבות זו לזו ושהריצה מקבלת: .1הריצה מקבלת -פשוט נבדוק האם יש אות ב {qrej } × Γ-המופיעה ב ,x-אם כן נקבל )ואחרת נדחה(. .2קונפ’ חוקיות -נבדוק האם xהיא מהצורה 2 1 )#σ11 σ21 . . . σs(n )#σ12 σ22 . . . σs(n #... לשם כך ניקח מצב התחלתי q#שמצפה לקרוא ) #אם הוא קורא משהו אחר הוא מעביר לבור מקבל( ,והוא יעביר אותנו למצב q1שיצפה לראות אות ב ,Γ ∪ (Q × Γ)-והוא יעביר אותנו למצב ) q2אלא אם שוב קראנו משהו אחר ואז הוא יעבירנו לבור מקבל( וכך נמשיך עד ל qs(n) -שיעבירנו ל q# -ומשם נמשיך באותו תהליך .כמו כןq# , q2 , . . . , qs(n) , 1 2 ).(#σ11 σ21 . . . σs(n )#σ12 σ22 . . . σs(n יהיו מקבלים )רק q1לא כי זה אומר ש x-אכן מהצורה # . . . .3קונפ’ ראשונה התחלתית -באופן דומה לסעיף הקודם )וגם בדומה לאוטומט Awשראינו קודם( פשוט נבדוק שx- מתחילה ב) #a1 a2 . . . an . . . #-כאשר אורך מחרוזת זו הוא ,(s (n) + 2כמתואר באיור הבא: } {\ Σ′ }Σ′ \{# } {\ Σ′ }) Σ′ \{(q0 , a1 } Σ′ \{an # ... . . . an 13כאשר Σהיא הא“ב של השפה Lו Σ′ -היא הא“ב של .A 14כאשר Γ, Qהם א“ב העבודה וקבוצת המצבים של Mבהתאמה. 72 } Σ′ \{a2 a2 ) (q0 , a1 # 11מחלקות סיבוכיות זכרון 11.1 שבוע 13 בעיות הריקנות והאוניברסליות .4קונפ’ עוקבות -בדומה למה שהיה ב ,SAT-נסתכל על חלונות ונוודא תקינות .נסמן ב next (σi−1 , σi , σi+1 )-את הערך שאנחנו מצפים לראות במקום ה i-בקונפ’ העוקבת לקונפ’ הנוכחית .כך למשל )δ (q, a) = (q ′ , d, L b )δ (q, a) = (q ′ , d, R )(q ′ , b = )next ((q, a) , b, c וכן )δ (q, b) = (q ′ , d, L d )δ (q, b) = (q ′ , d, R d = )next (a, (q, b) , c כדי לממש זאת ב ,NFA-יהיה לנו חוג עצמי שינסה לנחש מתי תבוא הפרה ,ואז יהיו לנו כ |Σ′ | -מצבים שכל אחד 3 מהם יזכור על איזו שלשה σi−1 , σi , σi+1אנחנו מסתכלים כרגע .אז היא תקרא כ s (n)-אותיות עד שתגיע לאות σi′שנמצאת במיקום ה i-בקונפ’ הבאה ,ותבדוק האם - next (σi−1 , σi , σi+1 ) = σi′אם כן היא תדחה את המילה ואחרת תקבל ,כמתואר באיור הבא .שימו לב שמשמעות החצים למטה וה · · · -הן שיש לנו עוד מסלולים כמו השניים שציירנו -מסלול אחד לכל שלשת אותיות. Σ′ ) next(σ1 , σ2 , σ3 ... )s(n ... σ3 σ2 Σ′ σ 1 ) Σ′ \next(σ1 , σ2 , σ3 Σ′ ) Σ′ \next(σ1′ σ2′ , σ3′ σ1′ ) next(σ1′ σ2′ , σ3′ . . . s(n) . . . σ3′ σ2′ ... ... ... Σ′ 73 11מחלקות סיבוכיות זכרון 11.1 שבוע 13 בעיות הריקנות והאוניברסליות דוגמאות לרדוקציות עתה כשיש לנו שפה שהיא -PSPACEקשה ,אנחנו יכולים להשתמש ברדוקציה כדי להראות ששפות נוספות הן -PSPACEקשות. נראה לכך כמה דוגמאות. דוגמה A1 } .11.1ו-NFA A2 -ים כך ש.CONTNFA = {hA1 , A2 i | L (A1 ) ⊆ L (A2 ) - נשים לב כי A ⊆ Bאם“ם ∅ = A ∩ Bכלומר ) L (A1 ) ⊆ L (A2אם“ם ∅ = ) L (A1 ) ∩ L (A2אם“ם ∅ = ,L A1 × A2 כאשר A1 × A2הוא אוטומט מכפלה ו A2 -מתקבל מה .Subset − Construction-נשים לב כי | A1 × A2 = |Q1 | · 2|Q2 שזה אקספוננציאלי ,אבל אנחנו יכולים לבצע On The Fly Subset − Constructionבדומה למה שעשינו בטענה ,11.2ומכך להסיק .CONTNFA ∈ PSPACE נראה ש CONTNFA ∈ PSPACE − H-באמצעות רדוקציה .ALLNFA ≤ CONTNFA 15 כלומר ,נמצא רדוקציה fשבהינתן NFA ∗ Aתחזיר זוג -NFAים A1 , A2כך ש L (A) = Σ∗ -אם“ם ) .L (A1 ) ⊆ L (A2מכך ש L (A) ⊆ Σ -מתקיים ∗ L (A) = Σ אם“ם ) ,Σ∗ ⊆ L (Aלכן נוכל לבחור את A1להיות אוטומט עם מצב יחיד ומקבל )כלומר ∗ (L (A1 ) = Σו ,A2 = A-לכן מתקיים ∗ L (A) = Σאם“ם ) L (A1 ) ⊆ L (A2כנדרש .נשים לב כמובן שרדוקציה זו אכן פולי’. דוגמה DFA D1 } .11.2ו NFA A2 -כך ש.CONTDFA,NFA = {hD1 , A2 i | L (D1 ) ⊆ L (A2 ) - שפה זו יותר קלה מ- CONTNFAלכן היא גם ב .PSPACE-כמו כן ,אותה רדוקציה מהדוגמה הקודמת עובדת גם כאן ,לכן ∈ CONTDFA,NFA .PSPACE − H דוגמה NFA A1 } .11.3ו DFA D2 -כך ש.CONTNFA,DFA = {hA1 , D2 i | L (A1 ) ⊆ L (D2 ) - גם שפה זו ב ,PSPACE-אולם הפעם לא נוכל להראות CONTNFA,DFA ∈ PSPACE − Hבאמצעות הרדוקציה הקודמת. הרדוקציה לא עובדת כאן כי אז בחרנו את ) A2שכאן נקרא (D2להיות ה ,A NFA-אבל בגלל ש D2 -חייב להיות ,DFA אז הרדוקציה לא תקינה )אנחנו שמים NFAבמקום שבו אנו מצפים לקבל .(DFA למעשה ,בעיה זו קללה אינה -PSPACEקשה .מסתבר ש ,CONTNFA,DFA ∈ P-כי ניתן להכריע האם ∅ = ,L A1 × D2 בזמן פולי’ )שכן הפעם D2מתקבל פשוט מהחלפת המצב המקבל והדוחה ,כי D2הוא .(DFA דוגמה DFA D} .11.4וקיים DFAשקול עם לכל היותר kמצבים | .MINDFA = {hD, ki נשים לב שלא משנה אם kמיוצג בבינארית או אונארית שכן אם |D| < kנוכל לקבל את המילה ישר ,ואם | k ≤ |Dאז גודל הקלט עדיין יותר גדול מהיצוג של kבכל בסיס. מתקיים MINDFA ∈ Pכפי שראינו באלגוריתם המזעור )ראו משפט .(4.2 דוגמה NFA D} .11.5וקיים NFAשקול עם לכל היותר kמצבים | .MINNFA = {hD, ki אפשר להראות כי ) MINNFA ∈ NPSPACE ( = PSPACEבאמצעות בחירת עד שיהיה NFAשקול קטן )ובפרט גודלו פולינומיאלי( ,אך לא נפרט על כך לעומק. ∗ נראה כי .MINNFA ∈ PSPACE − Hנראה .ALLNFA ≤ MINNFAנשים לב של A-יש מצב יחיד אם“ם .L (A) = ∅∨L (A) = Σ לכן ,בהינתן ,A NFAהרדוקציה fתבדוק האם ∅ = )) L (Aזו בעיית הריקנות וראינו שאותה ניתן לפתור בזמן פולי’ גם עבור -NFAים( -אם לא אז fתחזיר ,hA, 1iואחרת fתחזיר hB, 1iכאשר Bהוא אוטומט המתאר שפה שאנחנו יודעים שאינה טריוויאלית ,כמו למשל }.L = {w : |w| = 1 ∈ hB, 1iכי ) L (Bאינה שפה טריוויאלית ולכן לא ניתנת ∈ ,Aאם ∅ = ) L (Aאז אכן / MINNFA נשים לב שאם / ALLNFA לתיאור באמצעות מצב יחיד .אם ∅ = L (A) 6עדיין ) L (Aאינה טריוויאלית ולכן לא ניתנת לתיאור באמצעות מצב יחיד ∈ .hA, 1i ולכן / MINNFA אם A ∈ ALLNFAכמובן .hA, 1i ∈ MINNFA 15על אף שהראינו רק ש ,ALLNFA ∈ PSPACE − H-לפי משפט אימרמן מתקיים )) NSPACE (S (n)) = coNSPACE (s (nלכל ,s (n) ≥ log n ובפרט .NPSPACE = coNPSPACEלכן .ALLNFA ∈ PSPACE − H 74 הרצאה 12ב 12 סיבוכיות זכרון תת-לינארית 12 שבוע 14 סיבוכיות זכרון תת-לינארית אנו מעוניינים לדבר על סיבוכיות תת-לינארית .בגלל שבמודל הנוכחי של מ“ט אנחנו נצטרך כמות לינארית של זמן וזכרון רק כדי לקרוא את הקלט .כלומר ,כל מ“ט שרצה בזמן תת-לינארי אפילו לא תספיק לסיים לקרוא את הקלט. 16 זמן תת-לוגריתמי ,לא מעניין במודל המ“ט ,היות שאין לנו גישת random − accessלזכרון. על כן ,נגדיר מודל חדש של מ“ט עם כמה סרטים )וגם כמה ראשים קוראים(: סרט קלט לקריאה בלבד )עליו רשומה מילת הקלט ולא ניתן לכתוב על סרט זה ,רק לקרוא ממנו( וסרט עבודה לקריאה וכתיבה .נראה בהמשך שבמשרנים )יוגדר בהמשך( יהיה גם סרט פלט לכתיבה בלבד -כל פעם שאנחנו כותבים לסרט הפלט אות הראש הקורא של הסרט זז ימינה ,הוא לא יכול לזוז שמאלה ,ואם לא כותבים לתוכו אות אז הוא נשאר במקום. ··· סרט קלט לקריאה בלבד ··· סרט עבודה לקריאה וכתיבה ··· סרט פלט לכתיבה וכתיבה עתה עבור מ“ט דטרמיניסטית פונק’ המעברים δתחליט ,על סמך המצב הנוכחי ,האות הרשומה בסרט הקלט והאות הרשומה בסרט העבודה ,לאן להזיז את כל אחד מהראשים שלה ,מה לכתוב ולאיזה מצב לעבור. הגדרה .12.1סיבוכיות הזכרון של מ“ט Mהיא פונקציה s : N → Nכך שעל כל קלט באורך M ,nמשתמשת לכל היותר ב s (n)-תאים בסרט העבודה. הגדרה .12.2נגדיר את המחלקות )L = LOGSPACE = SPACE (log n )NL = NLOGSPACE = NSPACE (log n כאשר ) SPACE (log n) , NSPACE (log nמוגדרים מעל מכונות טיורינג עם שני סרטים )קלט ועבודה(. ? הערה | על L = NL ? ? בדומה ל ,P = NP-גם הבעיה L = NLהיא בעיה פתוחה .ברור ש ,L ⊆ NL-אך לא ידוע האם הכיוון השני נכון. סימון ממשפט סאביץ’ )שנכון גם עבור סיבוכיות לוגריתמית( נובע ש,NL = NSPACE (log n) ⊆ SPACE log2 n = L2 - ויותר מזה אנחנו לא יודעים .יתכן שיום יבוא ויוכיחו ש L2 = L-ומכך נסיק .NL = L דוגמה .EQ = {0n 1n | n ≥ 0} ∈ L .ניתן להכריע שפה זו בסיבוכיות זכרון לוגריתמית ,בכך שנשתמש בסרט העבודה כמונה, ונספור בבסיס b ≥ 2כמה אפסים יש ,ואז נספור כמה אחדות יש באותו בסיס ,bואז נראה אם יצא אותו דבר .בגלל שאנחנו סופרים בבסיס קבוע ,נצטרך רק כמות לוגריתמית של זכרון. 16יש שפות שלא צריך לקרוא את כל המילים בהן במלואן כדי להכריע אותן ,כמו למשל שפת המילים שמתחילות ב ,a-אך שפות אלה משעממות. 75 הרצאה 13א 12 סיבוכיות זכרון תת-לינארית 12.1 שבוע 14 ··· 1 1 0 0 0 ··· 0 1 # 1 1 12.1רדוקציה תת-לינארית סרט קלט לקריאה בלבד סרט עבודה לקריאה וכתיבה רדוקציה תת-לינארית בדומה לדיון על ,P, NPאנו רוצים לדבר על שפות שנחשוב ”קשות“ .בסיבוכיות זמן וזכרון השתמשנו עד עכשיו ברדוקצה ” ,“≤pאך עבור סיבוכיות זכרון תת-לינארית נצטרך רדוקציה חדשה. הגדרה .12.3משרן/מתמר לוגריתמי ) ,log − space Transducerאו בקיצור (LSTהוא מ“ט Mבעלת שלושה סרטים )קלט ,עבודה ופלט( שמחשבת פונק’ בשטח לוגריתמי .כלומר M ,מתחילה עם מילת קלט wעל סרט הקלט ,ומסיימת עם ) f (wעל סרט הפלט ,כך שסרט העבודה השתמש ב O (log |w|)-תאים. הגדרה .12.4נאמר שפונק’ ∗ f : Σ∗ → Σהיא חשיבה בשטח לוגריתמי אם קיים משרן לוגריתמי שמחשב אותה. הגדרה .12.5יהיו ∗ .A, B ⊆ Σנאמר ש A ≤logspace B-אם יש פונק’ חשיבה בשטח לוגריתמי fכך שלכל ∗w ∈ Σ מתקיים .w ∈ A ⇔ f (w) ∈ B דוגמה .12.1דוגמה לפונק’ חשיבה בשטח לוגריתמי :פונק’ שמעבירה גרף ממושקל hV, E, wiכאשר w : E → Nלגרף לא ממושקל G′ = hV, E ′ iכך ש (v, v ′ ) ∈ E ′ -אם“ם (v, v ′ ) ∈ Eוגם .w (v, v ′ ) ≥ 8 אם נרצה לחשב את הפונק’ הזו ,תחילה נעתיק את כל הקודקודים לסרט הפלט ,ואז פשוט נעבור בסרט הקלט על כל הצלעות ,נרשום כל צלע באופן זמני על סרט העבודה כדי לזכור אותה ,נסתכל בסרט הקלט האם משקל הצלע גדול מ8- ואם כן נרשום אותה בסרט הפלט. עכשיו אנחנו יכולים להגדיר קשיות ושלמות: הגדרה .12.6נאמר ששפה ∗ L ⊆ Σהיא -NLקשה ) (NLHאם לכל שפה L′ ∈ NLמתקיים .L′ ≤logspace Lהגדרה דומה מתקבלת עבור .L הגדרה .12.7נאמר ששפה ∗ L ⊆ Σהיא -NLשלמה ) (NLCאם: ) .1חסם עליון( .L ∈ NL ) .2חסם תחתון( .L ∈ NLH והגדרה דומה מתקבלת עבור .L משפט הרדוקציה לNL, L- משפט .לכל ∗ A, B ⊆ Σאם B ≤logspace Aו A ∈ L-אזי ) .B ∈ Lובאופן דומה עבור (NL 76 12 שבוע 14 סיבוכיות זכרון תת-לינארית 12.1רדוקציה תת-לינארית הוכחה שגויה היינו רוצים להשתמש באותה הוכחה כמו למשפטי הרדוקציה הקודמים ,אך זו כבר לא תעבוד .ננסה להוכיח באותה שיטה ונראה איפה היא נכשלת: תהי MAמ“ט שמכריעה את Aבשטח לוגריתמי .תהי Mfמ“ט שמחשבת בשטח לוגריתמי את הרדוקציה fמB- ל .A-נבנה MBשמכריעה את Bבשטח לוגריתמי כך: בהינתן MB ,wתריץ את ,Mfמחשבת את ) ,f (wואז מריצה את MAעל ).f (w מה הבעיה בהוכחה זו? האורך של ) f (wהוא לא בהכרח לוגריתמי באורך הקלט )ראו דוגמה !(12.1על כן ,אנחנו לא יכולים לכתוב את ) f (wעל סרט העבודה ולהשתמש בו. הוכחה .נגדיר את MA , Mfכמו בהוכחה השגויה ,רק שעכשיו נגדיר את MBבצורה אחרת שכן תוביל להוכחה נכונה :הרעיון הוא שבכל פעם ש MB -רוצה לקרוא את האות ה i-ב f (w)-היא תחשב את כל ) f (wמחדש ,ולא תכתוב את כל )f (w אלא רק תחכה ש Mf -תגיע לאות ה i-ואז תכתוב אותה )ורק אותה( .פורמלית בהינתן קלט wהמכונה MBתפעל כך: MB .1תבצע סימלוץ חכם לריצה של ) f (wעל MAבכך שהיא תגדיר כמה משתנים שישמרו אצל MBעל סרט העבודה: )א( משתנה iשמציין את המקום של הראש הקורא של MAבסרט הקלט. )ב( משתנה σשיחזיק את האות ה i-ב.f (w)- )ג( אזור שלם שמוקדש לסימלוץ סרט העבודה של ) MAשיגדל בהתאם לצורך ,אך בטוח יהיה מגודל לוגריתמי(. i .2הוא האינדקס של האות שמעניינת אותנו כרגע ב ,f (w)-לכן נריץ את ) Mfבלי לכתוב את הפלט שלה( עד שהיא תכתוב את האות ה-i-ית ,שנסמן ב σ-ואותה נשמור באופן זמני על סרט העבודה. כדי לזכור באיזו אות Mfנמצאת ,אנו יכולים להשתמש במונה שיהיה רשום על סרט העבודה של ,MBשאורכו כמובן לוגריתמי באורך הקלט .כמו כן ,גם נצטרך להשתמש במקום לוגריתמי כדי לסמלץ את סרט העבודה של .Mf .3נחשב את פונק’ המעברים של ,δA (q, σ) ,MAכאשר qזה המצב הנוכחי של MAבסימלוץ ,ומצב זה רשום על סרט העבודה המסומלץ של MAשאנחנו שומרים בסרט העבודה של .MB .4נעדכן את iואת סרט העבודה המסומלץ בהתאם ל ,δA (q, σ)-ואם } q ∈ {qacc , qrejאז נעצור את הריצה ונקבל/נדחה בהתאם לערך של ,qואחרת נחזור ל 2-ונמשיך בתהליך. נשים לב ש Mf ∈ L-ולכן ) Mf ∈ Pהזכרו במשפט (11ובגלל ש P ⊆ PSPACE-אז Mf ∈ PSPACEולכן |) |f (wפולינומיאלי ב .w-מכאן נובע ש i-הוא לוגריתמי ב ,w-ובגלל שגם כל שאר המשתנים ש MB -שומרת הם לוגריתמיים ,אנחנו מקבלים שסה“כ MBרצה בסיבוכיות מקום לוגריתמית. דוגמה .נגדיר את השפה: } Gגרף מכוון ויש מסלול מ s-לPATH = {hG, s, ti | t - זו בעיה שראינו שניתן לפתור בזמן פולינומיאלי ,אך האלגוריתמים שראינו ,כמו למשל ,BFSהם בעלי סיבוכיות זכרון לינארית. טענה .PATH ∈ NL .12.1 הוכחה .המכונה תנחש מסלול מ s-ל t-שאורכו לא עולה על | .|Vלשם כך ,המכונה תשמור מונה לכמות הצעדים שהיא כבר עשתה וגם היא תשמור את הקודקוד בו היא נמצאת כרגע: נאתחל v := sו.c := 0- 77 12 שבוע 14 סיבוכיות זכרון תת-לינארית 12.1רדוקציה תת-לינארית כל עוד | :c ≤ |V ננחש קודקוד v ′כך ש.(v, v ′ ) ∈ E- ניחוש זה יהיה כמובן לא דטרמיניסטי וניתן לממש אותו בכך שלמשל נעבור על Eוכל פעם שנראה צלע מהצורה ) (v, v ′נטיל מטבע ונחליט האם לבחור בצלע זו או להתקדם לצלע הבאה )ואם עברנו על כל Eנבחר את הצלע האחרונה מהצורה ) .((v, v ′ אם v ′ = tנעצור ונקבל ,ואחרת נגדיר v := v ′ונבצע .c + + נעצור ונדחה. נכונות :יש מסלול מ s-ל t-אם“ם יש מסלול כזה באורך ≥ | |Vאם“ם קיים חישוב מקבל של המכונה. סיבוכיות :המכונה שומרת רק שני ”משתנים“ :קודקוד v ∈ Vהדורש | log |Vתאים ,ומונה cשדורש | log |Vתאים כי תמיד | .c < |V טענה .PATH ∈ NLC .12.2 רעיון ההוכחה עלינו להראות כי .PATH ∈ NLHכלומר לכל B ∈ NLנראה כי .B ≤logspace PATHכלומר ,עלינו למצוא פונק’ חשיבה בשטח לוגריתמי fכך ש.f (w) ∈ PATH ⇔ w ∈ B- לשם כך f ,תבנה גרף Gמהקונפ’ של ) MBמ“ט המתאימה ל (B-כך שבין קונפ’ אחת לאחרת תעבור קשת אם“ם הראשונה עוקבת של השנייה ,ואז יהיה מסלול מהקונפ’ ההתחלתית לקונפ’ המקבלת אם“ם ,w ∈ Bכלומר .f (w) ∈ PATH ⇔ w ∈ Bרק צריך לדאוג שהבנייה של הגרף תעשה בסיבוכיות מקום לוגריתמית. הוכחה .מהיות B ∈ NLקיימת מ“ט עם שני סרטים MBשמכריעה את Bבסיבוכיות מקום לוגריתמית .נוכל להניח בה“כ של MB -יש קונפ’ מקבלת יחידה ,שכן ניתן לבנות מ“ט שלאחר שהיא מגיעה למצב ”מקבל“ היא מוחקת את כל הסרט, מעבירה את הראש הקורא לתחילת הסרט ,ואז עוברת למצב המקבל ומסיימת את הריצה. נסמן ב s-את הקונפ’ ההתחלתית וב t-את הקונפ’ המקבלת )היחידה!(. בשביל לתאר כל קונפ’ של ,MBאנחנו צריכים לתאר את המצב של סרט העבודה ,ואת המיקום של הראש של סרט הקלט. נוכל לתאר זאת באמצעות הא“ב } Γ ∪ (Q × Γ) ∪ {0, 1, $באופן הבא: )log2 (n } )γ1 γ2 . . . (q, γi ) . . . γs(n) $ (0 + 1 {z | {z | } מיקום ראש סרט הקלט תיאור סרט העבודה נשים לב שהגודל של תאור זה הוא לוגריתמי. הרדוקציה תעבור )למשל בסדר לקסיקוגרפי ,שזה משהו שניתן לתאר באופן לוגריתמי( על כל המילים מעל Σבאורך 1 + 2 log n ותבדוק האם הן מהצורה log n )Γi−1 · (Q × Γ) · Γlog n−i $ (0 + 1 )עבור iכלשהו( וכל מילה שמתאימה לצורה הזו ,נעתיק לסרט הפלט. כך אנחנו מקבלים שעל סרט הפלט רשומות כל המילים שמקודדות קונפ’ ,והן מהוות את רשימת הקודקודים. עתה צריך לייצר את רשימת הקשתות .לשם כך ,נעבור על כל זוגות המילים מאורך ,1 + 2 log nנבדוק האם הן עוקבות )ראינו המון פעמים איך עושים את זה( ,ואם כן תעתיק אותן לסרט הפלט וכך תתווסף קשת לרשימת הקשתות. לסיום ,נרשום על סרט הפלט את ) sהקונפ’ ההתחלתית( ואת ) tהקונפ’ המקבלת(. ברור שרדוקציה זו נכונה ,וכבר פירטנו לאורך ההוכחה מדוע היא לוגריתמית ,ולכן סיימנו. 78 12 סיבוכיות זכרון תת-לינארית 12.1רדוקציה תת-לינארית שבוע 14 טענה .12.3נניח כי .A ≤logspace Bאזי .A ≤p B הוכחה .בדומה להוכחות קודמות שראינו ,נשים לב שאם A ≤logspace Bאז יש רדוקציה מ A-ל B-שעובדת בסיבוכיות מקום לוגריתמית ,ולכן מס’ הקונפ’ האפשריות שיכולות להיות לה הוא פולינומיאלי ,ולכן היא בהכרח רצה למשך זמן פולינומיאלי, כלומר .A ≤p B מסקנה NL ⊆ PTIME .12.1 הוכחה .תהי .B ∈ NL מתקיים B ≤logspace PATHלכן .B ≤p PATH לכן מהיות PATH ∈ PTIMEנובע כי .B ∈ PTIME דוגמאות לרדוקציות עתה נסתכל על השפה } Aהוא NFAוEMPTYNFA = {hAi | L (A) 6= ∅ - קל לראות ש) EMPTYNFA ∈ PTIME-פשוט צריך לבדוק האם יש מסלול ממצב התחלתי של Aלמצב מקבל( ,אך מה ניתן להגיד עליה בהקשרים תת-לינאריים? טענה .EMPTYNFA ∈ NLC .12.4 הוכחה .ראשית EMPTYNFA ∈ NL ,כי נוכל להסתכל על מ“ט א“ד שתנחש ריצה מקבלת על מילה -בגלל שאי אפשר לשמור מילה בכל אורך ,לא נשמור את כל המילה אלא פשוט נעבור ממצב למצב וננחש כל פעם אות נוספת להתקדם לפיה. כדי שלא נרוץ לנצח ,נשמור גם מונה שיבדוק באורך המסלול שאנחנו הולכים בו קטן מ.|Q|- לחלופין כדי להוכיח זאת יכלנו להראות ש.EMPTYNFA ≤logspace PATH- עתה נראה ש .EMPTYNFA ∈ NLH-לשם כך נראה ש:PATH ≤logspace EMPTYNFA - בהינתן hG, s, tiכאשר ,G = hV, Eiנחזיר NFA i F δ, Q0 , Q, Σ, }{t δ }{s V }{a h =A כאשר aהיא אות כלשהי ו δ-מוגדרת כך ש.(q, q ′ ) ∈ E ⇔ q ′ ∈ δ (q, a) - ניכר שרדוקציה זו עובדת בשטח לוגריתמי )בכל רגע נתון אנחנו צריכים לשמור מעט מאוד דברים( ,וכן הרדוקציה נכונה כי יש מסלול מ s-ל t-ב G-אם“ם יש מסלול ממצב התחלתי ב A-למצב מקבל אם“ם .A ∈ EMPTYNFA בנוסף EMPTYNFA ∈ NL ,כי ) NL = coNLראו .(12.2 כדוגמה נוספת ,נעבור להסתכל על השפה הרצאה 13ב G גרף ממושקל עם משקולות חיוביים ממש ויש מסלול במשקל לפחות bמ s -לt - כאשר המשקלים טבעיים וb ∈ N - טענה .BBPATH ∈ NLC .12.5 79 hG, s, t, bi = BBPATH 12 שבוע 14 סיבוכיות זכרון תת-לינארית משפט אימרמן 12.2 הוכחה .ראשית ,BBPATH ∈ NLשכן השפה ניתן להכרעה ע“י מ“ט א“ד שפועלת בשטח לוגריתמי שבכל רגע נתון שומרת קודקוד נוכחי במסלול ומשקל מצטבר של המסלול ,וכל הזמן בודקת האם הגענו ל ,t-והאם המשקל שלנו הגיע ל ,b-ובגלל שהמשקולות כולם גדולים מ 0-וטבעיים ,אנחנו לא צריכים להסתכל על מסלולים שאורכם גדול מ b-ולכן תמיד נעצור את הריצה .בגלל שזה דומה לדברים שכבר ראינו ,יתר הפרטים הקטנים הושארו לקורא. עתה נראה ש .BBPATH ∈ NLH-לשם כך נראה כי .PATH ≤logspace BBPATHבהינתן hG, s, tiכאשר G = hV, Ei הרדוקציה תחזיר hG′ , s, t, 0iכאשר G′ = hV, E, wiכך ש .∀e ∈ E, w (e) = 1-ניכר שבנייה זו לוגריתמית ,שכן אנחנו בעיקר מעתיקים דברים לסרט הפלט ,ולמעשה כמעט אין שימוש לסרט העבודה .הבנייה נכונה כי כמובן יש מסלול מ s-לt- ב G-אם“ם יש מסלול באורך לפחות 0מ s-ל t-ב G-אם“ם יש מסלול ממשקל לפחות 0מ s-ל t-ב.G′ - הערה .אם היינו עוברים להסתכל על הבעיה ,BBSPATHשזו אותה בעיה כמו BBPATHרק עם הדרישה שהמסלול יהיה פשוט ,נקבל כבר ש ,BBSPATH ∈ NPC-שכן אם נסתכל על המקרה הפרטי של מסלול פשוט מ s-ל t-שיש בו |V | − 1 קשתות ,אנו נקבל מסלול המילטון )וזו ,ראינו ,בעיה -NPקשה(. 12.2 משפט אימרמן משפט אימרמן הוא תוצאה חדשה וחשובה בתחום מדעי המחשב ,ממנה נובע ש.NL = coNL- משפט אימרמן משפט .לכל פונק’ s (n) ≥ log nמתקיים )).NSPACE (s (n)) = coNSPACE (s (n הוכחה .על אף שההוכחה לא הכי מסובכת ,מפאת קוצר זמן ,לא נוכיח את המשפט. מסקנה .NL = coNL .12.2 הוכחה .עבור s (n) = log nאנו מקבלים ממשפט אימרמן .NL = NSPACE (log n) = coNSPACE (log n) = coNL כלומר כיום אנו יודעים שמתקיים coEXPTIME coNPSPACE k k EXPTIME ⊆ NPSPACE = = coPSPACE coP coNL k k k PSPACE ⊆ NP coNP בנוסף אנו יודעים ש PTIME 6= EXPTIME-ובתרגול נראה כי .NL 6= PSPACE 80 ⊆ P ⊆ NL ⊆ L 13 13 חומר נוסף וצעדים להמשך שבוע 14 חומר נוסף וצעדים להמשך לסיום ,נעבור בקצרה על כמה דברים שלא למדנו ושווה לדעת ,ונציין כמה קורסי המשך הנוגעים בדברים שלמדנו .אנו נדבר בעיקר על אוטומטים אך אפשר להכליל את המושגים הללו גם למכונות טיורינג. חומר נוסף שפות ממושקלות בקורס שלנו במובן מסויים שפה הייתה פונק’ } - L : Σ∗ → {T, Fאנחנו לוקחים את כל המילים ב Σ∗ -ומחליטים האם הם בשפה או לא. יש כל מיני דרכים ”להתעלל“ במבנה הזה ולהגיע לתאוריות חדשות .למשל ,נוכל למפות מילים למספרים ובמובן מסויים לתת להן ”ציון“ ,L : Σ∗ → N -או אפילו ].L : Σ∗ → [0, 1 זאת ניתן לעשות באמצעות אוטומטים ממושקלים .שפות כאלה נקראות שפות ממושקלות. באוטומט ממושקל א“ד המשקל של מילה יהיה המשקל המינימלי על פני כל הריצות האפשריות. בדוגמה הבאה ניתן לראות מימין אוטומט דטר’ שסופר כמה -bים מופיעים במילה ,ומשמאל אוטומט א“ד עם שני מסלולים שהאחד סופר כמה -bים מופיעים במילה והשני כמה -aים ,ולכן המשקל של כל מילה wיהיה }.min {#a w, #b w }cost (w) = min {#a w, #b w cost (w) = #b w a, 0 b, 1 a, 1 b, 0 a, 0 b, 1 נשים לב שאי אפשר לבנות אוטומט דטר’ ששפתו היא } .min {#a w, #b wכלומר בעולם הזה ה Subset Construction-לא עובד ,ואין שקילות בין DFAל .NFA-למעשה ,הבעיה של ”להכריע האם בהינתן NFAיש לו DFAשקול“ ,היא בעיה פתוחה עד היום במדעי המחשב. כשאנו מדברים על ] L : Σ∗ → [0, 1אנחנו מדברים על אוטומטים עם הסתברות ,כך שבכל שלב אנחנו יכולים לעבור ממצב כלשהו למצב אחר בהסתברות כלשהית בהתאם לאות הנוכחית ,וכך שסכום ההסתברויות יסכם ל .1-דבר זה מזכיר תהליך החלטה מרקובי ,רק שיש גם תלות באות הנוכחית שאנו קוראים. מילים רציפות ואינסופיות אצלנו כל מילה הורכבה מכמות כלשהי של אותיות ,w = σ1 . . . σn :כלומר יכלנו לתאר מילה באמצעות פונק’ .w : {1, . . . , n} → Σ זהו אובייקט דיסקרטי ,אבל לעתים נרצה לתאר אובייקטים רציפים) w : R → Σ :או למשל ]t ∈ [0, 2 למשל ,נרצה לתאר מילה שהיא ”שרשור“ של אותיות σtכך ש ,0 ≤ t ≤ 4-כך שt ∈ (2, 3) - ]t ∈ [3, 4 → ].(w : [0, 4 Σ a .σt = b a כך אפשר למשל לתאר באמצעות מילה כל מיני דברים רציפים כמו מהירות של מכונית לאורך הזמן )בין 0ל 2-המהירות הייתה 50קמ“ש ,בין 2ל 3-היא הייתה 70קמ“ש וכו’(. על מילים כאלה אנו רצים באמצעות ” ,”Real − Time Automataשהם אוטומטים שמחליטים לאיזה מצב לעבור בהתאם ל“-אינדקס“ הרציף tובהתאם ל) .σt -למשל האוטומט יגדיר שאם אנחנו במצב q1ו t ∈ [2, 3]-ו σt = a-אז נעבור למצב (q2 אם נחזור לעולם הדיסקרטי ,אז נוכל להסתכל על Σωבמקום ∗ ,Σשהיא מגדירה לנו מילים אינסופיות .כלומר,w : N → Σ , ואז נוכל למשל להגדיר שפה Lלהיות שפת כל המילים בהן יש אינסוף -aים. 81 13 חומר נוסף וצעדים להמשך שבוע 14 אוטומט שפועל על מילים אינסופיות יראה כמו אוטומט רגיל ,ונאמר שהוא מקבל מילה אם בריצה על המילה הוא מבקר אינסוף פעמים במצב מקבל. אוטומטים מעל עצים/גרפים נוכל להסתכל על גרף עץ שבכל קודקוד שלו רשומה אות ,ונוכל להגדיר אוטומט שפונק’ המעברים שלו תגיד לנו בהינתן מצב נוכחי ואות שרשומה בעץ ,לאילו מצבים לעבור עבור כל אחד מהילדים של אותו קודקוד בעץ. התמרת קלט פלט במציאות בדר“כ אנחנו לא סתם לוקחים קלט ואומרים עליו ”כן/לא“ כפי שעשינו בהכרעה של שפות )בפרט עם מכונות טיורינג( .הרבה פעמים מעניין אותנו לקבל קלט ,לבצע עליו חישוב ,ולהוציא פלט מורכב כלשהו .במודל הזה ,כל פעם שאנחנו קוראים אות נוספת מהמילה )שיכולה להיות גם מילה אינסופית ,שזה נפוץ במציאות( נוציא אות פלט. כך למשל נוכל לקבל כקלט את מה שקורה סביב המכונית האוטונומית שלנו ,ולהוציא כפלט החלטה מה לעשות .מערכות כאלה נקראות .Reactive Systems קורסי המשך קורס מתקדם באוטומטים )בהקשר של כל מה שראינו לפני רגע( סיבוכיות מוזמנים לעשות גוגל על המושג Complexity Zooולראות כמה מחלקות סיבוכיות מסוגים שונים יש -אפשר להוסיף אקראיות ,מקביליות ,קוונטיזציה וכו’. קריפטוגרפיה קריפטוגרפיה מבוססת על זה שאנחנו יכולים ליצור בעיות קשות ”והרעים" לא יכולים לפתור אותן. חישוב קוונטי מחשבים קוונטים הם מחשבים שיודעים לדבר לא רק בביטים של ,0/1אלא יש להם ביט נוסף שבבת אחת תופס מספר אקספוננציאלי של מצבים ,ולכן אפשר לשאול מה קורה למחלקות הסיבוכיות שלמדנו כשמוסיפים קוונטיזציה )ומה קורה למחלקות אחרות(. קורסים באלגוריתמים בקשר לאקראיות ,מקביליות וקוונטיזציה אפשר לשאול אילו אלגוריתמים יעילים ניתן ליצור עם היכולות החדשות האלה. תורת המשחקים תכניות מחשב בסביבה ”עוינת“ -מה קורה כשאנחנו רוצים לתכנן תכנית שמבצעת אסטרטגיה מנצחת במשחק שלנו מול הסביבה .למשל אם הסביבה מנסה לייצר באג ואנחנו רוצים לדאוג שהתכנית תמשיך לרוץ באופן תקין, וזה קשור לאימות מערכות .בעיית העצירה היא לא כריעה ,אז בפרט בעיה של אימות מערכות היא קשה אף יותר ,אך עדיין יש כלים שמאפשרים לנו להגיד דברים על אימות. 82 14תרגול - 1אוטומט סופי דטרמיניסטי שבוע 1 חלק V תרגולים 14תרגול - 1אוטומט סופי דטרמיניסטי מוטיבציה בקורס אנחנו לוקחים צעד אחד אחורה ומנסים להבין מה הוא בכלל מחשב .במקום לקחת רעיון ולממש אותו בקוד ,נגדיר פורמלית מחשב. תזכורת -קבוצות ויחסים ∈ ,(A = {x : x מעבר לתכונות בסיסיות על קבוצות שאנחנו מכירים ,כמו איחוד ) ,(A ∪ Bחיתוך ) ,(A ∩ Bמשלים )}/ A ושוויון ) ,(A = B ⇔ A ⊆ B ∧ B ⊆ Aראינו בקורסי עבר שאפשר גם להגדיר יחסים: תזכורת | יחסים הגדרה .14.1יחס בין שתי קבוצות S, Tהוא תת-קבוצה .R ⊆ S × T יחס R ⊂ A × Aיקרא: .1רפלקסיבי :אם .∀a ∈ A, (a, a) ∈ R .2סימטרי :אם .∀a, b ∈ A, (a, b) ∈ R ⇔ (b, a) ∈ R .3טרנזטיבי :אם .∀a, b, c ∈ A, (a, b) , (b, c) ∈ R ⇒ (a, c) ∈ R הגדרה .14.2יחס המקיים את 1, 2, 3נקרא יחס שקילות. אם Rיחס שקילות ,נוכל להגדיר לכל a ∈ Aאת מחלקת השקילות שלו להיות }.[a]R = {b ∈ A : (a, b) ∈ R נשים לב שמחלקות השקילות של Aמחלקות את Aחלוקה זרה. ≤∈ ) (5, 3ולכן הוא לא סימטרי .נשים לב שבמקום ≤∈ )(3, 5 דוגמה ≤⊆ N × N .14.1הוא יחס .מתקיים ≤∈ ) (3, 5אך / אנו כותבים בקיצור .3 ≤ 5 דוגמה .14.2יהי G = hV, Eiגרף לא-מכוון .נגדיר יחס ∼⊆ V × Vבאופן הבא ∀u, v ∈ V :נאמר כי u ∼ vאם“ם יש מסלול מ u-ל .v-לא קשה להשתכנע שזהו יחס שקילות ,ומחלקות השקילות של ∼ הם בדיוק רכיבי הקשירות של .G תזכורת | עוצמות הגדרה .14.3העוצמה של קבוצה ,Aהמסומנת | ,|Aהיא מדד לגודל שלו .עבור קבוצות סופיות | |Aהיא פשוט כמות האיברים ב .A-עבור קבוצות אינסופיות ,ראינו בקורסי עבר שיש עוצמות שונות ,כדוגמת .ℵ0 הגדרה .14.4אנו אומרים כי | |A| ≤ |Bאם יש העתקה חד-חד ערכית מ A-ל ,B-ואומרים ש |A| < |B|-אם לא קיימת העתקה על מ A-ל.B- דוגמה .14.3ראינו ש ,|Q| = |Z| = |N| = ℵ0 -אבל .|R| = |[0, 1]| = 2ℵ0ההוכחה לכך ש |R| 6= |N|-הייתה בעזרת האלכסון של קנטור .שווה לחזור על הוכחה זו ,כי אנחנו נשתמש בטכניקת הוכחה זו בהמשך הקורס. 83 שבוע 1 14תרגול - 1אוטומט סופי דטרמיניסטי שפות על שפה )ראו הגדרה ,(1.3ניתן לבצע כל מיני פעולות: 17 .1חיתוך.L1 ∩ L2 : .2איחוד.L1 ∪ L2 : .3שרשור.L1 · L2 = {w1 · w2 | w1 ∈ L1 , w2 ∈ L2 } : .4משלים.L = Σ∗ \L : הערה .14.1נבחין כי ∗ .L ∈ 2Σ דוגמה .14.4נסתכל על } ∗ .L = {ww | w ∈ Σאז nאי-זוגי או nזוגי וגם L = x1 · · · xn | x1 · · · xn/2 6= xn/2+1 · · · xn ומהי ?L · Lאולי תתפתו לומר } ∗ ,{wwww | w ∈ Σאך בשרשור אנו לא חייבים לשרשר את אותה מילה לעצמה ,לכן } ∗L · L = {wwxx | w, x ∈ Σ טענה .14.1תהי ∅ = Σ 6א“ב .אזי .|Σ∗ | = ℵ0 הוכחה .נוכל לסדר את המילים ב Σ∗ -תחילה לפי אורכן ,ונשבור שוויונות באמצעות סידור לפי סדר לקסיקוגרפי )סידור לפי אורך ולקסיקוגרפיה ידוע גם בתור .(minlex orderהצלחנו לסדר את המילים ולכן זו קבוצה בת-מנייה. הערה .14.2יש ∗ 2Σשפות מעל .Σ הגדרנו מהי שפה רגולרית )ראו הגדרה ,(1.8אך האם כל השפות רגולריות? טענה .|REG| = ℵ0 .14.2קרי ,יש ℵ0שפות רגולריות. הוכחה .מצד אחד ,כל שפה סופית היא רגולרית 18 ויש ℵ0שפות סופיות לכן | .ℵ0 ≤ |REGמצד שני ,שפה רגולרית היא שפה שיש אוטומט שמקבל אותה ,לכן |קבוצת כל האוטומטים| ≤ .אוטומט הוא חמישייה .A = hQ, Σ, δ, q0 , F iבגלל שQ, Σ, F - כולן סופיות ,גם כמות האפשרויות לפונק’ δהיא סופית ,ולכן כל אוטומט ניתן לתאר באמצעות אוסף סופי של סימנים, ואפשר לתאר אותו באמצעות מחרוזת בינארית סופית )של אפסים ואחדות( .יש ℵ0מחרוזות בינאריות סופיות ,ולכן | = ℵ0קבוצת כל האוטומטים| ≤ |ℵ0 ≤ |REG ולכן .|REG| = ℵ0 מסקנה בגלל שיש = 2ℵ0 ∗ 2Σשפות ,ורק ℵ0שפות רגולריות ,נובע שיש שפות שאינן רגולריות. 17שפות הן למעשה קבוצות ,לכן מראש מוגדרות עליהן פעולות כמו איחוד וחיתוך. 18נוכיח בתרגיל. 84 שבוע 1 14תרגול - 1אוטומט סופי דטרמיניסטי אוטומטים ניזכר בפונק’ ∗ δשהגדרנו בהרצאה: הגדרה .יהי A = hQ, Σ, δ, q0 , F iאוטומט .נגדיר δ ∗ : Q × Σ∗ → Qבאופן הבא: w=ε q w = w′ · σ, w′ ∈ Σ∗ , σ ∈ Σ )δ (δ ∗ (q, w′ ) , σ = )δ ∗ (q, w דוגמה .14.5נסתכל על הציור של האוטומט שלמטה .עבורו מתקיים q1 הגדרת האוטומט = )δ (q0 , a הגדרת האוטומט = )δ (δ (q1 , b) , a הגדרת ∗ δ = )δ (δ (δ ∗ (q1 , ε) , b) , a a, b הגדרת ∗ δ = )δ (δ ∗ (q1 , b) , a הגדרת ∗ δ = )δ ∗ (q1 , ba b a q2 a q0 q1 b תרגיל הוכיחו שהשפה הבאה ,מעל הא“ב } ,Σ = {0, 1, . . . , 9, #היא רגולרית: ∗ aמופיע בL = x#a | x ∈ {0, . . . , 9} , a ∈ {0, . . . , 9} , x - אנחנו רוצים לבנות אוטומט שמבחין בין מילים ב L-למילים שלא ב .L-אם היינו רוצים לכתוב קוד שעושה את זה ,כנראה היינו רצים על המילה בלולאה וכל פעם שאנחנו נתקלים בספרה חדשה היינו מוסיפים אותה למערך עזר .ברגע שהיינו נתקלים בתו ,#היינו יוצאים מהלולאה ,מסתכלים על התו הבא 19 ובודקים האם הוא במערך ששמרנו .כלומר ,אנחנו צריכים סוג של זכרון .נרצה לעשות דבר דומה בבנייה של האוטומט ,לכן נבנה המון מצבים שונים ,שכל אחד זוכר אילו ספרות כבר ראינו, והאם כבר הגענו ל #-או לא. אם כך ,נגדיר ,A = hΣ, Q, δ, q0 , F i ,DFAשלב שלב. ראשית Qיוגדר כך: } Q = 2{0,...,9} × {1, 2} ∪ {qacc , qsink כאן } 2{0,...,9נועד לזכור אילו ספרות ראינו לפני שפגשנו {1, 2} ,#נועד לזכור האם פגשנו כבר 1) #אם לא פגשנו את # ו 2-אם כן( qsink ,הוא בור דוחה אליו נשלח את כל המילים הלא-חוקיות ו qacc -הוא המצב המקבל היחיד אליו נשלח את המילה ברגע שנסיק שהיא ב .L-אם כך ,F = {qacc } ,ובנוסף q0 = h∅, 1i כדי לוודא שהגדרת Qברורה ,נציג דוגמה :המצב h{0, 6, 8} , 1iאומר שעד עכשיו פגשנו את הספרות ,0, 6, 8אבל לא ראינו עדיין את .# 19ואם אין תו הבא היינו מחזירים שהמילה לא בשפה. 85 שבוע 1 14תרגול - 1אוטומט סופי דטרמיניסטי עתה נגדיר את .δכפי שאמרנו קודם ,כל פעם שאנחנו פוגשים ספרה ,אנחנו רוצים לעבור למצב שיוסיף ”למערך“ הזכרון שלנו את העובדה שפגשנו את אותה ספרה ,וברגע שנפגוש את #נרצה לעבור ממצב hC, 1iל .hC, 2i-לכן ,עבור } i ∈ {1, 2} , C ∈ 2{0,...,9ו σ ∈ Σ-נגדיר: ⟩⟨C, 2 ⟩⟨C ∪ {σ} , 1 i=1∧σ =# }i = 1 ∧ σ ∈ {0, . . . , 9 qacc q sink i=2∧σ ∈C ∈ i=2∧σ /C = )δ (⟨C, i⟩ , σ נשים לב שהמקרה האחרון מכסה את המצב שבו יש #פעמיים .כמו כן ,אם אין אף תו אחרי ה #-או אם אין ,#אז אנחנו לא נגיע ל qacc -כרצוי. נגדיר בנוסף ∀σ ∈ Σ, δ (qsink , σ) = qsinkכדי ש qsink -אכן יהיה בור דוחה ,ונגדיר ∀σ ∈ Σ, δ (qacc , σ) = qsinkכי אם הגענו ל qacc -זה אומר שקראנו כבר ,x#aאבל אם אנחנו נקרא אות נוספת אז המילה בהכרח לא בשפה )ב L-לא יכול להיות שיש שתי אותיות אחרי ה ,(#-ולכן נרצה להיכנס לבור הדוחה. לפני שנוכיח ש ,L (A) = L-נוכיח טענת עזר. טענת עזר טענה .תהי ∗ } .w ∈ {0, . . . , 9נגדיר } σמופיעה ב .S (w) = { σ ∈ {0, . . . , 9}| w-אזי .δ ∗ (q0 , w) = hS (w) , 1i הוכחה .נוכיח באינדוקציה על אורך המילה |.n = |w בסיס ) :(n = 0מהיות |w| = 0בהכרח .w = εלכן ∅ = ) S (wולכן q0 = h∅, 1i = hS, 1i הגדרת ∗ δ )δ ∗ (q0 , w) = δ ∗ (q0 , ε = צעד ) :(n ⇒ n + 1נניח את נכונות הטענה עבור .nתהי ∗ } w = x · σ ∈ {0, . . . , 9מילה מאורך .n + 1 מהנחת האינדוקציה .δ ∗ (q0 , x) = hS (x) , 1i ,נשים לב כי } .S (x · σ) = S (x) ∪ {σאזי δ (δ ∗ (q0 , x) , σ) = δ (hS (x) , 1i , σ) = hS (x) ∪ {σ} , 1i = hS (w) , 1i הגדרת ∗ δ = )δ ∗ (q0 , w) = δ ∗ (q0 , x · σ כנדרש. טענה .עבור האוטומט Aשהגדרנו ,מתקיים .L (A) = L הוכחה .נוכיח ש L (A) ⊆ L-ו.L ⊆ L (A)- ) :L ⊆ L (A) (iתהי .w ∈ Lאזי w = x#σכאשר ∗ } σ ∈ {0, . . . , 9} ,x ∈ {0, . . . , 9ו σ-מופיעה ב .x-לכן )δ ∗ (q0 , w) =δ (δ ∗ (q0 , x#) , σ ) =δ (δ (δ ∗ (q0 , x) , #) , σהגדרת ∗ δ ) =δ (δ (hS (x) , 1i , #) , σטענת עזר ) =δ (hS (x) , 2i , σהגדרת δ =qaccהגדרת δ כלומר δ ∗ (q0 , w) ∈ Fולכן ) w ∈ L (Aולכן ).L ⊆ L (A ) :L (A) ⊆ L (iiהיות ש L-מכילה מילים מתבנית ידועה ,נראה כי כל תבנית אחרת ,לא מתקבלת על ידי האוטומט. תהי ) w ∈ L (Aונחלק למקרים לפי .wיהי ∗ } x ∈ {0, . . . , 9ו.σ ∈ {0, . . . , 9}- 86 שבוע 1 14תרגול - 1אוטומט סופי דטרמיניסטי מקרה .1 ∈ .w ∈ ,wואכן / L wלא מכילה את :#לכן מטענת העזר ,הריצה לעולם לא תוכל להגיע ל qacc -ולכן )/ L (A מקרה .2 :w = x#לכן δ ∗ (q0 , w) = δ ∗ (q0 , x#) = δ (δ ∗ (q0 , x) , #) = δ (hS (x) , 1i , #) = hS (x) , 2i ∈ .w ∈ wוגם / L ∈ ) ,δ ∗ (q0 , wלכן )/ L (A כלומר / F מקרה .3 w = x#yכאשר :|y| > 1נקבל )δ ∗ (q0 , w) = δ ∗ (hS (x) , 2i , y ∈ .w ומהיות |y| > 1לאחר קריאת שתי האותיות הראשונות אנו נגיע ל qsink -ואז נתקע שם .לכן )/ L (A מקרה .4 w = x#σכאשר σלא ב :x-לכן כמו קודם δ ∗ (q0 , w) = δ ∗ (hS (x) , 2i , σ) = qsink ∈ .w ולכן שוב )/ L (A ∈ ,wוראינו שאם הוא כן מהצורה, עברנו על כל המקרים ,לכן נסיק שאם wהוא לא מהצורה ,x#σו σ-ב ,x-אז )/ L (A אז ) ,w = x#σ ∈ L (Aמה שגורר שאם ) w ∈ L (Aאז wכן מקיים את התנאי ,כלומר .L (A) ⊆ Lולכן L (A) = L כנדרש. 87 15 שבוע 2 תרגול - 2אוטומט סופי אי-דטרמיניסטי 15תרגול - 2אוטומט סופי אי-דטרמיניסטי הסרת מעברי εמNFA- ראינו שב NFA-אפשר לבצע צעדים בלי לקרוא אות נוספת -קראנו לזה מעברי .εאנו נראה שלכל NFAיש NFAשקול )קרי ,שמקבל אותה שפה( ללא מעברי .εדבר זה היה שימושי עבורנו בהוכחה שלכל NFAיש DFAשקול )ראו משפט ,(2.1כי שם השתמשנו בפונק’ מעברים מורחבת ,ρ∗ ,שהניחה שאין מעברי .ε נציין ,למי שלא הכי הבין ,שהרעיון בהוכחה ההיא היה שאנחנו מנסים לדמות זכרון בתוך ה - DFA-אנחנו מנסים לזכור באילו מצבים אנחנו היינו יכולים להיות ב .NFA-מאוד דומה למה שעשינו בתרגול הקודם. הערה למה צריך מעברי εאם כך? כי הם עוזרים לקצר את הכתיבה ולהפוך אותה ליותר אלגנטית ופחות מסורבלת. הסרת מעברי אפסילון מNFA- משפט .15.1לכל A NFAעם מעברי εיש B NFAשקול ללא מעברי .ε הוכחה .יהי .NFA A = hQ, Σ, δ, Q0 , F iלכל מצב q ∈ Qנגדיר }ניתן להגיע מ q-ל s-רק עם מעברי E (q) = {s | ε נשים לב שכמוסכמה ) q ∈ E (qכי +ניתן להגיע מ q-לעצמו*במסלול באורך .0בגלל שהמסלול מאורך ,0הוא מורכב רק S S = ) .η (q, σבתרגיל נראה שאכן B = Q, Σ, η,כאשר )E (s E (q) , F ממעברי .εנגדיר את Bלהיות q∈Q0 )s∈δ(q,σ ).L (A) = L (B נשים לב שלכל q ∈ Qניתן לחשב את ) E (qבזמן )| O (|Q| + |Σבאמצעות הרצת DFSמ q-על הגרף של האוטומט .לכן את כל הקבוצות מהצורה ) E (qניתן לחשב יחד בזמן פולינומיאלי של ))|.O (|Q| (|Q| + |Σ סגירויות של שפות רגולריות הוכחנו בעבר כבר כמה סגירויות ,אך NFAמאפשר לנו להוכיח בקלות סגירויות נוספות ,כי אנחנו יודעים שלכל NFAיש DFAשקול .נראה גם הוכחה יותר קלה לסגירות לאיחוד שמשתמשת ב.NFA- טענה .15.1תהיינה .L1 , L2 ∈ REGאזי .L1 ∪ L2 ∈ REG A1 = hQ, Σ, q0 , δ, F i ה-DFA-ים המתאימים ל .L1 , L2 -עד כאן ,ההוכחה דומה למה שראינו בהרצאה. הוכחה .יהיו A2 = hS, Σ, s0 , η, Gi אבל ,באמצעות NFAנוכל לפשט אותה .הדרך לעשות זאת היא פשוט לחבר את האוטומטים. נניח בה“כ ∅ = ,Q ∩ Sאחרת נוכל לשנות את השמות של המצבים .נגדיר A NFAשיריץ במקביל את ,A1 , A2כלומר A = hQ ∪ S, Σ, {q0 , s0 } , α, F ∪ Giכאשר q∈Q }){δ (q, σ q∈S }){η (q, σ = )α (q, σ ) :L1 ∪ L2 ⊆ L (Aתהי .x = σ1 . . . σm ∈ L1 ∪ L2אזי x ∈ L1 ∨ x ∈ L2ונניח בה“כ כי .x ∈ L1אזי הריצה של A1 על xמקבלת .קרי ,קיימת סדרת מצבים r0 , . . . , rm ∈ Qעבורה r0 = q0 , rm ∈ Fוכן .0 ≤ ∀i ≤ m, δ (ri , σi+1 ) = ri+1 לכן מהגדרת Aזוהי גם ריצה של Aעל .wנשים לב שאכן } r0 = q0 ∈ {q0 , s0וכן rm ∈ F ⊆ F ∪ Gלכן זו ריצה מקבלת .לכן ).x ∈ L (A 88 15 שבוע 2 תרגול - 2אוטומט סופי אי-דטרמיניסטי :L (A) ⊆ L1 ∪ L2תהי ) .x = σ1 . . . σm ∈ L (Aאזי קיימת ריצה מקבלת של Aעל ,yשנסמנה .r0 , . . . , rmכלומר, r0 ∈ {q0 , s0 } , rm ∈ F ∪ Gו ri+1 = α (ri , σi+1 )-לכל .iנשים לב שבהכרח rm ∈ Fאו .rm ∈ Gנניח בה“כ .rm ∈ F מהגדרת αומהעובדה ש ,Q ∩ S = ∅-נובע שהדרך היחידה לעבור מ rm−1 -ל rm -היא אם ) rm−1 ∈ Qכי ל α-יש אותם מעברים כמו A1 , A2ו .(Q ∩ S = ∅-בתהליך אינדוקטיבי אנו מסיקים כי r0 = q0וכל המצבים בריצה נמצאים ב ,Q-כלומר זו ריצה תקינה ומקבלת ב A1 -ולכן x ∈ L1ובפרט .x ∈ L1 ∪ L2 טענה .15.2תהיינה .L1 , L2 ∈ REGאזי .L1 · L2 ∈ REG A1 = hQ, Σ, q0 , δ, F i ה-DFA-ים המתאימים ל .L1 , L2 -כאן הרעיון הוא לשרשר את שני האוטומטים ,על הוכחה .יהיו A2 = hS, Σ, s0 , η, Gi ידי הוספת מעבר εמ F -ל .s0 -כמו קודם נניח בה“כ ∅ = .Q ∩ Sנגדיר A NFAשיריץ את A1על מילה ,w = w1 · w2 ינחש מתי מסתיימת w1 ∈ L1ויעבור לרוץ מ .A2 -כלומר A = hQ ∪ S, Σ, {q0 } , α, Gi ,כאשר q ∈ Q, σ ∈ Σ q ∈ S, σ ∈ Σ q ∈ F, σ = ε }){δ (q, σ })α (q, σ) = {η (q, σ } {s 0 ) :L1 · L2 ⊆ L (Aיהי .w ∈ L1 · L2אזי w = x · yעבור x ∈ L1 , y ∈ L2כלשהם .לכן הריצה של A1על xמקבלת והריצה של A2על yמקבלת ,לכן הריצה של Aעל w = x · yמקבלת ,מההגדרה של ,Aשכן לאחר שנקרא את ,xנוכל לעבור ל s0 -במעבר ,εומשם נמשיך לרוץ על yעד שנגיע למצב מקבל. :L (A) ⊆ L1 · L2יהי ) .w ∈ L (Aתהי t0 , . . . , tmריצה מקבלת של Aעל .wבהכרח t0 = q0ו .tm ∈ G ⊆ S-מהגדרת αבלתי אפשרי לעבור מ S-ל Q-ב .A-לכן ,חייב להיות מעבר εמ F -ל ,s0 -וזה מעבר ה ε-היחיד לכן .|w| = m − 1 לכן קיים | 0 ≤ k ≤ |wכך ש tk ∈ F -ו .tk+1 = s0 -לכן הריצות t0 , . . . , tkו tk+1 , . . . , tm -מקבלות ב A1 , A2 -בהתאמה. מכאן ,אם נבחר x = w1 · . . . · wk , y = wk+1 · . . . · · · wm−1נקבל w = x · yוגם ,x ∈ L1 , y ∈ L2כלומר w ∈ L1 · L2 כנדרש. היזכרו בהגדרה 1.9של מהי ∗.L טענה .15.3תהי .L ∈ REGאזי .L∗ ∈ REG הוכחה .יהי DFA A = hΣ, Q, δ, q0 , F iהמתאים ל .L-נבנה A′ NFAעבורו ∗ .L (A′ ) = Lרעיון אחד הוא לחבר את המצבים המקבלים ב F -ל ,q0 -ככה שהאוטומט החדש ירוץ במעגל על .Aהבעיה ברעיון זה היא שאם ε 6= Lאז גם ∈ .εכדי לטפל בבעיה זו ,נוסיף מצב התחלתי חדש .נגדיר ) / L (A′ A′ = hQ ∪ {qstart } , Σ, δ ′ , {qstart } , {qstart }i כאשר qstartהוא מצב חדש ,ו δ ′ -מוגדרת לכל } q ∈ Q ∪ {qstartולכל σ ∈ Σבאופן הבא: q∈Q }){δ (q, σ q = qstart ∅ q ∈ Q\F q∈F q = qstart = )δ ′ (q, σ ∅ } δ ′ (q, ε) = {qstart } {q 0 את ההוכחה שאכן ∗ ,L (A′ ) = Lנשאיר לסטודנט המשקיע החכם היפה והחסון )זה יופיע גם בתרגיל(. 89 16 שבוע 3 תרגול - 3ביטויים רגולריים ולמת הניפוח 16תרגול - 3ביטויים רגולריים ולמת הניפוח ביטויים רגולריים דרך נוחה לתאר שפות היא באמצעות ביטויים רגולריים )שימו לב שההגדרה של ביטוי רגולרי היא רקורסיבית(: הגדרה .16.1נאמר כי tהוא ביטוי רגולרי ) (Regular Expressionמעל א“ב Σאם tהוא אחד מהבאים: ∅ .1או εאו .a ∈ Σ r ∪ s, r · s .2או ∗ ,rכאשר r, sהם ביטויים רגולריים. הגדרה .16.2יהי rביטוי רגולרי .השפה של ,rשנסמנה ) ,L (rמוגדרת באופן הבא: .∀a ∈ Σ, L (a) = {a} ,L (ε) = {ε} ,L (∅) = ∅ .1 ∗ L (r · s) = L (r) · L (s) , L (r∗ ) = L (r) .2 ∗ .L (r ∪ s) = L (r) ∪ L (s) , ∗ דוגמה .Σ = {a, b} .16.1נתבונן בביטוי ) .(a ∪ b) · bb · (a ∪ bביטוי זה מייצג את שפת כל המילים שיש להן bbבאמצע. משפט L ∈ REG .16.1אם“ם קיים ביטוי רגולרי rעבורו .L (r) = L הוכחה :⇒ .יהי rביטוי רגולרי .נוכיח באינדוקציה על אורך סדרת היצירה של rכי ) L (rרגולרית: בסיס :אנו יודעים שכל שפה סופית היא רגולרית ,לכן אם r = ∅, ε, a ∈ Σאז ) L (rרגולרית. צעד :מתכונות הסגירות לשפות רגולריות ,אם L1 , L2 ∈ REGאז .L1 ∪ L2 , L1 ∩ L2 , L∗1 ∈ REGלכן ,אם r, sביטויים רגולריים ,מהנחת האינדוקציה L (r) , L (s) ∈ REGלכן .L (r ∪ s) , L (r ∩ s) , L (r∗ ) ∈ REG ⇐ :נניח ש .L ∈ REG-נראה שקיים ביטוי רגולרי rעבורו .L (r) = Lנתאר אלגוריתם שבהינתן NFAמחזיר ביטוי רגולרי rהמתאים לשפה של האוטומט .בגלל שמדובר בתהליך מסובך וסזיפי ,נתאר אותו על דוגמה בלבד. האלגוריתם משתמש בסוג חדש של אוטומט הנקרא ) GNFA − Generalized NFAראו איור דוגמה בסוף ההוכחה(: הגדרה NFA .16.3מוכלל ) (GNFAהוא כמו NFAרק שעל הצלעות לא רשומות אותיות ב ,Σ-אלא ביטויים רגולריים מעל .Σ לשם פשטות ,נדרוש מה GNFA-את התכונות הבאות: 20 לאוטומט מצב התחלתי יחיד ממנו רק יוצאות צלעות ,מצב דוחה יחיד אליו רק נכנסות צלעות ,והמצב ההתחלתי והמצב המקבל שונים זה מזה .לדוגמה: aa ∗ ab ∗a ab ∪ ba qstart ∗)(aa ∅ qacc ab b 20ראינו כבר כיצד בה“כ ניתן לדרוש את התכונות הללו ,וזה תרגיל טוב לחזור על הנימוקים. 90 16 שבוע 3 תרגול - 3ביטויים רגולריים ולמת הניפוח הרעיון של האלגוריתם יהיה כדלקמן: נתחיל עם A DFAשמקבל את השפה .נתרגם את Aל GNFA-עם שני מצבים נוספים -מצב התחלתי יחיד ומצב מקבל יחיד )עם מעברי εמתאימים( .לאחר מכן ,נתחיל להוריד מצבים מה GNFA-ולשנות קשתות באמצעות הוספת ביטויים רגולרים ,עד שנשאר עם שני מצבים בלבד ,כך שבשלב זה על הצלע ביניהם יהיה רשום ביטוי רגולרי rהשקול ל .A-כל פעם שאנחנו מורידים מצב ,אנחנו רוצים שהשפה של האוטומט תישאר אותה שפה. החלק המתוחכם הוא להבין איך בדיוק מורידים מצבים .כאמור ,בגלל שהפורמליקה מסובכת ,אנו רק נראה דוגמה: שלב - 2הוספת מצב התחלתי sומצב מקבל a שלב 1 b b a a 1 2 2 a b 1 a b ε a s a a b ε b ε 3 3 שלב - 4מוציאים את 2 שלב - 3מוציאים את 1 צריך לטפל בכל המעברים שנגעו ל.1- צריך לטפל בכל המעברים שנגעו ל.2- לדוגמה :ל 2-הייתה לולאה עצמית 2 → 1 → 2 :aa לדוגמה :כדי להגיע מ s-ל 3-צריך לעבור ל ,2-ואז אפשר לכן נוסיף ללולאה העצמית המקורית של 2את ,aaונקבל להשאר בלולאה העצמית שלו ,ואז לעבור ל .3-לכן על (aa) ∪ b הקשת מ s-ל 3-נרשום ∗ )a ((aa) ∪ b aa ∪ b 2 ε a a s ab a ba ∪ a (ba ∪ a)(aa ∪ b)∗ ∪ ε b ε ∗)a(aa ∪ b s a(aa ∪ b)∗ ab ∪ b 3 3 bb (ba ∪ a)(aa ∪ b)∗ ab ∪ bb שלב - 5מוציאים את 3 עכשיו צריך להוסיף לקשת מ s-ל a-את הביטוי שמתאר את כל הדרכים להתחיל ב s-לעבור ל 3-ולהישאר כמה שרוצים בלולאה העצמית ,ואז לעבור ל.a- s a ∗)(a(aa ∪ b)∗ ab ∪ b)((ba ∪ a)(aa ∪ b)∗ ab ∪ bb)∗ ((ba ∪ a)(aa ∪ b)∗ ∪ ε) ∪ a(aa ∪ b 91 17 תרגול - 4למת הניפוח ומשפט מייהיל-נרוד שבוע 4 17תרגול - 4למת הניפוח ומשפט מייהיל-נרוד למת הניפוח תזכורת הגדרה .17.1תהי .g : N → Nנגדיר ) ω (gבאופן הבא )קבוצת הפונק’ שחסומות מלמטה ע“י gאסימפטוטית(: })ω (g) = {f : N → N | ∀c ∈ N ∃N ∈ N : ∀n > N : cg (n) ≤ f (n )f (n ∞= = f : N → N | lim )n→∞ g (n o ראינו כי השפה 2 an | n ∈ N n אינה רגולרית .כשעשינו זאת הסתמכנו על העובדה שניתן לנפח מילה כך שתתקבל מילת בין הערך הנוכחי בסדרה לערך הבא .זה התאפשר כי ההפרשים בין האיברים היו לא קבועים. מכאן נובעת טענה מעניינת ,אך לפני שנציג אותה ונוכיח אותה ,נוכיח טענת עזר קטנה שתעזור לנו בהמשך: למה .17.1תהי ) f ∈ ω (nאזי לכל k ∈ Nקיים k, N ∈ Nקיים n > Nכך ש .f (n + 1) − f (n) > k-כלומר סדרת ההפרשים לא חסומה מלעל. הוכחה .נניח בשלילה .אזי קיימים k, N ∈ Nכך שלכל n > Nמתקיים כי .f (n + 1) − f (n) ≤ kבפרט קיים M ∈ N כך ש f (n + 1) − f (n) ≤ M -לכל .n ∈ Nאזי f (2) − f (1) ≤ M ⇐⇒ f (2) ≤ f (1) + M ולכן באינדוקציה על nנקבל כי )f (n + 1) − f (n) ≤ M ⇐⇒ f (n + 1) ≤ M + f (n )f (n + 1) ≤ nM + f (1 הנחת האינדוקציה ≤ כלומר אנו מקבלים כי )f (n n−1 )f (1 ≤ M+ n n n נבחין כי = 0 )f (1 n + n−1 n M limולכן היא חסומה מלעל ולכן גם ∞→n )f (n n חסומה מלעל ,בסתירה לכך ש= ∞- טענה .17.1תהא f : N → Nמונוטונית עולה כך ש .f (n) ∈ ω (n)-אזי השפה )f (n n→∞ n . lim Lf = af (n) | n ∈ Nלא רגולרית. הוכחה .נניח בשלילה ש Lf -רגולרית ויהי p > 0קבוע הניפוח שלה .ניקח N = k = pונביט במילה ) af (nעבור .n > p מכך ש f -מונוטונית עולה ממש נובע כי f (n) ≥ n > pולכן .|w| ≥ p נכתוב w = xyzכאשר x = al , y = am , z = asומתקיים ) ,l + m + s = f (nוכמובן ש l + m ≤ p-ו .m > 0-נביט במילה xy 2 z = f (n) + m 92 17 שבוע 4 תרגול - 4למת הניפוח ומשפט מייהיל-נרוד עבור .n > Nמתקיים כי m>0 f (n) < f (n) + m ≤ f (n) + p אבל נבחין כי מהלמה אכן יש n > Nכך ש f (n + 1) − f (n) > k = p-כלומר ) f (n) < f (n) + m < f (n + 1ולכן xy 2 zלא בשפה. משפט מייהיל-נרוד בהרצאה ראינו את משפט מייהיל-נרוד ,וראינו שאם היה אוטומט לשפה ,אז x ∼L yהיו מגיעות לאותו מצב ,ולכן לא ניתן היה להפריד ביניהן. דוגמה .17.1 ∗ wמסתיימת ב .L = w ∈ {a, b} | a -קל לראות שהיא רגולרית ,למשל מסגירות לשרשור כי .Σ∗ · {a} = L נרצה להראות כי היא רגולרית באמצעות מייהיל-נרוד .נכוון לשתי מחלקות שקילות -מילים בשפה ומילים שאינן בשפה. במקום לומר שמילה מסתיימת ב a-פשוט נאמר שהיא ב.L- אם ∗ x, y ∈ Σשתיהן מסתיימות ב a-אזי xz ∈ L ⇐⇒ (z = ε ∨ z ∈ L) ⇐⇒ yz ∈ L כלומר .x ∼L y אם ∗ x, y ∈ Σשתיהן לא מסתיימות ב a-אזי xz ∈ L ⇐⇒ z ∈ L ⇐⇒ yz ∈ L כלומר .x ∼L y ∈ x ∈ L, yאזי z = εמפריד בין x, yולכן .x 6∼L yכלומר היחס ∼Lמשרה שתי מחלקות אם ∗ x, y ∈ Σכך ש/ L- שקילות על ∗ .Σעל כן ,ממשפט מייהיל-נרוד נובע כי Lרגולרית. דוגמה w} .17.2מאורך שאינו חזקה של L = {w | 2מעל } .Σ = {aראינו כי n } L′ = a2 | n ∈ N ∪ {0איננה רגולרית, ולכן בהכרח L = Σ∗ \L′איננה רגולרית מסגירות למשלים .גם כאן נוכיח זאת באמצעות מייהיל-נרוד .נרצה להראות שיש אינסוף מחלקות שקילות .נרצה להראות שניתן למצוא אינסוף זוגות שניתן להפריד ביניהם ,ככה שהם לא מתלכדים .יהיו m > nטבעיים .נביט במילים n n m .y = a2 , x = a2נבדוק מה קורה כשמשרשרים להן זנב ב z = a2 -מתקיים כי |xz| = 2n + 2n = 2n+1 |yz| = 2m + 2n = 2n 2m−n + 1 = even · odd ∈ xzולכן zמפריד אותן .כלומר x ∼L yבמחלקות שקילות על כן | |yzאיננה חזקה של שתיים .מכאן yz ∈ Lאבל / L n m y = a2nh, x =i a2נמצאות במחלקות שקילות זרות ביחס .∼Lלכן יש אינסוף שונות .על כן ,לכל m > nנדע oשהמילים מחלקות שקילות כנ“ל .למשל| i ∈ N ∪ {0} , i a2 קבוצה לא סופית. שאלות חזרה תרגיל .17.1יהא DFA A = hQ, {0, 1} , q0 , δ, F iעם |Q| = rמצבים .נתון ש .w = 0r 1r ∈ L (A)-מה מהבאים נכון בהכרח? .L (0∗ 1∗ ) ⊆ L (A) .1 93 17 שבוע 4 תרגול - 4למת הניפוח ומשפט מייהיל-נרוד .L (A) ⊆ L (0∗ 1∗ ) .2 1 .3לא בהכרח נכון אבל לכל i ≥ 1מתקיים ).0ir 1ir ∈ L (A 1 .4לא בהכרח נכון אבל קיים k ≥ 1כך שלכל i ≥ 1מתקיים ).0r+ik 1r+ik ∈ L (A פתרון .1נעבור על כל אחת מהאפשרויות. .1לא נכון .עבור r = 2נביט באוטומט הבא המתאים לשפה } .L = {w : 2 | #0 wהוא מקבל את ,02 12אבל לא מקבל את .03 1 1 0 q0 q1 0 .2לא נכון .אותה דוגמא מהסעיף הקודם והמילה .1100 .3לא נכון .עבור r = 3נבנה אוטומט שמקבל את 03 13אבל לא את 6 6 .0 1נבנה את האוטומט הבא: 0 0 1 1 q2 q0 q1 0 0 .4נכון .מכך ש |w| = 2r > r = |Q|-נובע כי ב A-יש מעגל .נסתכל של Aעל 0rועל .1rבכל אחת מהריצות יש מצב שחוזר על עצמו .לכן בריצה על 0rיש מעגל באורך k1ובריצה על 1rהחל מהמצב שמגיעים אליו אחרי ,0rיש מעגל באורך .k2נביט בריצה של Aשדומה לריצה על 0rאבל לוקחת את המעגל i · k2ואת המעגל של 1rאבל i · k1ונסמן k = k1 · k2אזי הטענה מתקיימת. תרגיל .17.2נתון ה DFA-הבא שמצויר בסוף השאלה. נתון כי ל L (A)-יש 4מחלקות שקילות .MNמה הם הערכים החסרים? δ (q5 , b) = q3 .1ו.δ (q5 , a) = q2 - δ (q5 , b) = q2 .2ו.δ (q5 , a) = q3 - .3גם 1וגם 2אפשריות. .4אף תשובה מ 1-עד 3לא נכונה. a b q4 q1 q2 a ? a b b q5 ? q3 a a b q0 b 94 17 שבוע 4 תרגול - 4למת הניפוח ומשפט מייהיל-נרוד פתרון .2מהנתון ל 4 A-מחלקות שקילות מייהיל-נרוד .לכן ,אלגוריתם הצמצום אמור לאחד מצבים עד שנשארים .4 הצעד הראשון באלגוריתם: } F = {q1 , q2 , q3 } , Q\F = {q0 , q4 , q5 } ⇒ {q1 , q2 } , {q3 עתה נניח את 1או 2אזי נקבל כי Q\Fלא משתנה .בשניהם נקבל } .{q1 , q2 } , {q3 } , {q0 , q4 , q5 נבצע את השלב הבא באלגוריתם :נקבל עבור ההנחה 1 } {q1 , q2 } , {q3 } , {q0 , q5 } , {q4 בשלב הבא באלגוריתם נבחין כי אין הפרדה נוספת. עבור ההנחה 2נקבל } {q1 , q2 } , {q3 } , {q5 } , {q0 , q4 גם כאן בשלב הבא באלגוריתם אין הפרדה נוספת. בשני המקרים יש 4מחלקות שקילות .לכן הן ייתכנו .על כן התשובה הנכונה היא מספר ,3שכן 1, 2אפשריות. ∗ תרגיל .17.3ציירו DFAמינימלי לשפה ) wמסתיימת ב.L = w ∈ {a, b} | (2 | #a (w)) ∨ (a - פתרון .3נמצא את כל מחלקות השקילות של השפה .ברגע שנעשה זאת יהיה לנו DFAמינימלי ממייהיל-נרוד .לכל שתי מילים w1 , w2עם מספר זוגי של ,aשאינן מסתיימות ב ,a-נבחין כי הן שקולות מודולו .∼Lאם אחת מהן מכילה את האות aבסופה ,והאחרת לא ,אז הן אינן שקולות ,כי המילה bמפרידה ביניהן .אם שתיהן מכילות את האות aבסוף ,אזי הן שקולות .אם שתיהן מכילות את האות aבסוף ,אך רק אחת עם מספר זוגי של ,aנקבל כי המילה bמפרידה ביניהן, אם שתיהן עם מספר אי זוגי של aהן שקולות .על כן המחלקות המקבלות הן: ]q0 = [εמילים עם מספר זוגי של a ]q1 = [aמילים שמסתיימות בa- ממה שאמרנו עתה ,הן זרות .נביט עתה במילים שלא בשפה ,כלומר מילים עם מספר אי זוגי של aשמסתיימות ב) b-המילה ∈ w1 , w2מתקיים כי הריקה לא שם כי היא בשפה( .נבחין כי הן שקולות מודולו ,∼Lשכן עבור / L w1 z ∈ L ⇐⇒ w2 z ∈ L קיבלנו אם כך את מחלקת השקילות ] .q2 = [abמכאן ממשפט מייהיל-נרוד האוטומט הבא הוא אוטומט ששפתו היא :L הוא מינימלי ,כי ראינו שאלגוריתם המינימיזציה מחזיר אוטומט עם מספר מינימלי שהמצבים בו הן מחלקות השקילות ב.L- 95 18 שבוע 5 תרגול - 5שפות חסרות הקשר 18תרגול - 5שפות חסרות הקשר דקדוקים חסרי הקשר שפות חסרות הקשר )ח“ה( הם פורמליזציה גנרטיבית של שפות .כלומר ,אנחנו מגדירים את השפה בכך שאנחנו מראים איך לייצר מילים בשפה ,במקום לבדוק האם מילה נמצא בשפה או לא )שזו פורמליזציה דיסקרימינטיבית(. בהרצאה הגדרנו שפות חסרות הקשר וראינו כמה דוגמות .עתה נראה עוד כמה דוגמאות ואז נוכיח טענות בנושא. דוגמה .האם ניתן לבנות דקדוק ח“ה עבור ? ai bj cj di | i, j ∈ Nכן! נבחר בחוקים S → aSd | T | ε T → bT c | ε . תכונות סגור טענה .18.1יהיו .L1 , L2 ∈ CFLאזי .L1 ∪ L2 ∈ CFL G1 = hV1 , Σ, R1 , S1 i L (G1 ) = L1 .נניח בה“כ כי ∅ = ) V1 ∩ V2אחרת נוכל הוכחה .יהיו L (G2 ) = L2 G2 = hV2 , Σ, R2 , S2 i ∈ Sמשתנה חדש .מכאן אנו יכולים להגדיר לשנות את השמות של האיברים ב ,V2 -כפי שעשינו עם אוטומטים( .יהי / V1 ∪ V2 דקדוקים ח“ה עבורם את הדקדוק הבא: G = hV1 ∪ V2 , Σ, R1 ∪ R2 ∪ {S → S1 | S2 } , Si נשים לב שזהו איחוד פשוט של שני הדקדוקים ,G1 , G2ועבורו אכן מתקיים .L (G) = L1 ∪ L2 טענה .18.2יהיו .L1 , L2 ∈ CFLאזי .L1 · L2 ∈ CFL G1 = hV1 , Σ, R1 , S1 i L (G1 ) = L1 הוכחה .יהיו G2 = hV2 , Σ, R2 , S2 i משתנה חדש .מכאן אנו יכולים להגדיר את הדקדוק הבא: דקדוקים ח“ה עבורם L (G2 ) = L2 ∈S .נניח בה“כ כי ∅ = .V1 ∩ V2יהי / V1 ∪ V2 G = hV1 ∪ V2 , Σ, R1 ∪ R2 ∪ {S → S1 · S2 } , Si נשים לב שזהו שרשור פשוט של שני הדקדוקים ,G1 , G2ועבורו אכן מתקיים .L (G) = L1 · L2 ראינו ש REG-סגורה תחת מגוון פעולות .ראינו עכשיו שגם CFLסגורה תחת כל מיני פעולות ,אך בהרצאה ראינו )מסקנה (5.1שהיא איננה סגורה תחת חיתוך .מה לגבי משלים? טענה CFL .18.3לא סגורה תחת משלים. הוכחה .לפי חוק דה מורגן ,אם CFLהייתה סגורה למשלים היה מתקיים לכל L1 , L2 ∈ CFLשL1 ∩ L2 = L1 ∪ L2 ∈ CFL- אך ראינו )מסקנה (5.1ששפות ח“ה לא סגורות תחת חיתוך. 96 18 שבוע 5 תרגול - 5שפות חסרות הקשר למת הניפוח לשפות חסרות הקשר למת הניפוח לשפות חסרות הקשר משפט .תהי .L ∈ CFLאזי קיים ) p ≥ 1קבוע הניפוח( כך שלכל מילה ,w ∈ Lאם |w| ≥ pאז קיימת חלוקה w = u · v · x · y · zכך שמתקיים: |vy| > 0 ∀i ≥ 0, uv i xy i z ∈ L |vxy| ≤ p ∗ ∈ }.L = ww | w ∈ {a, b תרגיל .הוכיחו כי / CFL פתרון .נניח בשלילה כי .L ∈ CFLיהי pקבוע הניפוח של השפה .Lנסתכל על .w = ap bp ap bpמהיות w ∈ Lו,|w| ≥ p- נובע שקיימת חלוקה w = uvxyzכך שתנאים 1, 2, 3מהלמה מתקיימים .נחלק למקרים: vxyמוכל כולו בחצי הראשון של :wנסמן ב s, t-את מספר ה-a, b-ים ב vy-בהתאמה )כלומר .(vy = as btמתנאי 2של הלמה ,מתקיים .s + t > 0לפי תנאי ,3עבור ,i = 0מתקיים - ap−s bp−t ap bp = uxz ∈ Lסתירה. vxyמוכל כולו בחצי השני של :wבאופן דומה למקרה הקודם. vxyנמצא בחלקו בחצי הראשון של wובחלק בחצי השני :לפי תנאי 1של הלמה .|vxy| ≤ p ,לכן vxy ,נמצא בחלק האחרון של ה bp -בחצי הראשון של wובחלק הראשון של ה ap -בחצי השני של ) wכלומר הוא איפשהו בחלק הסגול של .(ap bp ap bpנסמן ב s, t-את מספר ה-a, b-ים ב vy-בהתאמה )כלומר .(vy = bt asלפי תנאי ,3עבור ,i = 0מתקיים - ap bp−t ap−s bp = uxz ∈ Lסתירה. הדוגמה הקודמת נותנת לנו הוכחה נוספת ש CFL-לא סגורה למשלים: תרגיל .הראו שעבור השפה מהדוגמה הקודמת מתקיים .L ∈ CFL פתרון .נשים לב כי L = K1 ∪ K2כאשר } ∗K1 = {uw | |u| = |w| ∧ u ̸= w ∈ Σ }|K2 = {w ∈ Σ∗ | 2 ∤ |w . היות ש CFL-סגורה תחת איחוד ,מספיק להראות ש .K1 , K2 ∈ CFL-קל לראות ש K2 ∈ CFL-שכן .K2 ∈ REGנותר להראות ש.K1 ∈ CFL- יהי w ∈ K1ונסמן |) 2n = |wכל המילים ב K1 -הן מאורך זוגי( .מהגדרת ,K1בהכרח קיים 1 ≤ i ≤ nעבורו ].w [i] 6= w [n + i נניח בה“כ .w [i] = a, w [n + i] = bלכן נוכל לכתוב w = xaybzכאשר ∗ x, y, z ∈ Σו.|x| = i−1, |y| = n−1, |z| = n−i- באופן כללי ,נוכל להגדיר שפה K1′כקבוצת כל המילים מהצרה xaybzאו xbyazכך ש(⋆) |x| = i−1, |y| = n−1, |z| = n−i- עבור nועבור 1 ≤ i ≤ nכלשהו .הגדרה שקולה ל K1′ -היא קבוצת כל המילים מהצורה xaybzאו xbyazכך ש,|x| + |z| = |y|- כי )⋆( שקול לכך ש.|x| + |z| = i − 1 + n − i = n − 1 = |y|- נשים לב ש :K1′ ⊆ K1 -אם w ∈ K1′אז w = xaybzכאשר )⋆( מתקיים עבור איזשהם .i, nמכאן שהאורך של wהוא 2nומתקיים w [i] = a ∧ w [n + i] = bולכן ) .w ∈ K1באופן דומה אם (w = xbyaz באופן דומה אפשר להראות הכלה בכיוון השני ולהסיק .K1′ = K1לכן ,כדי להראות ש ,K1 ∈ CFL-צריך רק לתאר דקדוק ח“ה עבור .K1′נשים לב שדקדוק זה אכן מתאר את השפה: S → AB | BA A → aAa | aAb | bAa | bAb | a B → aBa | aBb | bBa | bBb | b כאשר הרעיון מאחורי הדקדוק הוא שאנחנו רוצים לקבל מילים מהצורה ) xaybzאו ,(xbyazתוך שאנחנו שומרים על הכלל | .|x| + |z| = |yלכן ,בכל אחד מהחוקים ,על כל אות שאנחנו מוסיפים ל x-או ל ,z-אנחנו מוסיפים גם אות ל .y-בסוף, המשתנה Bיהפוך ל b-במילה ) xaybzאו ,xbyazתלוי האם התחלנו מ S → AB-או ,(S → BAוכנ“ל עבור .A 97 19 שבוע 6 תרגול - 6מכונת טיורינג 19תרגול - 6מכונת טיורינג חישוב פונקציות באמצעות מכונות טיורינג הזזת קלט ימינה נתאר מ“ט שבהינתן קלט wמסיים את הריצה כאשר המילה שרשומה על הסרט היא ,$wכלומר הוא מזיז את הקלט מקום אחד ימינה ,ושם בהתחלה .$ )a → (a, R q1 )a → ($, R )a → (a, L q3 )b → (b, L )a → (b, R )b → (a, R )→ (b, L q0 )b → ($, R q2 )b → (b, R המצב ההתחלתי הוא ,q0שרושם $במקום הראשון ,מעביר אותנו למצב שזוכר האם קראנו (q1 ) aאו (q2 ) bומתקדם ימינה. המצב q1כל פעם רושם את האות שהוא אמור לזכור ,ואז מעביר אותנו למצב מתאים שזוכר את האות שהוא קרא עכשיו ,וכך ממשיכים להתקדם ימינה. q3הוא מצב אליו עוברים ברגע שקראנו את התו ,כלומר הגענו לסוף המילה .מצב זה דואג להחזיר אותנו לתחילת הסרט )אין חובה לחזור לתחילת הסרט ,אך הוספנו זאת לשם נוחות(. חישוב הגדלת ערך מספרי נתאר מ“ט שמחשבת את הפונק’ .f (n) = n + 1נאמר שמ“ט מחשבת את ) f (wאם בתחילת הריצה של Mכתוב את w על הסרט ובסוף הריצה הסרט מכיל רק את ).f (w עקרונית תמיד אפשר לכתוב מכונת טיורינג שמתרגם מספר בינארי למספר עשרוני ,לכן כקלט ל f -ניתן מספרים בייצוג בינארי והפלט יהיה גם בייצוג בינארי. המכונה תפעל כך: נתחיל במצב ,q0נרשום בתא הראשון של הסרט $ונזיז את כל הקלט מקום אחד ימינה )כדי לדעת שזה קצה הסרט(. בגלל שמחקנו את מה שהיה בתא הראשון וסמנו ,$נעבור בזמן הזזת הקלט למצב ייעודי שנועד לזכור איזה תו מחקנו. נסרוק את הסרט ימינה עד שנגיע ל- ואז נעבור למצב .q1 98 19 שבוע 6 תרגול - 6מכונת טיורינג ב q1 -אם המכונה קוראת את התו 1היא משנה אותו ל 0-וממשיכה שמאלה .אם היא רואה 0היא משנה אותו ל1- ועוצרת. אם Mנתקלת בתו $זה אומר שהקלט היה 11 . . . 1ואז במקרה הזה נשנה את ה $-ל ,1-ואז נרשום בתא הראשון $ונזיז את כל תוכן הסרט מקום אחד ימינה )וכמו קודם נזכור מה היה לפני ששמנו .($ החלק של ההזזה כאן הוא רק כדי שהפלט יראה ”נקי“ ותמיד יהיה מהצורה ] $ [n + 1כאשר ] [n + 1הוא הייצוג הבינארי של .n + 1 רובסטיות של מכונות טיורינג הגדרנו עד כה מגוון מודלים חישוביים .ראינו שחלקם אקספרסיביים מאחרים .הופתענו לגלות שלדוגמה NFAשקול ל,DFA- ראינו שדקדוקים ח“ה יותר ”חזקים“ מאוטומטים .נשאלת השאלה כמה מכונות טיורינג ”חזקות“ ,והאם נוכל להפוך אותן לחזקות יותר באמצעות שינויים ותוספות? אנו נראה שמכונת טיורינג היא מודל רובסטי למדי -מגוון שינויים טכניים לא משפיעים על האקספרסיביות של המודל. הגדרה .19.1נאמר ששתי מכונות חישוב N, Mהן שקולות אם לכל ∗ w ∈ Σמתקיים ש M -מקבלת את wאם“ם Nמקבלת את ,wדוחה את wאם“ם Nדוחה את ,wלא עוצרת על wאם“ם Nלא עוצרת על .w הגדרה .19.2נאמר ששני מודלים חישוביים X, Yהם שקולים אם לכל מכונה ב X-יש מכונה שקולה ב ,Y -ולכל מכונה ב Y -יש מכונה שקולה ב.X- למעשה ,כל המודלים הבאים )ועוד אחרים( שקולים למכונת טיורינג: מ“ט שסרטה לא חסום גם משמאל. מ“ט עם kסרטים. מ“ט שיכולה לבחור להישאר במקום בנוסף לבחירה לזוז ימינה/שמאלה. מ“ט שבמקום סרט חד-מימדי אינסופי יש לה gridדו-מימדי אינסופי. מ“ט אי-דטרמיניסטית. מכונת טיורינג עם שני סרטים מכונת טיורינג עם 2סרטים היא מכונת טיורינג רגילה ,רק ,כמה מפתיע ,שיש לה שני סרטים .לכל סרט יש ראש קורא משלו .במצב ההתחלתי הקלט מופיע על הסרט הראשון ,והסרט השני ריק .פונק’ המעברים מאפשרת לנו לקרוא/לכתוב/לזוז בשני הסרטים בו זמנים: 2 }δ : Q × Γ2 → Q × Γ2 × {R, L הביטוי )δ (q, γ1 γ2 ) = (q ′ , γ1′ γ2′ , L, R משמעו שכאשר אנו במצב ,qוהראש של הסרט הראשון מצביע על γ1והראש של הסרט השני מצביע על ,γ2אז אנחנו עוברים למצב ,q ′כותבים בסרט הראשון γ1′במקום γ1וזזים שמאלה ,וכותבים בסרט השני γ2′במקום γ2וזזים ימינה. 99 19 שבוע 6 תרגול - 6מכונת טיורינג משפט .19.1המודל של מ“ט עם 2סרטים שקול למודל של מ“ט. הוכחה בכיוון הקל ,בהינתן מ“ט Mנוכל לקחת מ“ט עם 2סרטים כאשר הסרט הראשון מדמה את Mוהסרט השני לא עושה כלום. ′ בכיוון הקשה ,יהי M = hQ, Σ, Γ, δ, q0 , qacc , qrej iמ“ט עם 2סרטים .נמצא מ“ט רגילה Mהשקולה ל .M -הרעיון בהוכחה יהיה לסמלץ את שני הסרטים באמצעות הסרט היחיד של .M ′נגדיר מ“ט ′ ′ M ′ = Q′ , Σ, Γ′ , δ ′ , q0′ , qaccבאופן הבא: , qrej כל אות ב Γ′ -שנרשום על הסרט היחיד שלנו ,תכיל בזמן הסימלוץ את שתי האותיות שרשומות על הסרטים של ,Mיחד עם 2 זוג ערכים ב ,{True, False} -שיציינו את מיקום הראש של כל סרט .לדוגמה ,אם בתא ה i-בסרט רשום )(a, b, False, True זה אומר שבסרט 1רשומה בתא ה i-האות ,aוהראש של הסרט 1לא מצביע על התא ה) i-כי רשום ,(Falseובאופן דומה בסרט 2רשומה בתא ה i-האות ,bוהראש של סרט 2כן מצביע על התא ה) i-כי רשום .(Trueלדוגמה: הסרט השני בM - ··· 1 0 1 הסרט הראשון בM - ··· 0 b a b a הסרט היחיד בM ′ - ··· )(a , 0 , False , False) (b , 1 , True , False) (a , 1 , False , False) (b , 0 , False , True כלומר באופן פורמלי } { ∪ Γ′ = (Γ × Γ × {True, False} × {True, False}) ∪ Σ כל צעד ב M ′ -יתבצע באופן הבא: .1אתחול :המכונה תתחיל לעבור על מילת הקלט ,ותחליף כל הופעה של σ ∈ Σב ,(σ, , 0, 0)-כאשר רק התא הראשון יסומן )(σ, , 1, 1 שכן בהתחלה שני הראשים ב M -מצביעים על התא הראשון. .2סימולציה M ′ :מקודדת במצבים שלה את המצבים של .Mבכל צעד M ′ ,סורקת את הסרט משמאל לימין ,ומחפשת תא בו רשום ביטוי מהצורה )· ,(·, ·, True,כך נדע שהראש הראשון מצביע על התא הזה .ברגע שמגיעים לתא כזה ,המכונה זוכרת את האות הנוכחית )מקודדת אותה במצב הפנימי שלה(. עכשיו M ′חוזר לתחילת הסרט 21 ומחפש תא בו רשום ביטוי מהצורה ) (·, ·, ·, Trueכך נדע שהראש השני מצביע על התא הזה .ברגע שמגיעים לתא כזה ,המכונה זוכרת את האות הנוכחית )מקודדת אותה במצב הפנימי שלה(. עכשיו M ′מוכנה לבצע החלטה )כי היא ”יודעת“ מהם .(q, γ1 , γ2 M ′סורקת את הסרט משמאל לימין ,ומחפשת את המקום עליו מצביע הראש הראשון ב ,M -וברגע שמגיעים לתא זה ,אנחנו מעדכנים את הסרט בהתאם ל ,δ-בכך שנשנה את האות ”בסרט הראשון“ )האיבר הראשון במה שרשום בתא( ,ואז מזיזים את הראש ימינה או שמאלה בהתאם ל δ-ומעדכנים את המיקום של הראש )מוחקים את ה True-שהיה ,ושמים Trueבמקום החדש של הראש(. מבצעים את אותו תהליך עבור הראש השני. .3עצירה :נחזור על התהליך שתואר בשלב הסימולציה ,עד שבסימלוץ שלנו נגיע למצב qaccאו ,qrejואם בסמלוץ Mאף פעם לא עוצרת אז גם M ′לא תעצור. נשים לב ש ,Q, Γ-הן סופיות ולכן המכונה שלנו תקינה ,ומסמלצת את M ′באופן מושלם לכן M, M ′שקולות. 21ראינו בתחילת התרגול איך אפשר לדעת שאנחנו נמצאים בתחילת הסרט ,לדוגמה באמצעות הזזת הקלט מקום אחד ימין ,ורשימת התו $בתא הראשון. 100 20 תרגול - 7תכונות סגור של R, RE, coRE שבוע 7 20תרגול - 7תכונות סגור של R, RE, coRE טענה .20.1אם L1 , L2 ∈ Rאזי .L1 ∪ L2 ∈ R הוכחה .מכך ש L1 , L2 ∈ R-יש מ“ט M1 , M2המכריעות את L1 , L2בהתאמה .נבנה מ“ט Mשמכריעה את L1 ∪ L2באופן הבא .בהינתן ,wתשמור את wבמקום שמור בראש הסרט ,אחר כך תכתוב ⊥ )שיהווה חסם משמאל ל (M1 -ואז תעתיק את wלאחר ⊥ תסמלץ את ריצת M1על wהחל מ .⊥-אם M1קיבלה אז Mתקבל ,אחרת ,תמחק את כל מה שאחרי ⊥ ,תעתיק מחדש את wותסמלץ את ריצת M2על wהחל מ .⊥-אם M2קיבלה ,אז M1תקבל .אחרת ,תדחה .בכל מקרה M1 , M2 ,עוצרות ולכן Mתמיד עוצרת. טענה .20.2אם L1 , L2 ∈ REאזי .L1 ∪ L2 ∈ RE הוכחה .במקרה זה ההוכחה שהצגנו לא תעבוד ,כי אין בהכרח מ“ט שמכריעות את ,L1 , L2אבל ,נוכל להסתמך על העובדה, שאם מילה בשפה ,המ“ט בהכרח תעצור ,ומכך שהמ“ט שאנו בונים לא חייבת לעצור ,נוכל להריץ אותן בשלבים. אם כך ,יהיו M1 , M2מ“ט שמזהות את L1 , L2בהתאמה .נבנה מ“ט Mשמזהה את L1 ∪ L2שתפעל כך .בהינתן ∗w ∈ Σ Mתשמור את wעל הסרט במקום שמור ,אחריו ⊥ ,מיד אחריו תשמור מונה צעדים iשמשמעותו כמה צעדים צריך לרוץ כעת ,אחריו ⊥ ,ואז מונה צעדים jשל כמה צעדים רצנו בסיבוב זה ,אחריו ⊥ ואז דגל שמשמעותו אם מריצים את M1 או את .M2 כעת ,בכל שלב M ,תסמלץ את M1או M2בהמשך הסרט ,במשך iצעדים ,תוך שימוש ב .j-אם תוך iצעדים M1לא קיבלה ,תעבור ל M2 -ותסמלץ iצעדים .אם לא קיבלה ,תאפס את ,jתגדיל את ,i + 1תעתיק מחדש את wותמשיך כך. ריצה מקבילית טענה .20.3אם L1 , L2 ∈ REאזי .L1 · L2 ∈ RE הוכחה .כאן ההוכחה שביצענו לאיחוד ,לא תעבוד ,היות שבחירה של חלוקה אחת ,עלולה להוביל לאי עצירה ,בעוד חלוקה אחרת תוביל לקבלה .על כן ,ננסה להריץ אותם בצורה מקבילית. יהיו M1 , M2מ“ט שמזהות את השפות L1 , L2בהתאמה .נתאר מ“ט M3שמזהה את השפה } .{u#v | u ∈ L1 , v ∈ L2 M3תפעל כך .תסמלץ את ריצת M1על .uאם M1מקבלת את uאז תסמלץ את M2על .vאם M2מקבלתM , תקבל .בכל מקרה אחר M3תדחה או לא תעצור .עתה מה שנותר הוא למצוא את החלוקה הנכונה .נשתמש ב M3 -כדי לבנות מ“ט Mשמזהה את .L1 · L2היות שכל החלוקות של wל L1 · L2 -נקבעות על ידי אינדקס | ,0 ≤ i ≤ |wנוכל להריץ את המכונה M3על כל חלוקה iצעדים .על כן ,לכל ∗ w ∈ Σולכל חלוקה w = u · vכאשר בה“כ החלוקה היא במקום ה i-ב M3 ,w-תפעל על u#vמספר סופי kשל צעדים .עכשיו נוכל להגדיר את .M Mתשמור את wבמקום שמור בסרט ,אחריו 3מונים i, j, kכאשר iמסמן את החלוקה j ,כמה צעדים לרוץ ו k-כצה צעדים רצנו עד עכשיו .כעת ,בכל שלב בריצה M ,תסמלץ את M3על החלוקה הנוכחית במשך iצעדים תוך שימוש במונה .jאם M3מקבלת M ,תקבל ,אחרת ,תמשיך הלאה עד מיצוי כל החלוקות במשך jצעדים .לאחר מכן ,תגדיל j → j + 1 ותאפס את מונה החלוקות iל .0-בכל ריצה של jצעדים של M3נעזר ב k-כדי למנות את מספר הצעדים. נשים לב כי אם קיימת חלוקה של wל uv-כך ש u ∈ L1 , v ∈ L2 -אז Mתקבל את wמתישהו .אחרת M ,לא תעצור, כלומר Mמזהה את L1 · L2ולכן .L1 · L2 ∈ RE מכונת טיורינג אוניברסלית עד כה אמרנו שמכונה ”מסלמצת“ מכונה אחרת ,נרצה לנסח זאת בצורה פורמלית. 101 20 תרגול - 7תכונות סגור של R, RE, coRE שבוע 7 הגדרה .20.1מ“ט Uתקרא אוניברסלית אם היא מקבלת כקלט מ“ט Mומילה wומתנהגת בדיוק כמו Mעל ,w כלומר מסמלצת את Mעל ,wכאשר היא מקבלת/דוחה/לא עוצרת בהתאם וגם מסמלצת את תוכן הסרט. הערה .20.1אף אחד לא אמר שקיימת מ“ט כזו. הבעיה הראשונה שעולה היא קידוד האלפבת -מכונות טיורינג שונות יכולות להכיל אלפבת שונה ,ולכן נצטרך להיות מסוגלים לקודד אלפבת אחד באמצעות אלפבת אחר .בכלל ,עלינו להיות מסוגלים לקודד את כל Mלאלפבת של .U נשתמש באלפבת } {0, 1, #ונרצה לקודד באמצעותו את .M = hQ, Σ, Γ, δ, q0 , qacc , qrej iנראשית נקודד את המצבים בQ- באמצעות מספרים בינאריים בסדר עולה ,מופרדים על ידי .#לבסוף ,נוסיף .###היות ש Σ ⊆ Γ-נקודד את Γואת הקידודים של Σנשמור גם במקום בזכרון שמתאים לה .נעשה זאת ,באמצעות קידוד-בינארי ,נצטרך dlog2 |Γ|eביטים. עתה ,נקודד את פונקציית המעברים .δהיות ש δ (q, σ) = (q ′ , σ ′ , L′ )-נקודד .## hqi # hσi # hq ′ i # hσ ′ i # hLi ##אחרי כל המעברים נוסיף .###לבסוף נקודד את q0 , qacc , qrejלפי הקידוד הבינארי שלהם ,מופרדים ב.###- בזאת סיימנו את חלק הקידוד .נבנה מ“ט Uאוניברסלית U .תקבל/תדחה/לא תעצור על wבהתאמה ל M -ו U -תשמור בכל שלב את התוכן של הסרט של Mבשלב הנוכחי. Uתהיה מכונה עם 3סרטים .בסרט הראשון יהיה שמור תיאור של ,Mבסרט השני תתבצע סימולציה של הסרט של ,M והסרט השלישי ישמור את המצב הנוכחי שבו Mנמצאת וישמש גם לחישובים. Uתפעל כך: .1תסרוק את סרט 1ותמצא את .w .2תעתיק את wלסרט 2ותחזיר את הראש הקורא השני לתחילת סרט ,2ואת הראש הראשון לתחילת הסרט הראשון. .3תסרוק את סרט ,1תמצא את ,q0תעתיק לסרט ,3ושוב תחזיר את ראש 1להתחלה. .4בכל איטרציה: )א( תשווה את המצב הרשום בסרט 3ל qrej , qacc -ותקבל/תדחה בהתאם ,ואחרת תמשיך לשלב הבא: )ב( תסרוק את סרט 1ותמצא את תחילת התיאור של .δ )ג( תשווה את המצב בסרט 3והאות מתחת לראש בסרט 2לכל המעברים ב δ-עד שתמצא את המעבר המתאים. )ד( תחליף את האות מתחת לראש בסרט 2בהתאם למעבר המתאים ,ותעביר את ראש 2ימינה/שמאלה בהתאם. )ה( תחליף את המצב בסרט 3לפי המעבר שנמצא. מכונת טיורינג אי-דטרמינסטית נחקור מ“ט אי-דטרמינסטיות. הגדרה .20.2מכונת טיורינג א“ד ) (NTMהיא כמו TMעם ההבדל הבא: ∅\ }δ : Q\ {qacc , qrej } × Γ → 2Q×Γ×{L,R הגדרה .20.3נאמר ש NTM-מקבלת את wאם קיימת איזשהי ריצה מקבלת שלה על .w הגדרה .20.4נאמר ש NTM-מכריעה אם כל ריצה שלה על wעוצרת. בהינתן NTMטבעי להסתכל על עץ הריצה שלה. 102 20 תרגול - 7תכונות סגור של R, RE, coRE שבוע 7 הגדרה .20.5בהינתן מילה ∗ w ∈ Σכקלט למ“ט א“ד ,Nעץ הריצה של Nעל wהוא גרף TN,w = hV, Eiהמוגדר באופן הבא .תהא Cקבוצת כל הקונפ ′האפשריות בריצה כלשהי של Nעל .wנגדיר: )} ,V ⊆ C × (N ∪ {0כלומר כל קודקוד hc, iiמתאים לקונפיגורציה cשל Nשנמצאת ברמה ה i-בעץ .TN,w שורש העץ .hq0 w, 0iכלומר מתאים לקונפיגורציה ההתחלתית של Nעל wשהיא ,q0 wולא נכנסות אליה צלעות. )}(C × {i}) × (C × {i + 1 S ⊆ ,Eכאשר יש צלע מ hc, ii-ל hc′ , i + 1i-אם c′קונפ ′עוקבת של ,cכלומר i≥0 אם קיים כלל מעבר ב δ-כך ש c′ -היא קונפ ′עוקבת של .c הגדרה .20.6נאמר שענף בעץ הוא מייצג ריצה מקבלת )דוחה( עם הוא נעצר בעלה ש (qrej ) qacc -מופיע בו. עולה השאלה ,האם המודל הנ“ל חזק יותר ממ“ט דטרמינסטית? קל לראות שלכל מ“ט דטרמינסטית אפשר לבנות מ“ט אי-דטרמינסטית .אבל מה לגבי הכיוון ההפוך? שקילות NTMוTM- משפט .20.1לכל מ“ט א“ד Nקיימת מ“ט דטרמינסטית ששקולה לה. כדי להוכיח את המשפט ,נרצה להשתמש במ“ט אוניברסלית .נעשה זאת על ידי סריקה של עץ הריצה של .N הוכחה M .תפעל כך .בהינתן ∗ w ∈ Σתבנה on − the − flyאת עץ הריצה של Nעל wשלב אחר שלב ,תוך שהיא מבצעת חיפוש BFSעל הקודקודים ומחפשת מצב מקבל .אם נמצא מצב מקבל M ,מקבלת את .wאם כל הענפים עצרו במצב דוחה M ,דוחה את .wאחרת M ,תמשיך לרוץ ולא תעצור על .w קל לראות ש M -מקבלת/דוחה/לא עוצרת על wאם“ם Nמקבלת/דוחה/לא עוצרת בהתאמה. הבנייה שביצענו עובדת ,אך יחסית יקרה .למשל ,אם נניח של N -יש לכל היותר kקונפיגורציות עוקבות לכל קונפיגורציה, ושהיא מבצעת tצעדים על קלט מסויים ,אז הבנייה שלנו תניב מ“ט דטרמינסטית עם זמן ריצה ) O t2 · k t = 2O(tשנקבע לפי גודל העץ ) (k tואורך הקידוד של כל ריצה . t2כלומר ,מזמן ריצה פולינומיאלי ,עברנו לזמן ריצה אקספוננציאלי. עולה השאלה אם אפשר לבצע בנייה טובה יותר .התשובה היא שאנחנו לא יודעים -זו בעיה פתוחה. 103 21 שבוע 8 תרגול - 8רדוקציה ומשפט רייס 21תרגול - 8רדוקציה ומשפט רייס רדוקציות ניזכר בהגדרה של רדוקציית מיפוי ) .(7.2הוכחנו את משפט הרדוקציה ) (7.1עבור ,Rועכשיו נוכיח אותה עבור .RE, coRE משפט הרדוקציה לRE, coRE- משפט .לכל ∗ L1 , L2 ⊆ Σאם L1 ≤m L2ו L2 ∈ RE-אזי ,L1 ∈ REואם L2 ∈ coREאזי .L1 ∈ coRE הוכחה .נניח כי .L2 ∈ REלכן קיימת מ“ט Mשמזהה את .L2מההנחה ,קיימת רדוקציה ∗ f : Σ∗ → Σמ L1 -ל.L2 - נגדיר מ“ט Nשבהינתן קלט xמחשבת ) ,y = f (xומסמלצת את הריצה של Mעל .y נשים לב ש N -מקבלת את xאם“ם Mמקבלת את ) f (xאם“ם f (x) ∈ L2אם“ם .x ∈ L1לכן Nמזהה את L1ולכן .L1 ∈ RE נניח כי .L2 ∈ coREנשים לב ש f -מהחלק הקודם היא גם רידוקציה מ L1 -ל ,L2 -לכן אותה בנייה כמו בחלק הראשון תעבוד ותראה ש.L1 ∈ coRE- במשפטי הרדוקציה ניתן להשתמש כדי להראות ששפות הן לא ב .R/RE/ . . .-אנחנו כרגע יודעים שATM ∈ RE\coRE- ו ,ATM ∈ coRE\RE-וזה הכלי העיקרי שלנו להראות ששפות לא כריעות .אולם בגלל שרדוקציות הן טרנזטיביות ,עם כל שפה שאנחנו מראים שהיא לא כריעה ,אנחנו מגדילים את הארסנל שלנו. מתקיים ,RE ∩ coRE = Rומכך נובע שכל שפה נמצאת באחת )ורק אחת( מהמחלקות הבאות.R, RE\R, coRE\R, RE ∪ coRE : עם הכלים שיש לנו נוכל להגיד לגבי כל מיני שפות איפה הן נמצאות: הגדרה .21.1נסמן } ∗.ALLTM = {hM i : L (M ) = Σ טענה .ALLTM ∈ RE ∪ coRE .21.1 לשם הוכחת הטענה ,נוכיח שתי טענות עזר: ∈ (ALLTM למה ) ATM ≤m ALLTM .21.1ולכן / coRE הוכחה .נבנה את הרדוקציה באופן הבא :עבור קלט hM, wiל ,ATM -הרדוקציה תחזיר hKiכאשר Kהיא מכונה שבהינתן קלט xמסמלצת את הריצה של Mעל ,wועונה כמוה )אם Mמקבלת גם Kמקבלת ,אם Mדוחה גם Mדוחה ,אם Mלא עוצרת אז כמובן גם Kלא תעצור(. ∈ hM, wiאז נכונות :אם hM, wi ∈ ATMאז Kמקבלת כל קלט ולכן ∗ L (K) = Σכלומר .hKi ∈ ALLTMאם / ATM ∈ ,hKi או ש M -נתקעת או שהיא דוחה את ,wבכל מקרה Kלא מקבלת אף xולכן ∗ ,L (K) = ∅ 6= Σולכן / ALLTM לכן הרדוקציה נכונה. חישוביות :צריך להראות שהרדוקציה fניתנת לחישוב f .ניתנת לחישוב כי מהקידוד hM, wiניתן לבנות ממ“ט חדשה K שתהיה מ“ט אוניברסלית בה hM, wiמקודדת מראש )כדי שהיא תוכל להשתמש בה( .את האלגוריתם הזה מ“ט אכן יכולה לממש ולכן fבאמת ניתנת לחישוב. שימו לב שהרדוקציה לא הריצה את Mעל ,wאלא רק בנתה hKiמ) hM, wi-ו K-משתמשת ב.(M, w- ! ∈ (ALLTM למה ) ATM ≤m ALLTM .21.2ולכן / RE הוכחה .הפעם הבנייה קצת יותר טריקית ,כי אנחנו רוצים לסמלץ ריצה של Mעל ,wאבל אנחנו גם רוצים לעשות משהו אם Mלא מקבלת את .wאם היא דוחה את wזה בסדר ,אבל אם היא לא עוצרת ,אנחנו בבעיה .לכן נשתמש בטריק: 104 21 תרגול - 8רדוקציה ומשפט רייס שבוע 8 נבנה את הרדוקציה באופן הבא :עבור קלט hM, wiל ,ATM -הרדוקציה תחזיר hKiכאשר Kהיא מכונה שבהינתן קלט x מסמלצת את הריצה של Mעל wעבור | |xצעדים .אם לפני שהגענו לצעד ה |x| + 1-המכונה Mקיבלה את ,wאז K תדחה את .xאחרת K ,תקבל את .x נכונות :אם hM, wi ∈ ATMאז Mלא מקבלת את wולכן בפרט Mלא תקבל את wאחרי | |xצעדים )לכל ,(xלכן K מקבלת כל קלט ולכן ∗ L (K) = Σולכן .hKi ∈ ALLTMאם Mמקבלת את wאז קיים n ∈ Nכך ש M -תקבל את w ∈ ,hKiלכן לאחר nצעדים .לכן לכל xהמקיים ,|x| > nהמכונה Kתדחה את ,kולכן ∗ L (K) 6= Σולכן / ALLTM הרדוקציה נכונה. חישוביות :הרדוקציה fניתנת לחישוב מאותן סיבות כמו בטענה הקודמת. עתה נראה שפה נוספת ונסווג גם אותה. ∈ qש M -לא מגיעה אליו אף פעם עבור אף קלט .USELESS = {hM i : הגדרה } .21.2קיים מצב } / {qacc , qrej טענה .USELESS ∈ coRE\R .21.2 הוכחה .כדי להראות ש USELESS ∈ coRE-מספיק להראות ש ,USELESS ∈ RE-כלומר נבנה מ“ט בהינתן קלט hM i מקבלת אם“ם ניתן להגיע לכל המצבים ב .M -נגדיר את המכונה כך :בהינתן קלט ,hM iהמ“ט יכולה לסמלץ ריצה של Mעל כל קלט במקביל, 22 תוך שהיא זוכרת כל הזמן באילו מצבים כבר ביקרנו .אם בשלב מסוים ביקרנו בכל מצב ,אז נקבל את hM iואכן .hM i ∈ USELESSאחרת ,לא נעצור .כלומר אכן .USELESS ∈ RE ∈ ,USELESSואז נסיים )ישירות נובע USELESS ∈ coRE\Rכי .(RE ∩ coRE = R עכשיו נרצה להראות ש/ RE- נראה ש .ATM ≤m USELESS-נבנה רדוקציה Tמ ATM -ל.USELESS- נבנה את הרדוקציה באופן הבא :עבור קלט hM, wiל T ,ATM -תבנה מ“ט Hשבהינתן קלט H ,xמסמלצת בתוכה את הריצה של Mעל ) wבלי להגביל את כמות הצעדים שאנחנו נרוץ( .אם Mמקבלת את H ,wעוברת למצב חדש מיוחד, ממנו היא תטייל בין כל המצבים ולבסוף תגיע ל .qacc -אחרת ,אם Mדוחה את H ,wדוחה. נכונות :אם hM, wi ∈ ATMאז Mלא מקבלת את ,wולכן Hאף פעם לא מגיע למצב המיוחד ,ולכן .hHi ∈ USELESS ∈ .hHi ∈ hM, wiאז Mמקבלת את ,wולכן Hתמיד תעבור על כל המצבים ולכן / USELESS אם / ATM חישוביות :כדי להראות שהרדוקציה Tניתנת לחישוב ,צריך לתאר איך אנחנו בונים את המצב המיוחד שממנו מטיילים בין שאר המצבים ועוברים על כולם .הרעיון הוא למיין את כל המצבים )למעט ,q1 , . . . , qk ,(qacc , qrejלכתוב על הסרט תו מיוחד @ ,ולהגדיר שבכל מצב ב ,H-אם אנחנו נמצאים במצב כלשהו qiאז כשאנחנו קוראים את התו @ ,אנחנו עוברים למצב ,qi+1ולא מזיזים את הראש של מכונת הטיורינג. 23 המצב המיוחד ירשום על הסרט את התו @ ,ויעבור למצב ,q1 ומשם נטייל על כל המצבים עד שנגיע ל qk -ומשם נעבור ל) qacc -אם אנחנו רוצים שיהיה קלט עבורו גם נגיע ל qrej -אפשר לבחור מילת קלט מיוחדת ,למשל ,x = εולהגדיר שעל מילת קלט זו נעבור ישר ל.qrej - אז אנחנו רואים שאכן ניתן להגדיר מ“ט שמבצעת את כל הצעדים שתיארנו כאן ,ולכן הרדוקציה ניתנת לחישוב. משפט רייס )(Rice נפרמל את הרעיון של הרדוקציות בהן נתקלנו עד כה באמצעות משפט ,שנזקף לזכותו של הנרי גורדון רייס. 22בצורה אינקרמנטלית .כלומר ,נסדר את ∗) Σהיא בת מנייה אז זה אפשרי( ,ונריץ צעד אחד של Mעל הקלט הראשון ,ואז שני צעדים של Mעל הקלט הראשון ועל הקלט השני ,ואז שלושה.. 23ציינו בעבר שמכונת טיורינג בה יש את האופציה להשאיר את הראש במקום שקולה ,מבחינת כוח החישוב ,למכונת טיורינג ללא אופציה זו. בכל מקרה ,אם לא רוצים להשתמש בפיצ’ר הזה ,ניתן פשוט לרשום שני תווים חדשים ,@→ , @← :אחד ליד השני ,ופשוט להזיז את הראש כל הזמן ימינה ושמאלה ביניהם. 105 21 שבוע 8 תרגול - 8רדוקציה ומשפט רייס הגדרה .21.3תכונה סמנטית של מכונות טיורינג היא קבוצה Pשל מכונות טיורינג ,כך שמתקיימת התכונה הבאה: לכל שתי מ“ט ,M1 , M2אם ) L (M1 ) = L (M2אז .M1 ∈ P ⇔ M2 ∈ P הגדרה .21.4תהי Pתכונה סמנטית של מ“ט .נאמר כי Pאינה טריוויאלית אם קיימות שתי מ“ט ,M1 , M2כך ∈ .M2 ש M1 ∈ P -ו/ P - הגדרה .21.5תהי Pתכונה סמנטית של מ“ט .נסמן } .LP = {hM i : M ∈ P אינטואיטיבית P ,היא קבוצה של מכונות ,אך היא מוגדרת דרך השפה שלהן. ! למה .21.3תהי ∅ Tמ“ט עבורה ∅ = ) ∅ L (Tותהי Pתכונה סמנטית לא טריוויאלית של מכונות טיורינג ,כך ∈ .LP ∈ ∅ .Tאזי ,ATM ≤m LPבפרט / coRE ש/ P - הוכחה .נבנה רדוקציה fמ ATM -ל.LP - נבנה את הרדוקציה באופן הבא :עבור קלט hM, wiל ,ATM -אנחנו צריכים לבנות f (hM, wi) = hT iכך ש .hM, wi ∈ ATM ⇔ hT i ∈ LP -מכך ש P -סמנטית לא טריוויאלית ,קיימת מ“ט Hכך ש.H ∈ P - על כן ,בהינתן קלט hM, wiל ATM -הרדוקציה fתבנה מ“ט Tהפועלת באופן הבא: .1בהינתן קלט T ,xתסמלץ את הריצה של Mעל .wאם היא עוצרת ודוחה ,דחה .אם היא מקבלת T ,תמשיך לשלב .2 T .2תסמלץ את הריצה של Hעל .xאם הריצה מקבלת ,אז Tמקבלת ,ואם היא דוחה אז גם Tתדחה )ואם H תרוץ לנצח כמובן גם Tתרוץ לנצח(. נכונות :אם hM, wi ∈ ATMאז Mמקבלת את ,wולכן ) ,L (T ) = L (Hומהיות H ∈ Pו P -היא תכונה סמנטית ,נובע כי T ∈ Pולכן .hT i ∈ LP ∈ ∅T ∈ hM, wiאז Tלא מקבלת אף מילה ולכן ) ∅ L (T ) = ∅ = L (Tומהיות Pתכונה סמנטית וכך ש/ P - אם / ATM ∈ .hT i ∈ Tולכן / LP נובע כי / P חישוביות :נראה ש f -ניתנת לחישוב .אנחנו יודעים שאנחנו יכולים לבנות מ“ט שיודעת לסמלץ ריצה של מכונת טיורינג כלשהי על מילה ,אז אנחנו יכולים לעשות זאת גם לריצה של Mעל wוגם לריצה של Hעל .xלכן fאכן ניתנת לחישוב. משפט רייס ∈ LP משפט .תהי Pתכונה סמנטית לא טריוויאלית של מכונות טיורינג .אזי / R ∈ .LP ∈ LPובפרט / R ∈ ∅ ,Tאז מהלמה אנחנו מסיקים ש/ coRE- הוכחה .אם קיימת מ“ט ∅ Tעבורה ∅ = ) ∅ L (Tכך ש/ P - ∈ .LP ∈ LPולכן / RE אחרת ,נסתכל על השפה LPשהיא גם שפה של תכונה סמנטית .P ,מהלמה אנו מסיקים כי / coRE ∈ .LP בפרט / R ניכר שהחלק המשמעותי במשפט ריס הוא הלמה שלא הוכחנו ולא המשפט עצמו ,כי היא נותנת לנו יותר מידע. דוגמה .21.1תהי ) .L = hM i : ∀w ∈ Σ∗ , w ∈ L (M ) ⇐⇒ wwR wwR ∈ L (Mזו תכונה סמנטית לא טריוויאלית ,וכן ∈ .L hT∅ i ∈ Lולכן מהלמה / RE הלמה לא אומרת לנו שום דבר לגבי הכיוון ההפוך. מקוריים .כלומר ,יתכן ש L ∈/ RE-אבל אנחנו לא יודעים אם ! L ∈ coRE או לא .לשם כך יש לנו כל מיני טריקים ∈ .ALLTM מסקנה / coRE .21.1 106 21 תרגול - 8רדוקציה ומשפט רייס שבוע 8 ∈ ∅ Tלכן מהלמה של משפט הוכחה .קל לראות ש ALLTM -זו תכונה סמנטית של מ“ט ,שאיננה טריוויאלית .בפרט/ ALLTM , ∈ .ALLTM ∈ .ALLTMלא נוכל לקבוע ישירות ממשפט רייס ש/ RE- רייס/ coRE , 107 22 שבוע 10 תרגול - 9רדוקציות מיפוי וNP- 22תרגול - 9רדוקציות מיפוי וNP- עוד קצת רדוקציות מיפוי הגדרה .22.1בהינתן זוג שפות ,L1 , L2נאמר שהן -kמסכימות אם יש לפחות kמילים שונות w1 , . . . , wkכך שלכל 1 ≤ i ≤ kמתקיים .wi ∈ L1 ⇔ wi ∈ L2 תרגיל .נראה ש − 10 L (M1 ) , L (M2 )} ∈ RE ∪ coRE -מסכימות | .L = {hM1 , M2 iהאם התשובה משתנה כתלות בדרגת ההסכמה? פתרון .נבצע שתי רדוקציות ,אחת מ HALTεTM -ואחת מ .HALTεTM -ראינו כבר ש ,HALTεTM ∈ RE\R-ולכן ∈ HALTεTM ,coRE\Rולכן שתי הרדוקציות הללו מספיקות כדי להראות את הדרוש. ∈ .L נתחיל מהרדוקציה HALTεTM ≤m Lשתראה ש/ coRE- בנייה :בהינתן ,hM iהרדוקציה מחזירה hM1 , M2 iכאשר M1 , M2מוגדרות כדלקמן M1 :מקבלת ישר )לכל קלט(, בעוד ש M2 -מתעלמת מהקלט ומסמלצת ריצה של Mעל - εאם Mעוצרת אז M2מקבלת ,ואחרת M2כמובן רצה לנצח. נכונות :נניח כי .hM i ∈ HALTεTMאזי Mעוצרת על ,εולכן M1 , M2יקבלו שתיהן כל מילה ,כלומר ) L (M1 ) = L (M2 ולכן הן בפרט -10מסכימות. ∈ ,hM iאז Mלא עוצרת על εולכן M2לא מקבלת אף מילה ולכן בכיוון השני ,אם / HALTεTM ) L (M1 ) = Σ∗ 6= ∅ = L (M2ובפרט הן לא -10מסכימות. חישוביות :את M1ניתן לבנות בקלות ע“י הבחירה .q0 = qaccאת M2ניתן לבנות בשני חלקים :החלק הראשון מוחק את מילת הקלט שרשומה על הסרט ,והחלק השני הוא העתק של Mכדי שנוכל לסמלץ את הריצה של Mעל .ε הרדוקציה עבור HALTεTMדומה מאוד ,רק שעכשיו M1דוחה ישר במקום לקבל ישר .כמו כן ,לא השתמשנו בנתון שהן -10מסכימות ,ואותם הנימוקים היו עובדים במקרה של -kהסכמה .תופעה זו יכולה לקרות ברדוקציה ,וזה עלול לאותת שהייתה בעיה ברדוקציה .אך במקרה שלנו ,הרדוקציה נכונה. האם יכולנו להשתמש במשפט רייס? נבחין כי Lהיא קבוצה של זוגות של מ“ט ,ולא של מ“ט בלבד .כלומר כדי להשתמש במשפט רייס צריך להתאמץ יותר ,אם זה בכלל אפשרי. ! NPוהגדרות שקולות ל NP-יש שתי הגדרות שקולות. ההגדרה הראשונה היא NTIME ni [ = NP = NPTIME i≥0 כלומר NPהיא קבוצת השפות שניתנות להכרעה בזמן פולינומיאלי ע“י מ“ט א“ד. בהרצאה ראינו שהשימוש העיקרי שלנו באי-דטרמיניזם הוא לבצע ניחושים על פתרונות אפשריים לבעיה נתונה ,כך למשל בבעיה של בדיקה האם מספר הוא פריק או לא )ראו דוגמה ,(8ניחשנו מי מחלק אותו. המשכנו להגדיר את המושג של מוודא )ראו הגדרה ,(8.9ולמעשה ,רעיון זה מניב הגדרה שקולה ל ,NP-כמתואר במשפט הבא: אפיון המחלקה NP משפט L ∈ NP .22.1אם“ם יש ל L-מוודא דטרמיניסטי פולינומיאלי. 108 22 שבוע 10 תרגול - 9רדוקציות מיפוי וNP- הוכחה :⇒ .נניח של L-יש מוודא דטרמיניסטי פולינומיאלי .מכך שהוא פולינומיאלי ,קיים k ∈ Nכך ש V -רצה בלכל היותר k | |wצעדים ,כאשר | |wהוא גודל הקלט .נגדיר מ“ט א“ד Nעבור Lהפועלת באופן הבא: בהינתן קלט ,wננחש עד cשאורכו לכל היותר k | |wונריץ את Vעל .hw, ciאם Vמקבלת ,גם Nתקבל ,ואחרת N תדחה V .רצה בזמן פולינומיאלי ולכן כל ענף בעץ הריצות של Nעל wהוא באורך פולינומיאלי. ⇐ :נניח ש N -מ“ט א“ד שרצה בזמן פולינומיאלי ומכריעה את .Lנבנה מוודא פולינומיאלי Vעבור :Lבהנתן זוג hw, ri כאשר rהוא תיאור של ענף בעץ הריצה של Nעל V ,wמקבל את הזוג hw, riאם“ם rהוא ריצה מקבלת של Nעל V .wמוודאת ש r-הוא ריצה מקבלת באמצעות בדיקה שהקונפ’ ההתחלתית היא q0 wוהקונפ’ האחרונה מכילה ,qaccוכל הקונפ’ עוקבות זו לזו באמצעות פונקציית המעברים .היות ש N -רצה בזמן פולינומיאלי ,נדע שכל ענף בעץ הריצות שלה הוא באורך פולינומיאלי ,ולכן | |rפולינומיאלי ב.|w|- 109 23 שבוע 11 תרגול - 10שלמות בNP- 23תרגול - 10שלמות בNP- טרנזיטיביות הרדוקציה הפולינומיאלית משפט .23.1יהיו L ∈ NPHו .L ≤p J -אזי .J ∈ NPH הוכחה .מושאר כתרגיל לסטודנט המשקיע החכם היפה והחסון. שפות NPCהן השפות הכי קשות במחלקה .NPהיות שמספיק שאחת מהן היא ב ,P-ונקבל את השוויון ,P = NPכפי שראינו בהרצאה. בעיית כיסוי הקודקודים )(Vertex Cover הגדרה .23.1יהי G = hV, Eiגרף .נאמר ש C ⊆ V -כיסוי קודקודים ב G-אם לכל צלע e = {u, v} ∈ Eמתקיים כי .u ∈ C ∨ v ∈ C הגדרה G} .23.2גרף ויש בו כיסוי קודקודים בגודל לכל היותר VC = {hG, ki | k בקורס באלגוריתמים הראנו אלגוריתם -2מקרב פולינומיאלי למציאת כיסוי קודקודים מינימלי ,במקום לנסות למצוא אלגוריתם יעיל .נראה מדוע עשינו זאת. בכיתה הוכחנו את משפט קוק-לוין ,והראנו ש .SAT ∈ NPC-בפרט ,ראינו ש .CLIQUE ∈ NPC-לכן ,נוכיח את הטענה הבאה. טענה .VC ∈ NPC .23.1 כדי להוכיח את הטענה ,נוכיח שתי טענות עזר. טענה .VC ∈ NP .23.2 הוכחה .נראה ש VC ∈ NP-על ידי כך שנמצא לה מוודא פולינומי V .Vיקבל hG, kiו C-כאשר Cהוא תת קבוצה של קודקודים V .יספור את | |Cויוודא שאכן ,|C| ≤ kושאכן ) .C ⊆ V (Gאם כן V ,תעבור על כל הצלעות ב G-ותוודא שיש לכל צלע לפחות נציג אחד ב .C-אם כך ,תקבל .אחרת ,תדחה .הבדיקה ש C-כיסוי קודקודים לוקחת )|O (|V | · |E ולכן Vמוודא פולינומיאלי .מכאן .VC ∈ NP טענה .VC ∈ NPH .23.3בפרט.CLIQUE ≤p VC , למה .23.1יש ב-k G-קליקה ⇒⇐ יש ב G-כיסוי קודקודים בגודל n − k ∈ .e ∈ E (G) ⇐⇒ e כאשר |) n = |V (Gו G-זה Gכאשר ”הופכים“ את כל הצלעות -כלומר / E G הוכחה :⇐ .נניח שיש ב-k G-קליקה ונסמנה ב .C-נביט בקבוצה .V (G) \C = Cאזי , C = n − kונראה ש C-כיסוי ∈ .x, yלכן מההנחה .x, y ∈ Cאבל Cהיא קליקה קודקודים ב .G-נניח בשלילה שלא .אזי קיימת {x, y} ∈ Eכך ש/ C- ב G-ולכן ,{x, y} ∈ Eסתירה .לכן Cכיסוי קודקודים ב.G- ⇒ :נניח שיש ב G-כיסוי קודקודים n − kונסמנו ב .S-נראה ש S-היא -kקליקה ב .G-יהיו {x, y} ∈ Sנוכיח כי ∈ } ,{x, yלכן .{x, y} ∈ Eמכך ש S-כיסוי קודקודים ב ,G-מתקיים כי .x ∈ S ∨ y ∈ S .{x, y} ∈ Eנניח בשלילה ש/ E- בפרט ,לפחות אחד מהם לא ב .S-סתירה .מכאן Sהיא -kקליקה ב.G- הוכחה) .הוכחת הטענה( אנחנו רוצים fפולינומית הממפה hG, ki 7→ hG′ , k ′ iכך ש.hG, ki ∈ CLIQUE ⇐⇒ hG′ , k ′ i ∈ VC- כדי לבנות רדוקציה זו ,נעזר בלמה .הרדוקציה fתפעל כך .בהנתן hG, kiתחזיר ידי ”הפיכת“ כל הצלעות ו.n = |V (G)|- 110 , G, n − kכאשר Gמתקבל מ G-על 23 שבוע 11 תרגול - 10שלמות בNP- נבחין כי fפולינומית שכן הפיכת הצלעות לוקחת )|) ,O (|E (Gלמשל ,אם הן נתונות כמטריצת שכנויות .חישוב n − k לוקח )|) O (|V (Gולכן סה“כ )|.O (|G fנכונה כי הלמה מוכיחה ש hG, ki ∈ CLIQUE-אם“ם . G, n − k ∈ VC בעיית הDomination − Set- הגדרה .23.3יהא G = hV, Eiגרף .נאמר ש D ⊆ V -היא ) Dominating Set (DSב G-אם לכל v ∈ Vאו ש v ∈ D-או ש v-חלק מצלע שהצד השני שלה ב .D-כלומר Dהיא קבוצה של קודקודים שהמרחק של כל קודקוד v ∈ Vממנה לכל היותר .1 הגדרה .23.4בעיית ה Dominating Set-היא }יש ב DS G-מגודל .DS = {hG, ki | k טענה .DS ∈ NPC .23.4 כמו קודם ,נוכיח שתי טענות עזר. טענה .DS ∈ NP .23.5 הוכחה .נראה ש DS ∈ NP-על ידי כך שנמצא לה מוודא פולינומיאלי Vשיפעל כך .בהנתן hG, kiו V .D-יבדוק ראשית ש D ⊆ V (G)-וש .|D| ≤ k-אחרת ,ידחה .כעת V ,יעבור על כל הקודקודים ב ,G-ויבדוק לכל קודקוד uאם הוא ב.D- אם לא ,יעבור על כל הצלעות ב G-ש u-חלק מהן ,ויבדוק אם הקצה השני של הצלע ב .D-אם עבור אחד הקודקודים ידחה .אחרת יקבל. התשובה היא לא V , 4 | O (|E| · |V | · |E| · V ) = O |Gולכן פולינומיאלי. נבחין כי Vרץ בזמן טענה .DS ∈ NPH .23.6 הוכחה .נוכיח ש .VC ≤p DS-כלומר אנחנו רוצים gפולינומית הממפה hG, ki 7→ hG′ , k ′ iכך שמתקיים .hG, ki ∈ VC ⇐⇒ hG′ , k ′ i ∈ DSנבחין כי הבעיות מאוד דומות ,רק שב DS-יש לנו גם קודקודים מבודדים. בניה :בהנתן ,hG, ki ∈ INPUTSVCהרדוקציה gתחזיר hG′ , k ′ iכך ש G′ -מתקבל מ G-באופן הבא. ) g ,e = {x, y} ∈ E (Gתוסיף קודקוד חדש veושתי צלעות חדשות } . x, v{x,y} , y, v{x,yסך הכל, ve }x, v{x,y} , y, v{x,y [ לכל צלע ∪ )V (G′ ) = V (G )e∈E(G [ ∪ )E (G′ ) = E (G ){x,y}∈E(G }v{x,y כלומר עבור כל צלע } {x, yכפינו משולש עם הקודקוד } :v{x,yהחיבור x − yהפך למשולש ⧹ y ⧸ − − − . x לבסוף g ,תספור את מספר הקודקודים המבודדים ב G-ותחזיר hG′ , k ′ iכאשר k ′ = f + kעבור fמספר הקודקודים המבודדים. זמן ריצה g :רצה בזמן פולינומיאלי ,שכן ספירת קודקודים מבודדים זה )|) ,O (|V (Gהוספת קודקודים לכל צלע זה )|) ,O (|E (Gוהוספת שתי צלעות לכל קודקוד חדש זה )|) .O (|E (Gסך הכל )|.O (|G ′ נכונות :⇐ :נניח שיש ב C VC G-מגודל ,kכלומר .hG, ki ∈ VCנראה שיש D DSמגודל k + fב G -כאשר fמספר הקודקודים המבודדים ב .G-ראשית ,נביט ב D = C ∪ F -כאשר Fקבוצת הקודקודים המבודדים ,ונראה ש D-היא DS ב .G′ -ראשית .|D| ≤ |C| + |F | = k + fכעת ,נראה ש D-היא DSב .G′ -יהא ) .v ∈ V (G′אם v ∈ Fאזי .v ∈ Dאם ,v ∈ V (G) \Fאזי vחלק מצלע מקורית ב G-ולכן במרחק 1לכל היותר מ ,C-ולכן גם מ .D-כעת ,עבור v ∈ V (G′ ) \V 111 23 תרגול - 10שלמות בNP- שבוע 11 נדע ש v-מהצורה } v{x,yעבור ) x, y ∈ E (Gולכן מכך ש C-הוא VCב ,G-אזי או xאו yב C-ובפרט ב .D-כעת, } v{x,yמחובר בצלע גם ל x-וגם ל y-ולכן במרחק 1לכ היותר מ.D- ⇒ :נניח שיש ב D DS G′ -מגודל .k ′ = k + fנסמן ב D′ \F = D-ונראה ש D-הוא VCמגודל ≥ kב .G′ -נבחין כי k = k ′ − fולכן .|D| ≤ kכעת נראה שבה“כ כל הקודקודים ב D-הם מ .G-אחרת ,נדע שאם יש v{x,y} ∈ Dאז הוא נוגע רק ב x, y-ולכן אם נחליף את } v{x,yב x-או yנוכל רק להגדיל את מספר הצלעות ש D-נוגעת בו .כעת ,עבור ) ,{x, y} ∈ E (Gנדע מכך ש D′ -הוא ,DSשלכל קודקוד ב G-הוא במרחק 1לכל היותר מ .D-כלומר ,או ש x ∈ D-או שיש z ∈ Dכך ש {x, z} ∈ E (G)-ומכך ש ,D ⊆ V (G)-נובע כי Dהוא כיסוי קודקודים ב.G- 112 24 שבוע 12 תרגול - 11שלמות בcoNP- 24תרגול - 11שלמות בcoNP- הגדרה .24.1נגדיר .coNP = L | L ∈ NP הגדרה .24.2נאמר שפה Lהיא coNPHאם לכל K ∈ coNPמתקיים .K ≤p L הגדרה .24.3נאמר ששפה Lהיא coNPCאם היא coNPHוגם ב.coNP- הערה .ניתן להגדיר גם )-(NP ∩ coNPשלמות ,אך בכלל לא ידוע אם קיימות שפות כאלה. טענה .24.1אם NP 6= coNPאזי .P 6= NP הוכחה .מושאר כתרגיל לסטודנט המשקיע החכם היפה והחסון. טענה L .24.2היא NPCאם“ם Lהיא .coNPC הוכחה L .היא ,NPCאם“ם לכל K ∈ NPמתקיים K ≤p Lאם“ם ,K ≤p Lאם“ם לכל K ∈ coNPמתקיים K ≤p L אם“ם Lהיא .coNPHכמו כן L ∈ NP ,אם“ם .L ∈ coNP למעשה יש שלוש אפשרויות ליחסים בין המחלקות: P = NP P 6= NPאבל coNP = NP coNP 6= NP NPC = coNPC coNPC P = NP = coNP ≈ NPC = coNPC NPC NP = coNP coNP P NP P דוגמה SAT ∈ coNPC .24.1כי .SAT ∈ NPCנאמר כי φ ∈ CNFהיא טאוטולוגיה אם לכל השמה של משתנים ,יתקבל .Trueנאמר כי φהיא סתירה ,אם כל לכל השמה יינתן .Falseנגדיר את השפות } φטאוטולוגיה בTAUTOLOGY = {hφi | CNF - } φהיא סתירה בCONTRADICTION = {hφi | CNF - CONTRADICTION ≤p TAUTOLOGYע“י הרדוקציה .f (hφi) = ¬φבנוסף.CONTRADICTION = SAT ∈ coNPC , קל לראות ש TAUTOLOGY ∈ coNP-ולכן מהרדוקציה נקבל .TAUTOLOGY ∈ coNPC בעיית המסלול ההמילטוני נרחיב את בעיית המסלול המילטוני שראינו בכיתה: 113 24 שבוע 12 תרגול - 11שלמות בcoNP- הגדרה .24.4נגדיר את הבעיות הבאות: } Gגרף לא מכוון עם מסלול המילטוני מ s -לU − ST − HAMPATH = {hG, s, ti | t - } Gגרף מכוון עם מסלול המילטוני מ s -לD − ST − HAMPATH = {hG, s, ti | t - } Gגרף לא מכוון עם מסלול המילטוני | U − HAMPATH = {hGi } Gגרף מכוון עם מסלול המילטוני | D − HAMPATH = {hGi } Gגרף לא מכוון עם מעגל המילטוני | U − HAMCYCLE = {hGi } Gגרף מכוון עם מעגל המילטוני | D − HAMCYCLE = {hGi סיווג בעיית המסלול ההמילטוני משפט .24.1מתקיים כי .D − ST − HAMPATH ∈ NPC הוכחה נטען כי .D − ST − HAMPATH ∈ NPנבנה לה מוודא Vשיקבל hG, s, tiוקבוצת קודקודים ,Cויבדוק ש ,C ⊆ V (G)-ולאחר מכן יוודא ש .|C| = n-אם שתי הבדיקות נכונות V ,יעבור על זוגות קודוקודים של קודקודים בC- ויוודא שקיימת להם צלע ב .G-כמו כן ,יוודא שהקודקוד הראשון הוא sוהאחרון הוא .tאם כן ,הוא יקבל ,אחרת ידחה. נוכיח כי ,D − ST − HAMPATH ∈ NPHעל ידי הרדוקציה .3SAT ≤p D − ST − HAMPATHכלומר נחפש פונקציה fחשיבה פולינומית כך ש- φ 7→ f (φ) = hGφ , s, ti φ ∈ 3SAT ⇐⇒ f (φ) ∈ D − ST − HAMPATH לא מאוד מסובך לבנות רדוקציה שבהנתן φעם השמה ,מספקת ,תיתן גרף עם מסלול המילטוני .אך הקושי הוא לוודא שבהנתן מסלול המילטוני ,יש השמה מספקת ,ולכן הבנייה מורכבת .תהי ) φ = (a1 ∨ b1 ∨ c1 ) ∧ . . . ∧ (ak ∨ bk ∨ ckונניח שב φ-יש ליטרלים x1 , . . . , xl , x1 , . . . , xlעבור lכלשהו .אזי ai , bi , ciהם ליטרלים מהצורה .xi , xiנבנה Gφכך שלכל משתנה x1 , . . . , xlיהיה רכיב מתאים ב Gφ -ולכל פסוקית c1 , . . . , ckיהיה רכיב מתאים ,ונחווט בין הרכיבים האלה בצורה שתמשר את תכונת הספיקות של .φ בנייה :לכל משתנה xiמ ,φ-עבור ,1 ≤ i ≤ lנגדיר מבנה יהלום ב) Gφ -ראו איור בהמשך(. בכל יהלום ,השורה האמצעית כוללת 3k + 3קודקודים 2 -קודקודי קצה ,ו 3k + 1-מרכזיים .כמו כן ,כל יהלום מחובר לבא אחריו. כמו כן ,לכל פסוקית cjעבור ,1 ≤ j ≤ kיהיה קודקוד מתאים ב Gφ -שנסמנו .cj באיור הבא ניתן לראות מימין את הקודקודים המתאימים לפסוקיות cjומשמאל את היהלומים שמתאימים לכל אחד מהמשתנים - xiכל אחד מחובר לזה שבא אחריו: 114 24 שבוע 12 תרגול - 11שלמות בcoNP- s c1 c2 ··· ··· x1 ··· ··· x2 .. .. ck ··· ··· xn t כאן sהוא הראש ביהלום הראשון ו” t-הזנב“ ביהלום האחרון. כאמור ,בכל יהלום יש 3k + 1קודקודים בשורה )לא כולל השניים בקצוות מימין ומשמאל( .כל שני קודקודים סמוכים מתאימים לפסוקית ,cjואחרי כל שני קודקודים כאלה מגיע ”קודקוד מפריד“ ,כמתואר באיור הבא ,בו ניתן לראות קודקוד מפריד שסומן בכחול ,אחריו זוג קודקודים סמוכים המתאימים ל ,c1 -אז קודקוד מפריד נוסף ,אז שני קודקודים סמוכים המתאימים ל ,c2 -וכך הלאה: ··· xi c1 c2 עתה נתאר כיצד נחבר בין קודקודי פסוקית ויהלומי משתנים. לכל פסוקית ,cjאם xiמופיע ב ,cj -נסתכל על זוג הקודקודים ביהלום של xiהמתאימים ל ,cj -ונחבר את הקודקודים הללו לקודקוד של cjשל xiכמתואר באיור .ואם xiמופיע ב ,cj -נחבר את הקשתות בכיוון ההפוך ,כמתואר באיור: 115 24 שבוע 12 תרגול - 11שלמות בcoNP- אם xiמופיע בפסוקית cj אם xiמופיע בפסוקית cj cj cj ··· ··· ··· xi cj ··· xi cj סיבוכיות :הבנייה היא פולינומית כי לכל xiמוסיפים 3k + 5קודקודים ,ולכל cjמוסיפים קודקוד .סך הכל ).O (l · k נכונות :נראה ש f -אכן רדוקציה ,כלומר יש ב Gφ -מסלול המילטוני בין sל t-אם“ם יש ל φ-השמה מספקת. ⇐ :נניח שיש ל φ-השמה מספקת .אזי לכל 1 ≤ j ≤ kקיים ליטרל ב cj -שמקבל .T מסלול המילטוני מ s-ל t-יראה כך .נתחיל ב .s-לכל ,1 ≤ i ≤ lאם xiמקבל Tבהשמת האמת של ,φנטייל על היהלום של xiנלך ב“זיגזג“ כמתואר באיור ,ואם xiקיבל ,Fנטייל על היהלום xiבכיוון ההפוך ב“זגזיג“ ,כמתואר באיור: כיוון ההליכה במסלול אם xiמקבל ” - Fזגזיג“ כיוון ההליכה במסלול אם xiמקבל ” - Tזיגזג“ היות שלכל ciלפחות ליטרל אחד שקיבל ,Tנוכל לקחת מעקפים לכל cjכך :אם xiמופיע ב cj -וקיבל ,Tאז מטיילים על ,xiניתן לקחת מעקף דרך הראשון בזוג שמתאים ל cj -ביהלום של .xiאם xiמופיע ב cj -ו xi -קיבל ,Fאזי מטיילים על xiככה ,ואפשר לקחת מעקף ,דרך cjמהקודקוד השני ,בזוג המתאים ל cj -ביהלום של .xiהמסלול המילטוני לא מוגדר ביחידות ,אך בהכרח קיים .מכאן ,אם φספיקה ,אזי יש ל Gφ -מסלול המילטוני בין sל.t- ⇒ :נניח שיש מסלון המילטוני מ s-ל t-ב .Gφ -אם הוא ”נורמלי“ ,כלומר מטייל על היהלומים לפי הסדר ,ואם יוצא למעקף דרך קודקוד בזוג שמתאים ל cj -ו xi -אז חוזר לקודקוד הבא באותו זוג ,אז נדע שיש השמה מספקת ל ,φ-בדיוק לפי כיוון הטיול על כל יהלום .מסלול לא נורמלי ,חייב להכיל מעבר כזה )שמתחיל מ ,a1 -עובר ל c-ובמקום לחזור ל a2 -קופץ ל:(b2 - 116 24 שבוע 12 תרגול - 11שלמות בcoNP- c a3 a2 b2 b1 a1 ונניח שזה המעבר הראשון מהסוג הזה ,נשים לב שאו a2או a3קודקודים מפרידים .אם a2מפריד ,אפשר להגיע אליו דרך a3או .a1אם a2לא מפריד ,אפשר להגיע אליו דרך a3או a1או ,cכי אז a2סוג של a1שמתאים ל .c-אבל זאת אומרת שהמסלול ההמילטוני חייב להכנס ל a1 -דרך a3כי כבר ביקר ב a1 , c-ואז הוא נתקע ולעולם לא מגיע ל .t-לכן זה לא מסלול המילטוני בסתירה להנחה .כלומר כל המסלולים ההמילטונים ב Gφ -הם נורמלים ,ולכן קיימת השמה מספקת ל.φ- מכאן אפשר להסיק שגם כל שאר הבעיות ההמילטוניות קשות. טענה .U − ST − HAMPATH ∈ NPC .24.3 הוכחה .קל לראות שהיא ב .NP-נוכיח שהיא ב NPH-על ידי הרדוקציה .D − ST − HAMPATH ≤p U − ST − HAMPATH כלומר נמצא פונק ′כך ש f (hG, s, ti) = hG′ , s′ , t′ i ∈ U − ST − HAMPATH-אם“ם .hG, s, ti ∈ D − ST − HAMPATH דבר ראשון שאנחנו שמים לב הוא שמחיקת כיוונים לא תעבוד .לכן נבצע את הדבר הבא. בנייה :בהנתן ,G = hV, Eiהרדוקציה תחזיר G′ = hV ′ , E ′ iשבנוי כך .לכל קודקוד vב ,V -נגדיר את קודקודים חדשים S S S = .E ′ ∪}} {{vin , vmid } , {vmid , vout = .V ′כמו כן ,נגדיר }} {{uout , vin ,vin , vmid , voutכלומר } {vin , vmid , vout v∈V (u,v)∈E נגדיר .s′ = sin , t′ = tout v∈V סיבוכיות :נבחין כי הבנייה היא פולינומיאלית. נכונות :אם יש מסלול המילטוני s, v1 , . . . , vk−1 , tב ,G-אזי המסלול sin , smid , sout , v1,in , v1,mid , v1,out , . . . , vk−1,in , vk−1,mid , vk−1,out , tin , tmid , tout המילטוני בין sinלבין .toutעתה ,נניח שיש ב G′ -מסלול המילטוני בין sinל .tout -נניח בשלילה שיש במסלול צלע } {vin , uout כך שמגיעים מ vin -ל ,uout -ונניח שזו הצלע הראשונה מהצורה הזו במסלול .אם כבר ביקרנו ב ,vmin -אזי המסלול חייב היה להגיע אליו דרך ,voutאבל זאת אומרת שהמסלול הגיע אליו דרך xinכלשהו ,בסתירה ל .(vin , uout )-לכן ,היינו חייבים לבקר ב vmid -אחרי .uoutאבל זה אומר שאנחנו מגיעים לשם מ ,vout -ואז נתקעים ,ובפרט לא יכולים להגיע ל ,tout -סתירה. לכן הצלעות במסלול הם מהצורה ) (vin , vmid ) , (vmid , voutו .(vout , uin )-על כן ,המסלול ההמילטוני הוא מהצורה sin , smid , sout , v1,in , v1,mid , v1,out , . . . , vk−1,in , vk−1,mid , vk−1,out , tin , tmid , tout ולכן בהכרח קיים מסלול המילטוני ב G-מהצורה .s, v1 , . . . , vk−1 , t טענה .U − HAMPATH, D − HAMPATH, U − HAMCYCLE, D − HAMCYCLE ∈ NPC .24.4 הוכחה .מושאר כתרגיל לסטודנט המשקיע החכם היפה והחסון. 117 25 תרגול - 12משפט סביץ’ שבוע 13 25תרגול - 12משפט סביץ’ ′ משפט סביץ משפט .לכל פונקציה ) S (n) = Ω (log nמתקיים ).NSPACE (S (n)) ⊆ SPACE S 2 (n משמעות המשפט היא שדטרמיניזציה עולה לנו ניפוח פולינומיאלי של הזכרון. אנחנו נוכיח את המשפט עבור המקרה ,S (n) ≥ nולאחר מכן נסביר את המקרה בו יש סיכויות זכרון תת-לינארית .עבור פונקציות זמן אנחנו יודעים ש ,NTIME (t (n)) ⊆ TIME 2O(t(n)) -ולכן אנחנו צריכים לחסוך בזכרון .הרעיון הוא להשתמש ברקורסיה .בשביל זה נגדיר את ההנחות שלנו. הוכחה .תהי Mמכונה א“ד שמכריעה שפה Lבסיבוכיות זכרון ).S (n w .Cinit נניח שלכל מילה wיש ל M -רק קונפ ′התחלתית אחת על wונסמן אותה ב- נניח שיש ל M -רק קונפ ′מקבלת אחת ) Caccבבואה לקבל ,המכונה מוחקת את הסרט ,הולכת עם הראש הקורא שמאלה ,ורק אז מקבלת(. יהי d ≥ 1כזה שיש ל M -לכל היותר ) 2d·S(nקונפ ′שונות על מילה באורך ,nיש dכזה ,כי יש ל2O(s(n)) M - קונפ ′שונות )הזכרו בחישוב מההרצאה הקודמת(. המכונה M ′שנייצר ,תריץ שגרה דטרמיניסטית ) can − yield (c1 , c2 , tשמחזירה trueאם“ם ניתן להגיע ב M -מהקונפ C1 ′ w .can − yield Cinitסיבוכיות הזכרון של can − yield לקונפ C2 ′ב t-צעדים לכל היותר M ′ .תריץ את ), Cacc , 2d·S(n תהיה ,O (S (n) + log t) · log tואז M ′תזדקק לזכרון )O S (n) + log 2d·S(n) log 2d·S(n) = O (S (n) + d · S (n)) d · S (n) = O S 2 (n על כן מספיק לייצר את השגרה can − yieldעם סיבוכיות הזכרון הנ“ל .השגרה ) can − yield (c1 , c2 , tתפעל באופן הבא. נניח שקונפ ′נתונה על ידי מילה בΓi QΓS(n)−i Γ∗ QΓ∗ - .1אם ,t = 1אז החזר trueאם c1 = c2או c2עוקבת ל.c1 - S .2אחרת ,אם t > 1אז עבור על כל הקונפ Γi QΓS(n)−i ′ i ′ .can − yield c, c2 , 2tאם כן ,החזר ,trueאם לא ,עבור לקונפ can − yield c1 , c, 2tוגם כאלה( ,ובדוק האם cהבאה. ∈ ) cלמשל בסדר לקסיקוגרפי ,ויש לכל היותר )2d·S(n .3דחה. נבחין כי זו שגרה דטרמינסטית ,היות שאנחנו בודקים ישיגות בגרף הקונפ ′של המכונה .Mמבחינת סיבוכיות זכרון ,נבחין כי יש לנו רקורסיה בעומק ,log tולאורכה ,במחסנית הרקורסיה ,כלומר בכל קודקוד בעץ הרקורסיה ,שומרים שתי קונפ ′ יחד עם חסם על מספר הצעדים שהוא ≥ ,tכלומר נדרשים 2 · S (n) + log tתאים .היות שהעומק הוא log tנדרשים סך הכל O (S (n) + log t) · log tתאים. עתה ,למי שכבר למד על מחלקות סיבוכיות תת-לינאריות )ומי שלא שיחזור לחלק זה לאחר מכן(: נסביר למה ההנחה ש s (n) ≥ n-אינה הכרחית ,ומספיק לדרוש .s (n) ≥ log n בהנחה ש s (n) ≥ n-השתמשנו כדי לטעון שיש למכונה לכל היותר )) 2O(s(nקונפ’ .הטיעון הזה תקף גם למכונה עם :s (n) = log nלכל קונפ’ אנחנו צריכים לתאר באיזה מצב אנחנו )| ,|Qאיפה נמצא הראש של סרט הקלט ) ,(nאיפה נמצא 118 25 תרגול - 12משפט סביץ’ 25.1השפה TQBF שבוע 13 הראש של סרט העבודה ) ,(log nומהו תוכן סרט העבודה ) )O(log n | ,|Γשכן אנו משתמשים ב O (log n)-תאים( ,כלומר כמות האפשרויות היא )O(log n |× |Γ × log n } | {z × ||Q n }|{z מיקום ראש סרט הקלט מיקום ראש סרט העבודה ובגלל ש Q, Γ-קבועים ו ,n = 2log n -כמות האפשרויות היא ) c1 · n · log n · cc23 ·log n = 2O(log nעבור c1 , c2 , c3קבועים כלשהם. הערה .למעשה מובלעות כאן הנחות כמו למשל ש S (n)-חשיבה בסיבוכיות מקום )) .O (S (nניתן להתחמק מהנחה זו ,אך לשם פשוטות לא נפרט כאן על כך. מסקנה .PSPACE = NPSPACE .25.1 על כן ,עד כה אנחנו יודעים כי: coEXPTIME coNPSPACE k k EXPTIME ⊆ NPSPACE = = coPSPACE coP k k PSPACE ⊆ NP coNP ⊆ P ⊆ NLOGSPACE ⊆ LOGSPACE הדבר היחיד שלא ראינו הוא ההכלה של ) NLOGSPACE, LOGSPACEאף לא ראינו מה זה בכלל( .על נושא זה נדבר בהמשך. 25.1השפה TQBF כשדיברנו על ,SATחיפשנו השמה אחת מספקת .אבל נוכל להוסיף לה עוד כמתים. הגדרה .25.1נגדיר את השפה ) Truth Quantified Boolean Formula (TQBFלהיות השפה שמכילה כל נוסחה ב CNF-שכל המשתנים שלה מכומתים )כלומר הנוסחה היא פסוק( ,והפסוק הוא פסוק אמת .כלומר ביטוי מהצורה ) Q1 x1 Q2 x2 . . . Qk xk : φ (x1 , . . . , xk כאשר Q1 , . . . , Qkכמתים ב {∀, ∃}-ו φ-היא נוסחת .CNF דוגמה ∀x1 ∃x2 : (x1 ∨ x2 ) ∧ (x1 ∨ x2 ) ∈ TQBF .25.1פסוק אמת. טענה .TQBF ∈ PSPACE .25.1 הוכחה .נבצע הליך רקורסיבי .בהנתן ) ,Q1 x1 Q2 x2 . . . Qk xk : φ (x1 , . . . , xkאם אין כמתים ,אזי k = 0ולכן אין משתנים, ולכן הנוסחא מכילה קבועים ,לכן אפשר לשערך אותה בשטח פולינומיאלי. אחרת ,אם הנוסחא מהצורה ,∃x ψמשערכים רקורסיבית את ψx←Fואת ,ψx←Tונחזיר Tאם“ם לפחות אחד מהם החזיר .Tאם הנוסחא מהצורה ,∀x ψנחזיר Tאם“ם שניהם מחזירים .T עומק הרקורסיה הוא מספר המשתנים ) ,(kובכל רמה ברקורסיה שומרים את הנוסחא יחד עם השמה חלקית ) .(nלכן סך הכל זכרון פולינומיאלי. טענה .TQBF ∈ PSPACE − H .25.2 119 25 תרגול - 12משפט סביץ’ 25.1השפה TQBF שבוע 13 הוכחה .תהי שפה L ∈ PSPACEנוכיח כי .L ≤p TQBFתהי Mמ“ט דטרמינסטית שמכריעה את Lבשטח )S (n פולינומיאלי .בהנתן מילה ,wאפשר לבנות נוסחא φכך ש M -מקבלת את wאם“ם φהיא ,Trueכפי שבצענו בהוכחת משפט קוק-לוין .אנחנו לא יודעים אם Mעוצרת לאחר מספר פולינומיאלי של צעדים ,אך היא כן משתמשת לכל היותר במספר פולינומיאלי של תאים .נגדיר את משתני הנוסחא באופן הבא: .1נקודד קונפ c ′על ידי המשתנים הבאים .נניח ש s-חסם על מספר התאים ש c-משתמשת בהם ,אזי לכל אות a ∈ Γ ו 1 ≤ i ≤ s-נגדיר משתנה xi,aשערכו Tאם“ם בתא ה i-כתוב .a .2לכל 1 ≤ i ≤ Sנגדיר yiלהיות אינדיקטור להאם הראש הקורא מצביע על התא ה.i- .3לכל מצב q ∈ Qנגדיר zqלהיות אינדיקטור להאם המכונה במצב .q על כן הנוסחא תקבל השמה ל- c = hx1,a1 , x1,a2 , . . . , x1,am , x2,a1 , . . . , x2,am , . . . , xs,a1 , . . . , xs,am , y1 , . . . , ys , zq1 , . . . , zql i כאשר } .Γ = {a1 , . . . , am } , Q = {q1 , . . . , qlבפרט נגדיר פסוקית שמוודאה שהשמה מתארת קונפ :′ )) (yi ∧ ¬ (y1 ∨ y2 ∨ . . . ∨ yi−1 ∨ yi+1 ∨ . . . ∨ ys } _ = )φvalid (c 1≤i≤S {z | הראש הקורא בתא אחד בלבד בכל תא יש אות אחת מ∧ Γ- יש מצב אחד ∧ כאשר ניתן לבנות נוסחא גם לשני התנאים הנוספים ב ,φvalid -אך לא נציג אותם כאן .נגדיר הקונפ c1 ′עוקבת לφmove (c1 , c2 ) = φvalid (c1 ) ∧ φvalid (c2 ) ∧ c2 - גם אותה אפשר לכתוב במפורש ,אך לא נעשה זאת .ננסה להגדיר את .φ ניסיון ראשון ושגוי: ) φmove (ci , ci+1 ^ ∃c1 ∃c2 . . . ∃ct : (c1 = cw ∧ ) init ) ∧ (ct = cacc 1≤i≤t−1 אך נוסחא זו ,רק אומרת שיש ריצה מקבלת ,תוך tצעדים ,אך הוא יכול להיות אקספוננציאלי ,ולכן ייתכן היא הנוסחא איננה בגודל פולינומיאלי .כלומר ייתכן כי Mתעצור לאחר מספר אקספוננציאלי של צעדים .כלומר הבעיה היא שזה שM - מקבלת את wבסיבוכיות מקום פולינומיאלית ,לא גורר ש M -מקבלת את wבסיבוכיות זמן פולינומיאלית .על כן ,הרדוקציה נכונה ,אך לא פולינומיאלית. ניסיון שני ושגוי: יש ריצה מקונפ c ′ל c′ -שאורכה φ (c, c′ , k) = k k k ′′ ′ ′′ ′′ ∧ φ c ,c , = ∃c φ c, c , 2 2 נחשב את האורך של נוסחא שהפרמטר השלישי שלה הוא :k k = S (n) · k 2 ℓ (k) = S (n) + 2ℓ 120 25 תרגול - 12משפט סביץ’ 25.1השפה TQBF שבוע 13 אז כאן על אף שירדנו לעומק ,log kבמקום ,kקיבלנו עץ רקורסיה עם מספר אקספוננציאלי של עלים ,ולכן כאשר k אקספוננציאלי ,קיבלנו פסוק באורך אקספוננציאלי .זה לא מפתיע היות שהשתמשנו רק בכמת ”קיים“. ניסיון שלישי ומוצלח :נגדיר k φ (c, c , k) = ∃c ∀c1 , c2 (((c1 = c) ∧ (c2 = c )) ∨ ((c1 = c ) ∧ (c2 = c ))) → φ c1 , c2 , 2 ′′ ′ ′′ ′′ ′ כלומר אנחנו מוצאים קונפ ′ביניים c′′שמבטיחה לנו שכל שתי קונפ ′שהן c′′ → c′או ,c → c′′גוררות ש- k 2 φ c1 , c 2 , מחזיר ערך אמת ,וזה אכן שקול לדרישה ש φ (c, c′ , k)-מחזיר ערך אמת ,כי אז היינו יכולים לבחור קונפ ′ביניים כלשהי, ובהכרח היה מקבלים את התנאי ,וההפך גם נכון ,מהנוסחא הרקורסיבית שראינו בפתרון הקודם. נזכר ש A ⇒ B-שקול ל ,¬A ∨ B-ולכן אכן מדובר בנוסחא ב.TQBF- בפרט ,אנחנו כופים על φלהסתכל רק על ענף אחד ברקורסיה ,במקום על שני הענפים ,וכך לקבל מסלול באורך log kבעץ בלבד .על כן אנחנו צריכים לקודד בכל פעם קונפ ′ב O (S (n))-תאים ולכן k ℓ (k) = O (S (n)) + ℓ = O (S (n)) · log k 2 על כן )= O (S (n)) · d · S (n) = O S 2 (n )d·S(n φ cwפולינומיאלי כרצוי. init , cacc , 2 מסקנה .TQBF ∈ PSPACE − C .25.2 121 26 שבוע 14 תרגול - 13משפטי ההירככיה 26תרגול - 13משפטי ההירככיה נדבר על משפטי ההירככיה בזמן ובמקום ,שנותנים לנו מידע על אילו מחלקות נמצאות ”מעל“ אחרות ,במובן שמחלקה אחת מוכלת באחרת. 26.1 משפט ההירככיה בזמן הגדרה .26.1תהי t : N → Nכך ש.t (n) = Ω (n log n)- נאמר כי tהיא חשיבה/ניתנת לבנייה בזמן ) (Time Constructibleאם יש מ“ט שמקבלת כקלט את n) 1nבאונארית( ומחשבת את הייצוג הבינארי של ) t (nבזמן )).O (t (n הערה .חישבו :למה אנחנו מגדירים את המושג של חשיבה בזמן רק עבור )?t (n) = Ω (n log n לפני שננסח ונוכיח את משפט ההיררכיה בזמן ,נוכיח טענת עזר. טענה .26.1קיימת מ“ט Sשבהינתן hM, t, wiכקלט S ,מחשבת את הקונפ’ המתקבלת מהרצת Mעל wלמשך tצעדים, והיא עושה זאת בזמן )| (t log t) · p (|hM iכאשר pהוא איזשהו פולינום שנקבע מראש. הוכחה .נאתחל מונה עם הערך ההתחלתי .tכל עוד t 6= 0נבדוק מה הצעד הבא שאנחנו צריכים לבצע אותו ונבצע אותו, ואז נוריד את ערכו של tב .1-בדיקה מה הצעד שאנחנו צריכים לבצע ,והביצוע שלו ,דורשים כל מיני פעולות כמו מעבר על הקלט ,אך סה“כ הדברים האלה פולינומיאליים ב .|hM i|-כמו כן ,עדכון המונה שלנו יקח ) O (log tבמקרה הגרוע ביותר, ויש tאיטרציות ,לכן הזמן שיקח הוא )|.(t log t) · p (|hM i אם היינו מדברים על מ“ט עם 3סרטים זה היה עובד והיינו מסיימים את ההוכחה ,כי על הסרט הראשון נמצא הקידוד ולסרוק אותו יקח כמות פולינומיאלית של צעדים ,ובסרט העבודה נשמור את הקאונטר שלנו ,ובסרט השלישי היינו שומרים את הקונפ’. אך מה קורה בסרט יחיד? ראינו כבר לסמלץ 3סרטים בסרט יחיד -מכפילים את הא“ב ב 3-והתא ה i-בסרט היחיד שלנו מכיל את המידע על התא ה i-בכל אחד משלושת הסרטים ”המסומלצים“ ,אבל עדיין יש לנו ראש קורא יחיד שצריך לעבור על כל הסרט. לכן נשתמש בטריק -כדי להימנע מסריקות מיותרות בחיפוש אחר ,hM iבכל שלב נזיז את הקידוד של המכונה יחד עם הראש הקורא ,בכיוון אליו הוא מתקדם )אם הראש זז ימינה/שמאלה ,נזיז את כל הקידוד של המכונה מקום אחד ימינה/שמאלה בהתאמה( .להעתיק כל פעם את כל הקידוד יקח )| ,O (|hM iשזה מחיר שאנחנו יכולים לסבול כי אנחנו עדיין מקבלים )| (t log t) · p̃ (|hM iעבור פולינום ̃ pכלשהו. נציין שאם מדאיג אותנו החיפוש אחר המונה ,נוכל להזיז גם אותו יחד עם .hM i משפט ההיררכיה בזמן משפט .לכל פונקציה tשניתנת לבנייה בזמן ,קיימת שפה Lשניתנת להכרעה בזמן )) O (t (nאך לא בזמן הערה .שימו לב לסימוני -Oגדולה ו-o-קטנה. הוכחה .נגדיר ) Mלא מקבלת את hM i #0kתוך ) t′ (n, mצעדים כאשר )t(n )p(m)·log t(n = )n = hM i #0k , m = |hM i| , t′ (n, m ( hM i #0 k =L ובדומה לבעיית העצירה ,אנחנו נשתמש כאן בטיעון אלכסון -אנחנו רוצים מכונה שדוחה את עצמה. ⋆ נתחיל בכך שנראה ש L-כריעה בזמן )).O (t (n נגדיר מ“ט ,Tשבהינתן קלט xהמכונה תפעל כך: 122 )t(n ))log(t(n .o 26 תרגול - 13משפטי ההירככיה 26.2 שבוע 14 משפט ההירככיה במקום .1נבדוק האם xהוא מהצורה - hM i #0kאם לא אז נדחה. זמן ריצה) O (n) :עוברים על הקלט( .2נחשב את הייצוג הבינארי של | n = |xו.m = |hM i|- זמן ריצה .O (n log n) :כדי לחשב את הייצוג הבינארי של nניתן לאתחל מונה להיות ,0לעבור על כל הקלט עד שמגיעים לסופו ובכל פעם להוסיף 1למונה m ≤ n .לכן לוקח פחות זמן לחשב את הייצוג של .m .3נחשב ).t = t (n זמן ריצה O (t (n)) :כי tניתנת לבנייה בזמן. .4נחשב t )p(m)·log(t = ).t′ = t′ (n, m זמן ריצה :פולינומיאלי ב) log (t)-כי פעולת החילוק היא פולינומיאלית(. .5נסמלץ ריצה של Mעל xבמשך t′צעדים. זמן ריצה O (t′ log (t′ ) · p (m)) :לפי טענת העזר ממקודם ,ולמעשה ′ log t ≤ log tלכן · t )p(m)·log(t ′ ′ ≤ )t · log (t ) · p (m )log (t) · p (m) = t = t (n לכן זמן הריצה הוא ))O (t (n .6אם Mמקבלת את ,xאז נדחה ,ואחרת נקבל. סה“כ בגלל ש t (n) = Ω (n log n)-האלגוריתם כולו רץ בזמן )).O (t (n )t(n ⋆ נראה ש L-לא כריעה בזמן )).o log(t(n )t(n נניח בשלילה שכן קיימת מ“ט Mשמכריעה את Lבזמן )) .r (n) = o log(t(nנסמן | .m = |hM iנשים לב ש.n ≥ m + 1- כמו כן, 1 )p(m קבוע ולכן מהגדרת rקיים nמספיק גדול כך ונסתכל על ההתנהגות של Mכשהיא רצה על הקלט )t(n שlog(t(n)) - · 1 )p(m < ) .r (nיהי k ≥ 0כך שhM i #0k = n- .hM i #0 k ∈ hM i #0kולכן Mלא צריכה לקבל אותו -סתירה. אם Mמקבלת את hM i #0kתוך ) r (nצעדים ,אז / L אם Mדוחה את hM i #0kתוך ) r (nצעדים ,אז hM i #0k ∈ Lולכן Mצריכה לקבל אותו -סתירה. כלומר בכל מקרה אנחנו מגיעים לסתירה ,ולכן לא קיימת Mכזו ,וסיימנו את ההוכחה. משפט .26.1יהיו .1 ≤ ε1 < ε2אזי ) .TIME (nε1 ) ⊊ TIME (nε2 הוכחה .נסתכל על .t (n) = nε2מהיות 1 < ε2נובע ) .t (n) = Ω (n log nמתקיים nε 2 ) log(nε2 nε1 = oולכן ממשפט ההיררכיה נובע שיש שפה ב TIME (nε2 )-שאינה ב.TIME (nε1 )- משפט .P ⊊ EXP .26.2 2n ) log(2n 2n n הוכחה .נסמן .t (n) = 2nלכל k ∈ Nמתקיים ) nk = O (2nו- n ∈ .L שפה Lשניתן להכריע בזמן t (n) = 2nאך לא בזמן ,o 2nולכן L ∈ EXPאך / P 26.2 =o .nk = oלכן ממשפט ההיררכיה יש משפט ההירככיה במקום משפט ההיררכיה במקום דומה למשפט ההיררכיה בזמן ,רק שהוא נראה ”נקי יותר“ )אין חלוקה ב.(log- הגדרה .26.2תהי s : N → Nכך ש.s (n) = Ω (log n)- נאמר כי sהיא חשיבה/ניתנת לבנייה במקום n ) (Space Constructibleאם יש מ“ט בעלת שלושה סרטים שמקבלת כקלט את n) 1באונארית( ומחשבת את הייצוג הבינארי של ) s (nבסיבוכיות זכרון )).O (s (n 123 26 תרגול - 13משפטי ההירככיה 26.2 שבוע 14 משפט ההירככיה במקום טענה .26.2קיימת מ“ט Sשבהינתן hM, w, s, tiכקלט S ,מחשבת את הקונפ’ המתקבלת מהרצת Mעל wלמשך tצעדים, תוך ההנחה ש M -משתמשת בלכל היותר sתאים )אם Mמשתמשת ביותר אז Sתחזיר ,(Falseוהיא עושה זאת תוך שימוש ב O (log |w| + s · |hM i| · log t)-תאים. הוכחה .כדי לסמלץ את Mאנחנו צריכים את המשתנים הבאים: .1משתנה למצב הנוכחי :יש | |Qמצבים ב M -ולכן לשמור מספר שמייצג מצב ב Q-דורש | log |Qתאים. .2משתנה למיקום הראש על גבי הסרט הקלט :אורך הסרט הוא | |wלכן נצטרך | log |wתאים. .3מונה צעדים מ 0-עד :tדורש log tתאים. .4הסרט של :Mצריך לשמור sתאים ,כל תא באורך | log |Γלכל היותר ,לכן סה“כ צריך | s log |Γתאים. היות ש |Γ| , |Q| ≤ |hM i|-סה“כ אנחנו צריכים ) O (log |w| + s · |hM i| · log tתאים בשביל הסימלוץ. לא נפרט על האופן המדויק בו הסמלוץ מתבצע ,אך אלה פרטים שלא מסובך להשלים. משפט ההיררכיה במקום משפט .לכל פונקציה sשניתנת לבנייה במקום ,קיימת שפה Lשניתנת להכרעה במקום )) O (s (nאך לא בזמן )).o (s (n הוכחה .נגדיר את השפה ) Mלא מקבלת את hM i #0kתוך שימוש ב- )s(n m תאים לכל היותר כאשר |n = hM i #0k , m = |hM i ( hM i #0k =L ומכאן ההוכחה דומה מאוד להוכחה של משפט ההירככיה בזמן. משפט L ⊊ SPACE (n) .26.3ולכן גם L ⊊ PSPACE הוכחה .נבחר .s (n) = n ממשפט ההירככיה במקום ,יש שפה שניתן להכריע במקום nאך לא במקום ).o (n בגלל ש SPACE (n) ⊆ PSPACE-נובע ש.L ⊊ PSPACE- דוגמאות לשפות בNLC- הגדרה .26.3נגדיר } Gהוא גרף קשירות חזקה מכוון | SCC = {hGi } Gהוא גרף מכוון בעל שני רכיבי קשירות | 2SCC = {hGi טענה .SCC ∈ NLC .26.3 הוכחה .ניזכר כי .PATH ∈ NLCתחילה עלינו להראות ש .SCC ∈ NL-נוכל לעשות זאת בשתי דרכים: מכך ש) NL = coNL-ממשפט אימרמן( מספיק להראות .SCC ∈ NLנוכל לבחור באופן א“ד זוג קודקודים s, t ∈ V ולהריץ מכונה שפותרת את PATHעל .hG, s, ti 124 26 תרגול - 13משפטי ההירככיה שבוע 14 26.2 משפט ההירככיה במקום לחלופין ,אפשר להראות ישירות ש .SCC ∈ NL-נוכל לבנות מ“ט שעוברת על כל הזוגות u, v ∈ Vובודקת האם - hG, u, vi ∈ PATHאם לא ,נדחה ,ואם כן נעבור לזוג הבא .אם ניחשנו בהצלחה מסלול לכל זוג ,אז נקבל את המילה. עתה ,נראה ש .SCC ∈ NLH-נראה .PATH ≤logspace SCCבהינתן ,hG, s, tiהרדוקציה שלנו תבנה גרף G′שמתקבל מG- ע“י הוספת צלעות כך של s-נכנסת צלע מכל קודקוד אחר בגרף ומ t-יוצאת צלע לכל קודקוד. נכונות :בכיוון האחד ,נשים לב שאם יש מסלול πמ s-ל t-ב ,G-אז לכל שני קודקודים u, v ∈ G′יש מסלול .u → s → t → v בכיוון השני ,נניח שאין מסלול בין sל t-ב .G-זה אומר שהם לא קשירים ב) G′ -קרי ,אין מסלול ביניהם( ,שכן כל הצלעות שהוספנו נכנסו ל s-ויצאו מ ,t-ולכן G′לא גרף קשירות חזקה. חישוביות :לסיום ,נשים לב שכדי להוסיף את הצלעות ,אנחנו עוברים על כל זוגות הקודקודים ואנחנו צריכים רק שטח לוגריתמי כדי לעבוד על זוג קודקודים אחד בכל רגע נתון. טענה .2SCC ∈ NLC .26.4 הוכחה .תחילה עלינו להראות ש .2SCC ∈ NL-נוכל לעשות זאת באמצעות מ“ט שכל פעם בוחרת באופן א“ד זוג קודקודים ,u, v ∈ Vשהם יהיו הנציגים של שני רכיבי הקשירות .נריץ מ“ט שבודקת האם .hG, u, vi ∈ PATHאם היא מקבלת - נמשיך ,ואחרת -נדחה. נשאר לוודא שיש לכל היותר שני רכיבים .לכל w ∈ Vנבדוק שיש מסלול מ w-ל u-ומ u-ל .w-אם כן ,נמשיך ל w-הבא. אחרת ,נבדוק את אותו הדבר עבור .vאם שניהם דחו ,נדחה )זה אומר ש w-כנראה שייך לרכיב קשירות שלישי(. עתה נראה ש .2SCC ∈ NLH-נראה .SCC ≤logspace 2SCCהרדוקציה תעבוד כך :בהינתן hGiהרדוקציה תחזיר hG′ iכאשר G′מתקבל מ G-ע“י הוספת קודקוד מבודד .כך ,אם Gקשיר כולו ,אז ל G′ -יש שני רכיבי קשירות ומעלה ,ואם אינו קשיר אז יש ל G′ -לפחות שלושה. כמו קודם ,קל לראות שבנייה זו משתמשת בשטח לוגריתמי 125 27 הגדרות חלק VI רשימת הגדרות ומשפטים 27 הגדרות מודלים חישוביים אוטומט סופי דטרמינסטי )(DFA הגדרה (1.1) .אלפבית ) Σא“ב( הוא קבוצה סופית של אותיות )אובייקטים(. הגדרה (1.2) .מילה בא“ב Σהיא סדרה סופית של אותיות שנסמנה ב w = w1 w2 · · · wn -כך שכל אות ב .Σ-המילה הריקה מסומנת ב ε-ולא מכילה אף אות. S נסמן ב Σ∗ -את כל המילים מכל אורך מעל ,Σכלומר ,Σ∗ = {ε} ∪ · Σiכאשר Σiהיא קבוצת כל המילים מאורך .i i∈N הגדרה (1.3) .שפה מעל א“ב Σהיא קבוצה של מילים ∗.L ⊆ Σ הגדרה (1.4) .אוטומט ) (Automatonסופי דטרמינסטי ) (DFAהוא חמישיה A = hQ, Σ, δ, q0 , F iכאשר: Qקבוצת המצבים )קבוצה סופית(. Σהא“ב. δ : Q × Σ → Qפונקציית מעברים. q0מצב התחלתי. Fקבוצת המצבים המקבלים. הגדרה (1.5) .ריצה של אוטומט Aעל מילה w = w1 w2 . . . wnמעל Σזו סדרה של מצבים r = r0 , r1 , . . . , rnכך שמתקיים: - r0 = q0 .1הריצה תמיד מתחילה ב.q0 - .2לכל i ≥ 0מתקיים ) - ri+1 = δ (ri , wi+1הריצה מכבדת את .δ הגדרה (1.6) .יהי אוטומט Aמילה wוריצה rשל wעל .A ∈ rnנאמר כי rדוחה ).(Rejecting rריצה מקבלת ) (Acceptingאם ,rn ∈ Fאחרת כאשר / F Aמקבל את wאם הריצה )יש ריצה אחת( של Aעל wהיא מקבלת. השפה של האוטומט Aמוגדרת להיות } הריצה של Aעל wמקבלת| ∗.L (A) = {w ∈ Σ הגדרה (1.7) .יהי A = hQ, Σ, δ, q0 , F iאוטומט .נגדיר δ ∗ : Q × Σ∗ → Qבאופן הבא: w=ε q w = w′ · σ, w′ ∈ Σ∗ , σ ∈ Σ )δ (δ ∗ (q, w′ ) , σ 126 = )δ ∗ (q, w 27 הגדרות הגדרה (1.8) .נסמן ב REG-את מחלקת השפות הרגולריות והיא מוגדרת ע“י }קיים A DFAעבורו REG = {L ⊆ Σ∗ | L (A) = L נאמר כי שפה Lהיא רגולרית אם . L ∈ REG הגדרה) (1.9) .פעולות על שפות( תהי Σא“ב ותהיינה ∗ L, L1 , L2 ⊆ Σשפות .נגדיר את הפעולות הבאות: .1איחוד.L1 ∪ L2 = {w | w ∈ L1 ∨ w ∈ L2 } : .2שרשור ).L1 · L2 = {w1 · w2 | w1 ∈ L1 , w2 ∈ L2 } :(concatination .3כוכב )∀i ∈ [k] , wi ∈ L} :(kleene-star .L∗ = {w1 · . . . · wk | k ≥ 0 אוטומט סופי אי-דטרמינסטי )(NFA הגדרה (2.1) .אוטומט סופי אי-דטרמינסטי ) (NFAהוא חמישיה A = hQ, Σ, δ, Q0 , F iכאשר: Qקבוצת המצבים )קבוצה סופית(. Σהא“ב. δ : Q × (Σ ∪ {ε}) → 2Qפונק’ מעברים. Q0 ⊆ Qקבוצת המצבים ההתחלתיים. Fקבוצת המצבים המקבלים. הגדרה (2.2) .ריצה של A NFAעל מילה w = w1 w2 . . . wnמעל Σזו סדרה של מצבים ,r = r0 , r1 , . . . , rmעבור ,m ≥ n כך שניתן לכתוב את wכ ,(xi ∈ Σ ∪ {ε}) w′ = x1 x2 . . . xm -וכך שמתקיים: - r0 ∈ Q0 .1הריצה מתחילה ממצב התחלתי כלשהו. .2לכל i ≥ 0מתקיים ) .ri+1 ∈ δ (ri , xi+1 הגדרה (2.3) .יהיו ,A NFAמילה wוריצה rשל wעל .Aנאמר כי: rריצה מקבלת אם .rm ∈ F Aמקבל את wאם קיימת ריצה מקבלת של Aעל .w השפה של Aהיא } Aמקבלת את .L (A) = {w ∈ Σ∗ |w משפט מייהיל-נרוד הגדרה (4.1) .לכל שפה ∗ L ⊆ Σנגדיר יחס ∗ ∼L ⊆ Σ∗ × Σכך שלכל ∗ x, y ∈ Σמתקיים x ∼L yאם“ם לכל מילה ∗z ∈ Σ מתקיים x · z ∈ Lאם“ם .y · z ∈ Lנסמן ב [w]-את מחלקת השקילות של wב .L-יחד זה נקרא יחס מייהיל-נרוד ).(MN 127 27 הגדרות שפות חסרות הקשר הגדרה (5.1) .דקדוק חסר הקשר ) (CGFהוא רביעיה G = hV, Σ, R, Siכאשר: - V .1קבוצה סופית של משתנים. - Σ .2קבוצה סופית של טרמינלים) .א“ב( - R .3קבוצה של חוקי גזירה מהצורה ∗ ).V → (V ∪ Σ - S .4משתנה התחלתי. ∗ הגדרה (5.2) .אם ) w, u, v ∈ (V ∪ Σו A → w-חוק בדקדוק ,אז נגיד ש uAv-מייצר/גוזר את uwvונסמן .uAv ⇒ uwv ∗ ∗ ∗ אם ) u, w ∈ (V ∪ Σנגיד ש u ⇒ w-אם קיימים k ≥ 1ו u1 , . . . , uk ∈ (V ∪ Σ) -עבורם .u = u1 ⇒ u2 ⇒ . . . ⇒ uk = w n o ∗ הגדרה (5.3) .השפה של Gהיא .L (G) = w ∈ Σ∗ | S ⇒ w הגדרה (5.4) .שפה Lתקרא שפה חסרת הקשר אם קיים G CFGכך ש .L (G) = L-נסמן את קבוצת כל השפות חסרות ההקשר בתור .CFL חישוביות מכונת טיורינג הגדרה (6.1) .מכונת טיורינג ) (Turing Machineהיא שביעיה M = hQ, Σ, Γ, δ, q0 , qacc , qrej iכאשר: Qקבוצת המצבים הפנימיים )קבוצה סופית(. ∈ Σא“ב הקלט )/ Σ (. Γא“ב העבודה )∈ Γ, Σ ⊆ Γ ( .אלה אותיות שאפשר לכתוב על הסרט. )}→ - δ : Q × Γ → (Q × Γ × {←,פונקציית מעברים. q0מצב התחלתי יחיד. qaccמצב מקבל יחיד .כאשר המכונה מגיע למצב זה היא עוצרת. qrejמצב דוחה יחיד .כאשר המכונה מגיע למצב זה היא עוצרת. הגדרה (6.2) .תהי Mמכונת טיורינג )מ“ט( .הקונפיגורציה של Mבכל רגע נתון היא תיאור מלא של המצב של המכונה: המצב הפנימי הנוכחי ,מיקום הראש ותוכן הסרט .אם בסרט רשומה המילה ∗ w = uv ∈ Γוהראש נמצא על האות הראשונה של vוהוא המצב ,qנרשום את הקונפיגורציה הנוכחית של Mבתור .uqv q ↓ v ... u הגדרה (6.3) .תהי Mמ“ט .הקונפיגורציה ההתחלתית של Mעל מילה ∗ w ∈ Σהיא .εq0 w = q0 w קונפיגורציה מקבלת היא קונפ’ שהמצב שלה הוא qaccוקונפיגורציה דוחה היא קונפ’ שהמצב שלה הוא .qrejלכל אחת משתי קונפיגורציות אלה ,המקבלת והדוחה ,נקרא קונפיגורציה סופית/עוצרת. 128 27 הגדרות הגדרה (6.4) .בהינתן קונפ’ uaqbvכאשר ,u, v ∈ Γ∗ , q ∈ Q, a, b ∈ Γאם δ (q, b) = hq ′ , c, →iאז הקונפ’ העוקבת היא uacq ′ vונסמן .uaqbv → uacq ′ vאחרת ,אם ,δ (q, b) = hq ′ , c, ←iאז הקונפ’ העוקבת היא uq ′ acvונסמן .uaqbv → uq ′ acv במקרה שהקונפיגורציה היא qbvו ,δ (q, b) = hq ′ , c, ←i-אז נגדיר את הקונפיגורציה העוקבת להיות q ′ cvכי אין לנו איך להתקדם עוד שמאלה. אם שתי קונפיגורציות הן עוקבות ,נאמר שהראשונה גוררת ) (yieldsאת השנייה. הגדרה (6.5) .תהי Mמ“ט .ריצה של Mעל ∗ w ∈ Σהיא סדרה של קונפ’ c0 , c1 , c2 , . . .כך ש c0 -היא הקונפ’ ההתחלתית של Mעל ci+1 ,wעוקבת ל ,ci -ובנוסף או שהסדרה סופית ומסתיימת בקונפ’ עוצרת או שאינה סופית. הגדרה (6.6) .תהי Mמ“ט .נאמר כי Mמקבלת את ∗ w ∈ Σאם הריצה של Mעל wשמגיעה לקונפ’ מקבלת .אחרת )אם מגיעים לקונפ’ דוחה או שהריצה לא מסתיימת אף פעם( נאמר ש M -לא מקבלת את .wנסמן ב L (M )-את קבוצת המילים ∗ w ∈ Σש M -מקבלת הגדרה (6.7) .תהי Mמ“ט .נאמר ש M -מזהה את Lאם .L (M ) = L הגדרה (6.8) .תהי Mמ“ט ותהי Lשפה .נאמר ש M -מכריעה ) (decidesאת Lאם Mמזהה את Lובנוסף היא עוצרת על כל קלט. הגדרה (6.9) .נסמן ב RE-את מחלקת השפות הניתנות לזיהוי ע“י מכונת טיורינג ונסמן ב R-את מחלקת השפות שניתנות להכרעה ע“י מכונת טיורינג. הגדרה (6.10) .נגדיר .coRE = L | L ∈ RE ספרנים )(Enumerators הגדרה (6.11) .ספרן ) (Enumeratorהוא מ“ט עם מדפסת ,שלא מקבלת קלט .כלומר ,יש לה סרט פלט ,שם היא מדפיסה מילים. הגדרה (6.12) .שפת הספרן מוגדרת על ידי כל המילים שהוא מדפיסת כלומר } Eבסופו של דבר מדפיסה את L (E) = {w : w }קיים מספר tשל צעדים כך ש E-מדפיס את wלאחר tצעדים = {w : אי-כרעיות ובעיית העצירה ) הגדרה (6.13) .נגדיר את השפה Mהיא מ״ט ) w ∈ L (M ( hM, wi : = .ATM הגדרה (6.14) .נגדיר את השפה } Mעוצרת על .HALTTM = {hM, wi | w רדוקציות הגדרה (7.1) .נאמר כי ∗ f : Σ∗ → Σהיא פונק’ ניתנת לחישוב ) ,(computable − functionאם קיימת מ“ט Mfשבהינתן קלט xעוצרת עם ) f (xעל הסרט. הגדרה (7.2) .עבור שתי שפות ∗ ,A, B ⊆ Σנאמר ש A-ניתנת לרידוקציית מיפוי ל ,(A is mapping reducible to B) B-ונסמן , A ≤m Bאם קיימת פנ“ל ∗ f : Σ∗ → Σכך שלכל ∗ w ∈ Σמתקיים . w ∈ A ⇐⇒ f (w) ∈ B הגדרה (7.3) .נגדיר את השפה } Mעוצר על .HALTεTM = {hM i | ε הגדרה (7.4) .נגדיר את השפה }.REGTM = {hM i | L (M ) ∈ REG 129 27 הגדרות סיבוכיות מחלקות סיבוכיות בזמן P, NP, EXP - הגדרה (8.1) .תהי .t : N → Nנגדיר מחלקה קיימת מ”ט דטרמיניסטית חד-סרטית שמכריעה את Lועוצרת על כל קלט wתוך ))| O (t (|wצעדים ∗L ⊆ Σ = ))TIME (t (n הגדרה (8.2) .נגדיר מחלקה ,PTIMEאו בקיצור ,Pע“י TIME ni [ = PTIME i≥0 הגדרה (8.3) .נגדיר מחלקה ,EXPTIMEאו בקיצור ,EXPע“י i TIME 2n [ = EXPTIME i≥0 הגדרה (8.4) .מכונת טיורינג אי-דטרמיניסטית היא שביעיה M = hQ, Σ, Γ, δ, q0 , qacc , qrej iהמוגדרת באותו אופן כמו במ“ט רגילה ,רק ש δ-יכולה להעביר אותנו לכמה קונפיגורציות שונות בכל צעד ,כלומר }.δ : Q × Γ → 2Q×Γ×{R,L הגדרה (8.5) .נאמר שמ“ט אי-דטרמיניסטית )א“ד( Mמקבלת מילה wאם יש ריצה של Mהמסתיימת ב .qacc -אחרת, )כלומר כל הריצות דוחות או לא עוצרות( נאמר ש M -דוחה את .wלסיום נאמר ש M -מכריעה שפה Lאם L (M ) = L ובנוסף Mעוצרת על כל מילה wבכל הריצות האפשריות שלה. הגדרה (8.6) .זמן הריצה של מ“ט אי-דטר’ Mעל מילה wמסומן ב t (|w|)-והוא מוגדר להיות זמן הריצה של הריצה הכי ארוכה מבין כל הריצות האפשריות של Mעל .w הגדרה (8.7) .תהי .t : N → Nנגדיר מחלקה קיימת מ”ט א”ד חד-סרטית ∗L ⊆ Σ שמכריעה את Lועוצרת על כל קלט wתוך ))| O (t (|wצעדים בכל ריצה אפשרית הגדרה (8.8) .נגדיר מחלקה ,NPTIMEאו בקיצור ,NPע“י NTIME ni [ = NPTIME i≥0 הגדרה (8.9) .מוודא לשפה Lהוא מ“ט דטר’ Vכך שעבורה מתקיים }קיים cכך ש V -מקבלת את )L = {w | (w, c הערך cנקרא סרטיפיקט/עד. 130 = ))NTIME (t (n 27 הגדרות שלמות ב(NP − Completeness) NP- הגדרה (9.1) .שפה Lתקרא -NPשלמה אם: .L ∈ NP .1 .2אם L ∈ Pאזי .P = NP הגדרה (9.2) .משתנה בוליאני/פסוקי הוא משתנה שמקבל ערכים מ) {T, F}-אמת/שקר( .קבוצת משתנים בוליאניים תסומן בדר“כ בתור } .X = {x1 , . . . , xn נוסחה בוליאנית/פסוקית מוגדרת באופן רקורסיבי: .1כל משתנה בוליאני הוא נוסחה בוליאנית. .2אם φ1 , φ2נוסחאות בוליאניות אז גם .¬φ1 , φ1 ∧ φ2 , φ1 ∨ φ2 בהינתן השמה } f : X → {T, Fלמשתני הנוסחה ,ניתן לחשב את ערך הנוסחה )אמת/שקר( .נאמר שנוסחה Θספיקה אם יש השמה שמספקת אותה )כלומר השמה כך ש Θ-תקבל את הערך ”אמת“(. הגדרה (9.3) .נאמר שנוסחה Θהיא ב (Conjunctive Normal Form) CNF-אם Θהיא מהצורה 1 2 km l11 ∨ l12 . . . ∨ l1k1 ∧ . . . ∧ lm ∨ lm . . . ∨ lm כך ש lij -היא ליטרל ,כלומר } .lij ∈ {x1 , . . . , xn , x1 , . . . , xn הגדרה (9.4) .נגדיר את השפה } Θנוסחה ספיקה ב.SAT = {hΘi | CNF - רדוקציות פולינומיאליות הגדרה f : Σ∗ → Σ∗ (10.1) .היא פונקציה ניתנת לחישוב בזמן פולינומיאלי אם קיימת מ״ט Mfשעל קלט xעוצרת תוך מספר פולינומיאלי של צעדים עם ) f (xעל הסרט. הגדרה (10.2) .עבור ∗ A, B ⊆ Σנאמר ש A-ניתנת לרדוקציה פולינומיאלית ל B-ונסמן A ≤p Bאם קיימת ∗f : Σ∗ → Σ פונק ′ניתנת לחישוב בזמן פולינומיאלי ,כך ש.w ∈ A ⇐⇒ f (w) ∈ B- הגדרה (10.3) .נאמר ששפה ∗ L ⊆ Σהיא -NPקשה ) (NPHאם לכל שפה L′ ∈ NPמתקיים .L′ ≤p L הגדרה (10.4) .נאמר ששפה ∗ L ⊆ Σהיא -NPשלמה ) (NPCאם: ) .1חסם עליון( .L ∈ NP ) .2חסם תחתון( .L ∈ NPH משפט קוק-לוין הגדרה Θ} (10.5) .נוסחא ספיקה ב.3SAT = {hΘi | 3CNF- הגדרה (10.6) .יהי G = hV, Eiגרף .נאמר כי S ⊆ Vהיא -kקליקה )או -kקליק( בגרף אם |S| = kו E (v1 , v2 )-לכל .v1 , v2 ∈ S הגדרה G} (10.7) .גרף לא מכוון שיש בו קליקה בגודל .CLIQUE = {hG, ki | k 131 27 הגדרות הגדרה (10.8) .בעיית ה Subset Sum-מוגדרת באופן הבא. קלט קבוצה )ייתכן עם חזרות( של מספרים טבעיים } A = {a1 , . . . , anומספר יעד .s ∈ N פלט האם יש B ⊆ Aכך שai - P ai ∈B = .s ) נגדיר את שפת בעיית ה Subset Sum-על ידי ai = s ( P ai ∈B hA, si | ∃B ⊆ A : = .SS מחלקות סיבוכיות זכרון הגדרה (11.1) .תהי Mמ“ט דטרמינסטית ,חד סרטית ,העוצרת על כל קלט .סיבוכיות הזכרון של Mהיא פונקציה s : N → N כך שעל כל קלט באורך M ,nמשתמשת לכל היותר ב s (n)-תאים .במקרה זה נאמר ש M -רצה בשטח ).s (n עבור מ“ט א“ד סיבוכיות הזכרון ) s (nהיא כמות התאים המקסימלית ש M -צריכה על פני כל הריצות האפשריות שלה על מילה באורך .n הגדרה (11.2) .תהי .s : N → Nנגדיר מחלקה קיימת מ”ט דטרמיניסטית חד-סרטית עם סיבוכיות זכרון )s (n שמכריעה את L קיימת מ”ט אי-דטרמיניסטית חד-סרטית עם סיבוכיות זכרון )s (n שמכריעה את L ∗L ⊆ Σ ∗L ⊆ Σ = ))SPACE (s (n = ))NPSPACE (s (n הגדרה (11.3) .נגדיר SPACE nk [ = PSPACE k∈N NPSPACE nk [ = NPSPACE k∈N הגדרה (11.4) .נאמר ששפה ∗ L ⊆ Σהיא -NPSPACEקשה ) (NPSPACE − Hאם לכל שפה L′ ∈ NPSPACEמתקיים .L′ ≤p L ′ ′ נאמר ש L-היא -PSPACEקשה ) (PSPACE − Hאם לכל שפה L ∈ PSPACEמתקיים .L ≤p L הגדרה (11.5) .נאמר ששפה ∗ L ⊆ Σהיא -PSPACEשלמה ) (PSPACE − Cאם: ) .1חסם עליון( .L ∈ PSPACE ) .2חסם תחתון( .L ∈ PSPACE − H והגדרה דומה מתקבלת עבור .NPSPACE 132 27 הגדרות בעיות הריקנות והאוניברסליות הגדרה (11.6) .נגדיר } Aהוא NFAכך שEMPTYNFA = {hAi : L (A) = ∅ - } Aהוא NFAכך שALLNFA = {hAi : L (A) = Σ∗ - סיבוכיות זכרון תת-לינארית הגדרה (12.1) .סיבוכיות הזכרון של מ“ט Mהיא פונקציה s : N → Nכך שעל כל קלט באורך M ,nמשתמשת לכל היותר ב s (n)-תאים בסרט העבודה. הגדרה (12.2) .נגדיר את המחלקות )L = LOGSPACE = SPACE (log n )NL = NLOGSPACE = NSPACE (log n כאשר ) SPACE (log n) , NSPACE (log nמוגדרים מעל מכונות טיורינג עם שני סרטים )קלט ועבודה(. הגדרה (12.3) .משרן/מתמר לוגריתמי ) ,log − space Transducerאו בקיצור (LSTהוא מ“ט Mבעלת שלושה סרטים )קלט, עבודה ופלט( שמחשבת פונק’ בשטח לוגריתמי .כלומר M ,מתחילה עם מילת קלט wעל סרט הקלט ,ומסיימת עם )f (w על סרט הפלט ,כך שסרט העבודה השתמש ב O (log |w|)-תאים. הגדרה (12.4) .נאמר שפונק’ ∗ f : Σ∗ → Σהיא חשיבה בשטח לוגריתמי אם קיים משרן לוגריתמי שמחשב אותה. הגדרה (12.5) .יהיו ∗ .A, B ⊆ Σנאמר ש A ≤logspace B-אם יש פונק’ חשיבה בשטח לוגריתמי fכך שלכל ∗ w ∈ Σמתקיים .w ∈ A ⇔ f (w) ∈ B הגדרה (12.6) .נאמר ששפה ∗ L ⊆ Σהיא -NLקשה ) (NLHאם לכל שפה L′ ∈ NLמתקיים .L′ ≤logspace Lהגדרה דומה מתקבלת עבור .L הגדרה (12.7) .נאמר ששפה ∗ L ⊆ Σהיא -NLשלמה ) (NLCאם: ) .1חסם עליון( .L ∈ NL ) .2חסם תחתון( .L ∈ NLH והגדרה דומה מתקבלת עבור .L משפטי ההירככיה )מהתרגול( הגדרה (26.1) .תהי t : N → Nכך ש .t (n) = Ω (n log n)-נאמר כי tהיא חשיבה/ניתנת לבנייה בזמן )(Time Constructible אם יש מ“ט שמקבלת כקלט את n) 1nבאונארית( ומחשבת את הייצוג הבינארי של ) t (nבזמן )).O (t (n הגדרה (26.2) .תהי s : N → Nכך ש .s (n) = Ω (log n)-נאמר כי sהיא חשיבה/ניתנת לבנייה במקום )(Space Constructible אם יש מ“ט בעלת שלושה סרטים שמקבלת כקלט את n) 1nבאונארית( ומחשבת את הייצוג הבינארי של ) s (nבסיבוכיות זכרון )).O (s (n 133 28משפטים 28 משפטים מודלים חישוביים אוטומט סופי דטרמינסטי )(DFA משפט (1.1) .תהי .L ∈ REGאזי .L = Σ∗ \L ∈ REG משפט (1.2) .תהיינה .L1 , L2 ∈ REGאזי .L1 ∪ L2 ∈ REG משפט (1.3) .תהיינה .L1 , L2 ∈ REGאזי .L1 ∩ L2 ∈ REG משפט (1.4) .תהיינה .L1 , L2 ∈ REGאזי .L1 · L2 ∈ REG אוטומט סופי אי-דטרמינסטי )(NFA שקילות NFAוDFA- משפט (2.1) .לכל A NFAיש A′ DFAכך ש.L (A) = L (A′ )- ∗ טענה (2.1) .נגדיר במקום ה-n-י מהסוף מופיע .∀n ∈ N, Ln = w ∈ {0, 1} | 0אזי קיים NFAעם n + 1מצבים המקבל את ,Lnוכל DFAהמקבל את Lnמכיל לפחות 2nמצבים. למת הניפוח לשפות רגולריות למת הניפוח לשפות רגולריות משפט (3.1) .תהי .L ∈ REGאזי קיים ) p ≥ 1קבוע הניפוח( כך שלכל מילה ,w ∈ Lאם |w| ≥ pאז קיימת חלוקה w = x · y · zכך שמתקיים: .|xy| ≤ p .1 |y| > 0 .2 ).(y 6= ε .∀i ≥ 0, xy i z ∈ L .3 משפט מייהיל-נרוד משפט מייהיל-נרוד משפט (4.1) .תהי ∗ .L ⊆ Σאזי L ∈ REGאם“ם יש ל ∼L -מספר סופי של מחלקות שקילות. מסקנה (4) .תהי .L ∈ REGאזי כמות המצבים המינימלית של DFAהמקבל את Lהיא מספר מחלקות השקילות .∼L תיאור אלגוריתם המזעור נגדיר רקורסיבית יחס :∼i בסיס s1 ∼0 s2 :אם“ם .s2 ∈ F ⇐⇒ s1 ∈ F צעד s1 ∼i+1 s2 :אם“ם s1 ∼i s2וגם לכל σ ∈ Σמתקיים ).δ (s1 , σ) ∼i δ (s2 , σ האלגוריתם שלנו יחשב את ∼i+1באמצעות ∼iוהוא יעצור כאשר ,∼i =∼i+1כי אז נדע שמדובר בנקודת שבת. מחלקות השקילות של היחס ∼:=∼i+1מגדירות אוטומט )כפי שראינו בהוכחה של משפט מייהיל-נרוד( ואנו נטען שזהו אוטומט שקול ומינימלי. 134 28משפטים אלגוריתם המינימיזציה משפט (4.2) .יהי .A = hΣ, Q, q0 , δ, F i DFA הוא היחס שהתקבל מהאלגוריתם הקודם. יהיו } S = {S1 , . . . , Skמחלקות השקילות של ∼ ,כאשר ∼ ′ ′ נגדיר A = hS, Σ, [q0 ] , δ , SF iכאשר } SF = {Si ∈ S | Si ⊆ F ו .δ ′ ([q] , σ) = [δ (q, σ)]-אזי A′הוא אוטומט מינימלי לשפה ).L (A שפות חסרות הקשר מסקנה CFL (5.1) .לא סגורה תחת שרשור. משפט.REG ⊆ CFL (5.1) . למת הניפוח לשפות חסרות הקשר משפט (5.1) .תהי .L ∈ CFLאזי קיים ) p ≥ 1קבוע הניפוח( כך שלכל מילה ,w ∈ Lאם |w| ≥ pאז קיימת חלוקה w = u · v · x · y · zכך שמתקיים: .|vxy| ≤ p .1 |vy| > 0 .2 ).(vy 6= ε .∀i ≥ 0, uv i xy i z ∈ L .3 חישוביות מכונת טיורינג מסקנה R (6.1) .סגורה למשלים. משפט.R = RE ∩ coRE (6.1) . משפט (6.2) .לכל שפה ∗ L ⊆ Σמתקיים כי L ∈ REאם“ם קיים ספרן Eכך ש.L (E) = L- ספרנים )(Enumerators מסקנה RE (6.2) .אלה כל השפות שניתן לסדר את האיברים בהן באמצעות אלגוריתם. אי-כרעיות ובעיית העצירה ∈ .L משפט (6.3) .יש שפה ∗ L ⊆ Σכך ש/ R- ∈ .HALTTM משפט/ R (6.4) . 135 28משפטים רדוקציות משפט הרדוקציה לR- משפט (7.1) .לכל ∗ A, B ⊆ Σאם A ≤m Bו B ∈ R-אזי ) .A ∈ Rובאופן דומה עבור (RE, coRE ∈ .B ∈ Aאז / R מסקנה (7.1) .אם A ≤m Bו/ R- ∈ .HALTTM טענה/ R (7.1) . ∈ .HALTεTM טענה/ R (7.2) . ∈ .REGTM טענה/ R (7.3) . ∈ .REGTM מסקנה/ RE, coRE (7.2) . סיבוכיות מחלקות סיבוכיות בזמן P, NP, EXP - משפט (8.1) .אם ניתן להכריע שפה Lבזמן ) o (n log nאזי Lרגולרית) .כאשר מדובר על סימון oקטן ולא Oגדול( משפט.P ⊆ NP ⊆ EXP (8.2) . אפיון המחלקה NP משפט L ∈ NP (8.3) .אם“ם יש ל L-מוודא דטרמיניסטי Vשרץ בזמן פולינומיאלי ב.w- הקלט של Vהוא זוג ) (w, cכאשר wהיא המילה שאנחנו בודקים )אחרת וc-לא היאנוכלהעד.לעבורכדיעלשV -כולו(.תיחשב כמוודא פולינומיאלי ! ב ,w-אז האורך של העד cצריך להיות פולינומיאלי בw- שלמות ב(NP − Completeness) NP- משפט SAT (9) .היא -NPשלמה. רדוקציות פולינומיאליות משפט הרדוקציה הפולינומיאלית משפט (10) .לכל ∗ A, B ⊆ Σאם A ≤p Bו B ∈ P-אזי .A ∈ P טענה (10.1) .אם L ∈ NPHו L ∈ P-אזי .P = NP טענה (10.2) .תהי .L′′ ∈ NPHאם L′′ ≤p Lאזי L ∈ NPH טענה (10.3) .אם A ∈ Pאז A ≤p Bלכל ∗.B 6= ∅, Σ משפט קוק-לוין מסקנה.3SAT, CLIQUE ∈ NP (10.1) . 136 28משפטים משפט.3SAT ≤p CLIQUE (10) . משפט קוק לוין משפט ,3SAT ∈ NPH (10) .כלומר לכל L ∈ NPמתקיים .L ≤p 3SAT למה.SAT ≤p 3SAT (10.1) . משפטSS ∈ NPC (10.1) . מחלקות סיבוכיות זכרון משפט (11) .לכל פונקציה f : N → Nמתקיים )).TIME (f (n)) ⊆ SPACE (f (n משפט (11) .לכל פונקציה f : N → Nמתקיים )).SPACE (f (n)) ⊆ TIME 2O(f (n מסקנה PTIME ⊆ PSPACE (11.1) .ו.NPTIME ⊆ NPSPACE- טענה.SAT ∈ SPACE (n) (11.1) . משפט.NP ⊆ PSPACE (11) . מסקנה.P ⊆ NP ⊆ PSPACE ⊆ NPSPACE (11.2) . בעיות הריקנות והאוניברסליות טענה.ALLNFA ∈ NPSPACE (11.2) . ′ משפט סביץ משפט (11.1) .לכל פונקציה ) S (n) ∈ Ω (log nמתקיים ).NPSPACE (S (n)) ⊆ SPACE S 2 (n מסקנה.ALLNFA ∈ PSPACE (11.3) . טענה.ALLNFA ∈ PSPACE − H (11.3) . סיבוכיות זכרון תת-לינארית משפט הרדוקציה לL- משפט (12.1) .לכל ∗ A, B ⊆ Σאם B ≤logspace Aו A ∈ L-אזי ) .B ∈ Lובאופן דומה עבור (NL טענה.PATH ∈ NL (12.1) . טענה.PATH ∈ NLC (12.2) . 137 28משפטים טענה (12.3) .נניח כי .A ≤logspace Bאזי .A ≤p B מסקנהNL ⊆ PTIME (12.1) . טענה.EMPTYNFA ∈ NLC (12.4) . טענה.BBPATH ∈ NLC (12.5) . משפט אימרמן משפט אימרמן משפט (12.2) .לכל פונק’ s (n) ≥ log nמתקיים )).NSPACE (s (n)) = coNSPACE (s (n מסקנה.NL = coNL(12.2) . משפטי ההירככיה )מהתרגול( טענה (26.1) .קיימת מ“ט Sשבהינתן hM, t, wiכקלט S ,מחשבת את הקונפ’ המתקבלת מהרצת Mעל wלמשך tצעדים, והיא עושה זאת בזמן )| (t log t) · p (|hM iכאשר pהוא איזשהו פולינום שנקבע מראש. משפט ההיררכיה בזמן ) (26.1לכל פונקציה tשניתנת לבנייה בזמן ,קיימת שפה Lשניתנת להכרעה בזמן )) O (t (nאך לא בזמן משפט . )t(n )).o log(t(n משפט (26.1) .יהיו .1 ≤ ϵ1 < ϵ2אזי ) .TIME (nϵ1 ) ⊊ TIME (nϵ2 משפט.P ⊊ EXP (26.2) . טענה (26.2) .קיימת מ“ט Sשבהינתן hM, w, s, tiכקלט S ,מחשבת את הקונפ’ המתקבלת מהרצת Mעל wלמשך t צעדים ,תוך ההנחה ש M -משתמשת בלכל היותר sתאים )אם Mמשתמשת ביותר אז Sתחזיר ,(Falseוהיא עושה זאת תוך שימוש ב O (log |w| + s · |hM i| · log t)-תאים. משפט ההיררכיה במקום משפט (26.2) .לכל פונקציה sשניתנת לבנייה במקום ,קיימת שפה Lשניתנת להכרעה במקום )) O (s (nאך לא בזמן )).o (s (n משפט L ⊊ SPACE (n) (26.3) .ולכן גם L ⊊ PSPACE 138 30 מחלקות סיבוכיות זמן חלק VII נספחים 29 מחלקות חישוביות שפה 30 תיאור מחלקה הפנייה AT M } Mמקבלת את {hM, wi | w RE\R ראו 6.13 HALTT M } Mעוצרת על {hM, wi | w RE\R ראו 6.14 HALTTε M } Mעוצרת על {hM i | ε RE\R ראו 7.3 Lq כל ה hM, qi-כך ש q-ישיג RE\R ראו תרגיל 8 L≥n }{hM i | |L (M )| ≥ n RE\R ראו תרגיל 9 USELESS אוטומטים בעלי מצב שלא ניתן להגיע אליו coRE\RE ראו 21.2 L≤n }{hM i | |L (M )| ≤ n coRE\RE ראו תרגיל 9 TILE אריחים הניתנים לריצוף coRE\RE ראו 7.5 L=n } {hM i | |L (M )| = nכאשר n 6= 0 RE ∪ coRE ראו תרגיל 9 CFLT M }{hM i | L (M ) ∈ CFL RE ∪ coRE ראו תרגיל 8 REGT M }{hM i | L (M ) ∈ REG RE ∪ coRE ראו 7.2 מחלקות סיבוכיות זמן שפה תיאור מחלקה הפנייה 3SAT נוסחאות 3CNFספיקות NPC ראו 10 נוסחאות CNFספיקות NPC ראו 10.1 NPC ראו 10.1 CLIQUE כל ה hG, ki-כך ש G-מכיל קליקה בגודל k NPC ראו 10 VC hG, kiכך שב G-יש כיסוי קודקודים מגודל ≤ k NPC ראו 23.1 DS כל ה hG, ki-כך שיש ב DS G-מגודל k NPC ראו 23.4 hG, s, tiכך של G-מסלול המילטוני מ s-לt- NPC ראו 24.1 NPC ראו 24.1 NPC ראו תרגיל 11 SAT } SS D − ST − HAMPATH ai = s ∑ { ⟨A, s⟩ | ∃B ⊆ A : ai ∈B וריאציות על מסלולים המילטוניים ∃I ⊆ [m] , |I| = k ∪ =U Si SET − COVER PARTITION xi i∈I ∑ = xi i∈[m]\I 2 − 1 − PARTITION xi ∑ ∑ ⟨x1 , . . . , xm ⟩ : ∃I ⊆ [m] : NPC ראו תרגיל 11 i∈I xi = 2 i∈[m]\I ⟨U, S1 , . . . , Sm , k⟩ : ∑ ⟨x1 , . . . , xm ⟩ : ∃I ⊆ [m] : NPC ראו תרגיל 11 i∈I (k ≥ 3) k − Color כל הגרפים שניתן לצבוע ב k-צבעים NPC ראו תרגיל 10 3 − DNF − TAUTOLOGY נוסחאות 3 − DNFשמסופקות ע“י כל השמה coNPC ראו תרגיל 11 TAUTOLOGY } φטאוטולוגיה ב{hφi | CNF - coNPC ראו 24.1 CONTRADICTION } φהיא סתירה ב{hφi | CNF - coNPC ראו 24.1 139 31 סיכום מחלקות וסגירויות 31 סיכום מחלקות וסגירויות נלקח מסיכומו הנהדר של מאור מזרחי .שימו לב -יתכן שמה שמסומן לידו ? אינו נכון. המחלקה תיאור המחלקה סגירות לפעולה ∪ ∩ · \ ∗ · rev איחוד חיתוך משלים הפרש כוכב שרשור היפוך REG ניתן לזיהוי ע“י אוטומט ✓ ✓ ✓ ✓ ✓ ✓ ✓ CFL ניתן לכתיבה ע“י דקדוק ח“ה ✓ × × × ✓ ✓ ✓ RE ניתן לזיהוי ע“י מ“ט ✓ ✓ × × ✓ ✓ ✓ coRE המשלים ניתן לזיהו ע“י מ“ט ✓ ✓ × × ✓ ✓ ✓ R ניתן להכרעה ע“י מ“ט ✓ ✓ ✓ ✓ ✓ ✓ ✓ RE ∪ coRE לא ניתן לזהות ,וגם לא את × × ✓ × × ×? ✓ המשלים ))TIME (f (n ניתן להכריע בזמן ))O (f (n ✓ ✓ ✓ × ✓ אם )f = Ω (n ע“י מ“ט דטר’ ))NTIME (f (n ניתן להכריע בזמן ))O (f (n ✓ ✓ לא ידוע × לא ידוע אם )f = Ω (n ע“י מ“ט א“ד P ניתן להכרעה בזמן פולי’ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ע“י מ“ט דטר’ EXP ניתן להכרעה בזמן אקספו’ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ע“י מ“ט דטר’ NP ניתן להכרעה בזמן פולי’ ✓ ✓ לא ידוע ✓ לא ידוע ✓ ✓ ע“י מ“ט א“ד NPH רדוקציה פולי’ מכל שפה בNP- × × לא ידוע × × × ✓ NPC NP ∩ NPH × × לא ידוע × × × ✓ coNP המשלים נמצא בNP- ✓ ✓ לא ידוע לא ידוע ✓ ✓ ✓ coNPH רדוקציה פולי’ מכל שפה בcoNP- × × לא ידוע × × × ✓ coNPC coNP ∩ coNPH × × לא ידוע × × ✓ ))SPACE (f (n ניתן להכריע במקום ))O (f (n ✓ ✓ ✓ ✓ אם ) × 2 ( ?f = Ω log n אם )f = Ω (log n אם )f = Ω (n ע“י מ“ט דטר’ ))NSPACE (f (n ניתן להכריע במקום ))O (f (n ✓ ✓ אם )f = Ω (log n אם )f = Ω (n אם )f = Ω (log n ע“י מ“ט א“ד PSPACE ניתן להכרעה במקום פולי’ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ע“י מ“ט דטר’ PSPACE − H רדוקציה פולי’ מכל שפה PSPACE × × ✓ × × × ✓ PSPACE − C PSPACE ∩ PSPACE − H × × ✓ × × × ✓ NPSPACE ניתן להכרעה במקום פולי’ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ע“י מ“ט א“ד ? ✓ ✓ ✓ ✓ לא ידוע )(L = NL ✓ × ✓ ✓ ✓ ✓ ✓ × × ✓ × × × × L )SPACE (log n NL = coNL )NSPACE (log n ✓ NLH רדוקציה בשטח לוגריתמי מכל × שפה NL NLC השפה המשלימה נמצאת בNL- × × ✓ 140 × × × ×