המותר האדם מן האלגוריתם?

אחד מהספרים שאני נאבק איתם בקביעות עוד מתחילת הלימודים שלי באוניברסיטה הוא The Emperor’s New Mind (“תודעת המלך החדשה”? על משקל “בגדי המלך החדשים”) של רוג’ר פנרוז. בפשטות, הספר מתעסק באחת השאלות הפילוסופיות המרתקות ביותר שאני, כאדם המתעניין במדעי המחשב, יכול להעלות על הדעת - האם התודעה האנושית היא בסך הכל אלגוריתם שרץ על מחשב ביולוגי מחוכם, או שיש בה “משהו נוסף”. נזכרתי בספר לאחר שמוסף הארץ פרסמו רשימת “שאלות ותשובות” מעניינת, ואחת מהן עסקה ב”למה המוח הוא בסך הכל מכונה?”. האם אתם שמים לב להנחה הסמויה בכותרת?

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

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

הטיעון עצמו, שמופיע בפרק 2 תחת הכותרת “How to outdo an algorithm”, נראה לי חזק ומשכנע ביותר ממבט ראשון. בפשטות, פנרוז מתאר מטלה חישובית כלשהי שבה אנחנו, בני האדם, נהיה טובים יותר מכל אלגוריתם שמבצע אותה; כלומר, שתמיד יהיה קלט שעליו האלגוריתם כושל באופן מחפיר ועם זאת אנחנו, בני האדם, נדע מה התשובה הנכונה במקרה הזה. זו וריאציה על טיעון דומה שמושמע לעתים קרובות (ומושמע גם בספר על ידי פנרוז עצמו) שמשפט גדל מראה שהחשיבה האנושית “גדולה יותר” מהפורמליסטיקה המתמטית שכן במהלך הוכחת המשפט נבנה פסוק ש”אי אפשר להוכיח אבל אנחנו יודעים שהוא נכון” (אני מגחיך פה את הטענה וכמובן שלא מתאר נכונה את משפט גדל; לזכותי ייאמר שיש לי פוסט שכן מנסה לתת תיאור הולם של המשפט).

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

המושג של “אלגוריתם” הוא מעורפל. ההגדרה הפורמלית לאלגוריתם היא באמצעות מין מחשב מתמטי אבסטרקטי שמכונה “מכונת טיורינג”. הפרטים הספציפיים של איך המכונה מבצעת חישובים לחלוטין לא רלוונטיים כרגע; הדבר היחיד שחשוב הוא שניתן לקודד את התיאור של מכונת טיורינג באמצעות מחרוזת תווים סופית, ואפשר לקחת את המחרוזת הזו ולסמלץ את ריצת המכונה שהיא מקודדת (ליצור שיודע לבצע סימולציה שכזו קוראים “מכונת טיורינג אוניברסלית”, אבל באותה מידה אפשר גם לעשות את זה במחשב האישי שלכם). התפקיד של מכונת טיורינג בחיים הוא להמיר קלטים לפלטים - אם נותנים לה 7, היא עושה המון חישובים ובסוף כותבת 13, ואז אומרים שהקלט 7 עבר לפלט 13. זה אולי כבר נשמע מוזר לתוהים על סוגיית “האם המוח הוא מכונת טיורינג”, שכן המוח בכלל לא עסוק בתרגום קלטים לפלטים - הוא פשוט קיים! כמובן, כשהמוח מקבל אותות חשמליים מהעיניים, למשל, הוא מתרגם אותם למה שאנחנו מבינים בתור “ראייה” בתודעה שלנו, אבל לחשוב על זה כפלט מספרי זה קצת מוזר. כלומר, יש כאן חוסר התאמה כלשהו כבר ברמת ההגדרות. אבל במקום להסתבך עם הגדרות יותר מחוכמות לאלגוריתמים, אפשר לעשות בדיוק את ההפך - לטעון שהאדם מנצח את מכונת הטיורינג כבר במגרש הביתי שלה; לחשוב על אותו אספקט של המוח שכן עובד עם קלט/פלט. במילים אחרות, לשאול - האם אדם עם עט ונייר, שמקבל מחרוזת על פיסת נייר ובסוף מחזיר מחרוזת חדשה על פיסת נייר, יכול לעשות דברים שמכונות טיורינג לא יכולות?

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

