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

‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫מודלים חישוביים ־ מבחן מועד א'‪ ,‬סמסטר א'‬
‫תשע''ה )‪(2015‬‬
‫מרצה‪ :‬פרופ' בני שור‬
‫מתרגלים‪ :‬אורית מוסקוביץ' וגל רותם‬
‫‪28.1.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‬‬
‫סה''כ‬
‫מס' מחברת‬
‫מס' ת‪.‬ז‬
‫‪ .1‬יהיו ‪ b ≥ 0 ,a > 0‬מספרים קבועים שלמים‪ .‬נגדיר }‪.Lab = {0n 1m | m 6= an + b‬‬
‫הערה‪ :‬בכל אחד מהסעיפים הבאים )לא חובה בשניהם(‪ ,‬ניתן לענות עבור המקרה ש־‬
‫‪ b = 0‬ולקבל חצי מהניקוד‪.‬‬
‫)א( )‪ 5‬נקודות(‬
‫הוכיחו בקצרה כי‬
‫‪ Lab‬ח''ה )אם מתארים אוטומט‪ ,‬אין לכתוב פונ' מעברים(‪.‬‬
‫)ב( )‪ 10‬נקודות(‬
‫הוכיחו כי ‪ Lab‬אינה רגולרית‪.‬‬
‫נראה כי ‪ Lab‬אינה רגולרית )והטענה נובעת מתכונת סגירות של שפות רגולריות‬
‫תחת משלים(‪.‬‬
‫‪n m‬‬
‫}‪.Lab = {0 1 | m = an + b‬‬
‫נניח כי זו שפה רגולרית‪ ,‬לכן קיים לה קבוע ניפוח ‪.p‬‬
‫נסתכל על המילה ‪ w = 0p 1ap+b ∈ Lab‬וכן ‪.|w| ≥ p‬‬
‫תהי חלוקה ‪ w = xyz‬כך ש־ ‪ |y| = k > 0‬וגם ‪.|xy| ≤ p‬‬
‫לכן‪ y ,‬מכיל רק ‪0‬־ים‪.‬‬
‫‪0‬‬
‫נסתכל על ‪.w0 = xy z = 0p−k 1ap+b‬‬
‫מתקיים‪a(p − k) + b = ap + b − ak < ap + b :‬‬
‫∈ ‪.w0‬‬
‫ולכן ‪/ Lab‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ 15) .2‬נקודות(‬
‫נגדיר את השפה‪:‬‬
‫∈ ‪L = {hM1 , M2 i | hM1 i‬‬
‫∈ ‪/ L(M2 ) ∨ hM2 i‬‬
‫} ‪ M1 , M2‬מ''ט ומתקיים ) ‪/ L(M1‬‬
‫הוכיחו לאיזו מבין המחלקות הבאות ‪ L‬שייכת?‬
‫)ג( ‪.L ∈ CoRE \ R‬‬
‫∈ ‪.L‬‬
‫)ד( ‪/ RE ∪ CoRE‬‬
‫)א( ‪.L ∈ R‬‬
‫)ב( ‪.L ∈ RE \ R‬‬
‫‪.L ∈ CoRE \ R‬‬
‫)‪(1‬‬
‫‪:L = {hM1 , M2 i | hM1 i ∈ L(M2 ) ∧ hM2 i ∈ L(M1 )} ∈ RE‬‬
‫נבנה מ''ט עבור השפה ‪:L‬‬
‫המכונה תריץ במקביל את ‪ M1‬על הקלט ‪ hM2 i‬ואת ‪ M2‬על הקלט ‪hM1 i‬‬
‫ותקבל אם שתי המכונות קיבלו‪.‬‬
‫)‪(2‬‬
‫∈ ‪:L‬‬
‫‪/R‬‬
‫נראה רדוקציה מ־ ‪.AT M‬‬
‫‪Mapping Reduction f from AT M to L‬‬
‫‪On input hM, wi‬‬
‫∗‪(a) Construct a TM M2 such that L(M2 ) = Σ‬‬
‫‪(b) Construct a TM M1 :‬‬
‫‪M1 = “On input x:‬‬
‫‪1. Run M on w‬‬
‫”‪2. If M accepts, accept; If M rejects, reject‬‬
‫‪(c) Return hM1 , M2 i‬‬
‫נכונות‪:‬‬
‫• אם‬
‫לכן‬
‫• אם‬
‫לכן‬
‫‪ ,hM, wi ∈ AT M‬אז ‪ M‬לא מקבלת את ‪ w‬ולכן ∅ = ) ‪.L(M1‬‬
‫∈ ‪.hM1 , M2 i ∈ L ⇐ hM2 i‬‬
‫∅ = ) ‪/ L(M1‬‬
‫∗‬
‫∈ ‪ ,hM, wi‬אז ‪ M‬מקבלת את ‪ w‬ולכן ‪.L(M1 ) = Σ‬‬
‫‪/ AT M‬‬
‫∗‬
‫∈ ‪.hM1 , M2 i‬‬
‫∗‪ hM2 i ∈ L(M1 ) = Σ‬וגם ‪/ L ⇐ hM1 i ∈ L(M2 ) = Σ‬‬
‫פתרון נוסף‪:‬‬
‫נקבע את ‪ M2‬להיות מכונה כלשהי שמקבלת את ∗‪ ,Σ‬נקרא למכונה זו ‪.ALL‬‬
‫אזי הבעיה הופכת להיות‬
‫‪0‬‬
‫∈ ‪L = {hM1 i | hALLi‬‬
‫}) ‪/ L(M1‬‬
‫וזו שפה לא כריעה ממשפט רייס‪.‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ 15) .3‬נקודות(‬
‫נגדיר את השפה‪:‬‬
‫} ‪ M‬מ''ט ומתקיים ‪L = {hM, ki | |L(M )| ≥ k‬‬
‫הוכיחו לאיזו מבין המחלקות הבאות ‪ L‬שייכת?‬
‫)א( ‪.L ∈ R‬‬
‫)ג( ‪.L ∈ CoRE \ R‬‬
‫)ב( ‪.L ∈ RE \ R‬‬
‫∈ ‪.L‬‬
‫)ד( ‪/ RE ∪ CoRE‬‬
‫‪.L ∈ RE \ R‬‬
‫)‪(1‬‬
‫‪:L ∈ RE‬‬
‫נבנה מ''ט עבור השפה ‪:L‬‬
‫המכונה תריץ את ‪ M‬על כל המילים ב־ ∗‪ Σ‬בצורה מבוקרת )כלומר‪ ,‬באיטרציה ה־‪i ,i‬‬
‫צעדים על ‪ i‬המילים הראשונות( ותקבל אם מספר המילים ש־ ‪ M‬קיבלה ≤ ‪.k‬‬
‫)‪(2‬‬
‫∈ ‪:L‬‬
‫‪/R‬‬
‫נראה רדוקציה מ־ }∅ =‪.ET M = {hM i | L(M ) 6‬‬
‫‪Mapping Reduction f from ET M to L‬‬
‫‪On input hM i‬‬
‫‪(a) Return hM, 1i‬‬
‫נכונות‪:‬‬
‫• אם ‪ ,hM i ∈ ET M‬אז ∅ =‪ L(M ) 6‬ולכן ‪ M‬מקבלת לפחות מילה אחת‪.‬‬
‫⇐ ‪.hM, 1i ∈ L‬‬
‫∈ ‪ ,hM i‬אז ∅ = ) ‪ L(M‬ולכן ‪ M‬לא מקבלת אף מילה‪.‬‬
‫• אם ‪/ ET M‬‬
‫∈ ‪.hM, 1i‬‬
‫⇐‪/L‬‬
‫פתרון נוסף‪:‬‬
‫נקבע ‪.k = 1‬‬
‫אזי הבעיה הופכת להיות‬
‫}‪L0 = {hM i | |L(M )| ≥ 1‬‬
‫וזו שפה לא כריעה ממשפט רייס‪.‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ 25) .4‬נקודות(‬
‫נגדיר את השפה‪:‬‬
‫‬
‫‬
‫‬
‫קיימת הצבה‬
‫ מערכת של ‪ m‬משוואות ריבועיות ב־ ‪n‬‬
‫‬
‫‪.x‬‬
‫‪,‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫‪,‬‬
‫‪x‬‬
‫משתנים‬
‫}‪x1 , . . . , xn ∈ {0, 1‬‬
‫= ‪QE‬‬
‫‪1‬‬
‫‪n‬‬
‫‬
‫מקדמי המחוברים הם מספרים שלמים‪.‬‬
‫המספקת את כל המשוואות‪.‬‬
‫משוואה ריבועית היא משוואה עם מספר מחוברים‪ ,‬שכל אחד מהם הוא מספר שלם‪,‬‬
‫משתנה או מכפלה של שני משתנים‪ .‬לדוגמא‪:‬‬
‫‪x1 + x2 · x3 + x7 + x2 · x5 + x23 + x5 − x2 = 1‬‬
‫)א( )‪ 5‬נקודות(‬
‫הוכיחו כי ‪.QE ∈ N P‬‬
‫העד הוא ההצבה }‪ x1 , . . . , xn ∈ {0, 1‬שאורכה ‪ n‬ביטים‪.‬‬
‫המוודא מציב ובודק כי כל המשוואות מתקיימות )זמן פולינומיאלי באורך הקלט(‪.‬‬
‫)ב( )‪ 20‬נקודות(‬
‫הוכיחו כי ‪ QE‬היא ‪ N P‬קשה‪.‬‬
‫הדרכה‪ :‬הראו רדוקציה מ־ ‪ .3Col‬לכל צומת ‪ vi‬בגרף‪ ,‬הגדירו שלושה משתנים‬
‫‪.xi , yi , zi‬‬
‫לפי ההדרכה‪ ,‬נבנה רדוקציה מ־ ‪ .3Col‬עבור קלט ‪ G‬נבנה מערכת משוואות‬
‫בצורה הבאה‪.‬‬
‫לכל צומת ‪ vi‬בגרף‪ ,‬נגדיר שלושה משתנים ‪.xi , yi , zi‬‬
‫נגדיר את המשוואות הבאות‪:‬‬
‫• לכל צומת ‪ ,vi‬נגדיר את המשוואה‪xi + yi + zi = 1 :‬‬
‫• לכל קשת ) ‪ ,(vi , vj‬נגדיר את המשוואות‪xi · xj = 0 :‬‬
‫‪yi · yj = 0‬‬
‫‪zi · zj = 0‬‬
‫נכונות‪:‬‬
‫• הרדוקציה חשיבה ופול'‪.‬‬
‫• נניח כי הגרף ‪ 3 G‬צביע‪ .‬אזי כל צומת בגרף צבוע באדום‪ ,‬כחול או צהוב‪,‬‬
‫כך שאין זוג צמתים שכנים שצבועים באותו צבע‪.‬‬
‫נגדיר השמה ‪ V‬עבור מערכת המשוואות באופן הבא‪:‬‬
‫עבור צומת ‪ ,vi‬אם צבעו אדום‪V (xi ) = 1, V (yi ) = 0, V (zi ) = 0 ,‬‬
‫אם צבעו כחול‪V (xi ) = 0, V (yi ) = 1, V (zi ) = 0 ,‬‬
‫אם צבעו צהוב‪V (xi ) = 0, V (yi ) = 0, V (zi ) = 1 ,‬‬
‫נראה כי זו השמה מספקת‪:‬‬
‫– לכל צומת ‪ ,vi‬מתקיים ‪ :xi + yi + zi = 1‬כיוון שההשמה מגדירה בדיוק‬
‫אחד מהמשתנים ל־‪ ,1‬ואת שני המשתנים הנותרים ל־‪.0‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫– לכל קשת ) ‪ ,(vi , vj‬מתקיים ‪xi · xj = 0‬‬
‫‪yi · yj = 0‬‬
‫‪zi · zj = 0‬‬
‫כיוון שאם למשל ‪ xi · xj 6= 0‬אזי ‪.V (xi ) = V (xj ) = 1‬‬
‫אבל זה גורר ש־ ‪ vi‬ו־ ‪ vj‬נצבעו שניהם באדום‪.‬‬
‫• תהי ‪ V‬הצבה מעל }‪ {0, 1‬שמספקת את כל המשוואות‪.‬‬
‫נראה כי ‪ 3 G‬צביע‪.‬‬
‫כיוון ש־ ‪ V‬מספקת את כל הנוסחאות מהצורה ‪ V ,xi + yi + zi = 1‬חייבת‬
‫להגדיר בדיוק אחד מהמשתנים ל־‪ ,1‬ואת שני המשתנים הנותרים ל־‪.0‬‬
‫נגדיר צביעה לקודקודי ‪ G‬באופן הבא‪:‬‬
‫אם ‪ , V (xi ) = 1‬נצבע את ‪ vi‬באדום‪.‬‬
‫אם ‪ , V (yi ) = 1‬נצבע את ‪ vi‬בכחול‪.‬‬
‫אם ‪ , V (zi ) = 1‬נצבע את ‪ vi‬בצהוב‪.‬‬
‫נראה שזו צביעה חוקית‪ .‬כלומר‪ ,‬שלכל קשת ) ‪ (vi , vj‬צבעי הקודקודים ‪vi , vj‬‬
‫שונה‪.‬‬
‫תהי קשת ) ‪ (vi , vj‬כלשהי‪ .‬כיוון ש־ ‪ V‬מספקת את כל הנוסחאות‪ ,‬בפרט‬
‫היא מספקת את‪xi · xj = 0 :‬‬
‫‪yi · yj = 0‬‬
‫‪zi · zj = 0‬‬
‫לכן‪ ,‬לא ייתכן כי ‪) V (xi ) = V (xj ) = 1‬וכנ''ל לשני המשתנים הנותרים(‪.‬‬
‫לכן לפי הגדרת הצביעה‪ ,‬שני הקודקודים צבועים בצבעים שונים‪.‬‬
‫‪ 10) .5‬נקודות(‬
‫הוכיחו ‪ /‬הפריכו‪ :‬קיימת שפה רגולרית שהיא ‪ N P‬שלמה ⇒⇐ ‪.P = N P‬‬
‫הוכחה‪:‬‬
‫)=⇐( כל שפה רגולרית היא ב־ ‪) P‬אפילו לינארית(‪ .‬לכן‪ ,‬נניח שקיימת שפה ‪ L‬רגולרית‬
‫שהיא ‪ N P‬שלמה‪ .‬תהי ‪ .L0 ∈ N P‬אזי יש רדוקציה ל־‪ L0 ≤p L‬ולכן ‪ .L0 ∈ P‬וקיבלנו‬
‫‪ N P ⊆ P‬ולכן ‪. P = N P‬‬
‫)⇒=( טענה‪ :‬אם ‪ P = N P‬אזי כל שפה לא טריוויאלית ב־ ‪ P‬היא ‪ N P‬שלמה‪.‬‬
‫הוכחה‪ :‬תהי שפה ‪ .L 6= Σ∗ , ∅ ,L ∈ P‬נראה כי ‪ L‬היא ‪ N P‬שלמה‪.‬‬
‫‪ .L ∈ P = N P‬נותר להראות כי ‪ L‬היא ‪ N P‬קשה‪.‬‬
‫∈ ‪ x ∈ L, y‬ותהי ‪ .L0 ∈ P = N P‬אזי קיימת רדוקציה ‪:L0 ≤p L‬‬
‫יהיו ‪/ L‬‬
‫עבור קלט ‪ ,w‬נבדוק האם ‪ w ∈ L0‬בזמן פול'‪ .‬אם כן‪ ,‬נחזיר ‪ ,x‬אחרת‪ ,‬נחזיר ‪.y‬‬
‫־ לכן‪ ,‬למשל }‪ {0‬היא שפה רגולרית ‪ N P‬שלמה‪.‬‬
‫מס' ת‪.‬ז‬
‫מס' מחברת‬
‫‪ .6‬נגדיר מחלקת שפות‪:‬‬
‫} ‪DP = {L ⊆ Σ∗ | ∃L1 ∈ N P, L2 ∈ CoN P . L = L1 ∩ L2‬‬
‫ונגדיר את השפה‪:‬‬
‫}‪ G‬גרף ‪ 4‬צביע ולא ‪ 3‬צביע | ‪4N ot3Col = {hGi‬‬
‫)א( )‪ 5‬נקודות(‬
‫הוכיחו כי ‪4N ot3Col ∈ DP‬‬
‫ניקח ‪ G} ∈ N P‬גרף ‪ 4‬צביע | ‪L1 = {hGi‬‬
‫ו־ ‪ G} ∈ CoN P‬גרף לא ‪ 3‬צביע | ‪L2 = {hGi‬‬
‫)ב( )‪ 10‬נקודות(‬
‫הוכיחו כי ‪ 4N ot3Col‬היא ‪ N P‬קשה‬
‫נראה רדוקציה מ־ ‪.3Col‬‬
‫בהנתן גרף ‪ G‬נבנה גרף ‪ G0‬באופן הבא‪:‬‬
‫נוסיף קודקוד חדש ‪ v‬ל־ ‪ G‬ונחבר אותו ליתר הקודקודים‪ .‬כמו כן‪ ,‬נוסיף קליק‬
‫בגודל ‪) 4‬מנותק מיתר קודקודי הגרף(‪.‬‬
‫נכונות‪:‬‬
‫• הרדוקציה חשיבה ופול'‪.‬‬
‫• נניח כי ‪ 3 G‬צביע‪ .‬אזי ‪ 4 G‬צביע‪ ,‬ע''י כך שנצבע את הקודקוד ‪ v‬בצבע‬
‫חדש‪ ,‬ואת הקליק ־ כל קודקוד בצבע אחר‪.‬‬
‫כמו כן‪ G0 ,‬אינו ‪ 3‬צביע‪ ,‬כיוון שחייבים ‪ 4‬צבעים שונים על מנת לצבוע את‬
‫קודקודי הקליק‪.‬‬
‫• נניח כי ‪ 4 G0‬צביע ולא ‪ 3‬צביע‪.‬‬
‫נשים לב כי ‪ v‬חייב להיות בצבע שונה מכל קודקודי ‪) G‬כיוון שהוא מחובר‬
‫לכולם(‪ .‬לכן‪ ,‬קודקודי ‪ G‬צבועים באופן חוקי ע''י ‪ 3‬צבעים‪.‬‬
‫‪0‬‬
‫פתרון נוסף‪:‬‬
‫נראה רדוקציה מ־ ‪) 4Col‬ראינו בתרגיל בית כי ‪ 4Col‬היא ‪ N P‬שלמה(‪.‬‬
‫בהנתן גרף ‪ G‬נבנה גרף ‪ G0‬באופן הבא‪:‬‬
‫נוסיף ל־ ‪ G‬קליק בגודל ‪) 4‬מנותק מיתר קודקודי הגרף(‪.‬‬
‫• נניח כי ‪ 4 G‬צביע‪ .‬אזי ‪ 4 G0‬צביע‪ ,‬ע''י כך שנצבע את הקליק ־ כל קודקוד‬
‫בצבע אחר‪ .‬כמו כן‪ G0 ,‬אינו ‪ 3‬צביע‪ ,‬כיוון שחייבים ‪ 4‬צבעים שונים על מנת‬
‫לצבוע את קודקודי הקליק‪.‬‬
‫• נניח כי ‪ 4 G0‬צביע ולא ‪ 3‬צביע‪ .‬בפרט נקבל כי ‪ 4 G‬צביע‪.‬‬
‫מס' מחברת‬
‫מס' ת‪.‬ז‬
‫)ג( )‪ 5‬נקודות(‬
‫הוכיחו‪.N P = CoN P ⇐= DP = N P ∩ CoN P :‬‬
‫נניח כי ‪ .DP = N P ∩ CoN P‬אזי ‪.4N ot3Col ∈ CoN P‬‬
‫כמו כן‪ 4N ot3Col ,‬היא ‪ N P‬קשה )מסעיף ב'(‪ .‬לכן‪ ,‬תהי ‪ ,L ∈ N P‬אזי‬
‫‪.L ≤p 4N ot3Col‬‬
‫כיוון שלפי הנחה ‪ ,4N ot3Col ∈ CoN P‬נקבל ש־ ‪.L ∈ CoN P‬‬
‫כלומר קיבלנו ‪.N P ⊆ CoN P‬‬
‫וראינו בתרגול שזה גורר ‪.N P = CoN P‬‬
‫פתרון נוסף‪:‬‬
‫נשים לב כי ‪ ,N P ⊆ DP‬לכן אם ‪DP = N P ∩ CoN P‬‬
‫נקבל ‪ N P ⊆ N P ∩ CoN P ⊆ CoN P‬ולכן ‪.N P = CoN P‬‬