ב-Online
 
 
 
 
 
 
 
לפרק את הבייט 
הפסיכומטריקן האוטומטי – חלק א' 
 
 סוקרטס. פרט מתוך ציור של רפאלו    צילום: flickr, Allie_Caulfield, cc by    
לפרק את הבייט |
 

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

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

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

מה הבעיה?

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

טענה 1: כל בני האדם הם בני תמותה
טענה 2: סוקרטס הוא בן אדם
מסקנה: סוקרטס הוא בן תמותה

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

פתרון ויזואלי ולא מעשי

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

כדי לתרגם את "כל X הוא Y" לייצוג ויזואלי שהמחשב יכול לעבד בקלות, נשתמש בגאומטריה פשוטה של עיגולים במרחב דו-ממדי. ניקח שוב את טענה 1. האלמנט "בני תמותה", הכוללני יותר, יתורגם לעיגול שמרכזו על ראשית הצירים ורדיוסו 10. האלמנט "בני אדם" שמוכל בתוכו יהפוך לעיגול נוסף, קטן יותר, אותו נמקם באופן כזה שלא יחרוג מגבולות העיגול הקודם. לפי אותו עיקרון נוכל למקם את העיגול של סוקרטס בתוך עיגול בני האדם, ובאמצעות חישוב פשוט לקבוע שהוא נמצא בתוך העיגול של בני התמותה. עד כאן אין בעיה, אך המצב עלול להסתבך בקלות. נניח שאנו מקבלים טענה נוספת, "כל בעלי התכונה Q הם בני תמותה". היכן צריך לצייר את העיגול של בעלי התכונה Q? האם בתוך העיגול של בני האדם, בחפיפה חלקית לו או מחוץ לו? מה זה בכלל Q? ללא מידע נוסף, אין לנו דרך לומר למחשב היכן לצייר את העיגול ואנחנו נתקעים. אגב, עצם העובדה שציירנו את עיגול בני האדם בתוך עיגול בני התמותה היא בעיה. מבחינה לוגית-צורנית, ייתכן בהחלט שרק בני האדם הם בני תמותה, והעיגולים בעצם צריכים להיות חופפים. בקיצור, צריך לחפש דרך אחרת לפתרון.
 

על עצים ובעיית הסטטיות

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

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

לא להיכנס לקשר מחייב

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

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

עוד טורים של לפרק את הבייט
 
 
 
@@@@@@@@@@@@@@@@@@@ ilan @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
@@@@@@@@@@@@@@@@@@@ ilan @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
 
תגובות
הוסף תגובה0 תגובות
הוספת תגובה
מאת
 
נושא
 
תוכן
 
 
 
 
תודה! תגובתך התקבלה.
התגובה תתפרסם בכפוף לתנאי האתר.
 
 
 
 
 

כל הזכויות שמורות 2011 © נענע 10 בע"מ
 
 
 
 
כל הזכויות שמורות © Nana10 בע"מ
Video powered by