לדלג לתוכן

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

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

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

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

קיום שפות לא כריעות

[עריכה]

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

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

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

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

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


קיום שפות לא כריעות למחצה

[עריכה]

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

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

טענה:

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


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

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

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

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

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

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

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

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

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

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

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

- ארגז חול -