פנרוז מניח שקיים מספור כלשהו של מכונות הטיורינג הקיימות, \( M_{1},M_{2},M_{3}\dots \) וכמובן שאכן יש כזה - אפשר למספר את כל המחרוזות בעולם, וכל מחרוזת מייצגת מכונת טיורינג כלשהי (גם למחרוזת שנראית כמו ג’יבריש ולא כמו קידוד “חוקי” של מכונת טיורינג אפשר לייחס מכונת טיורינג - למשל, לומר שכל מחרוזות הג’יבריש בעולם מייצגות מכונה שעוצרת מייד על כל קלט ומחזירה פלט 0). מכאן שבהינתן מספר \( n \) אפשר לדעת בקלות מהי \( M_{n} \), ומעתה ואילך אניח שזה מובן מאליו.

כעת, נסמן ב-\( M_{n}\left(k\right) \) את הפלט של המכונה ה-\( n \)-ית על הקלט שהוא המספר \( k \). בתיאוריה, הפלט הזה יהיה מספר; בפועל, אף אחד לא מבטיח לנו שהחישוב של \( M_{n} \) על \( k \) חייב להסתיים! זו הבעיה הבסיסית עם מכונות טיורינג וחישובים בכלל; החישוב מורכב ממספר שיכול להיות אינסופי של צעדים, ואם ננסה להגביל את מספר הצעדים שמותר למכונה לבצע, קרוב לוודאי שנצמצם משמעותית את כמות הבעיות שאנחנו יכולים לפתור (כמובן, לא עד כדי כך משמעותית; לרובן המוחץ של הבעיות שמתמודדים איתן במדעי המחשב אכן קיימים פתרונות-מוגבלי-צעדים שכאלו). על כל פנים, כשמריצים מכונת טיורינג תמיד קיימת הסכנה שהיא לא תעצור בכל, ואת המקרה הזה פנרוז מסמן ב-\( M_{n}\left(k\right)=\square \).

האתגר החישובי שמכונות טיורינג לא מסוגלות להתמודד איתו הוא לדעת, בהינתן מכונה וקלט, האם היא עוצרת על הקלט או לא. פנרוז שואל האם קיימת מכונה \( H \) שעל זוג הקלטים \( \left(n,k\right) \) מחזירה 1 אם \( M_{n} \) עוצרת על \( k \), ו-0 אם \( M_{n} \) לא עוצרת על \( k \) (כלומר, \( M_{n}\left(k\right)=\square \)). התשובה היא “לא” חד משמעי. הסיבה לכך היא שאם \( H \) כזו הייתה קיימת, היינו מנצלים אותה באופן הבא: בונים מכונה \( Q \) (זהו, אין יותר סימונים פרט לכך!) שעל קלט \( n \) עושה את הדבר הבא: מחשבת את \( H\left(n,n\right) \); אם \( H\left(n,n\right)=0 \) אז \( Q \) פולטת 1; ואם \( H\left(n,n\right)=1 \) אז \( Q \) מחשבת את \( M_{n}\left(n\right) \) (מריצה את המכונה שמקודדת על ידי המספר \( n \), על הקלט שהוא \( n \) עצמה) ועונה שונה ממנה - למשל, מוסיפה 1 לפלט. באנג! אתם רואים את הסתירה?

אה… כן, אני חייב להודות שבדרך הצגת הדברים הזו של פנרוז די מבלבל לראות את הסתירה. כאמור, יש הגיון כלשהו בגישה שלו, אבל אני חושב שהוא מסתבך יותר מדי. בואו בכל זאת נמשיך לרגע עד הסוף ונראה איך הוא מציג את הדברים. פנרוז מתאר את מה שקרה באמצעות המשוואה \( Q\left(n\right)=1+M_{n}\left(n\right)\times H\left(n,n\right) \), מה שאכן נכון תחת המוסכמה ש-\( \square\times0=0 \) (זה ממדל את ה”אם \( H\left(n,n\right)=0 \) אז \( Q \) פולטת 1”). כעת טיעון המחץ שלו הוא שגם \( Q \) היא מכונת טיורינג חוקית, ולכן מקודדת על ידי מספר \( k \). במילים אחרות, \( Q=M_{k} \). כעת, איך \( Q \) מתנהגת על הקלט \( k \)? קיבלנו את המשוואה \( M_{k}\left(k\right)=1+M_{k}\left(k\right)\times H\left(k,k\right) \), וקל לראות שהמשוואה הזו תמיד שגויה, בין אם \( H\left(k,k\right)=1 \) (ואז נקבל \( M_{k}\left(k\right)=1+M_{k}\left(k\right) \)) ובין אם \( H\left(k,k\right)=0 \) (ואז נקבל \( \square=1+0 \)). הגענו לסתירה, ולכן ההנחה שלנו ש-\( H \) אכן קיימת ויודעת להגיד לכל מכונה וקלט האם הם עוצרים או לא שגויה - סוף ההוכחה.

