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

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

ציוד

  • לחם
  • דבש*
  • חמאה*
  • סכין
  • מחברת
  • כלי כתיבה

* אפשר ואפילו כדאי להחליף את הדבש והחמאה בממרחים האהובים עליכם

הניסוי

את מהלך הניסוי אפשר לראות בסרטון המצורף:

הסבר

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

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

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


להכניס את הסכין הפוך לתוך החמאה. דוגמה לביצוע של הוראה לא ברורה בהכנת הכריך | מתוך הסרטון

ללמד את הגולם

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

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

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

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

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

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

תגובה אחת

  • אחיה

    לחם

    זה טיפשי