כמה הבהרות נחוצות
קודם כל, על אינשטיין אף פעם לא צחקו - די מהר אחרי שהוא פרסם את המאמרים שלו הוא כבר הפך לסלבריטי. אם כבר, הוא *עצמו* התכחש לאמיתות של אחד התחומים שהוא המציא (תורת הקוונטים)... אבל לענייננו: אני חושב ש"אדם אוהב וחושב" פשוט לא מודע למשמעות של מה שהוא אומר, וכאן נמצא הכשל - בחוסר הכרותו על מושגי יסוד בתורת החישוביות והסיבוכיות. אף על פי כן, לא צריך לזלזל מראש. צריך לקחת בחשבון שכל הבעיות שאנחנו יודעים לפתור היום - בין אם מדובר על הפיתרון של 4+5 בבדידים, או חישוב כפל של מספרים ענקיים ביעילות, או מציאת מסלול קצר ביותר *בקירוב* בין 2 קודקודי גרף - היו בלתי פתירות עד לרגע שמישהו הראה איך בכל זאת לעשות את זה... בואו נסביר מה בעצם הבעיה כאן, במילים פשוטות, ולמה הקושי *בינתיים* הוא לא *דעה* אלא *עובדה* מתמטית מוצקה. הרעיון של "אדם אוהב וחושב" הוא כזה: 1. המפעיל מדבר ל"רובוט" (לצורך העניין, מחשב-על ללא מגבלות משאבים, עם מיקרופון), גלי הקול עוברים דרך האוויר ומגיעים אל המחשב 2. המחשב מעבד את גלי הקול למידע דיגיטלי גולמי 3. המחשב הופך את המידע הגולמי הזה למשפט טקסטואלי 4. המחשב מנתח את המשפט והופך אותו לרשימה של רכיבי שפה (עברית), כמו נושא, נשוא, פועל, אותיות/מילות חיבור סינטקטי, וכו' 5. המחשב משווה את המשפט המפוענח לאוסף חוקים נתון ו"מבין" מה המפעיל אמר לו לעשות ראשית, החלק הקל: שלבים 1 ו-5 לא דורשים שום דבר חוץ מדמיון בסיסי, ושלב 2 כבר קיים היום (למרות שבפירוש נשאר עדיין מקום לשיפורים בעלי אופי מתמטי מופשט ומסובך בתחום זה). שלב 3 הוא מה ש"אדם אוהב וחושב" משאיר ל"חברת רובוטים" ובעצם לא מתעסק איתו. עצם האקט הזה הוא התעלמות מן הבלתי-אפשרי, והמחקר כיום מנסה כמה שיותר לדלג על שלב 3, להעלים אותו, ולא להנציח אותו. במילים אחרות, גם אם תוכל לפתור את שלב 4 באופן מושלם, עדיין אין שום צל של סיכוי שתמצא חברה שתצליח לבצע את שלב 3. אמנם קיימים באופן עקרוני מוצרים ש*מתיימרים* לבצע אותו - אבל הם עושים זאת בצורה חלקית ולא טובה (בלשון המעטה). המגבלה היסודית ששלב 3 מציב היא יותר מדי חזקה, ואי אפשר להתמודד אפילו עם דברים בנאליים כמו טיפול במבטא של אנשים שונים, בליעת צלילים... והבעיה הכי קשה - מילים עם צליל זהה אך עם כתיב/משמעות שונים! שלב 4... לשם הפשטות, בואו נתעלם לרגע משלב 3 ונניח שאנחנו משתמשים בטכנולוגיית DSR נתונה כדי להפוך גלי קול דיגיטליים ישירות לרשימה של רכיבי דיבור. מדובר בתחום שנמצא על סף פריצה, אך בהחלט עוד לא הגיע אליה, למרות שזה כבר היה אמור לקרות. אז מה הבעייתיות שבו בעצם? התחביר של שפה טבעית (עברית לצורך העניין) הוא באופן מהותי לא-דטרמיניסטי. קיימים משפטים רבים שניתן לתרגם ביותר מצורה אחת, וכדי להתגבר על המכשול הזה צריך להשתמש בטקטיקה הסתברותית (במובן מסויים) כדי להחליט איזה מן סוג של מילה מתאים לאוסף צלילים שקלטנו. כדי לעשות זאת אמנם צריך מילון של השפה - אבל אתה טועה באופן יסודי כאשר אתה מניח שהמילון הוא גרעין הבעיה, כאשר בעצם הוא רק ההתחלה. מה שהרבה יותר מסובך זה להגדיר באופן מדוייק *וממצה* את התחביר של השפה העברית, ולא את אוצר המילים שלה. כל אפשרות לחיבור בין מילים, כל אפשרות לשינוי המשמעות של מילה והפיכתה למשהו אחר (ריבוי למשל, ותוספיות אחרות), כל מבנה חוקי של משפט וגם כל המקרים יוצאי הדופן שקיימים בשפה. אבל נניח שאתה מתבסס על מחקרים קיימים שמתארים דיקדוק בסיסי של השפה העברית - ואכן יש כאלה. כבר הגבלת את הפרוייקט לחלק מאוד מצומצם וקטן של השפה העברית, בניגוד מוחלט לדיבור טבעי, ובכל זאת נגיד שזה מקובל עליך... איך בעצם תממש את ההשוואה של האותות הדיגיטליים (או הטקסט, או כל דבר אחר) לחוקי הדיקדוק הללו? אני לא מתכוון לשאלות "באיזה שפת תכנות", "באילו מבני נתונים" וכו', אלא לאלגוריתם, לשיטת הפיתרון. בדיוק כאן נעוצה הבעיה שבגללה כל העונים פיקפקו בכך שתצליח. הבעיה הזו, כפי שהיא מוגדרת כיום, לא ניתנת לפיתרון בזמן *סביר* (לצורך הדיון, זמן לא סביר יכול להיות שנה לכל משפט, סתם בחירה שרירותית). קיימת לכך הוכחה מתמטית מאוד חד משמעית. היסוד המתמטי הוא מוצק עד כדי כך שקיימת גם הוכחה שכל מודל חישובי אחר שתנסה להגדיר, שונה ככל שתרצה, הוא בעל כוח חישובי זהה, ולכן הוא ייתקל באותן בעיות בדיוק. אין לי מספיק זמן כרגע כדי להכנס לפרטים, אבל אם מישהו יאות להמשיך ולהסביר את המושגים מאחורי המחלקות CFL, NFA ו-REG... אולי את תיזת צ'רץ'-טיורינג בשביל בונוס... מישהו? לבסוף, רק בשביל הפלפל: השאלה המתבקשת היא איך בכל זאת ניתן לפתור ביעילות בעיות שפעם חשבנו שהן בלתי פתירות בזמן סביר? התשובה לכך פשוטה: אפשר למצוא שיטת חישוב מקבילה וטובה יותר (עם שלבים שונים שכל אחד מהם יותר יעיל), או לשנות את נתוני הבעיה, או להניח מספר הנחות מקילות - וכך אנו בעצם מגדירים בעיה אחרת לגמרי, שעבורה יתכן פיתרון יעיל, למרות שהיא שונה ממש במעט מן הבעיה המקורית.