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

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

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

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

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

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

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

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

מכיוון שאותי לימדו שבמתמטיקה כדאי לשאוף לטענה הכללית ביותר, ניסיתי לנסח את הטענה הכללית ביותר האפשרית, כלומר זו שדורשת הכי מעט תנאים מהמשפחה. ולדעתי, התנאי המינימלי הינו לא שהמשפחה תהיה מכונות טיורינג, אלא שהיא תהיה משפחה של מודלים הניתנים לקידוד בצורה כלשהי, ושהקידוד ניתן להעברה
כקלט למודל אחר.
שאלת תם 428183
אתה שוכח שיש בהוכחה הנחה נוספת על משפחת המודלים: עבור כל מודל A מהמשפחה שמקבל קלט דו-פרמטרי x,y, קיים במשפחה מודל B שמקבל קלט x, מריץ את A על x,x ועוצר אם ורק אם הפלט שהוא מקבל שלילי.

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

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

אתה יכול לתת לי דוגמה למודל (כלשהו, אבל רצוי מעניין) שבו בעיית העצירה מוגדרת, אך ההנחה הזאת לא מתקיימת?
להיפך 428290
אתה יכול לתת דוגמא למודל שבו בעית העצירה מוגדרת ואינו שקול למכונת טורינג?

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

חוץ מזה, מה שאורי כתב מתחתיי על מכונת טיורינג אוניברסלית.
להיפך (כה''ב) 428390
מעליך!
להיפך 428426
יש צורך בתיקון (*) (טכני בעיקרו), אבל למעט העניין הזה אתה צודק.

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

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

הפתרון: הקבוצה תהיה מ"ט "רגילות" (ביטיות) שרצות על סרטי טריטים (0,1,X) ואשר הוסיפו לכולן לגרף המצבים שאם הן קוראות "X" מהקלט הן מדפיסות בגדול "מה X?????" ויוצאות מיד. מ"ק תעשה אותו הדבר אלא אם הקלט שלה הוא "X" (בלבד), ואז היא תתיחס לכך כאילו הקלט היה מ"ק (וכמובן תחזיר תשובה שהמכונה עוצרת, ללא תלות בקלט שלה).
שתי הערות זניחות, ואחת פחות 428468
א. אורי כבר כתב "מעליך" מעליך. חוץ מזה, טעות, טעינו, טועים ושאלה יהיו הטעויות שלי.

ב. כדי להגן על כבודי: חשבתי לפרט את ההערה (*) בתגובה שלי, אבל החלטתי שזה מיותר.

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

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

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

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

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

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

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

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

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

נניח שאני מכונה אוניברסלית. אני מקבל כקלט קידוד של מכונת טיורינג וקלט עבורה. עכשיו, איך אני מבדיל בין מכונת טיורינג A שיש לה אורקל K, ובין *אותה* מכונת טיורינג A רק עם אורקל שונה, T? (כלומר, ההבדל היחיד הוא בתשובות שהאורקל יחזיר, לא בהתנהגות של A כתלות בתשובות הללו). אני חייב לקודד את ההבדל בין K ו-T כחלק מהקלט, אבל כאן אני נתקע; יש אורקל לכל שפה, אבל מספר השפות הוא לא בן מניה, ואם אני מסוגל לקודד משהו כקלט למכונת טיורינג, הוא מן הסתם שייך לקבוצה בת מניה (קבוצת כל הקידודים).
אורקל 428638
בדוגמה שאני נתתי, יש אורקל שונה לכל מכונה, אבל לכל מכונה יש אורקל יחיד. לא קיימות שתי מכונות, שהן אותה מכונה עם אורקלים שונים. לצורך העניין, אפשר להגדיר שקיים אורקל קבוע ברקע, אבל הוא מקבל כקלט את המכונה שניגשת אליו, ולמכונה אין אפשרות לשנות את הקלט הזה. ייתכן שזה לא מודל סנטדרטי (ואתה מוזמן לקרוא לאורקל הזה בשם אחר), אבל הוא מוגדר היטב, והבעיה שאתה מציין לא קיימת בו.
אורקל 428639
זה אכן מודל לא סטנדרטי, ולטעמי הוא גם די מוזר ומלאכותי (אורקל שמתנהג באופן שונה בהתבסס על המכונה שקוראת לו?) אבל על פניו אני אכן לא רואה איתו בעיה עקרונית.
אורקל 428645
פתחתי את הדיון הזה בכך שניסיתי להגיד שאת ההוכחה לבעיית העצירה ניתן להכליל כך שתחול לא רק על מכונות טיורינג, אלא על מודלים כלליים יותר. בהמשך הדיון הוברר שעדיין צריך להניח הנחות מסוימות על המודל. ניסיתי להפריך את הטענה שקיום מכונה אוניברסלית היא תנאי הכרחי לצורך ההוכחה, ולכן הבאתי מודל מאד מוזר, שכל מטרתו להוכיח את זה.

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

