מודלים חישוביים ־ מבחן מועד ב`, סמסטר א` (2015) ה``עשת

‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫מודלים חישוביים ־ מבחן מועד ב'‪ ,‬סמסטר א'‬
‫תשע''ה )‪(2015‬‬
‫מרצה‪ :‬פרופ' בני שור‬
‫מתרגלים‪ :‬אורית מוסקוביץ' וגל רותם‬
‫‪13.3.2015‬‬
‫הנחיות‪:‬‬
‫‪ .1‬מומלץ לקרוא את כל ההנחיות והשאלות בתחילת המבחן‪ ,‬לפני כתיבת התשובות‪.‬‬
‫‪ .2‬משך הבחינה‪ :‬שלוש שעות‪.‬‬
‫‪ .3‬חומר עזר מותר‪ :‬שני דפי פוליו )דו צדדיים( בלבד עם שם התלמיד‪/‬ה‪.‬‬
‫‪ .4‬יש לענות על כל השאלות במקום המיועד לכך בטופס השאלון )טופס זה(‪.‬‬
‫מחברות הבחינה לא ייקראו‪ ,‬וישמשו כטיוטא בלבד‪.‬‬
‫‪ .5‬יש למלא בכל דף של השאלון מספר ת‪.‬ז ומספר מחברת‪.‬‬
‫‪ .6‬במבחן יש ‪ 6‬שאלות פתוחות‪:‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫יש לענות על השאלות במקום המיועד לכך בטופס השאלון‪.‬‬
‫במידה ואינכם יודעים תשובה לשאלה‪ ,‬ניתן לענות ''אינני יודע‪/‬ת'' ולא להוסיף‬
‫שום הסבר‪ .‬על סעיף זה יינתנו ‪ 20%‬מהנקודות‪.‬‬
‫יש לענות תשובות ברורות‪ ,‬עינייניות‪ ,‬תמציתיות וקריאות‪.‬‬
‫תשובות שיחרגו משמעותית מהמקום המוקצב עלולות לגרום להורדת נקודות‪.‬‬
‫‪ .7‬מותר להשתמש בכל טענה שהוכחה בכיתה )בהרצאה‪ ,‬בתרגול או בתרגיל בית( בתנאי‬
‫שמצטטים אותה במדויק‪.‬‬
‫טענות אחרות )כאלה שהוכחו בספר‪ ,‬בהרצאות מהסמסטר הקודם‪ ,‬וכו'( יש להוכיח‪.‬‬
‫‪ .8‬אלא אם נאמר אחרת‪ ,‬הניחו כי ‪ ,N P 6= CoN P ,P 6= N P‬וכן }‪.Σ = {0, 1‬‬
‫בהצלחה‪ ,‬וסמסטר ב' נעים!‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫סה''כ‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ 15) .1‬נקודות(‬
‫∗‬
‫עבור מילה }‪ w ∈ {0, 1‬נגדיר‪:‬‬
‫)‪ #0 (w‬מספר האפסים ב־ ‪ w‬ו־ )‪ #1 (w‬מספר האחדות ב־ ‪.w‬‬
‫)א( )‪ 5‬נקודות(‬
‫נגדיר את השפה‪:‬‬
‫}המכפלה )‪ #0 (w) · #1 (w‬היא מספר אי זוגי | ∗}‪L = {w ∈ {0, 1‬‬
‫הוכיחו לאיזו מבין המחלקות הבאות ‪ L‬שייכת?‬
‫)ג( ‪.L ∈ CF L \ REG‬‬
‫)א( ‪.L ∈ REG‬‬
‫∈ ‪.L‬‬
‫)ד( ‪/ R‬‬
‫)ב( ‪.L ∈ R \ CF L‬‬
‫‪.L ∈ REG‬‬
‫המכפלה )‪ #0 (w)·#1 (w‬היא מספר אי זוגי אמ''מ )‪ #0 (w‬ו־ )‪ #1 (w‬הם מספרים‬
‫אי זוגיים‪.‬‬
‫לכן‪ ,‬ניתן לבנות ‪ DFA‬שבודק את הזוגיות של )‪ #0 (w‬ו־ )‪ #1 (w‬ומקבל אם שניהם‬
‫אי זוגיים‪.‬‬
‫)ב( )‪ 10‬נקודות(‬
‫נגדיר את השפה‪:‬‬
‫}המכפלה )‪ #0 (w) · #1 (w‬היא מספר ראשוני | ∗}‪L = {w ∈ {0, 1‬‬
‫הוכיחו לאיזו מבין המחלקות הבאות ‪ L‬שייכת?‬
‫)ג( ‪.L ∈ CF L \ REG‬‬
‫)א( ‪.L ∈ REG‬‬
‫∈ ‪.L‬‬
‫)ד( ‪/ R‬‬
‫)ב( ‪.L ∈ R \ CF L‬‬
‫‪.L ∈ R \ CF L‬‬
‫המכפלה )‪ #0 (w) · #1 (w‬היא מספר ראשוני אמ''מ ‪ #1 (w) = 1‬ו־ )‪ #0 (w‬הוא‬
‫מספר ראשוני‪ ,‬או להיפך‪.‬‬
‫נניח בשלילה שהשפה היא ח''ה‪ ,‬אז קיים לה קבוע ניפוח ‪ .k‬נבחן את המילה‬
‫‪ w = 0p 1‬עבור ‪ p > k‬ראשוני כלשהו‪ ,‬וחלוקה של המילה ‪ w = uvxyz‬כך ש־‬
‫)‪.|vxy| < k (2) |vy| > 0 (1‬‬
‫נסמן ב־ ‪ .wi = uv i xy i z‬ונסמן |‪.m = |uxz‬‬
‫אם ‪ vy‬מכיל את התו ‪ ,1‬אזי ‪ #1 (wi ) = 0‬או ‪ #1 (wi ) 6= 1‬וגם ‪.#0 (wi ) 6= 1‬‬
‫∈ ‪.wi‬‬
‫בשני המקרים ‪/ L‬‬
‫‪i‬‬
‫אם ‪ vy‬מכיל רק אפסים‪ ,‬אז )‪ .|#0 (w )| = m + i(p − m‬נסתכל כל ‪:i = p + 1‬‬
‫= ‪|#0 (wi )| = m + i(p − m) = m + (p + 1)(p − m) = m + p2 − pm + p − m‬‬
‫)‪.p2 − pm + p = p(p − m + 1‬‬
‫לכן ‪ #1 (wi ) = 1‬ו־ ) ‪ #0 (wi‬אינו מספר ראשוני‪.‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ 10) .2‬נקודות(‬
‫נגדיר את השפה‪:‬‬
‫} ‪ M‬מ''ט וקיים קלט ∗}‪ w ∈ {0, 1‬עליו ‪ M‬אינה עוצרת תוך |‪ |hM i‬צעדים | ‪L = {hM i‬‬
‫הוכיחו לאיזו מבין המחלקות הבאות ‪ L‬שייכת?‬
‫)א( ‪.L ∈ R‬‬
‫)ג( ‪.L ∈ CoRE \ R‬‬
‫)ב( ‪.L ∈ RE \ R‬‬
‫∈ ‪.L‬‬
‫)ד( ‪/ RE ∪ CoRE‬‬
‫‪.L ∈ R‬‬
‫נראה כי השפה המשלימה כריעה‬
‫} ‪ M‬מ''ט ועל כל קלט ∗}‪ M ,w ∈ {0, 1‬עוצרת תוך |‪ |hM i‬צעדים | ‪. L̄ = {hM i‬‬
‫נבחין שאם על כל קלט ‪ w‬שאורכו לכל היותר |‪ |hM i‬המכונה עוצרת תוך |‪ |hM i‬צעדים‬
‫לכל היותר‪ ,‬אז היא עוצרת על כל קלט )לא חשוב מה אורכו( תוך מספר צעדים כזה‪.‬‬
‫נבנה מ''ט עבור השפה‪:‬‬
‫המכונה תקבל כקלט ‪ ,hM i‬ותסמלץ את ריצת ‪ M‬על כל הקלטים מאורך ≥ |‪|hM i‬‬
‫למשך |‪ |hM i‬צעדים לכ''א )כלומר‪ ,‬מריצים את המכונה על מספר סופי של קלטים‪,‬‬
‫מספר סופי של צעדים לכ"א(‪.‬‬
‫אם אחד מהם דרש ‪ |hM i| + 1‬צעדים‪ ,‬נעצור ונדחה‪ .‬אחרת‪ ,‬נקבל‪.‬‬
‫לכן המכונה המסמלצת עוצרת תמיד ונותנת את התשובה הנכונה‪ ,‬ומכאן שהשפה‬
‫המשלימה ב־ ‪ R‬ולכן גם המקורית ב־ ‪.R‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ 15) .3‬נקודות(‬
‫נגדיר את השפה‪:‬‬
‫} ‪ M‬מ''ט ו־ ‪ G‬דקדוק ח''ה ומתקיים )‪L = {hG, M i | L(M ) = L(G‬‬
‫הוכיחו לאיזו מבין המחלקות הבאות ‪ L‬שייכת?‬
‫)א( ‪.L ∈ R‬‬
‫)ג( ‪.L ∈ CoRE \ R‬‬
‫)ב( ‪.L ∈ RE \ R‬‬
‫∈ ‪.L‬‬
‫)ד( ‪/ RE ∪ CoRE‬‬
‫∈ ‪.L‬‬
‫‪/ RE ∪ CoRE‬‬
‫∈ } ‪ M‬מ''ט ו־ ∗‪.ALLT M = {hM i | L(M ) = Σ‬‬
‫נבנה רדוקציה מ־ ‪/ RE ∪ CoRE‬‬
‫‪:ALLT M ≤m L‬‬
‫בהנתן קלט ‪ hM i‬הרדוקציה תחזיר את הזוג ‪ hG0 , M i‬כאשר ∗‪.L(G0 ) = Σ‬‬
‫נכונות‪:‬‬
‫• אם ‪ ,hM i ∈ ALLT M‬אז ∗‪ L(M ) = L(G0 ) = Σ‬ולכן ‪hG0 , M i ∈ L‬‬
‫∈ ‪hG0 , M i‬‬
‫∈ ‪ ,hM i‬אז ) ‪ L(M ) 6= Σ∗ = L(G0‬ולכן ‪/ L‬‬
‫• אם ‪/ ALLT M‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ .4‬הגדרה‪ :‬נאמר ששפות ‪ A, B‬הן שקולות פולינומיאלית אם ‪ A ≤p B‬וגם ‪.B ≤p A‬‬
‫הוכיחו ‪ /‬הפריכו את הטענות הבאות‪:‬‬
‫)א( )‪ 5‬נקודות(‬
‫כל שתי שפות לא טריוויאליות ב־ ‪) P‬שונות מ־ ∅ ‪ (Σ∗ ,‬הן שקולות פולינומיאלית‪.‬‬
‫נכון‪.‬‬
‫יהיו ‪ A, B‬שתי שפות לא טריוויאליות ב־ ‪.P‬‬
‫נראה כי ‪) A ≤p B‬המקרה השני סימטרי(‪.‬‬
‫∈ ‪.y‬‬
‫כיוון ש־ ∅ ‪ B 6= Σ∗ ,‬יהיו ‪ x ∈ B‬ו־ ‪/ B‬‬
‫תהי ‪ MA‬מ''ט המכריעה את ‪ A‬בזמן פול'‪.‬‬
‫הרדוקציה ‪ f‬מ־‪ A‬ל־‪:B‬‬
‫עבור קלט ‪ ,w‬נריץ )‪ .MA (w‬אם המכונה קיבלה‪ ,‬נחזיר ‪ x‬ואם המכונה דחתה‪,‬‬
‫נחזיר ‪.y‬‬
‫הרדוקציה פול' והנכונות נובעת מיידית )‪.(w ∈ A ⇔ f (w) ∈ B‬‬
‫)ב( )‪ 5‬נקודות(‬
‫כל שתי שפות לא טריוויאליות ב־ ‪) N P‬שונות מ־ ∅ ‪ (Σ ,‬הן שקולות פולינומיאלית‪.‬‬
‫∗‬
‫לא נכון‪.‬‬
‫תהי ‪ A‬שפה כלשהי ב־ ‪ P‬ותהי ‪ B‬שפה ‪ N P‬שלמה‪.‬‬
‫אם קיימת רדוקציה ‪ B ≤p A‬נוכל להסיק ש־ ‪.B ∈ P‬‬
‫אבל אז נקבל שפה ‪ N P‬שלמה שגם ב־ ‪P‬‬
‫וראינו שזה גורר ‪.P = N P‬‬
‫מס' מחברת‬
‫מס' ת‪.‬ז‬
‫)ג( )‪ 5‬נקודות(‬
‫כל שתי שפות ‪ N P‬שלמות הן שקולות פולינומיאלית‪.‬‬
‫נכון‪.‬‬
‫מיידי מההגדרה‪.‬‬
‫יהיו ‪ A, B‬שפות ‪ N P‬שלמות‪.‬‬
‫‪ B‬שפה ‪ N P‬שלמה‪ .‬לכן‪ ,‬לכל ‪ L ∈ N P‬מתקיים ש־ ‪.L ≤p B‬‬
‫כמו כן‪ A ∈ N P ,‬ולכן בפרט‪.A ≤p B ,‬‬
‫הרדוקציה ‪ B ≤p A‬נובעת באותו אופן‪.‬‬
‫)ד( )‪ 5‬נקודות(‬
‫קיימת שפה ‪ N P‬שלמה וקיימת שפה ב־ ‪ CoN P‬שהן שקולות פולינומיאלית‪.‬‬
‫לא נכון‪.‬‬
‫נניח כי קיימת שפה ‪ N P B‬שלמה ושפה ‪ A ∈ CoN P‬ומתקיים ‪.B ≤p A‬‬
‫מכאן נובע ש־ ‪.B ∈ CoN P ∩ N P C‬‬
‫ראינו בתרגול כי זה גורר ‪.N P = CoN P‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ .5‬הגדרה‪ :‬גרף דו צדדי מכוון הוא גרף מכוון שבו ניתן לחלק את הקודקודים לשתי קבוצות‬
‫זרות‪ ,‬כך שלא קיימת קשת בין שני קודקודים השייכים לאותה הקבוצה‪.‬‬
‫לדוגמא‪:‬‬
‫פורמלית‪ ,‬גרף דו צדדי מכוון הוא גרף מכוון )‪ ,G = (V, E‬כאשר‪:‬‬
‫• ‪ V = A ∪ B‬ומתקיים ∅ = ‪ A, B) A ∩ B‬קבוצות זרות(‪.‬‬
‫• לכל קשת ‪ (u, v) ∈ E‬מתקיים ‪ u ∈ A, v ∈ B‬או ‪.u ∈ B, v ∈ A‬‬
‫נגדיר את השפה‪:‬‬
‫‬
‫‪o‬‬
‫‪n‬‬
‫‬
‫‪ G‬הוא גרף דו צדדי מכוון‬
‫המכיל מסלול המילטוני בין ‪ s‬ו־ ‪HamPath = hG, s, ti t‬־‪Bipartite‬‬
‫)א( )‪ 5‬נקודות(‬
‫הוכיחו כי ‪HamPath ∈ N P‬־‪.Bipartite‬‬
‫העד הוא המסלול ההמילטוני‪.‬‬
‫המוודא בודק כי המסלול חוקי‪ ,‬עובר בכל קודקוד בגרף בדיוק פעם אחת )זמן‬
‫פולינומיאלי באורך הקלט(‪.‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫)ב( )‪ 20‬נקודות(‬
‫הוכיחו כי ‪HamPath‬־‪ Bipartite‬היא ‪ N P‬קשה‪.‬‬
‫הדרכה‪ :‬ניתן להראות רדוקציה מ־ ‪ .HamPath‬בהנתן גרף )‪ G = (V, E‬הרדוקציה‬
‫יוצרת גרף דו''צ שקודקודיו הם ‪ 2‬עותקים של ‪) V‬גם רדוקציות אחרות יתקבלו(‪.‬‬
‫נפעל לפי ההדרכה‪ .‬נראה רדוקציה ‪HamPath‬־‪:HamPath ≤p Bipartite‬‬
‫בהנתן גרף וזוג קודקדים ‪ G = (V, E), s, t‬הרדקוציה תחזיר גרף וזוג קודקדים‬
‫‪ G0 = (V 0 , E 0 ), s0 , t0‬באופן הבא‪:‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫} ‪V 0 = {vA , vB | v ∈ V‬‬
‫}‪E 0 = {(vA , vB ) | v ∈ V } ∪ {(uB , vA ) | (u, v) ∈ E‬‬
‫‪s0 = sA‬‬
‫‪t0 = tB‬‬
‫הסבר‪ :‬קודקודי הגרף יהיו שני עותקים של קודקודי הגרף המקורי‪.‬‬
‫לכל קודקוד ‪ ,v‬הרדוקציה מוסיפה קשת מהעותק שלו בקבוצה ‪ A‬לעותק שלו‬
‫בקבוצה ‪.B‬‬
‫ובנוסף‪ ,‬עבור כל קשת שהייתה בגרף המקורי‪ ,‬הרדוקציה בונה קשת דומה מהעותק‬
‫בקבוצה ‪ B‬לעותק בקבוצה ‪.A‬‬
‫לדוגמא‪:‬‬
‫* איננו מוכיחים כאן את נכונות הרדוקציה‪.‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ .6‬הגדרה‪ :‬נאמר שמ''ט ‪ M‬מבקרת ב־ ‪ k‬תאים על הסרט בריצה על קלט ‪ ,w‬אם במהלך‬
‫ריצת ‪ M‬על ‪ ,w‬הראש הקורא מצביע על ‪ k‬תאים שונים בסרט‪.‬‬
‫)א( )‪ 10‬נקודות(‬
‫קלט‪ :‬מ''ט ‪ hM i‬ומספר טבעי ‪.k‬‬
‫שאלה‪ :‬האם ‪ ,M‬בריצה על הקלט הריק ‪ ,ε‬מבקרת בלכל היותר ‪ k‬תאים בסרט?‬
‫הראו כי בעיה זו כריעה‪.‬‬
‫עבור מכונה ‪ M‬עם | ‪ |QM‬מצבים וא''ב סרט בגודל | ‪ |ΓM‬המבקרת בלכל היותר‬
‫‪ k‬תאים בסרט‪ ,‬מספר הקונפיגורציות השונות הוא ‪.|QM | × k × |ΓM |k‬‬
‫לכן‪ ,‬כדי להכריע את הבעיה‪ ,‬נבנה מ''ט שבהנתן קלט ‪ ,hM i‬מסמלצת את )‪M (ε‬‬
‫למשך ‪ |QM | × k × |ΓM |k + 1‬צעדים‪.‬‬
‫אם במהלך הריצה המכונה עצרה‪ ,‬נקבל‪.‬‬
‫אם המכונה לא עצרה‪ ,‬סימן שעברה בקונפיגורציה כלשהי פעמיים‪ .‬לכן‪ ,‬נסיק‬
‫שהמכונה נכנסה ללולאה‪ ,‬ולכן לעולם לא נעצור‪ .‬במקרה זה‪ ,‬נדחה‪.‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫)ב( )‪ 10‬נקודות(‬
‫נסמן } ‪ M‬מ''ט בעלת ‪ n‬מצבים העוצרת על הקלט הריק ‪Sn = {hM i | ε‬‬
‫ונגדיר את הפונקציה ‪ LazySloth : N+ → N‬באופן הבא‪:‬‬
‫)‪ LZ(n‬הוא המספר המקסימלי של תאים בהם מבקרת מכונה מתוך ‪ Sn‬בריצה‬
‫על הקלט ‪.ε‬‬
‫הוכיחו עי )‪ LZ(n‬אינה ניתנת לחישוב‪.‬‬
‫הדרכה‪ :‬הראו כי אם )‪ LZ(n‬חשיבה‪ ,‬אז השפה } ‪ M‬עוצרת על ‪= {hM i | ε‬‬
‫כריעה‪.‬‬
‫נניח בשלילה ש־ )‪ .LZ(n‬נראה ש־ ‪ HT M,ε‬כריעה‪.‬‬
‫נבנה מ''ט המכריעה את ‪:HT M,ε‬‬
‫עבור קלט ‪hM i‬‬
‫‪ .1‬נחשב את מספר המצבים ב־ ‪ .M‬נסמנו | ‪.|QM‬‬
‫‪ .2‬נחשב )| ‪.k = LZ(|QM‬‬
‫‪k‬‬
‫‪ .3‬נריץ את ‪ M‬על ‪ ε‬למשך ‪ |QM | × k × |ΓM | + 1‬צעדים‪.‬‬
‫‪ .4‬אם ‪ M‬עצרה בזמן זה‪ ,‬נקבל‪ .‬אחרת‪ ,‬נדחה‪.‬‬
‫הנכונות של האלגוריתם להכרעת ‪ HT M,ε‬נובעת מסעיף א'‪.‬‬
‫איור ‪ :1‬עצלנאי )‪(sloth‬‬
‫‪HT M,ε‬‬
‫מס' מחברת‬
‫מס' ת‪.‬ז‬
‫דף נוסף‪ ,‬למקרה הצורך‬
‫מס' מחברת‬
‫מס' ת‪.‬ז‬
‫דף נוסף נוסף‪ ,‬למקרה חרום אמיתי‬