תרגיל

הרכבת תת־שגרות של מכונת טיורינג

בניית מכריע משתי מכונות וניתוח אורך פלט, זמן ומקום הניתן למחזור.

מקורות מטלות

מטלות סמסטר א׳ 2026מטלה רשמיתexercise1.pdfQ1מסמך קורס סמכותי
מטלות סמסטר ב׳ 2026מטלה רשמיתassignment1.pdfQ1מסמך קורס סמכותי
הכנה איכותית למבחן ופתרונות קהילתיים — נוי 2025פתרון קהילתיפתרון מטלה 1 - סיבוכיות .pdfQ1הכנה איכותית ופתרון קהילתי — אינו מקור רשמי

שאלה

המכונה MfM_f מחשבת את f(x)f(x) בזמן tf(n)t_f(n) ובמקום עבודה sf(n)s_f(n). המכונה MgM_g מכריעה אם f(x)∈Bf(x)\in B בזמן tg(m)t_g(m) ובמקום sg(m)s_g(m) לקלט באורך mm. בנו מכריע רב־סרטי עבור A={x:f(x)∈B}A=\{x:f(x)\in B\} וגזרו חסמי זמן ומקום מדויקים, לרבות שימוש חוזר בסרט פלט הביניים.

דרישות קדם

נדרשת שליטה בהגדרות היחידה ובניתוח אורכי קידוד. יש להבחין בין טענה מותנית, רדוקציה ואלגוריתם.

רמז 1

מכונה אינה יכולה לכתוב יותר ממספר קבוע של סימנים בצעד.

רמז 2

הגדירו בנפרד ℓ(n)\ell(n) כחסם על ∣f(x)∣|f(x)|.

רמז 3

בניתוח מקום הפרידו קלט לקריאה בלבד, מחרוזת ביניים וסרטי עבודה הניתנים למחזור.

פתרון מלא

נשתמש בסרטים נפרדים לקלט המקורי, לערך הביניים ולזיכרון עבודה. תחילה מדמים את MfM_f ומשאירים y=f(x)y=f(x) על סרט הביניים. לאחר מכן מאפסים או ממחזרים את סרטי העבודה ומדמים את MgM_g על yy. לכן

M(x) מקבלת  ⟺  Mg(f(x)) מקבלת  ⟺  f(x)∈B  ⟺  x∈A.M(x)\text{ מקבלת}\iff M_g(f(x))\text{ מקבלת}\iff f(x)\in B\iff x\in A.

שתי המכונות עוצרות ולכן גם המכונה המורכבת עוצרת.

נסמן ℓ(n)=max⁡∣x∣=n∣f(x)∣\ell(n)=\max_{|x|=n}|f(x)|. באלפבית קבוע כתיבת סימן דורשת צעד, ולכן ℓ(n)=O(tf(n))\ell(n)=O(t_f(n)). החסם הישיר במודל רב־סרטי הוא

T(n)=O ⁣(tf(n)+tg(ℓ(n))+ℓ(n)).T(n)=O\!\left(t_f(n)+t_g(\ell(n))+\ell(n)\right).

האיבר האחרון מכסה העתקה או מיקום מחדש, ובדרך כלל נבלע באחרים. אם כל הפונקציות פולינומיות, גם ההרכבה פולינומית.

במקום יש לשמור בפועל את yy. בשלב הראשון דרושים ℓ(n)+sf(n)\ell(n)+s_f(n) תאים; בשלב השני ℓ(n)+sg(ℓ(n))\ell(n)+s_g(\ell(n)). זיכרון נמדד לפי המקסימום בו־זמני ולא לפי סכום היסטורי, ולכן

S(n)=O ⁣(ℓ(n)+max⁡{sf(n),sg(ℓ(n))}).S(n)=O\!\left(\ell(n)+\max\{s_f(n),s_g(\ell(n))\}\right).

אם הגדרת המקום של MfM_f כבר כוללת את סרט הפלט, אז ℓ(n)≤sf(n)\ell(n)\le s_f(n) ואפשר לפשט למקסימום. אם סרט הפלט אינו מחויב, אסור להשמיט את ℓ(n)\ell(n) בלי טיעון זרימה מפורש.

בסרט יחיד עשויה להיות תקורת זמן פולינומית לסימולציה, אך מסקנת הסגירות הפולינומית נשמרת. הניתוח התקין מציין את מודל המכונה, את קונבנציית סרט הפלט ואת חסם אורך הביניים, ולא מסתפק באמירה ״פולינום אחרי פולינום״.

נקודות בדיקה

בדקו שהוכחתם את שני הכיוונים, שכל ענף או מכונה עוצרים, ושגודל הפלט וזמן הבנייה פולינומיים באורך הקלט.

טעויות נפוצות

  • הצבת tg(n)t_g(n) במקום tg(∣f(x)∣)t_g(|f(x)|).
  • חיבור מקום השלבים במקום לקיחת מקסימום.
  • השמטת מחרוזת הביניים כשהפלט אינו מחויב.

מקורות ואימות

  • Merged summary, pp. 14-20
  • 2026 transcript 2
  • Sipser 3e, secs. 3.2 and 7.1
  • מיפוי קטלוג: data/exercises.json; הניסוח והפתרון עצמאיים; הגשות אישיות אינן מקור סמכות.

הערת מקור וביטחון

התרגיל הוא סינתזה מקורית. רמת הביטחון משקפת אימות של הטענה המתמטית מול מקורות ספרי הלימוד המפורטים לעיל; מקורות הקורס משמשים רק כאשר זוהה כיסוי ישיר.