אני חושב שפנרוז מסתבך כאן הרבה יותר מדי עם המשוואות הללו. כאמור, אני מבין את הרצון שלו לדמות את כל העסק לאלכסון של קנטור (למרות שבשלב זה של הספר הוא טרם הציג את האלכסון של קנטור - עוד בעיה של הספר היא הסדר המבולבל שבו הוא מציג דברים) אבל לטעמי הוא מפספס קצת את לב הבעיה והורג קוראים. בואו ננסה להבין מה באמת הבעיה עם \( Q \) המדוברת. איך היא רצה על \( k \)? ובכן, זה תהליך דו שלבי. ראשית היא מחשבת את \( H\left(k,k\right) \) - לגיטימי לחלוטין. אם \( H\left(k,k\right)=0 \) אז היא פולטת מייד 1; ואילו אם \( H\left(k,k\right)=1 \) אז היא עוברת להריץ את \( M_{k} \) על הקלט \( k \). אבל, כפי שאמרנו, \( Q=M_{k} \). במילים אחרות, \( Q \) על הקלט \( k \) פונה להריץ את עצמה על הקלט \( k \). \( Q \) על \( k \) מריצה את \( Q \) על \( k \)! מבינים את הבעיה? גם באותה ריצה פנימית של \( Q \) על \( k \) היא תתחיל להריץ את \( Q \) על \( k \), וכן הלאה וכן הלאה עד סוף הדורות. כלומר, \( Q \) אינה עוצרת על \( k \).

מה קיבלנו? אם \( H\left(k,k\right)=0 \), כלומר \( H \) אומרת “\( M_{k} \) לא תעצור על \( k \)”, אז \( Q \) עוצרת מייד על \( k \) ובכך עושה צחוק מ-\( H \); ואם \( H\left(k,k\right)=1 \), כלומר \( H \) אומרת “\( M_{k} \) תעצור על \( k \)” אז \( Q \) נכנסת (בטעות!) ללולאה אינסופית ובכך שוב עושה צחוק מ-\( H \). הבעיה היא בכלל לא בפלט של \( Q \); הבעיה היא בכך ש-\( Q \) מתנהגת הפוך ממה ש-\( H \) מנבאת לה.

זה מוביל אותנו לאופן שבו בדרך כלל מנסחים את בעיית העצירה - בונים \( Q \) שעל קלט \( n \) מחשבת את \( H\left(n,n\right) \); אם \( H\left(n,n\right)=0 \) אז \( Q \) עוצרת מייד, ואם \( H\left(n,n\right)=1 \) אז \( Q \) נכנסת ללולאה אינסופית. בפועל זו גם בדיוק הבניה של פנרוז, רק שהוא מעמיס עליה עוד פרטים מיותרים.

חדי העין מביניכם אולי שמים לב שגם בבניה ה”סטנדרטית” הזו יש משהו מיותר - אנחנו ממילא לא מתעניינים ביכולת של \( H \) לענות על קלטים \( \left(n,k\right) \) שבהם \( n\ne k \); אפשר היה להראות שאפילו בעיה פחות שאפתנית מבעיית העצירה אינה ניתנת לפתרון - הבעיה “בהינתן \( n \), האם \( M_{n} \) עוצרת על \( n \)?” ואכן, כשאני למדתי קורס בתורת החישוביות זו הייתה הבעיה הראשונה שאת אי הפתירות שלה הוכחנו (עם זאת, בהצגות פופולריות של הבעיה עדיין מעדיפים את הניסוח הכללי יותר של בעיית העצירה שכן הוא מרגיש “טבעי” יותר לקוראים; אבל פנרוז לא כותב הצגה פופולרית, הוא נכנס הרבה יותר מדי לפרטים טכניים).

