פרדוקס הספינה



פרדוקס הספינה

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


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


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

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


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


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


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

למשל אם נגדיר משתנה חדש בשם x, בכל פעם שאנחנו נכתוב x במקום בו הקוד מצפה לראות ערך כלשהו, הערך שהמחשב יקבל יהיה הערך השמור בכתובת שנקראת x. זאת הסיבה שיש חשיבות גדולה לתת שמות ייחודיים לכל משתנה. אם אני מגדיר כי x = 6, הספרה שש שמורה בכתובת שנקראת x. אם אנסה להכניס ספרה חדשה לשם, x = 8, הספרה שש תמחק. ניתן לחשוב על זה כעל כתובת של מישהו. אם אנחנו אומרים שמשפחת כהן גרים ברחוב הירקון 7, ואז אנחנו אומרים שמשפחת לוי גרים בירקון 7, אז יש פה איזושהי בעיה. המחשב יפרש את המידע הזה באופן הבא, משפחת כהן עזבו ומשפחת לוי עכשיו גרים שם. בפעם הבאה שנשאל את המחשב מי גר בירקון 7, התשובה תהיה משפחת לוי.

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

ירקון7 = (אלי, מיכל, תמי, דני).

עכשיו אם אשאל את המחשב מי גר בכתובת הזאת המחשב ייתן לי 4 שמות. 


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

טיטאניק = (גוף, סיפון, מפרשים)

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

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

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


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


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

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

ובכן - זה עדיין מחשב. זה עדיין המחשב שלי כי כל הרכיבים שלו שייכים לי והשם שלו עדיין באקי. אבל האם זה אותו המחשב? האם אדם אשר איבד את הזיכרון שלו יהיה אותו אדם?


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


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

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

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

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

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

כי זיכרון, זה בסהכ סידור פיזי של פריטים. 


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

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

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

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


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

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

באקי = ((מעבד, 55789), (לוח אם, 778), (כונן קשיח, 95325), (מאוורר, 09878), (זיכרון, 3352), (כרטיס מסך, 22223), (שלדה, 65477)). 


אם להתייחס לסט הזה כאל סט מטמתי, מספיק שינוי בספרה אחת וזה כבר לא אותו הסט. (1,2,3) לא שווה (1,5,3). אבל בפועל זה אומר שאם אני מחליף קרש אחד בספינה שלי זה כבר לא אותה ספינה! זה נשמע מטורף!!


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


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



תמונה:
https://www.pngitem.com/middle/ihohRRw_explorer-clipart-wooden-ship-sailing-ship-clipart-hd/

תגובות