מבוא לחלק I - Anat Etzion

‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫מבוא לחלק ‪I‬‬
‫בעיית העצירה‪:‬‬
‫בהינתן קוד ‪ M‬וקלט ‪ , x‬האם ‪ M‬מסיימת את ריצתה על ‪? X‬‬
‫הוכחה שזוהי בעיה לא פתירה‪:‬‬
‫נניח בשלילה שיש תוכנית ‪ A‬שפותרת את הבעיה‪ .‬נבנה תוכנית ‪ B‬שעל קלט ‪ w‬פועלת כך‪ :‬תריץ‬
‫את ‪ A‬על הקלט ‪(  w , w ‬כלומר‪ W :‬הוא גם המכונה וגם הקלט של המכונה)‪.‬‬
‫אם ‪ A  w , w   true‬אז ‪ B‬נכנסת ללולאה אינסופית‪.‬‬
‫אם ‪ A  w , w   fa lse‬אז ‪ B‬עוצרת מייד‪.‬‬
‫עבור הקלט ‪ : B‬אם ‪ B‬עצרה‪ ,‬סימן ש‪ A ( A  B , B   fa lse -‬טוענת ש‪ B -‬לא עוצרת)‪ ,‬סתירה‪.‬‬
‫אם ‪ B‬לא עצרה‪ ,‬אז ‪ A ( A  B , B   true‬טוענת ש‪ B -‬עוצרת)‪ ,‬שוב סתירה‪.‬‬
‫לכן‪ ,‬לא קיימת תוכנית ‪ A‬שפותרת את בעיית העצירה‪.‬‬
‫דוגמא לבעיות לא פתירות‪:‬‬
‫‪‬‬
‫בעיית העצירה‪.‬‬
‫‪‬‬
‫בדיקת שקילות של תוכניות‪.‬‬
‫‪‬‬
‫בדיקת שקילות של דקדוקים חסרי הקשר‪.‬‬
‫‪‬‬
‫בהינתן אוסף (סופי) של מטריצות ריבועיות‪ ,‬האם קיימת מכפלה שנותנת את מטריצת האפס?‬
‫מכונת טיורינג‪:‬‬
‫מכונת טיורינג בנויה מ‪ 2-‬מרכיבים‪ :‬סרט המחולק לתאים שכל אחד מהם יכול להכיל תו בודד‪ ,‬כך‬
‫שהוא אינסופי לכיוון ימין אך סופי לכיוון שמאל (ניתן למספר את תאיו ב‪ ;)0,1,2,…-‬ראש קורא וכותב‬
‫הנע על הסרט ויכול לנוע לכל היותר צעד אחד ימינה או שמאלה; וקבוצת מצבי בקרה סופית‪ .‬נראה‬
‫בהמשך שכוחו של המודל לא ישתנה באופן מהותי אם נרשה מספר רב של סרטים‪ ,‬סרט אינסופי‬
‫לשני הכיוונים‪ ,‬ראש שיכול לנוע מספר צעדים לצדדים וכן הלאה‪ .‬לעומת זאת‪ ,‬סופיותה של קבוצת‬
‫מצבי הבקרה היא קריטית‪.‬‬
‫חישוב כל המכונה מתבצע כך‪ :‬המכונה מתחילה את החישוב כאשר הראש נמצא בתא השמאלי‬
‫ביותר‪ ,‬ועל הסרט כתובה מילה סופית כלשהי החל מהתא השמאלי ביותר‪ ,‬ושאר הסרט פרט למילה‬
‫ריק‪ .‬המכונה מבצעת סדרה של צעדים כאשר בכל צעד היא פועלת בהתאם למצב הבקרה הנוכחי‬
‫שלה ולתוכן התא שמעליו נמצא הראש הקורא‪ .‬בכל צעד המכונה יכולה לשנות את תוכן התא שמעליו‬
‫נמצא הראש הקורא‪ ,‬לשנות את מצב הבקרה שלה‪ ,‬ולהזיז את הראש הקורא צעד אחד ימינה או‬
‫שמאלה (או להותיר אותו במקום)‪ .‬המכונה מסיימת את החישוב שלה אם היא נכנסת למצב בקרה‬
‫המסומן כמצב סופי‪ ,‬ובמקרה זה הפלט שלה על מילת הקלט הוא המילה שכתובה החל מהתא‬
‫השמאלי ביותר בסרט ועד לתא שמשמאל לראש (אם הראש נמצא בתא השמאלי ביותר‪ ,‬הפלט הוא‬
‫"המילה הריקה"; הגדרת הפלט מהונדסת בכוונה כדי להבטיח שניתן יהיה להוציא את המילה הריקה‬
‫כפלט)‪.‬‬
‫הגדרת המכונה‪ :‬זוהי שביעייה ‪. M   Q , q 0 , F ,  ,  , b ,  ‬‬
‫‪ : Q‬קבוצה סופית של מצבי בקרה (אם היא לא תהיה סופית‪ ,‬היא תוכל לעשות כל חישוב)‪.‬‬
‫‪1‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫ ‪ : q 0  Q‬מצב הבקרה ההתחלתי‪.‬‬‫ ‪ : F  Q‬קבוצת מצבי הבקרה הסופיים (כאשר המכונה נכנסת אליהם‪ ,‬החישוב נגמר)‪.‬‬‫‪ : ‬קבוצה סופית של תווים (א"ב העבודה‪ /‬א"ב הסרט)‪.‬‬
‫ ‪ :   ‬א"ב הקלט‪.‬‬‫ ‪ b   \ ‬נקרא רווח או בלנק (תו לסימון תא ריק)‪ .‬במפורש דורשים ש‪ b -‬לא תהיה חלק‬‫מא"ב הקלט כדי שיהיה ניתן לקבוע חד‪-‬משמעית היכן הקלט נגמר‪.‬‬
‫‪ :  :  Q \ F     Q     L , R , S ‬פונקצית המעברים‪.‬‬
‫דוגמא‪   q ,     p ,  ,   :‬פירושו‪ :‬אם המכונה במצב ‪ q‬ורואה ‪ ‬אז היא‪:‬‬
‫עוברת למצב הבקרה ‪ , p‬שמה ‪ ‬על הסרט במקום ‪ ‬והולכת עם הראש בכיוון ‪. ‬‬
‫קונפיגורציות‪:‬‬
‫האופן הנוח ביותר לתיאור החישוב שמבצעת מכונה הוא באמצעות קונפיגורציות‪ ,‬קונפיגורציה היא‬
‫מעין צילום מסך של החישוב שכולל את כל האינפורמציה על אותו רגע‪.‬‬
‫הגדרה קונפיגורציה של מכונה ‪ M‬היא שלשה כך ש‪ C   q , i , w  :‬כאשר‪:‬‬
‫‪ : q  Q‬מצב הבקרה הנוכחי של ‪. M‬‬
‫‪ : i ‬מיקום הראש‪ : w   * .‬תוכן הסרט‪.‬‬
‫קונפיגורציה ההתחלתית של ‪ M‬על הקלט ‪ x‬היא‪. C   q 0 , 0, x  :‬‬
‫קונפיגורציה סופית‪ :‬קונפיגורציה שבה ‪ . q  F‬במקרה זה פלט המכונה הוא‪i  1  :‬‬
‫‪( w  0‬תוכן‬
‫‪ w‬מתא ‪ 0‬ועד לתא ‪.) i  1‬‬
‫צעד חישוב‪ :‬לכל קונפיגורציה נקבעת הקונפיגורציה העוקבת שלה באופן יחיד ע"פ פונקצית‬
‫המעברים‬
‫‪ . ‬אם הקונפיגורציה הנוכחית היא‪:‬‬
‫‪  q , i , w ‬ואם‬
‫‪   q , w i    p , b , d ‬אז‬
‫הקונפיגורציה הבאה מוגדרת להיות‪  p , j , w   :‬כאשר ‪ w ‬זהה ל‪ w -‬פרט לכך ש‪. w [ i ]  b -‬‬
‫ המצב ‪ q‬יוחלף במצב ‪. p‬‬‫ האות ‪ w i‬תוחלף באות ‪. b‬‬‫‪ -‬מיקום הראש ישתנה‪:‬‬
‫אם ‪ d  R‬אז‪. i  1 :‬‬
‫אם ‪ d  S‬אז‪. i :‬‬
‫אם ‪ d  L‬אז‪. m ax 1 .i  1 :‬‬
‫מסקנה‪ :‬לכל קונפיגורציה לא סופית ‪ C 1‬קיימת קונפיגורציה עוקבת יחידה ‪ . C 2‬סימון‪C 2 :‬‬
‫הערה‪ :‬באותו אופן אומרים ש‪C 2 -‬‬
‫*‬
‫‪ C 1‬אם יש סדרת צעדים שמובילה מ‪ C 1 -‬ל‪. C 2 -‬‬
‫חישוב‪ :‬החישוב של מ"ט ‪ M‬על קלט ‪ x‬הוא סדרת קונפיגורציות‪-‬‬
‫‪Ci , i  0‬‬
‫‪. C1‬‬
‫‪ C 0 , C1 , C 2 ,‬המקיימת‪ :‬לכל‬
‫‪ . C i 1‬אם הסדרה סופית את הקונפיגורציה האחרונה היא קונפיגורציה סופית‪.‬‬
‫‪2‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫הפונקציה של מ"ט‪ :‬הפונקציה שמ"ט ‪ M‬מחשבת מסומנת‪ f M :  *   * :‬ומוגדרת באופן הבא‪:‬‬
‫‪‬‬
‫אם החישוב של ‪ M‬על ‪ x‬מסתיים ו‪ C   q , i , w  -‬היא הקונפיגורציה הסופית אזי‪:‬‬
‫‪. f M  x   w1 w 2‬‬
‫‪w i 1‬‬
‫‪‬‬
‫אחרת (אם ‪ M‬לא עוצרת על ‪ f M  x  ) x‬לא מוגדרת!‬
‫פונקציה מלאה‪ :‬נאמר שפונקציה ‪ f‬היא מלאה אם היא מוגדרת לכל קלט‪ .‬יכולות להיות פונקציות‬
‫לא מלאות‪.‬‬
‫דוגמא‪ :‬נבנה מ"ט שמחשבת את הפונקציה‪ f  x   0 x :‬כאשר ‪ . x   0,1‬יש יותר מדרך אחת‬
‫*‬
‫לבנות את המכונה‪ ,‬נציע דרך שמבצעת את המשימה במעבר אחד‪ -‬כשבכל פעם "נזכור" את התו‬
‫הבא שצריך לרשום‪ .‬נגדיר‪ M   Q , q 0 , F ,  , b ,   :‬כאשר‪:‬‬
‫‪Q   q 0 , q1 , q 2  , F   q 2  ,    0,1 ,    0,1, b ‬‬
‫משמעות המצבים‪:‬‬
‫‪ q 0‬מצב שזוכר ‪ 0‬לכתיבה בצעד הבא‪.‬‬
‫‪ q1‬מצב שזוכר ‪ 1‬לכתיבה בצעד הבא‪.‬‬
‫פונקצית המעברים ‪ ‬תתואר ע"י טבלה‪:‬‬
‫‪b‬‬
‫‪1‬‬
‫‪0‬‬
‫‪ q 2 , 0, S ‬‬
‫‪ q1 , 0, R ‬‬
‫‪ q 0 , 0, R ‬‬
‫‪q0‬‬
‫‪ q 2 , 0, S ‬‬
‫‪ q11, R ‬‬
‫‪ q1 ,1, R ‬‬
‫‪q1‬‬
‫טענה‪ :‬החישוב של ‪ M‬על ‪ x‬הוא סדרה של ‪ n  2‬קונפיגורציות‪-‬‬
‫‪x n  , C 0   q 0 ,1, x ‬‬
‫‪x i 1 x i 1‬‬
‫‪. C n  1   q 2 , n  2, 0 x  , C i   qx i , i  1, 0 x 1‬‬
‫‪3‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫שקילות של מודלים‬
‫מודל חישוב‪ :‬אוסף של אובייקטים כך שלכל אובייקט מתאימה הפונקציה שהוא מחשב‪.‬‬
‫מודלים שקולים‪ :‬שני מודלים ייקראו שקולים אם אוסף הפונקציות המחושבות על‪-‬ידם זהה‪.‬‬
‫דוגמא‪ -‬מ"ט זריזה‪ :‬מוגדר בדומה למ"ט רגילה בתוספת שני מצבים של הראש‪ L L , R R :‬שהם‬
‫הליכת שני צעדים ימינה או שמאלה‪.‬‬
‫טענה‪ :‬מודל מ"ט זריזה ‪ ‬מ"ט רגילה‪.‬‬
‫הוכחה‪:‬‬
‫נוכיח שקילות ע"י הכלה דו‪-‬כיוונית‪:‬‬
‫כיוון‪ :1-‬בהינתן מ"ט רגילה ‪ M‬המחשבת ‪ , f M‬קיימת מ"ט זריזה המחשבת ‪ - f M‬אותה ‪( M‬מ"ט‬
‫רגילה היא מקרה פרטי של מ"ט זריזה)‪.‬‬
‫כיוון‪ :3-‬בהינתן מ"ט זריזה ‪ M‬המחשבת ‪ , f M‬נבנה מ"ט רגילה ‪ M ‬שמחשבת את אוןתה‬
‫הפונקציה באופן הבא‪ , Q L   q L | q  Q  Q R   q R | q  Q  Q   Q  Q L  Q R :‬כלומר‪,‬‬
‫הוספת מצבים שזוכרים ללכת צעד נוסף ימינה או צעד נוסף שמאלה לפני הגעה למצב‪.‬‬
‫‪  qL , a    q, a, L    qR , a    q, a, R ‬‬
‫לכל ‪ , a   , q  Q‬אם ‪   q , a    p , b , d ‬אז‪:‬‬
‫אם ‪ d   L , R , S ‬אז‪   q , a    p , b , d  :‬‬
‫אם ‪ d  L L‬אז‪   q , a    p L , b , L  :‬‬
‫אם ‪ d  R R‬אז‪.    q , a    p R , b , R  :‬‬
‫דוגמא‪ -‬מ"ט דו סרטית‪ :‬מ"ט שיש לה גישה לשני סרטים‪ ,‬בכל סרט ראש קורא‪-‬כותב‪ ,‬כאשר מיקום‬
‫ראש אחד על סרט אחד לא תלוי במיקום הראש השני על הסרט השני‪.‬‬
‫אתחול‪ :‬סרט אחד מכיל את הקלט ואחריו‪ , b -‬הסרט השני מכיל רק‪ . b -‬שני הראשים במקום ה‪.1-‬‬
‫פלט‪ :‬משאל לראש בסרט העליון‪ ,‬בזמן העצירה‪.‬‬
‫פונקציית המעברים‪ ,  :  Q \ F    2  Q   2   L , R , S  :‬היא מבוססת על שתי האותיות‬
‫‪2‬‬
‫(משני הסרטים) ואומרת מה לכתוב בכל אחד מהם‪ ,‬לאיזה מצב לעבור ולאן להזיז כל אחד‬
‫מהראשים‪.‬‬
‫טענה‪ :‬מודל מ"ט ‪-k‬סרטית ‪ ‬מ"ט רגילה‪.‬‬
‫התזה של ‪:Church‬‬
‫כל מודל כללי וסביר של חישוב שקול למ"ט‪.‬‬
‫כללי‪ -‬מודל חזק לפחות כמו מ"ט‪ ,‬סביר‪ -‬לכל אובייקט במודל יש תיאור סופי‪.‬‬
‫מ"ט אוניברסאלית‪ :‬נרצה לבנות מ"ט שתוכל לבצע את המשימה של כל מ"ט אחרת‪ ,‬מ"ט כזו צריכה‬
‫לקבל כקלט הן את המכונה עצמה‪ M -‬והן את הקלט ‪ , x‬ולהחזר כפלט את‪. f M  x  :‬‬
‫קידוד של מחרוזת‪ - A :‬א"ב‪ .‬בה"כ ‪, | A |‬‬
‫הקידוד של ‪1 n 0 : x‬‬
‫‪x‬‬
‫‪ . A  1, 2,‬ואם ‪x n‬‬
‫‪ x  x1 x 2‬מחרוזת מעל ‪A‬‬
‫*‬
‫‪x‬‬
‫‪x‬‬
‫‪. x  1 01 0‬‬
‫‪2‬‬
‫‪1‬‬
‫‪4‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫קידוד של מ"ט‪ :‬תהי ‪‬‬
‫‪ , M   Q , q 0 , F ,  ,  , b , ‬בה"כ‪, | Q | :‬‬
‫‪, |  | , F   2, 3 , q 0  1‬‬
‫‪, |  |   ,   1, 2,‬‬
‫‪, Q  1, 2,‬‬
‫‪ L , R , S   1, 2, 3  .   1, 2,‬‬
‫‪p‬‬
‫‪b‬‬
‫‪d‬‬
‫קידוד פונקצית המעברים‪ :‬אם ‪   q , a    p , b , d ‬נקודד‪  q , a   qapbd  1 01 01 0 :‬‬
‫קידוד המכונה‪0   | Q |, |  |  00 :‬‬
‫‪ 00  1,1  0  1, 2  0‬‬
‫‪M‬‬
‫הערות‪:‬‬
‫ בהינתן קידוד של מחרוזת או של מ"ט‪ ,‬קל לבדוק תקינות ולשחזר את המחרוזת‪/‬מ"ט‪.‬‬‫ מוסכמה‪ :‬כל מחרוזת בינארית שאיננה "חוקית"‪ ,‬נתייחס אליה כקידוד של מ"ט ‪ M STAM‬שעוברת‬‫מייד למצב ‪ 2‬ועוצרת‪.  q , a :   q , a    3, a , s  :‬‬
‫ולכן‪ ,‬כל מחרוזת בינארית מתארת מ"ט‪.‬‬
‫קידוד של קונפיגורציה‪ :‬תהי ‪ C    , q , i ‬ו‪ m -‬‬
‫‪ 0‬‬
‫‪a m 0 0,‬‬
‫‪q‬‬
‫‪a i 1 0 1 0 a i a i 1‬‬
‫‪ ,    1 2‬אז‪:‬‬
‫‪C  a1 a 2‬‬
‫הערה‪ :‬קידוד ה‪-  -‬ים מסתיים ב‪ 0-‬ולכן ישנם שני אפסים לפני ה‪ 1q -‬ובאותו אופן יש ‪ 2‬אפסים בסוף‪.‬‬
‫נגדיר פונקציה‪:‬‬
‫אם ‪ c‬קונפיגורציה סופית ‪" c /‬לא מתאימה" ל‪/ M -‬‬
‫אחרת‪ ,‬תהי ‪ c ‬הקונפיגורציה העוקבת ל‪c -‬‬
‫‪ c‬לא חוקית‬
‫‪‬‬
‫‪0‬‬
‫‪‬‬
‫‪‬‬
‫‪ M , c‬‬
‫‪‬‬
‫‪next  M , c‬‬
‫טענה‪ :‬הפונקציה ‪ next‬ניתנת לחישוב‪ ,‬כלומר‪ :‬קיימת ‪ M next‬שמחשבת אותה‪.‬‬
‫הוכחה‪:‬‬
‫‪ M next‬על קלט‬
‫‪: M , c‬‬
‫‪‬‬
‫בדוק תקינות‬
‫‪‬‬
‫אם תקין‪ ,‬מצא את ‪ q‬ואת האות הנוכחית ‪ a‬בתוך ‪( c‬ע"י ‪ 00‬בקידוד)‪.‬‬
‫‪‬‬
‫מצא את ‪   q , a ‬בתוך הקידוד ‪ M‬וחלץ מההמשך את ‪ , p , b , d‬שנה את ‪ c‬ל‪ c  -‬בהתאם‪.‬‬
‫‪‬‬
‫אם‬
‫‪( M , c‬ע"פ הגדרת ‪ .) next‬אם לא תקין‪ ,‬עצור עם פלט ‪.0‬‬
‫‪ M‬מתאים למ"ט ‪ , M STAM‬עבור לקונפיגורציה הסופית של ‪. M STAM‬‬
‫הפונקציה האוניברסאלית‪:‬‬
‫‪ x‬חוקי ו‪ x -‬מתאים ל‪ M -‬וחישוב ‪ M‬על ‪ x‬מסתיים‬
‫‪x‬‬
‫‪‬‬
‫‪ fM‬‬
‫‪‬‬
‫‪‬‬
‫‪ undefined‬‬
‫אחרת‬
‫‪M , x‬‬
‫‪‬‬
‫‪U‬‬
‫טענה‪ :‬הפונקציה האוניברסאלית ‪ , U‬ניתנת לחישוב‪.‬‬
‫הוכחה‪:‬‬
‫‪‬‬
‫‪‬‬
‫אם ‪ x‬לא חוקי או לא מתאים ל‪ - M -‬בצע לולאה אינסופית‪.‬‬
‫כתוב על הסרט השני את‬
‫‪ M , c‬כאשר ‪ c‬הקונפיגורציה ההתחלתית של ‪ M‬על ‪. x‬‬
‫‪5‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫‪‬‬
‫‪. M , c  next  M , c‬‬
‫‪‬‬
‫כל עוד ‪ c‬לא קונפיגורציה סופית‪ ,‬חשב‬
‫‪‬‬
‫אם ‪ c‬קונפיגורציה סופית‪ ,‬הוצא את הפלט שלה‪( f M  x  -‬מה שמשאל לראש ב‪.) c -‬‬
‫הערות‪:‬‬
‫ כל מ"ט שמחשבת את ‪ U‬תיקרא מ"ט אוניברסאלית‪.‬‬‫ ל‪ M U -‬יש איזשהו מספר מצבים ואיזשהו מספר אותיות ללא קשר למ"ט ‪ M‬שהיא מקבלת כקלט‪.‬‬‫‪ -‬אם ‪ M‬לא עוצרת על ‪ , x‬גם ‪ M U‬לא עוצרת על ‪. M , x‬‬
‫‪6‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫בעיות הכרעה‬
‫שפה‪ :‬אוסף סופי או אינסופי של מחרוזות מתוך ‪. ‬‬
‫*‬
‫הגדרה‪ :‬מ"ט לזיהוי שפות היא מ"ט רגילה ‪ M‬שמקיימת ‪. F   q A , q R ‬‬
‫אומרים שמ"ט מקבלת את הקלט ‪ x‬אם ‪ M‬עוצרת על ‪ x‬במצב ‪. q A‬‬
‫אומרים שמ"ט דוחה קלט ‪ x‬אם ‪ M‬עוצרת על ‪ x‬במצב ‪. q R‬‬
‫ייתכן כמובן ש‪ M -‬לא עוצרת על ‪. x‬‬
‫הערה‪ :‬נקודד‪. q A  2, q R  3 -‬‬
‫הגדרה‪ :‬השפה ש‪ M -‬מקבלת מסומנת‪. L  M    x | M a ccep ts x  -‬‬
‫אומרים ש‪ M -‬מכריעה שפה ‪ L‬אם ‪ L  L  M ‬ובנוסף היא עוצרת לכל קלט‪.‬‬
‫דוגמאות לשפות הניתנות להכרעה‪:‬‬
‫‪‬‬
‫*‬
‫‪( ‬מ"ט שמייד עוברת ל‪ q A -‬לכל קלט‪.)   q , a    q A , a , s  -‬‬
‫‪‬‬
‫‪( ‬באופן דומה‪ -‬מ"ט שמייד עוברת ל‪ q R -‬לכל קלט)‪.‬‬
‫‪‬‬
‫כל שפה סופית‪.‬‬
‫‪‬‬
‫שפת כל הגרפים הקשירים‪.‬‬
‫מחלקות של שפות‪:‬‬
‫ברירת מחדל‪(    0,1 :‬מוסכמה)‪.‬‬
‫{ קיימת מ"ט המכריעה את ‪L‬‬
‫| ‪R  {L  ‬‬
‫{ קיימת מ"ט המקבלת את ‪L‬‬
‫| ‪RE  { L  ‬‬
‫*‬
‫*‬
‫{ קיימת מ"ט ש‪ - x  L :‬מקבלת‪ /‬לא עוצרת‪- x  L ,‬דוחה | ‪C o  RE  { L | L  RE }  { L‬‬
‫תכונות‪:‬‬
‫‪‬‬
‫‪( R  RE‬ב‪ R -‬יש שפות ב‪ R E -‬שקיימת להן מ"ט שגם עוצרת לכל קלט)‪.‬‬
‫‪‬‬
‫‪ R‬סגורה למשלים (אם ‪ L  R‬אז גם ‪.) L  R‬‬
‫‪‬‬
‫‪ R‬סגורה לאיחוד (אם ‪ L1 , L 2  R‬אז גם ‪.) L1  L2  R‬‬
‫‪‬‬
‫‪ R E‬סגורה לאיחוד‪.‬‬
‫‪‬‬
‫‪. RE  Co  RE  R‬‬
‫הוכחה‪:‬‬
‫כיוון‪ :1-‬אם ‪ L  R‬אז היא בהכרח ב‪ R E -‬וב‪( C o  R E -‬נובע מההגדרה)‪.‬‬
‫כיוון‪ :3-‬תהא ‪. L  R E  C o  R E‬‬
‫‪  L  R E‬קיימת מ"ט ‪ M 1‬כך ש‪ M 1  x  L -‬עוצרת ומקבלת את ‪. x‬‬
‫‪ M 1  x  L‬עוצרת ודוחה או לא עוצרת על ‪. x‬‬
‫‪7‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫‪  L  C  R E‬קיימת מ"ט ‪ M 2‬כך ש‪ M 2  x  L :‬עוצרת ודוחה את ‪x‬‬
‫‪ M 2  x  L‬עוצרת ומקבלת או לא עוצרת על ‪. x‬‬
‫נבנה מ"ט ‪ M‬שמכריעה את ‪ : L‬בהינתן קלט ‪ , x‬נריץ במקביל את ‪ M 1‬ו‪ M 2 -‬על ‪ . x‬הראשונה‬
‫שתעצור‪ ,‬נקבל או נדחה כמוה‪.‬‬
‫הערות‪:‬‬
‫ ‪ M‬עוצרת תמיד‪.‬‬‫ ‪ M 1 , M 2‬כשהן עוצרות‪ -‬התשובות שלהן נכונות‪.‬‬‫מכל אלה נובע‪. L  L  M  :‬‬
‫טענה‪. L  R  L , L  RE :‬‬
‫דוגמאות לשפות ב‪:RE-‬‬
‫‪‬‬
‫כל שפה ב‪. R -‬‬
‫‪‬‬
‫שפת העצירה‪ M { :‬עוצרת על ‪x‬‬
‫‪‬‬
‫השפה האוניברסאלית‪ M { :‬מקבלת את ‪x‬‬
‫‪‬‬
‫שפת האלכסון‪| M  L  M } :‬‬
‫| ‪HP  { M , x‬‬
‫| ‪Lu  { M , x‬‬
‫‪ M {= { M‬מקבלת את‬
‫‪M‬‬
‫| ‪. LD  { M‬‬
‫טענה‪. H P , Lu , L D  RE :‬‬
‫הערה‪ :‬בהמשך הקורס נראה שכל השפות הללו גם לא נמצאות ב‪. R -‬‬
‫‪8‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫רדוקציה‬
‫רדוקציה היא פיתרון לבעיה אחת ע"י אלגוריתם שפותר בעיה אחרת‪.‬‬
‫הגדרה‪ :‬תהיינה * ‪ L1 , L 2  ‬שתי שפות‪ .‬אומרים שפונקציה * ‪ f :  *  ‬היא רדוקציה מ‪ L1 -‬ל‪-‬‬
‫‪ L 2‬אם‪:‬‬
‫‪ f .1‬היא פונקציה מלאה (מוגדרת לכל קלט)‪.‬‬
‫‪ f .3‬ניתנת לחישוב (קיימת מ"ט‬
‫‪f‬‬
‫‪ M‬שמחשבת את ‪.) f‬‬
‫‪( .2‬תקפות) ‪. x  L1  f  x   L 2‬‬
‫סימון‪. L1  L 2 :‬‬
‫הערה‪ :‬ברדוקציה אין "הרצה" של המכונות‪ .‬יש ייצור של קוד אחד מתוך קוד אחר ("קומפילציה")‪.‬‬
‫טענה‪. L D  Lu :‬‬
‫הוכחה‪ :‬פונקציה ‪ f‬מתאימה‪:‬‬
‫תקפות‪M  L D :‬‬
‫‪‬‬
‫‪‬‬
‫‪M , M‬‬
‫‪ M  L M‬‬
‫‪‬‬
‫‪u‬‬
‫‪M‬‬
‫‪ L‬‬
‫‪‬‬
‫‪ . f‬היא מלאה וניתנת לחישוב‪.‬‬
‫‪M , M‬‬
‫‪‬‬
‫‪‬‬
‫‪u‬‬
‫‪ L‬‬
‫‪M‬‬
‫‪‬‬
‫‪.f‬‬
‫טענה‪. Lu  H P :‬‬
‫הוכחה‪ :‬פונקציה ‪ f‬מתאימה‪:‬‬
‫‪‬‬
‫‪A , x‬‬
‫‪‬‬
‫‪M , x‬‬
‫‪‬‬
‫‪ . f‬היא מלאה וניתנת לחישוב‪.‬‬
‫המכונה ‪ A‬זהה ל‪ M -‬למעט‪ :‬אם ‪ M‬עוברת ל‪ q R -‬אז ‪ A‬נכנסת ללולאה אינסופית‪.‬‬
‫תקפות‪ M  M , x  L u :‬מקבלת את ‪ A  x‬עוצרת על ‪A , x  H P  x‬‬
‫‪  HP ‬‬
‫‪M , x‬‬
‫‪‬‬
‫‪.f‬‬
‫תכונות של רדוקציות‪:‬‬
‫‪‬‬
‫לכל ‪ L‬מתקיים‪. L  L :‬‬
‫‪‬‬
‫טרנזיטיביות‪. L1  L3  L1  L 2 and L 2  L3 :‬‬
‫מסקנה‪. L D  H P  L D  Lu and Lu  H P :‬‬
‫טענה‪( L1  L 2  L1  L 2 :‬ע"י שימוש באותה ‪.) f‬‬
‫מסקנה‪. L D  L u  H P :‬‬
‫משפט הרדוקציה‪:‬‬
‫נוסח‪-‬א‪ :‬אם ‪ L1  L 2‬אזי‪:‬‬
‫‪. L1  R  L 2  R .1‬‬
‫‪. L1  RE  L 2  RE .3‬‬
‫‪9‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫‪. L1  C o  RE  L 2  C o  RE .2‬‬
‫נוסח‪-‬ב‪ :‬אם ‪ L1  L 2‬אזי‪:‬‬
‫‪. L 2  R  L1  R .1‬‬
‫‪. L2  RE  L1  RE .3‬‬
‫‪. L2  C o  RE  L1  C o  RE .2‬‬
‫טענה‪ :‬קיימות שפות שאינן ב‪. R E -‬‬
‫הוכחה‪ :‬נראה ע"י שיקולי ספירה ש‪ {| -‬קבוצת כל המ"ט { | ‪. | R E |‬‬
‫|‪. | RE | | {0,1}* |‬‬
‫|{ קבוצת כל השפות { | ‪ {| ‬ממשיים בקטע ]‪| | { [0,1‬‬
‫הערה‪ , |  * |  0 :‬ומכיוון שכל מ"ט שקולה לקידוד בינארי מעל ‪ , ‬מספר המ"ט הוא בן‪-‬מנייה‪.‬‬
‫*‬
‫קבוצת כל השפות מעל ‪ ‬היא קבוצת החזקה של ‪ ‬בעוצמה‪ . 2  :‬ומכיוון שלכל מ"ט מתאימה‬
‫‪0‬‬
‫שפה אחת‪ ,‬לא קיימות מספיק מ"ט לקבל את כל השפות הקיימות ולכן ישנן שפות שלא ב‪. R E -‬‬
‫טענה‪ . L D  R :‬טענה מחוזקת‪. L D  R E :‬‬
‫הוכחה‪ :1-‬נניח בשלילה ש‪ L D  R E -‬אז קיימת מ"ט מתאימה ‪ M D‬שמקיימת‪. L  M D   L D :‬‬
‫‪ . M D  L D  M D  L D  M D  L  M D   M D  L D‬הגענו לסתירה ולכן לא קיימת‬
‫‪ M D‬כזו‪.‬‬
‫הוכחה‪ :3-‬ע"י לכסון‪ .‬כל שורה בטבלה היא שפה ב‪ R E -‬וכל עמודה בטבלה היא מילה הניתנת כקלט‬
‫למכונה‪ .‬נשים‪-‬לב כי ‪ L D‬זה האלכסון של הטבלה (כאשר הקלט למכונה שווה לקידוד של המכונה)‪.‬‬
‫ולכן ‪ = L D‬ה‪ NOT-‬של האלכסון‪ .‬ולכן אף שורה בטבלה לא מייצגת אותה‪.‬‬
‫מסקנה‪. L D , L u , H P  R E :1-‬‬
‫מסקנה‪. L D , Lu , H P  RE \ R :2-‬‬
‫‪L { M‬‬
‫דוגמא‪ M { :‬עוצרת לכל קלט |‬
‫טענה‪. L  R :‬‬
‫הוכחה‪ :‬נראה רדוקציה ‪, H P  L‬‬
‫‪x‬‬
‫‪M‬‬
‫‪‬‬
‫‪M , x‬‬
‫‪‬‬
‫‪ M x . f‬תפעל על הקלט ‪ w‬באופן הבא‪:‬‬
‫תתעלם מ‪ w -‬ותריץ את ‪ M‬על ‪ f . x‬מלאה וניתנת לחישוב‪ .‬תקפות‪M  M , x  H P :‬‬
‫עוצרת על ‪ M x  x‬עוצרת לכל קלט ‪ L  w‬‬
‫‪x‬‬
‫‪M‬‬
‫‪ L ‬‬
‫‪M , x‬‬
‫‪‬‬
‫‪.f‬‬
‫דוגמא‪. L    M | L  M    *  :‬‬
‫*‬
‫טענה‪. L   R :‬‬
‫*‬
‫הוכחה‪ :‬אותה רדוקציה ‪ f‬מראה‪. L u  L  -‬‬
‫*‬
‫‪10‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫דוגמא‪. L E Q   M 1 , M 2 | L  M 1   L  M 2  :‬‬
‫טענה‪. L E Q  R :‬‬
‫הוכחה‪ :‬נראה רדוקציה ‪, L   L E Q‬‬
‫*‬
‫*‪ M  L‬‬
‫*‪  ‬‬
‫‪L M‬‬
‫‪‬‬
‫‪M , M0‬‬
‫‪  L M 0  ‬‬
‫‪‬‬
‫‪M‬‬
‫‪‬‬
‫‪ . f‬תקפות‪:‬‬
‫‪ M , M 0  LEQ  L  M‬‬
‫‪EQ‬‬
‫‪ L‬‬
‫‪M‬‬
‫‪‬‬
‫‪f‬‬
‫תכונות של שפות‪:‬‬
‫תכונה של שפות‪ :‬זוהי תת‪-‬קבוצה של שפות‪. S  RE -‬‬
‫תכונה לא טריוויאלית‪ :‬תכונה המקיימת‪(   S  R E :‬תכונה שמקיימות רק חלק מן השפות)‪.‬‬
‫סימון‪. L S   M | L  M   S  :‬‬
‫דוגמאות‪:‬‬
‫‪‬‬
‫‪. S1   L  R E |   L‬‬
‫‪‬‬
‫‪. S 2   L | L is finite ‬‬
‫‪‬‬
‫‪.) L S    *  ( S 3    * ‬‬
‫‪‬‬
‫‪( S 4    ‬תכונה שמכילה את השפה הריקה‪ ,‬זה שונה מ‪.) S 4   -‬‬
‫‪3‬‬
‫אבחנה‪ :‬אם ‪ S‬טריוויאלית אז ‪. L S  R‬‬
‫‪ S ‬‬
‫‪LS   M | L  M        R‬‬
‫‪LS   M | L  M   R E     R  S  R E‬‬
‫*‬
‫משפט ‪ :Rice‬לכל ‪ S‬לא טריוויאלית ‪. L S  R‬‬
‫שימושים במשפט‪:‬‬
‫‪ . L   M |   L  M  .1‬נראה ש‪. L  R -‬‬
‫הוכחה‪ :‬התכונה המתאימה‪ L S  L , S 1 -‬ו‪ S 1 -‬תכונה לא טריוויאלית ( ‪ ) { }  S 1 ,   S 1‬לכן‬
‫‪1‬‬
‫ממשפט ‪. L  R Rice‬‬
‫‪ . L 2   M |   L  M  .3‬ע"י ‪ S 2‬ניתן לראות כי ‪. L 2  R‬‬
‫‪.2‬‬
‫‪. L  LS  R‬‬
‫‪.3‬‬
‫‪ L   M | L  M    ‬והתכונה המתאימה‪. S     :‬‬
‫‪3‬‬
‫*‬
‫‪11‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫הוכחת טענות מהצורה ‪: L  R E‬‬
‫‪‬‬
‫ישירות (למשל‪.) L D -‬‬
‫‪‬‬
‫משפט הרדוקציה‬
‫‪‬‬
‫‪‬‬
‫‪L  R‬‬
‫‪L  RE  ‬‬
‫‪ L  RE‬‬
‫משפטים כלליים (למשל‪ -‬משפט רייס)‪.‬‬
‫דוגמאות‪:‬‬
‫‪‬‬
‫‪  ‬‬
‫‪L   M | L  M‬‬
‫‪‬‬
‫‪   *‬‬
‫‪L *   M | L  M‬‬
‫‪‬‬
‫‪L E Q   M 1 , M 2 | L  M 1   L  M 2 ‬‬
‫טענה‪. L , L  , L  , L EQ , L EQ  RE :‬‬
‫*‬
‫*‬
‫משפט ‪ Rice‬לשפות ‪ :RE‬תהי ‪ S‬תכונה לא טריוויאלית של שפות המקיימת ‪   S‬אזי‪. L S  RE :‬‬
‫(תזכורת‪.) L S   M | L  M   S  -‬‬
‫הוכחה‪ :‬בהוכחת משפט ‪ Rice‬מקרה ב'‪. L S  R E  H P  L S -‬‬
‫הערות‪:‬‬
‫‪‬‬
‫התנאי הנוסף על ‪ S‬הוא הכרחי‪ :‬למשל‪( L   R E -‬למרות ש‪ S -‬לא טריוויאלית)‪.‬‬
‫‪‬‬
‫המשפט איננו אפיון לשפות המקיימות ‪ , L S  RE‬למשל‪( L   R E :‬למרות שהמשפט לא חל‬
‫*‬
‫עליו כי התכונה לא מכילה את ‪.) ‬‬
‫‪‬‬
‫קיים אפיון מלא לשפות ‪ L S‬המקיימות ‪( L S  RE‬לא עוברים על זה בהרצאה)‪.‬‬
‫הערה מתרגיל‪-‬בית‪:‬‬
‫‪‬‬
‫‪| L  M   RE‬‬
‫‪M‬‬
‫‪L S   M | L  M   coR E  ‬‬
‫‪12‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫סוגים של בעיות חישוב‬
‫‪‬‬
‫בעיות הכרעה (שפות)‪.‬‬
‫‪‬‬
‫פונקציות‪.‬‬
‫‪‬‬
‫בעיות חיפוש (יחסים)‪.‬‬
‫עד כה דיברנו על בעיות הכרעה או שפות‪ ,‬כעת נעבור לדבר על פונקציות‪.‬‬
‫פונקציות‪:‬‬
‫סימון‪:‬‬
‫‪ x , y  | f  x   y ‬‬
‫‪Lf‬‬
‫משפט‪ :‬תהי * ‪ f , f :  *  ‬ניתנת לחישוב ‪. L f  R E ‬‬
‫הערות‪:‬‬
‫‪‬‬
‫אם בנוסף ‪ f‬מלאה אז‪ f :‬ניתנת לחישוב ‪. L f  R ‬‬
‫‪‬‬
‫קיימת ‪ f‬לא מלאה כך ש‪ . L f  R -‬למשל‪ f :‬לא מוגדרת לשום קלט ‪. L f    R ‬‬
‫הוכחה‪:‬‬
‫כיוון‪-‬א‪ :‬נניח ש‪ f -‬ניתנת לחישוב ע"י מ"ט‬
‫‪f‬‬
‫‪ M‬ונבנה מ"ט ‪ M‬המקבלת את ‪. L f‬‬
‫‪ M‬על הקלט ‪:  x , y ‬‬
‫‪-‬‬
‫הרץ את‬
‫‪-‬‬
‫נסמן ב‪ f  x  -‬את הפלט של הצעד הקודם‪ ,‬ואם ‪ , f  x   y‬קבל‪.‬‬
‫‪-‬‬
‫אחרת‪ ,‬דחה‪.‬‬
‫‪f‬‬
‫‪ M‬על ‪. x‬‬
‫כיוון‪-‬ב‪ L f  R E :‬אז קיימת מ"ט המקבלת את ‪ . f‬נבנה‬
‫‪f‬‬
‫‪f‬‬
‫‪ M‬המחשבת את ‪. f‬‬
‫‪ M‬על קלט ‪( : x‬הרצה מבוקרת)‬
‫‪i  1, 2, 3,‬‬
‫‪-‬‬
‫עבור‬
‫‪-‬‬
‫הרץ את ‪ M‬על הזוגות ‪,  x , w i ‬‬
‫‪ x , w1  ,  x , w 2  ,‬‬
‫כל אחד במשך ‪ i‬צעדים‪ .‬אם ‪M‬‬
‫קיבלה ‪  x , w j ‬כלשהו‪ ,‬עצור עם פלט ‪ , w j‬אחרת‪ -‬המשך‪.‬‬
‫דוגמא‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪L M‬‬
‫‪‬‬
‫‪ L M‬‬
‫‪‬‬
‫‪‬‬
‫‪ undefined‬‬
‫‪otherw ise‬‬
‫‪M‬‬
‫‪‬‬
‫‪f‬‬
‫טענה‪ f :‬לא ניתנת לחישוב‪.‬‬
‫הוכחה לפי המשפט‪:‬‬
‫‪‬‬
‫‪ . L f   M , k | L  M   k , k ‬מהמשפט‪ ,‬מספיק להראות‪:‬‬
‫‪ . L f  R E‬מראים זאת ע"י רדוקציה‪M , 0 L   L f :‬‬
‫‪‬‬
‫‪.g M‬‬
‫‪13‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫דוגמאות נוספות‪:‬‬
‫‪M stops om x‬‬
‫‪1‬‬
‫‪otherw ise‬‬
‫‪0‬‬
‫‪‬‬
‫‪ - f1  M , x‬לא ניתנת לחישוב‪ ,‬כי אם כן אז‪. H P  R :‬‬
‫‪M stops on x‬‬
‫‪1‬‬
‫‪otherw ise‬‬
‫‪ undefined‬‬
‫‪M stops on x‬‬
‫‪ undefined‬‬
‫‪otherw ise‬‬
‫‪0‬‬
‫‪‬‬
‫‪ - f 2  M , x‬ניתנת לחישוב (ע"י מכונה שמראה ‪.) H P  R E‬‬
‫‪‬‬
‫‪ - f 3  M , x‬לא ניתנת לחישוב‪ ,‬כי אם כן אז‪. H P  R E :‬‬
‫בעיות חיפוש‪:‬‬
‫*‬
‫*‬
‫דוגמא‪. L    G , T  | G  graph , T  spanning tree in G  , L     :‬‬
‫בעית זיהוי‪ :‬נתונים‪ ,  G , T  -‬האם הם מקיימים את היחס‪.‬‬
‫בעיית חיפוש‪ :‬נתון גרף ‪ , G‬מצא עץ פורש ‪ , T‬אם קיים אחד‪.‬‬
‫*‬
‫*‬
‫הגדרה‪ :‬יהא ‪ S    ‬יחס דו‪-‬מקומי‪.‬‬
‫‪-‬‬
‫אומרים שבעיית הזיהוי של ‪ S‬ניתנת לפיתרון אם ‪. S  R E‬‬
‫‪-‬‬
‫אומרים שבעיית החיפוש של ‪ S‬ניתנת לפיתרון אם קיימת מ"ט ‪ M‬שלכל ‪- x‬‬
‫‪o‬‬
‫אם קיים ‪ y‬כך ש‪ M ,  x , y   S -‬עוצרת עם ‪ y‬כזה (כלשהו) כפלט‪.‬‬
‫‪o‬‬
‫אם לא קיים ‪ y‬כזה‪ M ,‬לא עוצרת‪.‬‬
‫הגדרה‪ :‬בהינתן פונקציה ‪ f‬נגדיר‪ . S f    x , y  | f  x   y  :‬בעיית החיפוש של ‪ S f‬שקולה‬
‫לבעית החישוב של ‪. f‬‬
‫דוגמא‪ -‬סיבוכיות קולמגורוב‬
‫אקראיות היא ההפך מחוקיות‪ ,‬לסדרה עם חוקיות קיים אלגוריתם (=מ"ט) קצר שמייצר את‬
‫המחרוזת‪ .‬ולכן הסדרה‪ 001001001001 -‬נראית פחות אקראית מהסדרה‪.011101100010-‬‬
‫*‬
‫הגדרה‪ .    0,1    0,1, b  :‬עבור מחרוזת ‪ x  ‬סיבוכיות קולמגורוב היא מספר המצבים‬
‫הקטן ביותר של מ"ט שעל קלט ‪ ‬פולטת את ‪ . x‬סימון‪. k  x  :‬‬
‫משפט‪ :‬הפונקציה ‪ k‬לא ניתנת לחישוב‪.‬‬
‫אבחנות‪:‬‬
‫‪-‬‬
‫‪ k‬היא פונקציה מלאה‪ ,‬ולכל ‪( k  x   | x |  1 x‬מצב לכתיבת כל אות ב‪ x -‬ובסוף צעד ימינה)‪.‬‬
‫‪-‬‬
‫‪ k‬היא פונקציה לא חסומה‪ ,‬כלומר לכל ‪ t‬קיים ‪ x‬ך ש‪. k  x   t -‬‬
‫הוכחה‪:‬‬
‫נניח בשלילה ש‪ k -‬ניתנת לחישוב ו‪ M k -‬מ"ט המחשבת אותה ונגיע לסתירה ב‪ 3-‬שלבים‪:‬‬
‫‪ .1‬נבנה מ"ט ‪ M 1‬שעל קלט ‪ t‬מוצאת ‪ x‬כך ש‪( k  x   t -‬קיים כזה כי הפונקציה לא חסומה)‪.‬‬
‫‪14‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫נעבור על כל ה‪- x -‬ים לפי סדר לקסיקוגרפי‪ ,‬לכל ‪ x‬נחשב ‪ k  x ‬ע"י ‪( M k‬שעוצרת תמיד) עד‬
‫שנגיע ל‪ x -‬המבוקש (קיים כזה) ונפלוט אותו‪.‬‬
‫נסמן ב‪ m -‬את מספר המצבים של ‪. M 1‬‬
‫יהי ‪ n‬מספר מספיק גדול כך ש‪. 2 n  n  m  3 -‬‬
‫‪ .3‬נבנה ‪ M 2‬שעל קלט ‪ ‬עובדת באופן הבא‪:‬‬
‫‪-‬‬
‫כותבת‬
‫‪-‬‬
‫מריצה את ‪ M 1‬על ‪ . 2 n‬נסמן ב‪ x -‬את הפלט‪.‬‬
‫‪n‬‬
‫‪ 1 0 0 0‬ומחזירה את הראש להתחלה‪.‬‬
‫‪ 2‬על הסרט שלה באופן הבא‪0 :‬‬
‫מספר המצבים של ‪ n  2 : M 2‬מצבים לכתיבת ‪ 1 , 2 n‬להחזרת הראש‪ m ,‬להפעלת ‪. M 1‬‬
‫בסה"כ‪ n  m  3 :‬מצבים‪.‬‬
‫לפי אופן בחירת ‪. n  m  3  2 n  n‬‬
‫נסתכל על ‪: x‬‬
‫‪‬‬
‫‪‬‬
‫‪ M 2‬על ‪ ‬פולטת ‪ x‬במספר מצבים הקטן מ‪ . 2 n -‬ולכן‪:‬‬
‫‪n‬‬
‫‪k x  2‬‬
‫‪n‬‬
‫‪ M 1‬על קלט ‪ 2 n‬פולטת ‪ , x‬ולכן‪. k  x   2 :‬‬
‫סתירה להנחה שקיימת ‪ , M k‬ולכן הפונקציה ‪ k‬אינה ניתנת לחישוב‪.‬‬
‫משפט‪ :‬קיים פיתרון לבעית הזיהוי ‪ ‬קיים פיתרון לבעית החיפוש‪.‬‬
‫הוכחה‪ :‬בהינתן קלט ‪ x‬נמצא בהרצה מבוקרת זוג ‪  x , y ‬כך ש‪(  x , y   S -‬אם קיים)‪.‬‬
‫טענה‪ :‬קיים פיתרון לבעית החיפוש ‪ ‬קיים פיתרון לבעית הזיהוי‪.‬‬
‫דוגמא‪ , L E Q :‬בעיית הזיהוי קשה ( ‪ ) L E Q  R E‬אבל בעית החיפוש ניתנת לפיתרון‪-‬‬
‫‪. M , M‬‬
‫‪‬‬
‫דוגמאות‪:‬‬
‫‪‬‬
‫‪ . S 1  Lu   M , x | M accepts x ‬בעיות הזיהוי והחיפוש ניתנות לפיתרון‪.‬‬
‫‪‬‬
‫‪ . S 2  Lu   M , x | M does not accept x ‬לא ניתנת לזיהוי ( ‪ . ) L u  R E‬גם לא ניתנת‬
‫לחיפוש כי אם קיים לבעית החיפוש פיתרון אז גם ל‪ L  -‬בסתירה לכך ש‪. L   R E -‬‬
‫*‬
‫*‬
‫‪15‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫מבוא לחלק ‪II‬‬
‫איזה מן הבעיות הניתנות לפיתרון (לפי חלק ‪ )I‬ניתנות לפיתרון יעיל? (במונחים של זמן או זיכרון)‪.‬‬
‫מפתה אולי למדוד יעילות לפי הזמן שלוקח לנו להריץ תוכנה‪ ,‬אבל זה לא מדד טוב כי הוא תלוי‬
‫מימוש‪ ,‬תלוי חומרה שעליה אנחנו מריצים וכו'‪ .‬לא ניתן להשתמש במדד כזה עבור הגדרה תיאורטית‪.‬‬
‫אנחנו נשתמש במדד אחר‪ -‬כמה צעדים דרושים למ"ט על‪-‬מנת לבצע את החישוב‪.‬‬
‫סיבוכיות הזמן‪ :‬סיבוכיות הזמן של מ"ט ‪ M‬היא פונקציה חלקית‬
‫‪ t M :  * ‬שמתאימה לכל‬
‫*‬
‫‪ x  ‬את מספר הצעדים של ‪ M‬על ‪ x‬אם ‪ M‬עוצרת עליו‪ ,‬ואחרת היא לא מוגדת‪.‬‬
‫חסם סיבוכיות‪ :‬אומרים שפונקציה‬
‫‪‬‬
‫‪ T :‬היא חסם סיבוכיות עבור מ"ט ‪ M‬אם לכל ‪x‬‬
‫‪( t M  x   T  | x | ‬מספר הצעדים שהמכונה עושה חסום ע"י פונקציה של אורך הקלט)‪.‬‬
‫נתעניין בשאלה‪ -‬איזה חסם סיבוכיות ייחשב כיעיל?‬
‫‪‬‬
‫לכל מכונה לא טריוויאלית‪( T  n   n , | x | n ,‬כי צריך לקרוא את הקלט)‪.‬‬
‫‪ ‬‬
‫‪n‬‬
‫‪n‬‬
‫‪2‬‬
‫‪ O  2  , O 2‬הם ערכים גדולים מאוד ל‪. n -‬‬
‫‪‬‬
‫מצד שני‬
‫‪‬‬
‫התאמה למציאות‪.‬‬
‫‪‬‬
‫"נוחות מתמטית"‪.‬‬
‫‪16‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫חישוב יעיל‬
‫הגדרה‪ :‬מ"ט ‪ M‬תיקרא יעילה‪/‬פולינומית אם קיים פולניום ‪ p  n   O  n c ‬המהווה חסם סיבוכיות‬
‫עבורה‪.‬‬
‫יתרונות ההגדרה‪:‬‬
‫‪-‬‬
‫כמעט כל אלגוריתם שנמצא בשימוש נופל להגדרה‪.‬‬
‫‪-‬‬
‫עמידות‪ :‬מוש ג הפולינומיות לא רגיש למודל (הוכחות השקילות בין מ"א משמרות פולינומיות)‪.‬‬
‫‪-‬‬
‫פולינומיות מקיימת תכונות סגור‪.‬‬
‫דוגמא‪ f , g :‬ניתנות לחישוב יעיל אז גם ‪ h  x   f  g  x  ‬ניתנת לחישוב יעיל‪.‬‬
‫הוכחה‪ f :‬ניתנת לחישוב יעיל ‪ ‬קיימת‬
‫‪ g‬ניתנת לחישוב יעיל ‪ ‬קיימת‬
‫‪f‬‬
‫‪ M‬המחשבת אותה בזמן ‪. O  n c ‬‬
‫‪ M‬המחשבת אותה בזמן‬
‫‪g‬‬
‫‪‬‬
‫‪.O nd‬‬
‫נבנה ‪ M h‬שמחשבת את ‪ h‬על קלט ‪. x‬‬
‫‪ .1‬נריץ את‬
‫‪f‬‬
‫‪ M‬על ‪ x‬לקבלת ‪. y  f  x ‬‬
‫‪ .3‬נריץ את‬
‫‪g‬‬
‫‪ M‬על ‪ y‬לקבלת ‪ h  x   z  g  y ‬ונפלוט אותו‪.‬‬
‫סיבוכיות‪ :‬בשלב ‪1‬‬
‫‪f‬‬
‫‪ M‬רצה זמן ‪ O  n c ‬ומייצרת ‪ y‬שאורכו ‪ . | y | O  n c ‬בשלב‪3-‬‬
‫‪g‬‬
‫‪M‬‬
‫רצה זמן ‪ . O  | y |d   O  n cd ‬סה"כ‪. O  n cd  :‬‬
‫חסרונות ההגדרה‪:‬‬
‫‪-‬‬
‫ההתאמה למציאות היא לא מושלמת‬
‫‪o‬‬
‫במציאות נעדיף‬
‫‪o‬‬
‫סימפלקס‪ -‬אלגוריתם שממומש בהרבה תוכנות במציאות ובמקרים מסויימים רץ בזמן‬
‫אקספוננציאלי‪ .‬אבל בפועל נתקלים כמעט אך ורק בקלטים עליהם האלגוריתם יעיל‪.‬‬
‫‪log log n‬‬
‫‪ n‬על‪-‬פני‬
‫‪1000‬‬
‫‪ n‬למרות שהראשון לא פולינומי והשני כן‪.‬‬
‫מחלקות של חישוב יעיל‪:‬‬
‫{ קיימת מ"ט פולי ‪ M‬כך ש‪. P  { L   | L  M   L -‬‬
‫*‬
‫{ קיימת מ"ט פולי ‪ M‬כך ש‪. PO LY  { f :  *   * | f M  f -‬‬
‫תכונות‪ f  f  PO LY , P  R :‬מלאה‪ .‬כל שפה סופית היא ב‪. P -‬‬
‫הגדרה‪ f :‬חסומה פולינומיאלית אם קיים פולינום ‪ p  n ‬כך ש‪. | f  x  | p  | x |  -‬‬
‫קשר בין פונקציות לשפות‪:‬‬
‫תזכורת‪ :‬בהינתן פונקציה ‪ f‬מלאה הגדרנו ‪ L f    x , y  | y  f  x ‬והוכחנו כי‪ f :‬ניתנת‬
‫לחישוב אם"ם ‪ . L f  R‬נרצה לדעת האם קיים קשר דומה מבחינת חישוב יעיל‪.‬‬
‫הטענה‪ f :‬ניתנת לחישוב יעיל אם"ם ‪ L f  P‬אינה נכונה‪.‬‬
‫‪17‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫דוגמא‪ L f  P - f  x   12 :‬כי בהינתן ‪  x , y ‬ניתן לחשב ‪ f  x ‬ולהשוות ל‪( y -‬יעיל) אבל‬
‫|‪| x‬‬
‫‪ f  P O L Y‬כי אין מספיק זמן כדי לכתוב את הפלט ביעילות‪ ,‬הקלט הוא רק ‪ x‬וחיפוש של ‪y‬‬
‫מתאים עבורו לא יכול להתבצע בזמן פולינומי בקלט‪.‬‬
‫הערה‪ :‬הטענה בעייתית גם עבור פונקציות שהן חסומות פולינומיאלית‪.‬‬
‫הגדרה‪ y { :‬היא הרישא של ‪. L f   { x , y  | f  x ‬‬
‫משפט‪ f  P O L Y :‬אם"ם ‪ f‬חסומה פולינומיאלית וגם ‪. L f   P‬‬
‫הוכחה‪:‬‬
‫כיוון‪ f  P O L Y :1-‬אז קיימת מ"ט‬
‫‪f‬‬
‫‪f‬‬
‫‪ M‬לחישוב ‪ f  f‬חסומה פולינומיאלית (כי הפונקציה של‬
‫‪ M‬שהיא ‪ f‬היא פולינומאלית)‪ .‬מ"ט פולי עבור ‪ L f‬על קלט ‪  x , y ‬תחשב את ‪ f  x ‬ע"י‬
‫‪f‬‬
‫‪M‬‬
‫ותשווה ל‪. y -‬‬
‫כיוון‪ f :3-‬חסומה פולינומיאלית ‪ ‬קיים פולינום מתאים ‪  L f   P . p‬קיימת מ"ט ‪ M ‬עבור‬
‫השפה אשר רצה זמן ‪ . q‬נבנה‬
‫‪f‬‬
‫‪ M‬המחשבת את ‪ f‬על קלט ‪: x‬‬
‫‪‬‬
‫אתחול‪. y   :‬‬
‫‪‬‬
‫איטרציה‪ :‬עבור כל ‪ a  ‬בדוק האם ‪(  x , ya   L f ‬ע"י ‪.) M ‬‬
‫‪o‬‬
‫אם כן‪ y  ya ,‬ומתחילים איטרציה חדשה‪.‬‬
‫‪o‬‬
‫אם לא‪ ,‬מנסים את האות הבאה‪.‬‬
‫‪o‬‬
‫אם ניסינו את כל האותיות‪ ,‬עוצרים עם פלט ‪( y‬גם רישא וגם הפיתרון)‪.‬‬
‫סיבוכיות‪ :‬מספר האיטרציות‪ -‬פולינומי (כי ‪ f‬חסומה פולינמיאלית)‪ .‬בכל איטרציה החישוב הוא‬
‫פולינומי (כי הוא נעשה ע"י ‪ M ‬מ"ט פולינומית)‪ .‬סה"כ‪:‬‬
‫‪f‬‬
‫‪ M‬רצה בזמן פולינומיאלי‪.‬‬
‫בעיות חיפוש‪:‬‬
‫*‬
‫*‬
‫הגדרה‪ :‬יהי ‪ S    ‬יחס דו‪-‬מקומי‪.‬‬
‫‪‬‬
‫אומרים שבעית הזיהוי של ‪ S‬ניתנת לפיתרון יעיל אם ‪. S  P‬‬
‫‪‬‬
‫אומרים שבעית החיפוש של ‪ S‬ניתנת לפיתרון יעיל אם קיימת מ"ט פולינומיאלית ‪ M‬כך שלכל‬
‫*‬
‫‪ : x  ‬אם קיים ‪y‬‬
‫כך ש‪ x , y   S -‬‬
‫אז ‪ M‬עוצרת ב‪ q A -‬עם פלט ‪ y‬כזה‪ ,‬אחרת ‪M‬‬
‫עוצרת ב‪( q R -‬ואין חשיבות לפלט)‪.‬‬
‫אבחנה‪ :‬חיפוש יעיל ‪ ‬זיהוי יעיל‪.‬‬
‫הגדרה‪ :‬יחס ‪ S‬הוא חסום פולינומיאלית אם קיים פולינום ‪ p‬כך שלכל ‪  x , y   S‬מתקיים‪:‬‬
‫‪. | y | p  | x | ‬‬
‫השאלה הפתוחה המרכזית של מדעי המחשב (נוסח‪:)1-‬‬
‫עבור ‪ S‬חסומה פולינומיאלית‪ ,‬האם זיהוי יעיל ‪ ‬חיפוש יעיל?‬
‫‪18‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫הגדרה‪ :‬שפה ‪ L‬שייכת למחלקה ‪ N P‬אם קיים יחס דו‪-‬מקומי ‪ R L‬המקיים‪:‬‬
‫‪.1‬‬
‫‪ R L‬חסום פולינומיאלית‪.‬‬
‫‪.3‬‬
‫‪ R L‬ניתן לזיהוי יעיל‪.‬‬
‫‪.2‬‬
‫‪ - L   x |  y :  x , y   R L ‬ביחס כל ה‪ x -‬והפיתרונות שלהם לבעית החיפוש‪.‬‬
‫אבחנה‪. P  N P :1-‬‬
‫הוכחה‪ :‬בהינתן ‪ L  P‬נראה יחס ‪ R L‬מתאים‪( R L    x , x  | x  L  -‬הוא ניתן לזיהוי כי ניתן‬
‫לבדוק אם ‪ y  x‬וגם ניתן לבדוק אם ‪ x  L‬כי ‪.) L  P‬‬
‫אבחנה‪. N P  R :2-‬‬
‫הוכחה‪ :‬תהי ‪ L  N P‬ויהי ‪ R L‬היחס המתאים‪ .‬בפרט ‪ R L‬חסומה פולינומיאלית ע"י פולינום ‪ , p‬וגם‬
‫‪ R L‬ניתן לזיהוי יעיל ע"י מ"ט פולינומיאלית ‪ . M‬נתאר מ"ט ‪ M ‬שמזהה את ‪ L‬ועוצרת תמיד‪:‬‬
‫בהינתן ‪ x‬נעבור על כל ה‪-y‬ים שאורכם קטן או שווה ל‪ . p  | x |  -‬לכל אחד מהם נבדוק (ע"י ‪) M‬‬
‫האם ‪ .  x , y   R L‬אם מצאנו ‪ y‬כזה ‪ , x  L ‬ונקבל‪ .‬אם עברנו על כל ה‪-y‬ים ולא מצאנו‬
‫‪ x  L ‬ולכן נדחה‪ .‬הנכונות נובעת מדרישה (‪ )2‬של ‪ R L‬שהיא מכילה ‪  x , y ‬אם ‪. x  L‬‬
‫השאלה הפתוחה המרכזית במדעי המחשב (נוסח‪:)2-‬‬
‫האם ‪? P  N P‬‬
‫משפט‪ :‬שני הנוסחים של הבעיה הפתוחה המרכזית הם שקולים‪ ,‬כלומר‪:‬‬
‫‪  P  N P‬לכל יחס פולינומיאלי‪ ,‬זיהוי יעיל גורר חיפוש יעיל‪.‬‬
‫הוכחה‪:‬‬
‫כיוון‪ :1-‬מספיק להוכיח ש‪( N P  P -‬כי ההכלה ההפוכה קיימת)‪ .‬תהי ‪ L  N P‬שפה כלשהי‪ ,‬אז‬
‫קיים ‪ R L‬כמובטח מההגדרה‪ .‬בפרט ‪ R L‬חסום פולינומיאלית וניתן לזיהוי יעיל ומההנחה נובע ש‪R L -‬‬
‫ניתן לחיפוש יעיל‪ .‬כלומר‪ ,‬קיימת מ"ט פולינומיאלית ‪ M‬כך שלכל ‪ , x‬אם קיים ‪ y‬כך ש‪-‬‬
‫‪ ,  x , y   R L‬היא עוצרת ב‪( q A -‬עם פלט ‪ y‬כזה) ואם לא קיים היא עוצרת ב‪ . q R -‬ולכן‪:‬‬
‫‪.L  P  L M   L‬‬
‫כיוון‪ :3-‬יהי ‪ S‬יחס חסום פולינומיאלית הניתן לזיהוי יעיל ונרצה להראות שהוא ניתן לחיפוש יעיל‪.‬‬
‫נגדיר‪ . S      x , z  , w  |  x , zw   S  :‬עבורו מתקיים (בגלל תכונות ‪ S  :) S‬חסום פולינומיאלית‬
‫וגם ‪ S ‬ניתן לזיהוי יעיל‪ . L S     x , z  |  w :   x , z  , w   S  .‬מהגדרת ‪. L S   NP : N P‬‬
‫מההנחה נובע ש‪ L S   P -‬ולכן קיימת ‪ M ‬פולינומיאלית עבור ‪ . L S ‬נתאר מ"ט ‪ M‬שפותרת את‬
‫בעית החיפוש של ‪ : S‬בהינתן קלט ‪ x‬נבדוק האם ‪(  x ,    L S ‬כלומר‪ ,‬האם יש פיתרון שמרחיב‬
‫את המחרוזת הריקה‪ -‬כל פיתרון הוא כזה‪ ,‬אם קיים)‪ .‬אם לא (אין פיתרון)‪ ,‬עוצרים ב‪ . q R -‬אם כן‪,‬‬
‫‪ y  ‬מתחילים באיטרציות‪ :‬לכל ‪ a  ‬בדוק האם ‪ .  x , ya   L S ‬אם כן‪ , y  ya ,‬אם לא‪-‬‬
‫בדוק את האות הבאה‪ .‬כשסיימנו לעבור על כל האותיות‪ ,‬עוצרים ב‪ q A -‬עם פלט ‪. y‬‬
‫‪19‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫‪ -NPC‬בעיות קשות‬
‫‪ :NPC‬הבעיות הקשות ביותר ב‪.NP-‬‬
‫הערה‪ :‬לא ידוע אם יש משהו ב‪ NP-‬שלא נמצא ב‪.P-‬‬
‫‪ L1  L 2‬‬
‫‪L2  R  ‬‬
‫משפט הרדוקציה המקורי‪:‬‬
‫‪ L2  R‬‬
‫האם מתקיים גם‪:‬‬
‫‪ L1  L 2‬‬
‫‪? L2  P  ‬‬
‫‪ L2  P‬‬
‫לא מתקיים‪ -‬ההוכחה המקורית לא עובדת וגם הטענה אינה נכונה‪.‬‬
‫הגדרה‪ :‬פונקציה ‪ f‬היא רדוקציה פולינומית מ‪ L1 -‬ל‪ L 2 -‬ומסמנים‪ L1  p L 2 :‬אם‪:‬‬
‫‪.1‬‬
‫‪( f  P O L Y‬ובפרט מלאה)‪.‬‬
‫‪ .3‬תקפות‪. x  L1  f  x   L 2 :‬‬
‫תכונות בסיסיות‪:‬‬
‫‪‬‬
‫‪ L1  p L 2‬‬
‫‪L1  P  ‬‬
‫משפט הרדוקציה‪:‬‬
‫‪ L2  P‬‬
‫הסבר‪ :‬אותה הבניה ואותה הוכחה של משפט הרודקציה‪ .‬הסיבוכיות פולינומית כי ‪ M f  M 2‬מ"ט‬
‫פולינומיות‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪ L1  p L 2‬‬
‫טרנזיטיביות‪:‬‬
‫‪L1  p L3  ‬‬
‫‪L‬‬
‫‪‬‬
‫‪L‬‬
‫‪‬‬
‫‪2‬‬
‫‪p‬‬
‫‪3‬‬
‫‪‬‬
‫הגדרה‪ :‬שפה ‪ L‬תיקרא ‪-NP‬שלמה אם‪:‬‬
‫‪.1‬‬
‫‪. L  NP‬‬
‫‪ .3‬לכל ‪ L   N P‬מתקיים‪( L   p L :‬שפה שמקיימת רק את ‪ 3‬נקראת‪-NP :‬קשה)‪.‬‬
‫קבוצת השפות הנ"ל תסומן‪.NPC :‬‬
‫משפט‪ :‬תהא ‪ L  N P C‬אז מתקיים‪. P  N P  L  P :‬‬
‫הוכחה‪:‬‬
‫כיוון ‪ L  N P C : ‬אז מההגדרה‪ L  N P -‬אז מההנחה‪. L  P -‬‬
‫כיוון ‪ : ‬מספיק להוכיח ‪ . N P  P‬תהי ‪ L   N P‬שפה כלשהי‪ .‬אז ‪( L   p L‬כי ‪ L‬היא ‪-NP‬‬
‫שלמה) וגם ‪ L  P‬אז לפי משפט הרדוקציה ‪. L   P‬‬
‫‪20‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫דרכים להוכיח ששפה היא ב‪:NPC-‬‬
‫‪ .1‬ישירות ע"פ ההגדרה‪.‬‬
‫‪ .3‬הוכחה עקיפה על‪-‬סמך‪:‬‬
‫טענה‪ :‬אם ‪ L  N P‬וגם ‪ L1  NPC‬וגם מתקיים‪ L1  p L :‬אז‪. L  N P C :‬‬
‫הוכחה‪ :‬מטרנזיטיביות‪ :‬לכל ‪ L   N P‬מתקיים‪. L   p L  L   p L1  p L :‬‬
‫דוגמאות לשפות ‪-NP‬שלמות‪:‬‬
‫בעית הכיסוי בצמתים (‪:)Vertex Cover‬‬
‫הגדרה‪ :‬יהי ‪ G   V , E ‬גרף‪ .‬קבוצה ‪B  V‬‬
‫נקראת כיסוי צמתים אם לכל קשת ‪ a , b   E‬‬
‫מתקיים‪ a  B :‬או ‪( b  B‬או שניהם)‪.‬‬
‫הערות‪:‬‬
‫‪-‬‬
‫בגרף כוכב קיים כיסוי צמתים בגודל‪.1-‬‬
‫‪-‬‬
‫כל גרף ניתן לכסות ע"י ‪ | V |  1‬צמתים‪.‬‬
‫‪-‬‬
‫בגרף המלא ‪ K n‬כל כיסוי גודלו לפחות ‪. | V |  1‬‬
‫{ קיימת קבוצה ‪ B‬בגודל ‪ k‬המהווה כיסוי בצמתים של ‪V C  {( G , k ) | G‬‬
‫{ ‪ B‬הוא כיסוי בצמתים בגודל ‪ k‬עבור ‪. S VC  {(( G , k ), B ) | G‬‬
‫תכונות‪:‬‬
‫‪‬‬
‫‪ S VC‬חסום פולינומיאלית‪.‬‬
‫‪‬‬
‫‪ S‬ניתן לזיהוי יעיל (ניתן בזמן פולינומיאלי לוודא ש‪ | B | k -‬וש‪ B -‬מכסה כל קשת ב‪.) G -‬‬
‫‪‬‬
‫לא יד וע אם בעית החיפוש ניתנת לפיתרון יעיל (קיים פיתרון אקספוננציאלי)‪.‬‬
‫טענה‪. V C  N P C :‬‬
‫( ‪ N C  N P‬ע"פ היחס ‪ . S VC‬נראה יותר מאוחר‪.) 3 SA T  p V C -‬‬
‫‪21‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫בעית הקבוצה המייצגת (‪:)Hitting Set‬‬
‫קלט‪ :‬טבעיים ‪ n , k‬וקבוצות ] ‪, Am  [ n‬‬
‫‪.) [ n ]  0,1,‬‬
‫‪, n ( A1 ,‬‬
‫פלט‪ :‬האם קיימת קבוצה ‪ R‬בגודל ‪ k‬כך שלכל ‪? Ai  R   , i‬‬
‫‪H S  { n , k , A1 ,‬‬
‫{ קיימת ‪ R‬המקיימת‪, Am | ...‬‬
‫טענה‪. H S  N P C :‬‬
‫הוכחה‪ :‬נחלק אותה ל‪ 2-‬חלקים‪:‬‬
‫‪.1‬‬
‫‪ - H S  N P‬ע"י היחס מתאים‪:‬‬
‫{ ‪ R‬קבוצה בגודל ‪ k‬שחותכת כל ‪, Am ), R ) | Ai‬‬
‫‪.3‬‬
‫‪VC  NPC‬‬
‫‪.2‬‬
‫‪ - V C  p H S‬נראה רדוקציה מתאימה‪, A m  :‬‬
‫‪R HS  { (( n , k , A1 ,‬‬
‫‪ , f  G , k    n , k , A1 ,‬כך ש‪, n  | V | :‬‬
‫| ‪ m  | E‬ולכל ‪ e i   a , b ‬נתאים קבוצה‪. Ai   a , b  -‬‬
‫נכונות הרדוקציה‪ . f  P O L Y :‬תקפות‪   G , K   V C :‬קיימת ‪, V k ‬‬
‫מהבני‬
‫כיסוי צמתים ל‪G -‬‬
‫‪‬‬
‫ה‬
‫קיימת קבוצה ‪, i k ‬‬
‫‪ B  V1 ,‬המהווה‬
‫‪ R   i1 ,‬שחותכת כל ‪. f  G , k   H S  Ai‬‬
‫בעית כיסוי הקבוצות (‪:)Set Cover‬‬
‫קלט‪ :‬טבעיים ‪ n , k‬וקבוצות ] ‪, C t  [ n‬‬
‫פלט‪ :‬האם קיימות ‪ k‬קבוצות ‪, C ik‬‬
‫‪. C1 ,‬‬
‫‪ C i ,‬שמכסות את ] ‪? [ n‬‬
‫‪1‬‬
‫{ קיים כיסוי בקבוצות בגודל ‪ k‬מתוך ‪ t‬הקבוצות | ‪, C t‬‬
‫‪. SC  { n , k , C1 ,‬‬
‫טענה‪. S C  N P C :‬‬
‫הוכחה‪( :‬בדרך עקיפה)‬
‫‪‬‬
‫| ‪, ik ) ‬‬
‫‪‬‬
‫‪ - S C  N P‬ע"י היחס המתאים‪:‬‬
‫‪‬‬
‫‪VC  NPC‬‬
‫‪‬‬
‫‪ - V C  p SC‬נראה רדוקציה מתאימה‪, C t  :‬‬
‫‪, C t ), ( i1 ,‬‬
‫‪,‬‬
‫‪1‬‬
‫‪ ( n , k , C‬‬
‫‪R SC ‬‬
‫‪ , t  | V | , n  | E | , f  G , k    n , k , C 1 ,‬לכל‬
‫צומת ‪ vi‬נתאים קבוצה‪ { -‬הצומת ‪ vi‬מכסה את ‪. C i  { j | e j‬‬
‫נכונות הרדוקציה‪ . f  P O L Y :‬תקפות‪   G , K   V C :‬קיים כיסוי ‪, i k ‬‬
‫מהבני‬
‫‪G‬‬
‫‪‬‬
‫ה‬
‫הקבוצות ‪, C ik‬‬
‫‪ B   i1 ,‬עבור‬
‫‪ C i ,‬מכסות את ] ‪. f  G , K   SC  [ n‬‬
‫‪1‬‬
‫בעית התכנות בשלמים (‪:)01IP‬‬
‫קלט‪ :‬מטריצה ‪ , A  Z m  n‬ווקטור ‪. b  Z m‬‬
‫פלט‪ :‬האם יש פיתרון למערכת האי‪-‬שוויונים ‪ A x  b‬שבו ‪? x   0,1‬‬
‫‪n‬‬
‫‪22‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫‪ a1 n x n  b1‬‬
‫‪a11 x1 ‬‬
‫‪ ,‬האם קיים פיתרון שבו‬
‫באופן שקול‪ :‬נתונה מערכת אי‪-‬שוויונים‪:‬‬
‫‪ a m n x n  bm‬‬
‫‪a m 1 x1 ‬‬
‫‪ x i   0,1‬לכל ‪? i‬‬
‫‪0 1 IP   A , b |  x ...‬‬
‫טענה‪. 0 1IP  N P C :‬‬
‫הוכחה‪( :‬בדרך העקיפה)‪.‬‬
‫‪  A , b  , x  | A x  b , x   0,1 ‬‬
‫‪n‬‬
‫‪‬‬
‫‪ - 0 1IP  N P‬ע"י היחס המתאים‪:‬‬
‫‪‬‬
‫‪.V C  N P C‬‬
‫‪‬‬
‫‪ - V C  p 01 IP‬נראה רדוקציה מתאימה‪ , f  G , k    A , b  :‬הרעיון‪ :‬לכל צומת ‪ vi‬בגרף‬
‫‪. R 0 1 IP ‬‬
‫נתאים משתנה ‪ x i‬כך ש‪ x i  1 -‬או ש‪ vi -‬בכיסוי ו‪ v i  0 -‬או ש‪ vi -‬אינו בכיסוי‪.‬‬
‫| ‪ , n  | V‬מריצה ‪ A‬מסדר‪  | E |  1   | V | :‬מוגדרת באופן הבא‪:‬‬
‫‪o‬‬
‫לכל קשת ‪ e j   u , v ‬נגדיר אי‪-‬שוויון‪ , x u  x v  1 :‬כלומר‪ A ju  A jv  1 :‬ו‪ A jk  0 -‬לכל‬
‫‪. k  u, v‬‬
‫‪o‬‬
‫את השורה האחרונה במטריצה נגדיר ע"י אי‪-‬השוויון‪ x |V |  k :‬‬
‫‪ , x1  x 2 ‬כלומר‬
‫‪ A | E |  1  i   1‬לכל ‪i‬‬
‫נגדיר את ‪ , b‬לפי הבנייה לעיל‪ bi  1, 1  i  | E | -‬ו‪. b | E ||  1    k -‬‬
‫כעת בהינתן כיסוי מתאים ‪ , B‬ההשמה המספקת היא ‪. x i  1  i  B‬‬
‫מצד שני אם קיימת השמה ‪ x‬המקיימת את כל האי‪-‬שוויונים נגדיר את ‪ B‬ע"י‪. B   i | x i  1 :‬‬
‫וקל לראות ש‪ , | B | k -‬ואכן ‪ B‬כיסוי בצמתים (הקשת ‪ e j   u , v ‬בהכרח מכוסה כי אי‪-‬‬
‫השוויון ה‪ j -‬מתקיים אם"ם ‪ , x u  x v  1‬כלומר‪ :‬לפחות אחד מהצמתים ‪ u , v‬נמצא ב‪.) v -‬‬
‫בעית החיפוש החסום (‪:)Bounded search‬‬
‫קלט‪ :‬מ"ט ‪ , M‬איבר ‪ x‬ווקטור של ‪-1‬ים באורך ‪t‬‬
‫פלט‪ :‬האם קיים ‪ y‬באורך לכל היותר ‪ t‬ש‪ M -‬מקבלת את ‪ x‬ומוציאה כפלט את ‪ y‬תוך ‪ t‬צעדים?‬
‫{ קיים ‪ y‬באורך קטן שווה ל‪BS  { M , x ,1 | ... t -‬‬
‫‪t‬‬
‫טענה‪. BS  N PC :‬‬
‫הוכחה‪( :‬ישירה)‪.‬‬
‫‪ B S  N P‬לפי היחס המתאים‪ -‬הוא חסום פולינומיאלית ‪ | y | t‬וניתן לזיהוי יעיל (עושים סימולציה‬
‫של ‪ t‬צעדים של המכונה) והיחס מגדיר את השפה‪.‬‬
‫צ"ל‪ :‬לכל ‪ L  N P‬מתקיים‪ . L  p BS :‬מהגדרת ‪ N P‬קיים ‪ , R L‬כלומר‪ -‬חסום פולינומית‪ ,‬ניתן לזיהוי‬
‫יעיל ע"י מ"ט ‪ M L‬ופולינום ‪ PL‬עבורה‪ ,‬שרצה זמן ‪. q  | x |  | y | ‬‬
‫‪23‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫נגדיר רדוקציה‪:‬‬
‫‪‬‬
‫‪PL  | x | ‬‬
‫‪M L , x .1‬‬
‫‪‬‬
‫‪. fL  POLY . fL  x  ‬‬
‫תקפות‪  x  L :‬קיים ‪ y‬כך ש‪   x , y   R L -‬קיים ‪ y‬באורך ‪ p  | x |  ‬כך ש‪  x , y   R L -‬‬
‫קיים ‪ y‬באורך ‪ p  | x |  ‬כך ש‪ M L -‬מקבלת את ‪ x‬תוך ‪ q  | x |  | y |   t‬צעדים‪.‬‬
‫‪:3SAT‬‬
‫שפת כל פסוקים הספיקים מהצורה‪.3CNF -‬‬
‫‪   C 1  C 2 ‬כאשר כל ‪ C i‬הוא פסוקית בת ‪ 2‬ליטרלים‪ C i  li  ii  li :‬כאשר ליטרל ‪:‬‬
‫‪ Cm‬‬
‫‪3‬‬
‫‪, xn , xn ‬‬
‫‪2‬‬
‫‪1‬‬
‫‪. l i   x1 , x1 , x 2 , x 2 ,‬‬
‫‪j‬‬
‫טענה‪. 3 SAT  p VC :‬‬
‫הוכחה‪:‬‬
‫נראה רדוקציה מתאימה‪. f      G , k  -‬‬
‫בניית ‪ : G‬נבנה את הגרף ב‪ 2-‬שלבים‪:‬‬
‫א‪ 2 n .‬צמתי ליטרלים המסומנים‪:‬‬
‫‪, xn , xn‬‬
‫‪ x1 , x1 , x 2 , x 2 ,‬וקשת בין כל ‪ x i‬ל‪. x i -‬‬
‫ב‪ 3m .‬צמתי פסוקית מסודרים במשולשים כאשר צמתי המשולש המתאים לפסוקית ‪ C i‬יסמנו‪:‬‬
‫‪( li , li , li‬שמות הצמתים הם כשמות הליטרלים)‪.‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫ג‪ .‬לכל צומת פסוקית (מתוך משולש) המסומן ע"י ליטרל‪ ,‬נוסיף קשת בינו ובין צומת הליטרל מקבוצת‬
‫צמתי להיטרלים משלב‪-‬א‪.‬‬
‫הגדרת ‪. k  n  2 m : k‬‬
‫מתקיים‪ f -‬ניתנת לחישוב בזמן פולינומי‪.‬‬
‫תקפות‪:‬‬
‫כיוון‪ :1-‬נניח ‪   3SAT‬ונראה‪. f      G , k   VC -‬‬
‫‪   3SAT‬ולכן קיימת השמה מספקת ‪ ‬עבורו‪ .‬נשתמש בה כדי לבנות כיסוי ‪ B‬בגודל ‪ k‬ל‪. G -‬‬
‫נוסיף ל‪ B -‬את כל צמתי הליטרלים המקיימים‪  .   l   T :‬מספקת כל פסוקית ולכן בכל ‪ C i‬יש‬
‫ליטרל שמקבל ‪ , T‬את שני האחרים נוסיף לכיסוי ‪. B‬‬
‫מתקיים‪ | B | n  2 m :‬כי ישנם ‪ n‬ליטרלים המקבלים ‪( T‬כל השמה תיתן ‪ T‬ל‪ n -‬מתוך ‪ n‬ליטרלים‬
‫ושלילותיהם) וישנם ‪ m‬פסוקיות ונלקחו שני צמתים מכל משולש שהוא פסוקית‪.‬‬
‫‪‬‬
‫בכל זוג ‪  , x i , x i‬נותנת ‪ T‬לבדיוק אחד מהם ולכן הקשת ביניהם מכוסה‪.‬‬
‫‪‬‬
‫בכל משולש‪ ,‬כל ‪ 3‬צמתים מהווים כיסוי ולכן ‪ B‬מכסה קשתות פנימיות של המשולשים‪.‬‬
‫‪‬‬
‫לכל קשת שהיא בין קודקוד משולש לצומת ליטרל‪ ,‬או שצומת המשולש ב‪ B -‬ולכן הקשת מכוסה‪,‬‬
‫אחרת נובע מהבנייה שערך האמת של הליטרל הוא ‪ T‬ולכן צומת הליטרל של הקשת נמצא‬
‫בכיסוי‪.‬‬
‫כיוון‪ :3-‬נניח ש‪(  G , k   VC -‬קיים כיסוי ‪ ) | B | k‬ונוכיח‪.   3SAT :‬‬
‫כל כיסוי משתמש לפחות בצומת ליטרל אחד מבין ‪( x i , x i‬כי יש ביניהם קשת)‪ ,‬שהם לפחות‬
‫‪n‬‬
‫ולפחות ב‪ 3-‬צמתי פסוקית מכל משולש‪ ,‬שהם לפחות ‪ . 2 m‬ומכיוון ש‪ , k  n  2 m -‬כל כיסוי משתמש‬
‫בדיוק ב‪ n -‬צמתי ליטרלים וב‪ 2 m -‬צמתי פסוקית (‪ 3‬מכל משולש)‪.‬‬
‫‪24‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫הגדרת השמת האמת ‪ : ‬הליטרל מבין ‪ x i , x i‬שבכיסוי‪ -‬יקבל ערך ‪. T‬‬
‫נתבונן בצומת הפסוקית ‪ C i‬שאיננו בכיסוי‪ .‬יהי ‪ l‬הליטרל המסמן אותה‪ .‬ונתבונן בקשת ‪ e‬שהיא בין‬
‫צומת הליטרל לצומת הפסוקית הזה‪ .‬כיוון ש‪ B -‬הוא כיסוי‪ ,‬הוא בפרט מכסה את ‪ e‬הנ"ל‪ .‬מכיוון‬
‫שצומת הפסוקית לא ב‪ B -‬אז צומת הליטרל ‪ l‬ב‪ B -‬ולפי הגדרת ההשמה‪   l   T -‬ולכן‬
‫‪Ci‬‬
‫מסופק‪ .‬זה מתקיים לכל ‪ C i‬ולכן ‪ ‬מסופק ‪.   3SAT ‬‬
‫‪:)SS( Subset Sum‬‬
‫קלט‪:‬‬
‫‪ - x1 , x 2 ,‬טבעיים‪.‬‬
‫‪, xs , k‬‬
‫פלט‪ :‬האם קיימת קבוצה ] ‪ I  [ s‬כך ש‪.  x i  k -‬‬
‫‪i I‬‬
‫טענה‪. SS  N P C :‬‬
‫הוכחה (בדרך עקיפה)‪:‬‬
‫‪‬‬
‫‪ , SS  N P .1‬ע"י‪ :‬היחס המתאים‪ k  :‬‬
‫‪‬‬
‫‪i‬‬
‫‪x‬‬
‫‪, x s , k  , I | I  [ s ] and‬‬
‫‪i I‬‬
‫‪‬‬
‫‪. R SS    x1 ,‬‬
‫‪‬‬
‫‪VC  p SS .3‬‬
‫נתאר רדוקציה מתאימה‪, a n , k  :‬‬
‫‪-‬‬
‫לכל ‪: 1  j  m‬‬
‫‪-‬‬
‫לכל ‪: 1  i  n‬‬
‫‪j 1‬‬
‫‪j 1‬‬
‫‪, b m , a1 ,‬‬
‫‪ f  G , k   b1 ,‬כאשר‪ n  | V |, m | E | :‬ונגדיר‪:‬‬
‫‪b j  10‬‬
‫‪10‬‬
‫‪‬‬
‫‪( a i  10 m ‬האינדקס בסכימה‪ -‬כל הקבוצות ‪ j‬ש‪ v i -‬שייך אליהן)‪.‬‬
‫‪j :v i  e j‬‬
‫‪m‬‬
‫‪. k   k  10 m   2  10 j  1‬‬
‫‪-‬‬
‫‪j 1‬‬
‫נסדר בטבלה‪ m -‬השורות הראשונות הן אברי ‪ b‬ו‪ n -‬השורות אחריהן הן אברי ‪ , a‬והשור האחרונה‬
‫היא ‪. k ‬‬
‫נשים לב שלכל ‪ a i‬יש ‪ 1‬בספרה השמאלית ביותר וגם ‪ 1‬ב‪ 2-‬מקומות‬
‫‪..1‬‬
‫‪b1  0‬‬
‫‪...1 0‬‬
‫‪b2  0‬‬
‫‪.1 0 0‬‬
‫‪b3  0‬‬
‫‪m 1‬‬
‫‪bm  1 0‬‬
‫‪...0‬‬
‫‪m‬‬
‫נוספים‪ :‬המקומות ‪ j‬בהם הצומת ‪ i‬מופיע בקשת ‪. j‬‬
‫‪ . f  POLY‬תקפות‪:‬‬
‫כיוון‪ :1-‬נניח ש‪  G , k   VC -‬ויהי ‪ B‬כיסוי מתאים‪ .‬אז נבנה פיתרון‬
‫לבעיה‪, a n , k   :‬‬
‫‪-‬‬
‫‪a i  1 0 ..0 1 1 0 ..0 1 0 ..0‬‬
‫‪m‬‬
‫‪..2‬‬
‫‪k   k 22‬‬
‫אם ‪ , v i  B‬הוסף את ‪ a i‬לסכום‪ .‬ונקבל מספר מהצורה‬
‫‪2‬‬
‫‪-‬‬
‫‪, bm , a1 ,‬‬
‫‪ .  b1 ,‬ונבנה פיתרון לבעיה‪: I -‬‬
‫‪ k 2212112‬ואז לכל מקום שעבורו קיבלנו ‪ 1‬נוסיף ‪ b j‬מתאים‪-‬‬
‫אם הקשת ‪ e i‬מכוסה רק פעם אחת אז הוסף את ‪. b j‬‬
‫ואז קיבלנו את הסכום ‪ k ‬כנדרש‪.‬‬
‫כיוון‪ :3-‬בהינתן פתרון לבעית ה‪ SS -‬נבנה כיסוי חוקי ‪ . B   v i | a i  I  : B‬ומתקיים‪:‬‬
‫‪-‬‬
‫‪ | B | k‬כיוון שה"ספרה" המובילה ב‪ k  -‬היא ‪ . k‬אין נשא (‪ carry‬בחיבור) ולכן רק ‪- a‬ים מכילים‬
‫‪ 1‬בעמודה השמאלית ובהכרח יש בדיוק ‪ k‬צמתים בכיסוי‪.‬‬
‫‪25‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫‪-‬‬
‫‪ B‬הוא כיסוי‪ .‬לכל ‪ , e j‬ה‪ b j -‬המתאים תורם לכל היותר ‪ 1‬לספרה ה‪ j -‬של ‪ k ‬ולכן לפחות אחד‬
‫מה‪-a-‬ין בכיסוי תורם ‪ 1‬לעמודה זו‪ -‬וזה קורה אם"ם ‪ v i‬הוא חלק מהקשת של ‪ . j‬ולכן כל‬
‫הקשתות מכוסות‪.‬‬
‫בעית החלוקה (‪:)PART‬‬
‫קלט‪:‬‬
‫‪, xs‬‬
‫‪ x1 , x 2 ,‬טבעיים‪.‬‬
‫פלט‪ :‬האם קיימת קבוצה ‪ I  S‬כך ש‪.  x i   x i -‬‬
‫‪i I‬‬
‫‪i I‬‬
‫טענה‪. P A R T  N P C :‬‬
‫הוכחה‪:‬‬
‫נראה‪ . SS  p PART -‬רדוקציה מתאימה‪, x s , B , C :‬‬
‫‪, x s , k   x1 ,‬‬
‫‪f  x1 ,‬‬
‫‪k‬‬
‫ונגדיר‪. A   x i , B  2 A  k , C  A  k :‬‬
‫‪i 1‬‬
‫אבחנה‪ :‬סכום כל האיברים הוא ‪ . 4 A‬בשלה החלוקה ‪ B , C‬לא יימצאו ביחד (כי סכומם ביחד הוא‬
‫‪ .) 3 A‬הקבוצה ‪ I‬שסכומה הוא ‪ , k‬ביחד עם ‪ , B‬תהיה בסכום של ‪ 2 A‬ולכן זוהי חלוקה‪.‬‬
‫הבניה מבטיחה שאם לקלט הרדוקציה יש פתרון ב‪ , SS -‬אז לפלט יש פיתרון ב‪. PART -‬‬
‫בצד השני‪ -‬בהינתן פיתרון ל‪ , PART -‬נתבונן ב"צד" שמכיל את ‪ , B‬נבחר בתור פיתרון ל‪ SS -‬את כל‬
‫ה‪- x i -‬ים מאותו צד‪ .‬מאותו שיקול ברור כי זהו פיתרון מתאים ל‪( SS -‬סכומם הוא ‪.) k‬‬
‫בעית האריזה בתאים (‪:)Bin Packaging‬‬
‫קלט‪ k :‬תאים בגודל ‪ B‬כל אחד ועצמים שגדליהם‪:‬‬
‫‪, xs‬‬
‫‪. x1 ,‬‬
‫פלט‪ :‬האם ניתן להכניס את העצמים ל‪ k -‬התאים כך שבכל תא סכום העצמים אינו גדול מ‪. B -‬‬
‫טענה‪. B P  N P C :‬‬
‫הוכחה‪:‬‬
‫‪‬‬
‫נראה רדוקציה‪ . PART  p BP -‬‬
‫‪‬‬
‫‪s‬‬
‫‪i‬‬
‫‪1‬‬
‫‪x‬‬
‫‪2‬‬
‫‪, x s , k  2, B ‬‬
‫‪i 1‬‬
‫‪‬‬
‫‪, x s    x1 ,‬‬
‫‪‬‬
‫‪, f  x1 ,‬‬
‫מחלקים לשני תאים כאשר בכל תא יש בדיוק חצי מהסכום‪.‬‬
‫מציאת מסלול בגרף מכוון עם אורך ומחיר מוגבלים (‪:)Lpath‬‬
‫קלט‪ :‬גרף מכוון ‪ G‬כך שלכל קשת נתון אורך ‪ l  e ‬ומחיר ‪ , w  e ‬שני צמתים בגרף ‪ s , t‬ושני‬
‫מספרים ‪. W , L‬‬
‫פלט‪ :‬האם קיים מסלול מ‪ s -‬ל‪ t -‬שאורכו קטן או שווה ל‪ L -‬ומחירו קטן או שווה ל‪? W -‬‬
‫טענה‪Lpath  NPC :‬‬
‫הוכחה‪:‬‬
‫נראה רדוקציה ‪ . PART  p Lpath‬בהינתן‬
‫‪, xn‬‬
‫‪ x1 ,‬קלט ל‪ ,partition-‬נבנה גרף מתאים מהצורה‪:‬‬
‫‪26‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫הגרף מורכב מסדרה של מעויינים‪ ,‬כאשר במעויין ה‪ , i -‬המסלול העליון מתאים לבחירת ‪ , x i‬והמסלול‬
‫התחתון לכך שלא נבחר את ‪ . x i‬הדבר יתבצע ע"י הגדרת המשקלים על הקשתות העליונות‬
‫כ‪x i -‬‬
‫והאורכים של הקשתות התחתונות כ‪ , x i -‬וכך מעבר במעויין מלמעלה יוסיף לאורך ואילו מעבר‬
‫‪n‬‬
‫‪1‬‬
‫במעויין מלמטה יוסיף למשקל‪ .‬נגדיר‪ x :‬‬
‫‪2‬‬
‫‪i‬‬
‫‪ , W  L ‬ואפשר לראות שמסלולים המוגבלים באורך‬
‫‪i 1‬‬
‫ובמשקל שלהם ע"י ערך זה‪ ,‬מתאימים לפתרון של בעית החלוקה‪.‬‬
‫‪:SAT‬‬
‫שפת כל פסוקי ה‪ CNF-‬הספיקים (פסוק ‪ CNF‬הוא ‪ and‬בין פסוקיות המורכבות מ‪ or-‬בין ליטרלים)‪.‬‬
‫טענה‪VC  p SAT :‬‬
‫הוכחה‪:‬‬
‫נראה רדוקציה ‪ f  G , k    - f‬המקיימת‪.  G , k   VC    SAT :‬‬
‫המשתנים של ‪( xij , i  [ n ], j  [ k ] : ‬המשמעות‪  x ij  T :‬הקודקוד ה‪ i -‬הוא המספר‬
‫ה‪j -‬‬
‫בכיסוי)‪.‬‬
‫הפסוקיות של ‪: ‬‬
‫א‪ .‬לכל ] ‪ , j  [ k‬פסוקית‪  x  -‬‬
‫‪ij‬‬
‫] ‪i [ n‬‬
‫(כלומר‪ ,‬יש לפחות קודקוד אחד במקום ה‪ j -‬בכיסוי)‪.‬‬
‫ב‪ .‬לכל ‪ , i  i ‬פסוקית‪(  xij  xi j  -‬כלומר‪ ,‬רק אחד מביניהם יקבל ‪ T‬בו‪-‬זמנית‪ ,‬ישנו רק קודקוד‬
‫אחד במקום ה‪ j -‬בכיסוי)‪.‬‬
‫ג‪ .‬לכל קשת ‪ , e   a , b ‬פסוקית‪   x   -‬‬
‫‪bj‬‬
‫] ‪j [ k‬‬
‫‪‬‬
‫‪(   x aj ‬כלומר‪ ,‬זהו אכן כיסוי צמתים‪ ,‬הפסוקית‬
‫] ‪j [ k‬‬
‫‪‬‬
‫תקבל ‪ T‬אם לפחות אחד מהצמתים ‪ a , b‬נמצא בכיסוי)‪.‬‬
‫נכונות‪. f  POLY :‬‬
‫תקפות‪:‬‬
‫כיוון‪   G , k   VC :1-‬קיים כיסוי ‪, t k  , B‬‬
‫‪ B   t1 , t 2 ,‬ונשתמש ב‪ B -‬על‪-‬מנת לבנות השמה‬
‫מספקת ל‪ x ij  T :  -‬אם"ם במקום ה‪ j -‬בכיסוי מופיע הצומת‪ . i -‬מהבנייה נובע שכל הפסוקיות‬
‫מסופקות ולכן‪.   SAT :‬‬
‫כיוון‪  f  G , k     SAT :3-‬יש השמת אמת ‪ ‬המספקת את ‪ , ‬בפרט‪  ,‬מספקת את‬
‫הפסוקיות מסוג א ו‪-‬ב ולכן לכל ‪ j‬יש ‪ i‬יחיד כך ש‪ . x ij  T -‬אז ניקח את כל ה‪ i -‬הנ"ל לכיסוי ‪B‬‬
‫‪( | B | k ‬כי ישנם ‪- j k‬ים)‪ B .‬מהווה כיסוי כי ‪ ‬מספקת גם את הפסוקיות מסוג ג ולכן לכל‬
‫קשת אחד מהמשתנים ‪ x aj , x bj‬מקבל ‪ T‬וזה קורה אם הצומת ‪ a‬או ‪ b‬בכיסוי‪.‬‬
‫טענה (ללא הוכחה)‪ :‬לכל פונקציה בוליאנית ‪ , f :  0,1   0,1‬קיים ‪ CNF‬שנסמן ‪ , ‬המחשב את‬
‫‪k‬‬
‫‪ . f‬יתר‪-‬על כן ב‪  -‬יש לכל היותר ‪ 2 k‬פסוקיות ‪ ‬אם ‪ k  O 1 ‬אז גם ‪. |  | O 1 ‬‬
‫‪27‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫משפט ‪:Cook‬‬
‫‪. SAT  N PC‬‬
‫הוכחה‪:‬‬
‫תהי ‪ . L  N P‬צ"ל‪ . L  p SAT :‬מהגדרת ‪ N P‬נובע ש‪ -‬קיים ל‪ L -‬יחס דו‪-‬מקומי ‪ R L‬המקיים‪:‬‬
‫‪ R L .1‬חסום פולינומית ע"י ‪. p  n ‬‬
‫‪ R L .3‬ניתן לזיהוי יעיל ע"י מ"ט ‪ M‬הרצה זמן פולינומי‪( q  | w |  | y |  -‬פולינומי בקלט ‪.)  w , y ‬‬
‫‪ R L .2‬מגדירה את ‪. L   w |  y :  w , y   R L  L‬‬
‫נראה רדוקציה מתאימה‪ h  w    : h  h L -‬המקיימת‪:‬‬
‫‪ , h  w     SAT  w  L‬כלומר‪ ,‬קיים ‪ y‬באורך ‪ p  | w | ‬כך שמ"ט ‪ M‬מקבלת את ‪  w , y ‬בזמן‬
‫‪ q  | w |  p  | w |  ‬אם"ם קיימת השמת אמת המספקת את ‪. ‬‬
‫‪t‬‬
‫אם ‪ w  L‬אז קיים ‪ y‬וקיימת סדרת קונפיגורציות‬
‫‪,Ct‬‬
‫‪ C 0 ,‬המהווה חישוב מקבל של ‪ M‬על ‪. w , y‬‬
‫נתבונן על טבלת חישוב‪:‬‬
‫כניסות הטבלה הן מתוך ‪.   Q‬‬
‫בכל שורה נרשום ‪ t‬‬
‫‪ j q j  1‬‬
‫‪. C i   1 2‬‬
‫‪-‬‬
‫אם קונפיגורציה היא קצרה מ‪ , t -‬נוסיף ‪ $‬בסופה‪.‬‬
‫‪-‬‬
‫אם החישוב קצר מידי (הסתיים לפני "זמן" ‪ = t‬מצב‬
‫‪ ,) C t‬נשכפל את הקונפיגורציה האחרונה לכל השורות‬
‫התחתונות‪.‬‬
‫משתני ‪( a    Q , 0  i , j  t , xija : ‬משמעות‪  x ija  T :‬בתא ה‪  i , j  -‬של הטבלת חישוב‬
‫מופיע ‪.) a‬‬
‫בניית ‪.    0   A   m ove   cell : ‬‬
‫‪-‬‬
‫‪j qA‬‬
‫‪ ,  A   x t‬מקבל ‪ T‬אם"ם השורה האחרונה בטבלה היא קונפיגורציה מקבלת‪ ,‬המכילה‬
‫‪0 jt‬‬
‫‪ . q A‬המשמעות היא‪ :‬באיזשהו מקום ‪ j‬בשורה האחרונה‪ , t -‬רשום ‪. q A‬‬
‫‪-‬‬
‫‪  cell‬‬
‫‪i, j‬‬
‫‪0i, jt‬‬
‫‪‬‬
‫‪ ,  cell ‬כאשר‪ x i j a   :‬‬
‫‪i ja‬‬
‫‪   x‬‬
‫‪a  a‬‬
‫‪xi j a ‬‬
‫‪‬‬
‫‪a   Q‬‬
‫‪‬‬
‫‪i, j‬‬
‫‪ ,  cell‬כלומר‪ ,‬בכל תא ‪ i , j‬בטבלה‬
‫‪‬‬
‫מופיע בדיוק ערך אחד (משמעות השמאלי‪ :‬לפחות‪ ,1-‬משמעות הימני‪ :‬לכל היותר ‪.)1‬‬
‫‪-‬‬
‫‪x0 t b‬‬
‫‪ x 0 n wn  x 0 n 1 b ‬‬
‫‪ ,  0  x 0 0 q  x 01 w ‬מקבל ‪ T‬אם"ם השורה הראשונה בטבלה‬
‫‪1‬‬
‫‪0‬‬
‫מתארת קונפיגורציה תחילית של ‪ M‬על ‪. w , y‬‬
‫‪-‬‬
‫לכל ‪ , i  1‬השורה ה‪ i -‬מתקבלת מהשורה ה ‪ i  1‬ע"י צעד אחד (חוקי) של ‪. M‬‬
‫‪‬‬
‫‪ 3‬קונפיגורציות עוקבות נבדלות בלכל היותר ‪ 2‬מקומות‪.‬‬
‫‪‬‬
‫התא ‪  i , j ‬בטבלה מוגדר באופן יחיד מתוך ‪ 3‬התאים‪  j  1, j , j  1, j  2 :‬בשורה‬
‫שלפניו‪. i  1 -‬‬
‫‪‬‬
‫תבנית של ‪ 5‬תאים כזו תיקרא‪ :‬חוקית אם תהיה קונסיסטנטית עם ‪.  M‬‬
‫‪28‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫‪‬‬
‫‪ - S M‬אוסף התבניות הקונסיסטנטיות הוא קבוע (תלוי ב‪ M -‬ולא ב‪ .) w -‬קל לחשב אותו‬
‫מתוך‬
‫‪‬‬
‫‪ M‬וגודלו ‪. O 1 ‬‬
‫טבלת החישוב היא חוקית ‪ ‬כל תבנית במקום ‪  i , j ‬כלשהו היא חוקית‪.‬‬
‫‪j‬‬
‫‪ ,  m ove    mi ,ove‬משמעות ‪ -  mi ,ojve‬התבנית במקום ה‪  i , j  -‬היא חוקית‪.‬‬
‫‪i, j‬‬
‫לפי הטענה‪ ,‬ל‪  mi ,ojve -‬יש ‪ CNF‬בגודל ‪ O 1 ‬שתלוי רק ב‪ M -‬ולא ב‪ w -‬שמתאר אותו‪ .‬נשתמש בו‬
‫בתור ‪.  mi ,ojve‬‬
‫תקפות הרדוקציה‪:‬‬
‫כיוון‪  w  L :1-‬קיים חישוב מקבל של ‪ M‬על ‪ w‬עבור איזשהו‬
‫‪pn‬‬
‫‪ . y   0,1‬נתבונן בטבלת‬
‫החישוב המתאימה ונגדיר‪  x i j a  T :‬בטבלה הנ"ל במקום ‪  i , j ‬מופיע ‪ . a‬מהבנייה נובע‪ :‬כל‬
‫תתי הנוסחאות מסופקות‪ .‬ולכן ‪.   SAT‬‬
‫כיוון‪  h  w     SAT :3-‬קיימת השמה מספקת ‪ . ‬בפרט ‪ ‬מספקת את ‪ c e ll‬‬
‫‪i, j‬‬
‫יש ‪ a‬יחיד כך ש‪   x i j a  T -‬משרה טבלת חישוב‪ .‬מכיוון ש‪  -‬מספקת את‬
‫הטבלה הנ"ל מתחילה בקונפיגורציה תחילית של ‪ M‬על ‪ w , y‬עבור‬
‫‪pn‬‬
‫ולכן לכל ‪ i , j ‬‬
‫‪  0 ,  A ,  m ove‬‬
‫‪ , y   0,1‬מסתיימת‬
‫בקונפיגורציה מקבלת ומהווה חישוב חוקי ‪ M ‬מקבלת את ‪. w  L   w , y ‬‬
‫טענה‪. SAT  p 3 SAT :‬‬
‫הוכחה‪:‬‬
‫מספיק להראות איך לתרגם פסוקית אחת ‪u n ‬‬
‫‪ C   u1  u 2 ‬לפסוק ‪ .3CNF‬עבור פסוק כללי‬
‫אפשר להפעילת את התהליך על כל פסוקית לחוד‪.‬‬
‫‪-‬‬
‫אם ‪ C   u1 ‬אז מתרגמים אותה לפסוקית ‪.  u1  u1  u1 ‬‬
‫‪-‬‬
‫אם ‪ C   u1  u 2 ‬אז מתרגמים אותה לפסוקית ‪.  u1  u1  u 2 ‬‬
‫‪-‬‬
‫אם ‪ C   u1  u 2  u 3 ‬אז משאירים אותה כמו שהיא‪.‬‬
‫‪-‬‬
‫עבור ‪ u n ‬‬
‫שנסמן‬
‫ב‪, y n  2 -‬‬
‫‪ C   u1  u 2 ‬כך ש‪ n  4 -‬הפתרון מורכב יותר ודורש שימוש במשתני עזר‬
‫‪ . y1 , y 2 ,‬נחליף את הפסוק בסדרת הפסוקיות הבאה‪:‬‬
‫‪  y n  2  u n 1  u n ‬‬
‫‪.  u1  u 2  y1    y1  u 3  y1  ‬‬
‫אם בהשמה כלשהי ‪ C‬מסתפק אז קיים ‪ u k‬שמקבל ‪ . T‬נגדיר השמה שמספקת את סדרת‬
‫הפסוקיות החדשה‪ :‬למשתנים המקוריים יושמו אותם ערכים כמו בהשמה המקורית‪ .‬ואילו ל‪- y i -‬‬
‫ים יושמו ערכי אמת באופן הבא‪ y i  T :‬לכל ‪ i  k  2‬ו‪ y i  F -‬לאחרים‪ .‬השמה זו מספקת‬
‫את כל הספוקיות למעט ‪  y k  2  u k  y k 1 ‬ופסוקית זו מסתפקת שכן ‪ u k‬מקבל ערך ‪. T‬‬
‫בכיוון השני אם ישנה השמה שמספקת את הפסוק החדש אז אותה השמה כשהיא מצומצמת‬
‫מספקת גם את הפסוק המקורי‪ ,‬כי אם לא‪ ,‬בהכרח כל ה‪- u k -‬ים מקבלים ‪ F‬ולכן (יש להוכיח‬
‫באינדוקציה) כל ה‪ y i -‬ים מקבלים ‪ T‬ולכן הפסוקית‪  y n  2  u n 1  u n  :‬אינה מסתפקת‪ -‬סתירה‪.‬‬
‫‪ :2SAT‬שפה השייכת ל‪ .P-‬בהינתן פסוק ‪ 2CNF‬ניתן להכריע אם הוא ספיק או לא‪.‬‬
‫‪29‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫מכונת טיורינג אי‪-‬דטרמיניסטית‪:‬‬
‫מוגדרת כמו מ"ט רגילה לקבלת שפות למעט‪ ,  :  Q \ F      Q     L , R , S   :‬כלומר‪ :‬ישנה‬
‫‪2‬‬
‫אפשרות ל‪ 3-‬מצבים לכל היותר (אם ישנם ‪ 0‬מצבים‪ ,‬המסלול נקטע וזה שקול למעבר ל‪.) q R -‬‬
‫משמעות‪ :‬אם ‪   q , a     p 0 , b0 , d 0  ,  p1 , b1 , d 1 ‬אז אחד מהשניים מתבצע ולכן‪ :‬במקום מסלול‬
‫חישוב יש עץ חישוב‪.‬‬
‫הגדרה‪ :‬אומרים שמ"ט א"ד ‪ M‬מקבלת קלט ‪ x‬אם בעץ החישוב של ‪ M‬על ‪ x‬קיים מסלול‬
‫המסתיים ב‪. q A -‬‬
‫דוגמא‪. L    M | L  M      R E :‬‬
‫נתאר מ"ט א"ד ‪ M ‬עבור ‪ L ‬על קלט‬
‫‪: M‬‬
‫‪-‬‬
‫המכונה "תנחש" מחרוזת ‪. x   0,1‬‬
‫‪-‬‬
‫המכונה תבדוק (בצורה דטרמיניסטית) האם ‪ M‬מקבלת את ‪ x‬ותקבל אם"ם התשובה חיובית‪.‬‬
‫‪-‬‬
‫מימוש הניחוש‪ :‬ע"י מ"א א"ד דו‪-‬סרטית עם דרגת פיצול ‪ ,2‬כלומר‪ 2 :‬אפשרויות ליצירת מחרוזת‪-‬‬
‫הוספת ‪ ,1‬הוספת ‪ 0‬וסיום‪ .‬בכל מסלול חישוב נוצרת מחרוזת ולכל מחרוזת יש מסלול חישוב שבו‬
‫היא נוצרת‪.‬‬
‫*‬
‫נכונות‪  M  L :‬קיים ‪  x  L  M ‬קיים מסלול בו ‪ M ‬מנחשת את ‪ x‬ובמסלול הזה מגיעה‬
‫ל‪ . M  L  M    q A -‬ולכן‪. L  M    L :‬‬
‫משפט‪ :‬אוסף השפות הניתנות לקבלה ע"י מ"ט א"ד‬
‫= אוסף השפות הניתנות לקבלה ע"י מ"ט דטרמיניסטית‬
‫= ‪.RE‬‬
‫רעיון ההוכחה‪:‬‬
‫כיוון‪ :1-‬כל מ"ט דטרמיניסטית היא בפרט מ"ט א"ד‪.‬‬
‫כיוון‪ :3-‬בהינתן מ"ט א"ד ‪ M‬נראה שניתן לחשב את הפרדיקט הבא‪( M  x , w   1 :‬אם"ם ‪M‬‬
‫מקבלת את ‪ x‬במסלול ‪ .) w‬אופן חישוב הפרדיקט‪ :‬נעבור על כל ה‪ w -‬בסדר לקסיקוגרפי עד שנמצא‬
‫כזה שעבורו‪ M  x , w   1 :‬ואז נקבל‪.‬‬
‫הגדרה‪ :‬מ"ט א"ד ‪ M‬תיקרא פולינומית (או יעילה) אם קיים פולניום ‪ p  n ‬כך ש‪ M -‬עוצרת על‬
‫‪x‬‬
‫תוך ‪ p  | x | ‬צעדים בכל מסלולי החישוב שלה‪.‬‬
‫הגדרה נוספת ל‪ :NP-‬אוסף השפות ‪ L‬שקיימת עבורן מ"ט א"ד פולינומית‪.‬‬
‫הערה‪ :‬האם ‪ P=NP‬זו שאלה על כוחו של אי‪-‬דטרמיניזם (כלומר‪ :‬האם לכל שפה שיש לה מ"ט א"ד‬
‫יעילה יש לה גם מ"ט דטרמיניסטית יעילה?)‬
‫דוגמא‪ . SA T  N P :‬מ"ט א"ד ‪ M SA T‬על קלט ‪" ‬תנחש" השמה ‪ ‬באורך ‪= n‬מספר המשתנים‪.‬‬
‫ואז היא תבדוק באופן דטרמיניסטי האם ‪ ‬מספקת את ‪ ‬ומקבלת אם כן‪. M SA T  P O L Y .‬‬
‫‪30‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫משפט‪ :‬שתי ההגדרות של ‪ NP‬הן שקולות‪.‬‬
‫הוכחה‪:‬‬
‫כיוון‪ :1-‬נניח ש‪ L  N P -‬ע"פ הגדרה‪ .1-‬כלומר‪ :‬קיים יחס ‪ R L‬מתאים‪ .‬בפרט‪ -‬חסום פולינומית ע"י‬
‫פולינום ‪ p  n ‬וניתן לזיהוי פולינומי ע"י מ"ט פולינומית ‪ M‬שרצה ‪ . q  | x |  | y | ‬נראה ש‪-‬‬
‫‪L  NP‬‬
‫ע"פ הגדרה ‪ :3‬ע"י בניית ‪ M ‬א"ד פולינומית עבור ‪: L‬‬
‫‪-‬‬
‫היא תנחש מחרוזת ‪ y‬באורך ‪. p  | x |  ‬‬
‫‪-‬‬
‫תבדוק האם ‪  x , y   R L‬ע"י ‪ M‬המובטחת ותקבל אם"ם התשובה חיובית‪.‬‬
‫נכונות‪  x  L :‬קיים ‪ y‬באורך ‪ p  | x | ‬כך ש‪   x , y   R L -‬קיים מסלול בו מנחשים ‪ y‬כזה‬
‫‪. x  L  M  ‬‬
‫סיבוכיות‪ :‬צעד הניחוש‪ , O  p  | x |   -‬בדיקה‪- q  | x |  p  | x |    q  | x |  | y |  -‬פולינומי ב‪. x -‬‬
‫כיוון‪ :3-‬נניח ש‪ L  N P -‬ע"פ הגדרה‪ 3-‬ו‪ M -‬מ"ט א"ד פולינומית (עם פולינום ‪ ) p  n ‬מתאימה‪.‬‬
‫נראה ש‪ L  N P -‬ע"פ הגדרה‪ R L    x , w  | | w | p  | x |  , M  x , w   1 :1-‬ומתקיים‪:‬‬
‫‪-‬‬
‫‪ R L‬חסום פולינומית – מההגדרה‪.‬‬
‫‪-‬‬
‫‪ R L‬ניתן לזיהוי יעיל‪ -‬המימוש של ‪ M‬שראינו עולה | ‪ | w‬צעדים‪.‬‬
‫} ‪ {=}x|  w :  x , y   R L‬קיים מסלול ‪ w‬באורך לכל היותר ‪ p  | x | ‬שבו ‪ M‬מקבלת את ‪. L  { x | x‬‬
‫‪ NP‬כמערכת הוכחה‪:‬‬
‫שלמות‪ :‬ניתן להוכיח כל טענה נכונה‪.‬‬
‫נאותות‪ :‬שום הוכחה לא משכנעת בטענה לא נכונה‪.‬‬
‫טענה‪  N P :‬אוסף השפות ‪ L‬שיש עבורן מערכת הוכחה כנ"ל עם מוודא יעיל‪.‬‬
‫רעיון ההוכחה‪ L  N P :‬אז קיים יחס ‪ R L‬כך שההוכחה ‪ y‬מקיימת‪  x , y   R L :‬וגם שלמות‬
‫ונאותות ולכן ‪ R L‬ניתן לזיהוי יעיל ולכן לוידוא פולינומי‪.‬‬
‫צד שני‪ :‬נניח של‪ L -‬קיימת מערכת הוכחה כנ"ל ונוכיח ש‪. R L   x , y | V  x , y   1 . L  N P -‬‬
‫מהשלמות והנאותות והיעיליות של המוודא מקבלים את כל תכונות ‪. R L‬‬
‫‪31‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫התמודדות עם בעיות קשות‬
‫אלגוריתמי קירוב‪:‬‬
‫רוב עיסוק שלנו בקורס היה בבעיות הכרעה‪ ,‬אך ניתן לדבר באופן כללי יותר על בעיות חישוב‬
‫פונקציות‪ .‬בדרך‪-‬כלל חישוב הפטנקציות גם מאפשר לפתור את בעיית ההכרעה ולכן הוא קשה‬
‫לפחות כמו פיתרון בעיית ההכרעה‪ .‬מצד שני‪ ,‬כאשר התשובה היא מספרית (ולא רק "כן‪/‬לא") ניתן‬
‫לקוות שאפשר יהיה לקרב אותה‪ -‬להחזיר תשובה שאינה האופטימאלית‪ ,‬אבל היא "לא רעה"‪.‬‬
‫הגדרה‪ :‬תהא‬
‫‪‬‬
‫‪ f :  * ‬פונקציה‪.‬‬
‫מכונה ‪ M‬לחישוב פונקציות היא קירוב ‪- d‬חיבורי של ‪  d  0  f‬אם לכל * ‪ x  ‬מתקיים‪:‬‬
‫‪ , M  x   f  x   d‬כלומר‪. f  x   d  M  x   f  x   d :‬‬
‫‪‬‬
‫מכונה ‪ M‬לחישוב פונקציות היא קירוב ‪- ‬כפלי של ‪    1  f‬אם לכל * ‪ x  ‬מתקיים‪:‬‬
‫‪.  f x  M x   f x‬‬
‫‪1‬‬
‫הערה‪ :‬הקירובים הללו הם דו‪-‬צדדיים‪ ,‬אך ברוב המקרים דורשים שהקירוב יהי חד‪-‬צדדי‪ ,‬כלומר‪ :‬אם‬
‫‪ f  x ‬מייצג בעיית מינימיזציה לרוב דורשים כי יתקיים‪ f  x   M  x  :‬ואם ‪ f  x ‬מייצג בעיית‬
‫מקסימיזציה אז דורשים כי ‪. M  x   f  x ‬‬
‫הערה‪ :‬במקרים רבים לא קיימים אפילו קירובים טובים בזמן פולניומי‬
‫דוגמא‪ :‬מספר הצמתים בכיסוי הצמתים המינימאלי של ‪. fVC  G   G‬‬
‫אבחנה‪. f V C  P O L Y  V C  P :‬‬
‫טענה‪ :‬קיים אלגוריתם ‪-3‬קירוב עבור ‪ . f V C‬כלומר‪ ,‬קיים אלגוריתם ‪ A‬פולינומי שלכל ‪ G‬פולט כיסוי‬
‫צמתים המקיים‪. fVC  G   A  G   2 f VC  G  :‬‬
‫שידוך מקסימאלי‪ :‬שידוך שלא ניתן להרחבה (הגדרה שונה משידוך מקסימום)‪.‬‬
‫אלגוריתם יעיל למציאת שידוך מקסימאלי בגרף‪:‬‬
‫אתחול‪ . M   :‬עבור על כל הקשתות ‪ e  E‬לפי סדר כלשהו‪ .‬אם ‪ e‬זרה לכל הקשתות ב‪, M -‬‬
‫הוסף אותה ועדכן‪. M  M   e :‬‬
‫נכונות‪:‬‬
‫‪-‬‬
‫האלגוריתם פולינומי‪.‬‬
‫‪-‬‬
‫(באינדוקציה) ‪ M‬הוא שידוך לכל אורך האלגוריתם (ולכן גם בפלט)‪.‬‬
‫‪-‬‬
‫הפלט ‪ M‬הוא מקסימאלי כי אם בסוף יכולנו להוסיף קשת‪ ,‬הרי שגם כשעברנו עליה יכולנו‬
‫להוסיפה לקבוצה‪ M -‬קטנה יותר‪.‬‬
‫אלגוריתם ‪:A‬‬
‫‪-‬‬
‫מצא שידוך מקסימאלי ‪ M‬בגרף ‪. G‬‬
‫‪-‬‬
‫פלוט ככיסוי צמתים ‪ B‬את כל הצמתים שמשתתפים בקשתות ‪. M‬‬
‫נכונות‪:‬‬
‫‪-‬‬
‫‪ A‬פולינומי‪.‬‬
‫‪-‬‬
‫‪ B‬הוא כיסוי צמתים‪ -‬נבדוק שכל ‪ e  E‬מכוסה‪ :‬אם ‪ e  M‬היא מכוסה‪ .‬אם ‪ e  M‬וגם לא‬
‫מכוסה‪ ,‬אז ניתן להוסיפה אז ניתן להוסיפה לשידוך בסתירה למקסימאליות‪.‬‬
‫‪32‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫‪-‬‬
‫נסמן ב‪ B * -‬כיסוי צמתים בגודל מינימאלי‪ .‬מתקיים‪. | B * | | B | :‬‬
‫‪-‬‬
‫* ‪ B‬כיסוי ולכן מכיל צומת מכל קשת ב‪ . M -‬הקשתות הנ"ל זרות ולכן‪ | B * | | M | -‬ומצד שני‪:‬‬
‫| ‪. | B |  2 | M | 2 | B‬‬
‫*‬
‫צמצום מרחב הקלט‪:‬‬
‫אפשר לחשוב על מרחבי קירוב בתור "הרחבת מרחב הפלט"‪ -‬במקום לאפשר לכל קלט רק פלט‬
‫מסויים‪ ,‬מרחיב את מרחב הפלטים שאנחנו מוכנים לקבל (לפלטים "קרובים") ובכך נהפוך את הבעיה‬
‫לקלה יותר‪ .‬באופן דומה‪ -‬נוכל לצמצם את מספר הקלטים שאנחנו מוכנים לקבל‪ ,‬בשאיפה‪ -‬נוציא‬
‫מהבעיה את החלק ה"קשה" ונוכל לפתור את הבעיה המצומצמת בקלות‪.‬‬
‫דוגמא‪ :‬מציאת כיסוי צמתים בגרף דו‪-‬צדדי‪:‬‬
‫אלגוריתם פולינומי לבעיה (רדוקציה לזרימה)‪:‬‬
‫בהינתן גרף דו‪-‬צדדי ‪ , G   L , R , E ‬נבנה רשת זרימה ‪: N‬‬
‫נוסיף לגרף מקור ‪ s‬שיחובר לכל צמתי ‪ L‬בקשתות‬
‫שקיבולן ‪ ,1‬בור ‪ t‬שכל צמתי ‪ R‬יחוברו אליו עם קיבול ‪.1‬‬
‫ואת כל קשתות הגרף המקורי נגדיר לקיבול ‪. ‬‬
‫נחשב זרימת מקסימום ב‪ N -‬ונוציא אותה כפלט‪.‬‬
‫‪ :min-cut-max-flow‬ערך חתך מינימאלי=ערך זרימה‬
‫מקסימאלית‪.‬‬
‫טענה‪:‬‬
‫‪ .1‬אם קיים כיסוי בצמתים ב‪ B   B L , B R  , G -‬אז קיים חתך‬
‫‪ .3‬אם קיים חתך‬
‫‪‬‬
‫‪‬‬
‫‪  T , T‬ב‪ N -‬שקיבולו | ‪. | B‬‬
‫‪  T , T‬ב‪ N -‬שקיבולו ‪ k  ‬אז קיים כיסוי צמתים ב‪ G -‬שגודלו ‪. k‬‬
‫מסקנה‪ :‬גודל הכיסוי המינימאלי ב‪= G -‬גודל החתך המינימאלי ב‪= N -‬זרימה מקסימאלית ב‪. N -‬‬
‫הוכחה‪:‬‬
‫כיוון‪ :1-‬בהינתן כיסוי ‪ B   B L , B R ‬נבנה חתך‪ T   s  B L  B R -‬ונחשב את קיבול החתך‪:‬‬
‫‪-‬‬
‫קיבול הקשתות מ‪ s -‬ל‪ B L -‬הוא‪. | B L | :‬‬
‫‪-‬‬
‫קיבול הקשתות מ‪ B L -‬ל‪ B R -‬הוא‪( 0 :‬אין קשתות כאלה‪ ,‬כי קשת כזו לא מכוסה ע"י הכיסוי)‪.‬‬
‫‪-‬‬
‫קיבול הקשתות מ‪ B R -‬ל‪ t -‬הוא‪. | B R | :‬‬
‫ולכן קיבול החתך הוא‪. | B | :‬‬
‫כיוון‪ :3-‬בהינתן חתך‬
‫‪‬‬
‫‪  T , T‬שקיבולו ‪( k‬סופי)‪ ,‬נגדיר כיסוי‪. B R  T  R , B L  T  L :‬‬
‫כיוון שקיבול החתך הוא סופי‪ ,‬אין קשת מ‪ B L -‬ל‪ B R -‬ולכן כל הקשתות מכוסות בכיסוי‪ .‬ומכיוון שקיבול‬
‫החתך הוא ‪ , k‬ניתן לחזור על החשבון מהסעיף הקודם ונקבל כי ‪. | B | k‬‬
‫הערה‪ :‬אנחנו מכירים אלגוריתמים פולינומיאליים למציאת זרימת מקסימום ולכן יכולים לפתור את‬
‫הבעיה בזמן פולינומי‪.‬‬
‫‪33‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫גישות הסתברותיות‪:‬‬
‫סיבוכיות ממוצעת‪ :‬מניחים שקיים פילוג הסתברות ‪ D‬על הקלטים לבעיה‪ ,‬ואז מראים אלגוריתם‬
‫שבממוצע עובד בזמן פולינומיאלי (ביחס לפילוג הזה)‪.‬‬
‫הגישה הזו בעייתית‪ ,‬כיוון שאנחנו חייבים לדעת במדוייק מה ההסתברות לקבל כל אחד מהקלטים‬
‫האפשריים לבעיה‪ .‬למעשה‪ -‬לקבל את ‪ D‬בעצמו זו שאיפה כמעט לא פרקטית‪ .‬שימוש בפילוג לא נכון‪,‬‬
‫גם אם קרוב לפילוג האמיתי‪ ,‬יכול להשפיע בצורה קיצונית על האנליזה‪ .‬וגם אם ידוע לנו מהו ‪-D‬‬
‫החישוב המדוייק של התוחלת הוא (ברוב המוחלט של המקרים) קשה מאוד‪.‬‬
‫אלגוריתמים הסתברותיים‪ :‬אין פילוג על הקלטים‪ ,‬אנחנו מניחים את המקרה הרע ביותר (הקלט‬
‫הקשה ביותר)‪ .‬אך במקרה זה האלגוריתם עצמו הוא הסתברותי‪.‬‬
‫הרעיון המרכזי הוא שעל אותו קלט‪ ,‬ריצות שונות יעבדו באופן שונה‪ ,‬כאשר צעדים מסויימים‬
‫באלגוריתם יבוססו על החלטות רנדומליות‪ .‬ונשאל‪ -‬מה ההסתברות שהאלגוריתם יגיע לתשובה‬
‫הנכונה? ודורשים‪ :‬לכל קלט ‪ , x‬האלגוריתם מחשב נכון בהסתברות ‪. 0.5  P  p  x ‬‬
‫הגברה‪ :‬עבור בעיות הכרעה‪ ,‬אם חוזרים על האלגוריתם ‪ O  k ‬פעמים‪ ,‬ומחליטים ע"פ הרוב‪,‬‬
‫‪1‬‬
‫השגיאה קטנה ל‪-‬‬
‫‪k‬‬
‫‪2‬‬
‫‪.‬‬
‫דוגמא‪:Max-Cut -‬‬
‫נתון‪ :‬גרף (לא מכוון) ‪ G‬עם קיבולת ‪ c  e   0‬על כל‬
‫‪e E‬‬
‫צריך למצוא‪ :‬חתך בגרף עם קיבולת מקסימאלית‪.‬‬
‫נראה אלגוריתם הסתברותי יעיל ‪ ,A‬שלכל קלט ‪ G‬פולט חתך ב‪ G -‬כך שגודל החתך ‪ X‬ש‪ A-‬פולט‬
‫מקיים‪( E  X   12 opt :‬חישוב תוחלת) כאשר ‪ o p t‬הוא גודל החתך המקסימאלי‪.‬‬
‫אלגוריתם ‪:A‬‬
‫לכל צומת ‪ , v  V‬בהסתברות‬
‫‪1‬‬
‫‪2‬‬
‫הוסף את ‪ v‬לקבוצה ‪ . S‬אחרת‪ ,‬הוסף את ‪ v‬ל‪. S -‬‬
‫החזר את החתך‪.  S , S  :‬‬
‫אבחנות‪:‬‬
‫‪-‬‬
‫‪. opt   c  e ‬‬
‫‪-‬‬
‫עבור ‪ e   a , b ‬קשת כלשהי‪ ,‬ההסתברות שהיא קשת בחתך היא‪. 12 :‬‬
‫‪e E‬‬
‫‪-‬‬
‫לכל ‪ e‬נגדיר מ"מ‪ x e  1 :‬אם"ם ‪ e‬בחתך‪ .‬נקבל כי‪:‬‬
‫‪-‬‬
‫נגדיר‪ - X   c  e   x e :‬קיבול החתך שבחרנו‪.‬‬
‫‪1‬‬
‫‪2‬‬
‫‪and E  x e  ‬‬
‫‪1‬‬
‫‪2‬‬
‫‪. P  xe  1 ‬‬
‫‪e‬‬
‫ולכן‪:‬‬
‫‪-‬‬
‫‪opt‬‬
‫‪1‬‬
‫‪2‬‬
‫‪ c e ‬‬
‫‪1‬‬
‫‪2‬‬
‫‪.EX  ‬‬
‫‪e‬‬
‫לפי א"ש מרקוב‪:‬‬
‫‪1‬‬
‫‪3‬‬
‫‪‬‬
‫‪ c e ‬‬
‫‪‬‬
‫‪e‬‬
‫‪1‬‬
‫‪4‬‬
‫‪‬‬
‫‪.Px ‬‬
‫‪‬‬
‫ואם נפעיל הגברה‪ :‬נריץ את האלגוריתם ‪ k‬פעמים ונפלוט את החתך הגדול ביותר שפגשנו‪ .‬יתקיים‪:‬‬
‫‪k‬‬
‫‪‬‬
‫‪ c e  1   ‬‬
‫‪2‬‬
‫‪3‬‬
‫‪‬‬
‫‪e‬‬
‫‪1‬‬
‫‪4‬‬
‫‪‬‬
‫‪P X ‬‬
‫‪‬‬
‫‪34‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫פונקציות "קשות לקירוב"‪:‬‬
‫דוגמא‪ :‬בהינתן פסוק ‪ ,  CNF‬הפונקציה מחזירה את מספר ההשמות שמספקות אותו‪. # SAT    -‬‬
‫אבחנה‪ :‬לכל קבוע ‪ d  1‬אם קיים ‪- d‬קירוב עבור ‪ , # S A T‬כלומר‪ :‬אלגוריתם ‪ A‬יעיל מספיק המקיים‬
‫לכל ‪: ‬‬
‫‪ A     d  # SAT   ‬‬
‫‪# SAT   ‬‬
‫אז ‪. P  N P‬‬
‫‪d‬‬
‫הוכחה‪ :‬אם ‪ # SAT     0‬אז בשני אגפי אי‪-‬השווין נקבל מספר גדול מ‪ 0-‬ולכן בהכרח גם ‪A   ‬‬
‫ייתן מספר גדול מ‪ .0-‬אחרת‪ # SAT     0 ,‬ואז שני אגפי אי‪-‬השוויון הם ‪ 0‬ולכן גם ‪. A     0‬‬
‫בפרט‪ A    -‬מספק לנו פתרון פלינומיאלי ל‪ , SA T -‬וכיוון ש‪ SAT  N PC -‬זה מוכיח כי‪. P  N P :‬‬
‫כלומר‪ :‬קירוב כפלי לא מועיל כי הבעיה היא להבדיל בין מצב שבו ‪ # S A T‬שווה לאפס למצב שבו הוא‬
‫שונה מאפס‪ ,‬וכפל בקבוע לא מועיל כאן‪.‬‬
‫טענה‪ :‬לכל קבוע ‪ d  0‬אם קיים ‪- d‬קירוב חיבורי עבור ‪ , # S A T‬כלומר קיים אלגוריתם ‪ A‬יעיל‬
‫המקיים לכל ‪ # SAT     d  A     # SAT     d : ‬אז ‪. P  N P‬‬
‫הוכחה‪:‬‬
‫נראה אלגוריתם פולינומי ‪ B‬עבור ‪( SAT‬על קלט ‪:) ‬‬
‫‪-‬‬
‫נגדיר‪. k   log d   2 :‬‬
‫‪       y1  y1  ‬כאשר‬
‫‪-‬‬
‫נגדיר‪  y k  y k  :‬‬
‫‪-‬‬
‫נריץ את ‪ . A    ‬אם הפלט > ‪ -2d‬נקבל‪ .‬אחרת‪ -‬נדחה‪.‬‬
‫‪, yk‬‬
‫‪ y1 ,‬משתנים חדשים‪.‬‬
‫נכונות‪:‬‬
‫‪-‬‬
‫האלגוריתם פולינומי (כי ‪ A‬כזה)‪.‬‬
‫‪-‬‬
‫‪. # SAT      2 # SAT   ‬‬
‫‪k‬‬
‫‪  A      d  # SAT      0  # SAT     0    SAT‬דוחים‪.‬‬
‫‪  A      3 d  2 d  # SAT     2 k  4 d  # SAT     1    SAT‬מקבלים‪.‬‬
‫‪35‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫עולם הבעיות הנוכחי‬
‫משפט ‪ :Lander‬אם ‪ P  N P‬אז קיימות שפות ‪ L‬שאינן ב‪ P -‬ואינן ב‪. N P C -‬‬
‫סיבוכיות זיכרון‪ :‬סיבוכיות זיכרון של ‪ M‬על ‪ x‬זהו אינדקס התא הימני ביותר אליו ‪ M‬מגיעה‬
‫בריצתה על ‪. x‬‬
‫‪ :PSPACE‬אוסף השפות ‪ L‬שיש עבורן מ"ט בעלת סיבוכיות זיכרון פולינומית‪.‬‬
‫טענה‪ - P  P S P A C E :‬סיבוכיות זמן הריצה של מכונה תמיד גדולה יותר מסיבוכיות הזיכרון שלה‪.‬‬
‫הבדל עקרוני בין זמן ריצה לזיכרון‪ :‬זיכרון אפשר למחזר‪ ,‬זמן אי‪-‬אפשר‪.‬‬
‫שאלות פתוחות‪:‬‬
‫‪-‬‬
‫האם ‪? P  P SP A C E‬‬
‫‪-‬‬
‫האם ‪? N P  P SP A C E‬‬
‫‪. C o  N P   L | L  N P  :CO-NP‬‬
‫דוגמא‪ , SA T :‬אוסף כל פסוקי ה‪ CNF-‬שאינם ספיקים‪. SA T  C o  N P .‬‬
‫אבחנות‪:‬‬
‫‪‬‬
‫‪( P  C o  N P‬כי ‪ P‬סגורה למשלים ולכן‪.) L  P  L  P  L  NP :‬‬
‫‪‬‬
‫‪ Co-NP‬שלמות‪ :‬שפה ‪ L‬שנמצאת ב‪ N P -‬המקיימת‪ :‬לכל ‪. L   p L , L   C o  N P‬‬
‫סימון‪.Co-NPC :‬‬
‫מסקנה‪. SA T  C o  N P C :‬‬
‫טענה‪. C o  N P  P S P A C E :‬‬
‫שאלות פתוחות‪:‬‬
‫‪-‬‬
‫האם ‪? P  C o  N P‬‬
‫‪-‬‬
‫האם ‪? N P  C o  N P‬‬
‫‪‬‬
‫‪‬‬
‫‪ , E X P  L | L  D T IM E  2 n  , for a constat c :EXP‬אוסף השפות הניתנות לזיהוי ע"י מ"ט‬
‫‪c‬‬
‫בעלת זיכרון אקספוננציאלי באורך הקלט‪.‬‬
‫שאלות פתוחות‪:‬‬
‫‪-‬‬
‫האם ‪? E X P  P SP A C E‬‬
‫‪-‬‬
‫האם ‪? EXP  N P‬‬
‫‪P  N P  P SP A C E  E X P  R‬‬
‫כן ידוע‪P  EXP :‬‬
‫טענה‪ :‬קיימת שפה ‪ L‬כך ש‪. L  R \ P -‬‬
‫הוכחה‪:‬‬
‫נבנה ‪ L‬כזו ע"י תיאור של מ"ט ‪ U‬כך ש‪ L  L  U  -‬היא כמובטח‪.‬‬
‫‪ U‬על קלט ‪: x‬‬
‫‪-‬‬
‫מפרשת את ‪ x‬כ‪-‬‬
‫‪. x  1k 0 M‬‬
‫‪36‬‬
‫©ענת עציון‬
‫תורת החישוביות (‪ – )323232‬אביב תשע"א‬
‫‪-‬‬
‫מסמלצת את ‪ M‬על ‪ x‬למשך ‪ 2 k‬צעדים‪.‬‬
‫‪-‬‬
‫אם ‪ M‬עצרה במהלך הסימולציה‪ U ,‬מקבלת‪/‬וחה ההפך ממנה‪.‬‬
‫‪-‬‬
‫אם ‪ M‬לא עצרה במהלך הסימולציה‪ U -‬עוצרת ודוחה‪.‬‬
‫מתקיים‪( L  R :‬מהבנייה ‪ U‬עוצרת תמיד)‪.‬‬
‫‪ : L  P‬נניח בשלילה שקיימת מ"ט ‪ M‬הרצה זמן ‪ p  | x | ‬עבור השפה ‪. L‬‬
‫נבחר ‪ k‬מספיק גדול כך שמתקיים‪( 2 k  p  k  1 | M |  :‬קיים כזה כי הפונקציה באגף שמאל‬
‫אקספוננציאלית ובאגף ימין פולינומיאלית ב‪ k -‬ו‪ | M |  1 -‬הוא מספר קבוע)‪.‬‬
‫נתבונן בריצת ‪ U‬על הקלט‪:‬‬
‫‪ . 1 0 M‬על‪-‬פי האופן שבו בחרנו את ‪ , k‬בהכרח הסימולציה של ‪M‬‬
‫‪k‬‬
‫על ‪ x‬תסתיים בתוך פחות מ‪ 2 k -‬צעדים‪( .‬מספר הצעדים הדרושים ל‪ M -‬עד לעצירה‪:‬‬
‫‪ .) p  | x |   p  k  1 | M |   2 k‬ולכן ‪ U‬ו‪ M -‬יחזירו תשובות הפוכות על ‪ x‬ובפרט‪:‬‬
‫‪ , L  U   L  M ‬סתירה‪ .‬ולכן לא קיימת מ"ט פולינומית המקבלת את ‪ L‬ומתקיים‪. P  R :‬‬
‫מסקנה‪ :1-‬קיימת שפה ‪( L  E X P \ P‬השפה מהבנייה הקודמת)‪.‬‬
‫‪k‬‬
‫מסקנה‪ :2-‬קיימת שפה ‪( L  R \ E X P‬אותה הבנייה בדיוק רק עבור ‪ 2 2‬צעדים)‪.‬‬
‫שפות ‪ PSPACE‬שלמות‪:‬‬
‫‪ PSPACE‬שלמות‪ :‬שפה אי ‪ PSPACE‬שלמה אם"ם היא מקיימת‪:‬‬
‫‪. L  PSPAC E .1‬‬
‫‪ .3‬לכל ‪. L   p L , L   P S P A C E‬‬
‫מסקנה‪ :‬עבור ‪ L‬שהיא ‪-PSPACE‬שלמה‪:‬‬
‫‪. P  PSPAC E  L  P‬‬
‫‪. N P  PSPAC E  L  N P‬‬
‫דוגמאות‪:‬‬
‫‪, x n   is C N F ,  is T R U E ‬‬
‫‪, x n   is C N F ,  is T R U E ‬‬
‫‪, x n   is C N F ,  is T R U E ‬‬
‫‪ x n   x1 , x 2 ,‬‬
‫‪ x n    x1 , x 2 ,‬‬
‫‪Q n x n   x1 , x 2 ,‬‬
‫‪SA T   |    x1  x 2‬‬
‫‪SA T   |    x1  x 2‬‬
‫‪T Q B F   |   Q 1 x1Q 2 x 2‬‬
‫כאשר‪. Q i   ,  :‬‬
‫משפט סביץ'‪. PSPAC E  N PSPAC E :‬‬
‫‪37‬‬
‫©ענת עציון‬