דלג לתוכן

ההרצאה השבועית של TED: ניהול זמן ותעדוף משימות בהשראת אלגוריתמים חכמים


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


בועז מזרחי | 8 מרץ, 2018

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

יצירתיות משמעה לדעת לקחת דברים מקונטקסט מסוים ולמצוא להם שימושים בהקשרים חדשים. מה קורה, אם כן, כשהופכים את התהליך ובמקום להטמיע במחשבים עקרונות המבטאים את החשיבה האנושית – אנו לוקחים עקרונות שנוצרו עבור מחשבים ומטמיעים אותם בחיינו? כשאנו מאמצים אותם כדפוסי מחשבה וכהרגלים? ערוץ היוטיוב TEDEd הפיק סרטון אנימציה המבוסס על הספר Algorithms to Live By שחיברו יחד בריאן כריסטיאן, כותב בעל תואר במחשבים, ופרופסור טום גריפית', מומחה לפסיכולוגיה קוגניטיבית מאוניברסיטת ברקלי.

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

להפעלת כתוביות בעברית לחצו על כפתור ההגדרות בתחתית הנגן בצד ימין.

מכל מלמדי השכלתי, וממחשביי יותר מכולם

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

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

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

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

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

גם לאלגוריתמים יש הפרעות קשב

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

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

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

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

כתבות נוספות שעשויות לעניין אותך:

הרשמה לניוזלטר של מהות החיים

קיבלנו! תוכן מעורר השראה מבית מהות החיים יגיע אליכם במייל ממש בקרוב.