משתמש:חישוביות/HW2

מתוך ויקיפדיה, האנציקלופדיה החופשית

תורת החישוביות – 236343 – תרגיל בית 2[עריכת קוד מקור | עריכה]

שאלה 1[עריכת קוד מקור | עריכה]


  1. ברור שהפונקציה מלאה (לכל ערך הארגומנט ערכה מוגדר) וניתנת לחישוב (על ידי מ"ט עם מצב יחיד בלבד שהוא סופי).

  2. הפונקציה מלאה, כי לכל קידוד מוגדר האם הוא תואם למ"ט חוקית, ואם כן, מוגדר האם היא עוצרת בהנתן קלט ריק , אך בהרצאות הוכחנו שהפונקציה הזאת לא ניתנת לחישוב.
  3. נבנה מ"ט שעוצרת מיד במצב התחילתי, אם הקלט ריק, ונכנסת מיד ללולאה אינסופית, אם הוא לא. (זה יקח לנו שני מצבים, ואחד מהם סופי.)
    וערך הפונקציה לא מוגדר ל-.
    מקיום המכונה נובע שהפונקציה ניתנת לחישוב, אך היא אינה מלאה.

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

שאלה 2[עריכת קוד מקור | עריכה]

  1. , כי מקיום נובע ש- ניתנת לחישוב. עם זאת, , למשל , כש- היא המכונה עם מצב אחד לא סופי שמיד נכנסת ללולאה אינסופית ולא עוצרת על שום קלט. בכך הוכחנו ש-.
  2. מקבלת את , אז . אם ורק אם גם , אז . בכך הוכחנו ש-.
  3. אם עוצרת על כל קלט, אז היא מכריעה את , ומקיום מכונה המכריעה את השפה נובע ש-. לעומת זאת, מזה ש- לא נובע ש- מכריעה את , למשל היא יכולה להיכנס ללולאה אינסופית במקום דחיית הקלט ואף פעל לא לעצור במצב הדוחה. זה אומר ש-.
  4. : מקבלת את ודוחה כל קלט לא ריק, היא תמיד עוצרת אחרי צעד אחד למרות שהשפה היא סופית.
    : מקבלת את השפה ונכנסת ללולאה אינסופית מכל קלט המכיל אות אחרת. (זה יקח לנו שני מצבים, ואחד מהם סופי.) קיימת שפה אינסופית שעל הקלטים ממנה אינה עוצרת, אבל גם השפה שאותה המכונה מקבלת היא אינסופית.
    בכך הוכחנו שבין שתי השפות אין יחס הכלה.

שאלה 3[עריכת קוד מקור | עריכה]

היא שפה מסוימת, אז זה ערך קבוע.

מקרה א) (כי המכונה שמיד עוצרת ומקבלת מכריעה את השפה )

מקרה ב) (כי המכונה שעושה צעדים ימינה, מקבלת אם היא רואה תא ריק, ודוחה אם התא לא ריק, – מכריעה את השפה )

בשני המקרים,

שאלה 4[עריכת קוד מקור | עריכה]

  1. (משום ש- עוצרת תמיד, היא מכריעה את .)
  2. היא מחרוזת מסוימת, אז (נבנה מכונה שבהנתן קידוד מריצה את על . אם מקבלת את , אז היא תעצור, ולכן גם המכונה שלנו תעצור.) עם זאת, לפי משפט רייס (שייכות מילה לשפה הינה תכונה לא טריויאלית, לדוגמה השפות הסופיות ו- מדגימות שפות מ- בעלת וחסרת התכונה.)

שאלה 5[עריכת קוד מקור | עריכה]

  1. קודם כל, תוך 1000 צעדים המכונה יכולה להספיק להסתכל ב-1000 תאים לכל היותר, כלומר היא מקבלת או דוחה קלט על סמך 1000 האותיות הראשונות שלו בלבד. אז אם בכלל קיים קלט עליו המכונה עוצרת תוך 1000 צעדים, אזי קיימת בפרט מילה (הרישא שלו) באורך 1000 או פחות שעליה המכונה עוצרת גם כן תוך 1000 צעדים. מזה נובע ש-: נבנה מכונה שבהנתן מריצה את על כל מילה בסדר הלקסיקוגרפי בתורות, עד שתעצור, או לכל היותר 1000 צעדים; המכונה מקבלת את אם עצרה על הקלט שלה תוך 1000 הצעדים, ואחרת ממשיכה לקלט הבא בסדר הלקסיקוגרפי. אחרי המילה בת 1000 אותיות האחרונה המכונה שלנו עוצרת ודוחה. בכך, אם קיים קלט קצר מ-1000 (מספר בסדר הלקסיקוגרפי) שעליו M עוצרת תוך 1000 צעדים, אז גם המכונה שבנינו תעצור תוך צעדים לכל היותר, ותקבל; ואילו אם קלט כזה אינו קיים (ולפי הטיעון שלנו זה אומר שאין בכלל קלט עליו עוצרת תוך 1000 צעדים), אז המכונה שבנינו תעצור ותדחה אחרי צעדים לכל היותר. קיום מכונה המכריעה את השפה מוכיח את השייכות .
  2. : נבנה מכונה שבהנתן מריצה את על כל מילה באורך קטן מ-100 במקביל (מספר המלים האלה מסוים ושווה ), ועוצרת כשאחד מהתהליכים מקבל את המילה. המכונה שלנו תקבל את . עם זאת, לפי משפט רייס: ישנן שפות סופיות המכילות מלים קטנות מ-100 (למשל ) וגם שפות סופיות שלא מכילות כזה מלים (למשל ).

שאלה 6[עריכת קוד מקור | עריכה]

  1. הפרכה: נקח עם שני מצבים שאחד מהם סופי, שמיד מקבלת קלט ריק ולכל קלט אחר מיד נכנסת ללולאה אינסופית. שפתה . המכונה מיד תדחה קלט ריק ולכל קלט אחר מיד תיכנס ללולאה אינסופית, לכן שפתה תהיה . שתי השפות אינן משלימות: .
  2. הפרכה: נקח שבנינו בסעיף הקודם, ו עם שלושה מצבים ששניהם סופיים: היא מיד מקבלת קלט ריק, ומיד דוחה כל קלט אחר. ברור ש- והראנו ש-; עם זאת, המכונה מיד דוחה קלט ריק ומיד מקבלת כל קלט אחר, לכן שפתה .
  3. הפרכה: נקח שבהנתן קידוד מכונה מריצה אותה על קלט ריק, וכשהסימולציה מסתיימת (כלומר עוצרת על קלט ריק), דוחה. משום ש- אף פעם לא מקבלת, שפתה ריקה: , אבל מקבלת את השפה שעבורה הוכחנו בכיתה ש-. (מפני שהשייכות מהווה תכונה לא טריויאלית של שפה, אז לפי משפט רייס )