אם כן, הראינו שמכונות טיורינג לא יודעות לפתור את בעיית העצירה. אם היינו יודעים שבני אדם כן יכולים לפתור את בעיית העצירה (כלומר, לכל זוג \( \left(n,k\right) \) לומר אם \( M_{n} \) עוצרת על \( k \) או לא) זה היה מוכיח מייד שבני אדם הם אכן יותר ממכונות טיורינג גם מבחינה חישובית טהורה. לרוע המזל, אנחנו לא יודעים שבני אדם יכולים לפתור את בעיית העצירה, ואני מאמין בכל לבי שהם לא. פנרוז מסתפק בטיעון הרבה יותר צנוע כדי לשכנע אותנו שבני אדם הם בכל זאת “קצת יותר” (בשלב זה של הספר; אני משער שבהמשך מגיעים טיעונים חזקים בהרבה). כאמור, הטיעון נשמע מאוד משכנע ממבט ראשון - אני ממליץ לכם לחשוב עליו קצת ולחפש בו בעיות.

פנרוז אומר - “אז נכון שראינו שבעיית העצירה לא פתירה, אבל בינתיים לא ממש ראינו אף מכונה ספציפית שאיננו יכולים לדעת אם היא עוצרת או לא; למעשה, השיטה שראינו קודם אומרת לנו במובלע האם המכונה שנבנית בה עוצרת או לא”. כדי להבהיר את המשפט הזה פנרוז מסתכל כעת על מכונה \( H \) שמנסה לפתור את בעיית העצירה. הדרישה שלנו מ-\( H \) היא שהיא לא תטעה - אם \( H \) עוצרת על קלט \( \left(n,k\right) \) עם תשובה, התשובה חייבת להיות נכונה. מצד שני, אנחנו מרשים ל-\( H \) לא לעצור על חלק מהקלטים - אלו קלטים ש-\( H \) “נכשלת” עליהם. מכונות כאלו קיימות בודאות; הנה דוגמה לאחת כזו - \( H \) שעל קלט \( n,k \) מריצה את \( M_{n} \) על \( k \) ומחזירה 1 אם \( M_{n} \) עצרה. זו כמובן מכונה מטופשת למדי (היא לא עונה 0 אף פעם) אבל היא מתאימה לגמרי להגדרה שלנו. בנוסף, כמובן שאפשר לחשוב על שיפורים פשוטים ל-\( H \) שיאפשרו לה לגלות לפעמים אם \( M_{n} \) לא עוצרת על \( k \) (שיפורים כאלו כבר תלויים בהגדרה המדוייקת של מכונת טיורינג והאופן שבו היא מבצעת חישובים - אתם לא חייבים לשבור את הראש בחיפוש אחריהם).

כעת פנרוז טוען שבהינתן \( H \) כזה, אנחנו מסוגלים למצוא מכונה \( M_{k} \) כך ש-\( H \) נכשל ולא עוצר על \( \left(k,k\right) \) אבל אנחנו יודעים את התשובה הנכונה על \( \left(k,k\right) \). הבניה היא בדיוק אותה בניה כמו קודם - בונים מכונה \( Q \) שמחשבת את \( Q\left(n\right)=1+M_{n}\left(n\right)\times H\left(n,n\right) \). וכמו קודם, \( Q \) היא חוקית לחלוטין ולכן \( Q=M_{k} \) עבור \( k \) מסויים; וכמו קודם, אם \( H\left(k,k\right)=0 \) או \( H\left(k,k\right)=1 \) המשוואה \( M_{k}\left(k\right)=1+M_{k}\left(k\right)\times H\left(k,k\right) \) מובילה לסתירה ולכן לא ייתכן שהמקרים הללו מתרחשים; אבל לא הגענו לסתירה במתמטיקה כי כעת ייתכן גם ש-\( H\left(k,k\right)=\square \) ואז נקבל משוואה מהצורה \( \square=\square \) שהיא בסדר. במילים - הדבר היחיד שיכול לקרות הוא ש-\( H \) כלל לא תעצור על \( \left(k,k\right) \), ולכן גם \( Q \), שמריצה אותה, לא תעצור על \( k \). כלומר, \( H \) נכשלת בנסיון שלה לדעת אם \( Q \) עוצרת על \( k \), אבל אנחנו כן יודעים זאת - אנחנו יודעים בודאות ש-\( Q \) אינה עוצרת על \( k \). זה מראה שאנחנו יותר טובים מ-\( H \) - כי כל דבר ש-\( H \) יכולה לדעת גם אנחנו יכולים (כי נסמלץ את הריצה של \( H \) - אפשר לעשות זאת עם נייר ועט וסבלנות), ובנוסף אנחנו יודעים משהו ש-\( H \) לא יכולה לדעת.

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

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