נניח שקיימת מכונה P שמקבלת כקלט מכונה M וקלט x ומחזירה האם M עוצרת על x (לכל M ולכל x). נבנה 3 מכונות כמעט אוניברסליות Q0,Q1,Q2, שכל אחת מהן מקבלת כקלט מכונה Q ומריצה את P על הקלט M=Q, x=Q. לאחר מכן, אם P מחזירה "M עוצרת על x" אז היא נתקעת, אחרת היא עוצרת. ההבדל ביניהן הוא שאם במהלך הסימולציה P פונה לאורקל שלה, כל אחת מהן מחזירה לה משהו אחר: Qi מחזירה לה i. מכיוון שלכל מכונה, התשובה של האורקל לאותה המכונה לא תלויה בקלט אלא רק במכונה, נובע שאחת המכונות האלו (לפחות) תסמלץ את P נאמנה (כי P תקבל בדיוק את הקלט שהאורקל היה מעביר לה) (*). נניח שזו Qi. כלומר, Qi היא מכונה שמקבלת כקלט מכונה Q ועוצרת אמ"מ Q לא עוצרת על הקלט Q. כעת נריץ את Qi על הקלט Qi, ואידך זיל גמור.

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

-------------------

(*) בהתחלה חשבתי שבכל מקרה Q2 מסמלצת את P נאמנה (לפחות, מספיק נאמנה כך שההוכחה תהיה תקפה). זאת משום שאם P לא קונסיסטנטית אז ממילא היא מקבלת 2 מהאורקל, ואם היא כן קונסיסטנטית, אז לא משנה מה היא מקבלת מהאורקל. העניין הוא שה"לא משנה" הזה מדבר רק על השאלה האם P תעצור, לא על השאלה איזה קלט היא תחזיר. לכן צריך להגדיר 3 מכונות "כמעט אוניברסליות", ולא אחת. אגב, אם אנחנו יודעים מראש שהמכונה P עוצרת על כל קלט אז בכל זאת מספיק להגדיר מכונה אחת - זו שמחזירה ל- P (כשהיא קואת לאורקל) את התשובה "מכונה זו עוצרת תמיד".
אורקל 428650
עכשיו אני ממש מבולבל. מה זה "אורקל" בשבילך? בשבילי אורקל הוא קופסה שחורה שמכריעה שפות - שואלים אותה על מילה והיא עונה "כן" אם המילה בשפה ו"לא" אם לא. ממה שכתבת כאן אני מקבל את הרושם שאתה תופס אורקל (לפחות בהקשר הזה) בתור משהו שיכול לענות רק תשובה אחת, שוב ושוב. מה שזה בעצם אומר הוא שכל מכונת טיורינג מגיעה עם עוד "ביט מידע חבוי" (שני ביטים, בעצם, כי יכולים להיות שלושה ערכים) שאינו חלק מהקידוד שלה ורק לה יש גישה אליו.
אורקל 428652
האורקל הזה הוא קופסה שחורה ששואלים אותה על מילה והיא עונה אחד מ- 3 ערכים. העניין הוא שבמודל הזה המכונה שניגשת לאורקל חייבת לתת כקלט לאורקל את עצמה. זה שקול לכך שכל מכונה מגיעה עם עוד טריט מידע חבוי, שאינו חלק מהקידוד שלה (אם כי מוגדר חד ערכית ע"י הקידוד שלה) ושרק לה יש גישה אליו.
אורקל 428653
טוב ויפה, אבל בוא נניח שעל קלט כלשהו P פונה לאורקל שלה פעמיים כדי לבדוק שתי מילים שונות, והוא מחזיר לה פעם 0 ופעם 1. אף אחת משלוש המכונות שהצעת לא מסמלצת את ההתנהגות הזו.

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

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

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

את האפשרות לפתור את הבעיה הזו עם מכונת טיורינג שיש לה אורקל *אחר* אי אפשר להפיל באותה הדרך שבה מפילים את בעיית העצירה.
שאלת תם 428071
וזה מזכיר לי את ההוכחה הנחמדה שאי אפשר לעשות אובפוסקציה למכונת טורינג, כלומר, אי אפשר לקחת תוכנה וליצור ממנה תוכנה מעורבלת כך שמי שיסתכל על התוכנה המעורבלת לא יוכל ללמוד ממנה יותר מאשר מאורקל שמבצע את אותו דבר.
שאלת תם 428087
אתה מוזמן לפרט (בינתיים התיאור לא כל כך ברור לי - האם אחרי הערבול עדיין ניתן להריץ את התוכנית? למה הצפנה באמצעות פנקס חד פעמי לא תוביל לתוצאה שכזו? ומה הכוונה ב"ללמוד מאורקל"?)
שאלת תם 428175
אני מניח שהכוונה למאמר המשובח הנ"ל
שאלת תם 428191
נשמע מעניין. התווסף לרשימת הקריאה.

חזרה לעמוד הראשי המאמר המלא

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