משפט רייס


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

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

נניח שיש תוכנית Q שיכולה להחליט. נמצא שהיא נותנת תשובה גם לבעיית העצירה. בונים תוכנית חדשה M_x שמקבלת w. היא מפעילה קודם את M על x. אם M לא עוצר על x, אז M_x אף היא לא עוצרת. אם M כן עוצר, אז M_x מריצה תוכנית קבועה A על w.

אז M_x או לא עוצרת (ופונקציה ריקה), או שהיא עושה את מה ש-A עושה. לכן אם נוכל לבדוק האם ל-M_x יש את התכונה, נדע גם האם M עוצר על x. זה בלתי אפשרי. לכן אין תוכנית Q.

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

תגובות גולשים

התגובה תפורסם באתר לאחר אישור המערכת

עדיין אין תגובות. היה הראשון להגיב!