In fact the procedure is so well defined that we could find an algorithm for generating k, given H. So, before we get too complacent, we have to realize that this algorithm can improve on H since, in effect, it 'knows' that \( M_{k}\left(k\right)=\square \) — or does it? It has been helpful in the above description to use the anthropomorphic term 'know' in reference to an algorithm. However, is it not we who are doing the 'knowing', while the algorithm just follows the rules we have told it to follow? Or are we ourselves merely following rules that we have been programmed to follow from the construction of our brains and from our environment? The issue is not really simply one of algorithms, but also question of how judges what is true and what is not true.

אני לא יכול לומר שאני מבין עד הסוף את מה שפנרוז אומר כאן על “לדעת”, וזה נראה לי כמו התחמקות. אבל זה לא חשוב; פנרוז מפספס משום מה את הבעיה העיקרית כאן - גם \( H \) יכולה “לדעת” ש-\( Q \) לא עוצרת; היא פשוט לא יכולה להגיד את זה.

האס שאני שולף מהשרוול כאן (ואני בטוח שפנרוז מכיר אותו - פנרוז מפגין בקיאות רבה בחומר שהוא כותב עליו; לכן חורה לי שהוא בכלל לא מתייחס לזה) הוא מה שנקרא “משפט הרקורסיה של קלייני”, שתיארתי כבר (לא בשם זה) בפוסט בעבר. משפט הרקורסיה הוא תוצאה אלגנטית ויפהפיה, שמראה שכאשר בונים מכונת טיורינג, אפשר להניח שהיא יודעת את הקידוד שלה עצמה; היא מסוגלת איכשהו לבצע בתחילת הריצה שלה חישוב ולייצר את הקידוד הזה יש מאין - “נס” מתמטי שכזה, שכמובן מעוגן היטב במציאות (לא קשה לכתוב בפועל תוכניות מחשב שמבצעות את הנס הזה). מכיוון שפנרוז מנסה לתקוף כל \( H \) שמנסה לפתור את בעיית העצירה, בפרט הוא צריך לתקוף גם \( H \) כזו שכחלק ממה שהיא עושה היא מחשבת את \( Q \) מתוך הקידוד שלה עצמה, ואז בודקת האם \( Q=M_{n} \), כאשר \( \left(n,n\right) \) הוא הקלט שלה. אם התשובה חיובית, אז \( H \) יודעת שהקלט שהיא מטפלת בו כרגע הוא מה שאכנה “הנודניק של פנרוז”. היא יודעת שהקלט הנוכחי היא מכונה שמנסה להכשיל אותה. ו-\( H \), גיבורה טרגית אמיתית, גם יודעת שאין לה שום דרך לענות נכון על הקלט \( n \); אם \( H \) תענה 1 (“המכונה \( M_{n} \) עוצרת על \( n \)”) אז אותה \( M_{n} \) זדונית לא תעצור על \( n \); ואם היא תענה 0, אז \( M_{n} \) המרשעת כן תעצור על \( n \). הנקודה המהותית כאן היא שהפרדוקסליות לא נובעת ממה ש-\( H \) יודעת אלא ממה ש-\( H \) אומרת: \( Q \) לוקחת את התשובה של \( H \) ועושה ממנה חוכא ואיטלולא. זה לא אומר ש-\( H \) לא מבינה מראש שזה מה שהולך לקרות. אם \( H \) תענה תשובה כלשהי, \( Q \) תגרום לתשובה הזו להיות שקר, ולכן \( H \) חייבת לא לעצור, ובכך לגרום גם ל-\( Q \) לא לעצור. וכאשר \( H \) תרוץ ותרוץ עוד ועוד אל הנצח, היא תדע כל הזמן שהקלט הנוכחי שלה לא הולך לעצור. היא פשוט לא תוכל לעצור ולהגיד את זה.

