לדלג לתוכן

תורת החישוביות/כריעות שפות/שפות שאינן כריעות/ארגז חול

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי


בחלקים הקודמים ראינו מספר קבוצות של שפות: R, RE, coRE, וכמובן, קבוצת העל Σ. בחלק זה נראה ש"תמונת העולם" נראית כבתרשים הבא.

הייחסים בין קבוצות השפות

כלומר,

  • ישנן שפות בΣRE
  • ישנן שפות בRER
  • הקבוצה R הנה חתוך RE וcoRE (את זאת כבר ראינו).

הקבוצה ΣRE איננה ריקה

[עריכה]

שקלו לדלג על נושא זה

חלק זה משתמש בעוצמות קבוצות. אפשר להבין את שאר החומר גם ללא חלק זה.



משיקולי מניה אפשר לראות שבהכרח יש שפות בΣRE.

ראשית נראה שיש יותר שפות ממחרוזות.

טענה:

יש יותר שפות ממחרוזות (או: קבוצת כלל המחרוזות מעל Σ היא בת-מניה, ואילו קבוצת כל השפות אינה בת-מניה).


הוכחה: אפשר לראות שקבוצת השפות הנה קבוצת תתי הקבוצות של Σ, שהיא כידוע 20=.

לחלופין, אפשר להוכיח ישירות שקבוצת השפות אינה בת-מניה באופן דומה לאלכסון של קנטור.

נסמן את קבוצת כל המילים מעל Σ ב־x ונכתוב אותן לפי הסדר הלקסיקוגרפי:

x={x0,x1,x2,}

נניח בשלילה שקבוצת כל השפות היא בת מנייה, ונסמנה ב־A.

A={A0,A1,A2,}

נגדיר את השפה D:

D={xixiAi}

כלומר, אם המילה x0 נמצאת ב־A0 אז היא לא ב־D. אך אם אינה ב־A0 אז היא כן תהיה ב־D. ניתן לרשום זאת בצורת טבלה בה כל שורה היא אחת השפות Ai וכל עמודה היא אחת המילים x1 נסמן 1 אם xiAi ו־0 אחרת.

x0x1x2A0101A1001A2101

כעת נוכיח שהשפה D אינה אחת מהשפות Ai. נביט על האלכסון. אם עבור מילה מסויימת xiD הרי שהיא אינה ב־Ai, ולכן DAi. למעשה – האלכסון מגדיר את D.

בעזרת הטענה הקודמת, אפשר לראות שבהכרח ישנן שפות בΣRE

הוכחה: ההוכחה היא משיקולי ספירה.

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

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

הקבוצה RER איננה ריקה

[עריכה]

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

אי-כריעות בעיית העצירה

[עריכה]

נניח, על דרך השלילה, שקיימת מ"ט כריעה, העונה על השאלה האם מ"ט M עוצרת על קלט x. נקרא למכונה זו H. כעת נבנה את המכונה H באופן הבא:

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

כעת נקבל מצב אבסורד לגבי הריצה H(H):

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

אי-כריעות משלימת שפת האלכסון

[עריכה]

נתבונן בשפה המשלימה לשפת האלכסון, כלומר

LD={MML(M)}

.


טענה:

LDR

הוכחה: נניח בשלילה שאכן LDR, ולכן קיימת מ״ט MD שמכריעה את LD. האם המכונה תקבל את המחרוזת MD?

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


אי-כריעות שפות נוספות דרך תכונות בסיסיות של רדוקציות ומשפטי רדוקציות

[עריכה]

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


טענה:

השפה האלכסונית אינה כריעה, LDR.  

הוכחה: נשים לב ש־R סגורה למשלים. לפיכך, מכיוון ש־LDR, כך גם השפה המשלימה.


טענה:

LUR

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


טענה:

HPR

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


- ארגז חול -