אם כן, אם אנחנו מבצעים הפרדה פילוסופית בין “מה שהמכונה יודעת” ובין “מה שהמכונה אומרת”, אין ספק שהדוגמה של פנרוז קורסת לחלוטין. אנחנו בני האדם, חד משמעית, לא יודעים יותר מאשר המכונה \( H \). אבל, האם פנרוז מרשה את זה? נניח שלא. נניח שהמכונה חייבת לומר את מה שהיא חושבת כדי שנדע שהיא חושבת אותו; במקרה זה אכן \( H \) “לא יודעת” ש-\( Q \) לא תעצור, אבל אנחנו כן. במילותיו של פנרוז:

Let us see how this comes about. Suppose we have some algorithm which is sometimes effective for telling us when a Turing machine will not stop. Turing's procedure, as outlined above, will explicitly exhibit a Turing machine calculation for which that particular algorithm is not able to decide whether or not the calculation stops. However, in doing so, it actually enables us to see the answer in this case! The particular Turing machine calculation that we exhibit will indeed not stop.

וכאן אנחנו מגיעים לנקודה המרכזית, ה”שקר” שאני רואה אצל פנרוז. המשחק שהוא דורש שנשחק כאן הוא לא הוגן - הוא דורש מהמכונה “להכריע” (Decide) האם החישוב עוצר או לא, כש”הכרעה” שכזו חייבת לבוא לידי ביטוי בסיום החישוב והוצאת פלט; אבל מבני האדם הוא דורש רק שהם “יראו” (See) האם התשובה נכונה או לא. בשום מקום הוא לא דורש מבני האדם להשתתף באותו מבחן כמו המכונות ולטרוח לכתוב את התשובה על דף!

ומה יקרה אם בני האדם יחוייבו להשתתף במשחק? אם הם יחוייבו לכתוב על דף, או לומר בקול, או משהו, את מה שהם “רואים”? כמובן, הם יפסידו מייד; כי אז נבנה מכונה \( Q \) באותו אופן כמו קודם, רק שבמקום להריץ את \( H \) על \( \left(n,n\right) \) המכונה \( Q \) תשאל את האדם “תגיד, מה יש לך לומר על \( \left(n,n\right) \)?” והאדם יהיה באותה בעיה שבה \( H \) הייתה קודם - אם הוא מזהה ש-\( M_{n}=Q \) הוא יודע בודאות ש-\( M_{n} \) מנסה להכשיל אותו, אבל הוא לא יכול להגיד זאת. הוא יהיה חייב לשתוק לנצח, ואז רובוט-פנרוז יכתוב עליו בספר “The Emperor’s New Algorithm”, תחת הכותרת “How to outdo a human’’. בעסה לאדם.

בפסקה הקודמת אני טיפה מרמה, כי הרעיון הוא ש-\( Q \) תוכל להסתדר בעצמה, בלי אדם בכלל - שהיא תוכל לסמלץ את האדם במובן זה שהיא תדע מה הפלט שהוא יוציא לכל קלט שהיא נותנת. אם זה לא נכון, כמובן שהאדם חזק מהמכונה - אבל זו תהיה בדיוק הנחת המבוקש של פנרוז; מה שקראתי לו קודם “אם האדם חזק מהמכונה, אז האדם חזק מהמכונה”. כל עוד האדם אינו חזק חישובית מהמכונה - כלומר, כל עוד לכל קלט שנותנים לאדם, גם המכונה יכולה לדעת מה יהיה הפלט, אז גם היתרון של ה”ידיעה” שפנרוז מנסה להצביע עליו לא קיים, כי המכונה יכולה “לדעת” דברים שהאדם לא יכול לומר במפורש.

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

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


נהניתם? התעניינתם? אם תרצו, אתם מוזמנים לתת טיפ:

Buy Me a Coffee at ko-fi.com