המתמטיקה סובבת אותנו בכל מקום: בבית, בעבודה, בלימודים ובקניות. לכן חובבי מתמטיקה מוצאים לה שלל שימושים מעניינים גם בחיי היום יום. ננסה להיכנס לראשם באמצעות סיפור דמיוני המתאר כיצד לבחור סופרמרקט לא עמוס ותור מהיר לקופה.
נדמיין שאנו עומדים בפתח סופרמרקט, ורוצים לברר כמה לקוחות נמצאים בתוכו. איש הביטחון שבכניסה (אולי מיודענו שסייע בפוסט על פואסון [1]) מספר שקצב יציאת הלקוחות הוא כשני לקוחות לדקה. אנו עושים סקר בקרב האנשים שיצאו מהסופרמרקט ומגלים שלקוח שוהה בחנות כעשרים דקות בממוצע. האם נוכל להעריך כמה לקוחות נמצאים כעת בפנים?
בעיה זו נראית תמוהה, שהרי חסרים הרבה נתונים לפתרונה. ואולם אם ננסה להעריך כמה אנשים בממוצע נמצאים בחנות, נגלה שאפשר לעשות זאת באמצעות חוק בסיסי בתורת התורים המכונה "חוק ליטל" (Little's law) [2]. החוק נקרא על שם המתמטיקאי האמריקני ג'ון ליטל שהוכיח אותו בשנת 1961.
לפני שנפתור את הבעיה, נשים לב שזמן השהייה של לקוח בחנות וכמות הלקוחות הם גדלים אינטואיטיביים שקל להבין אותם. לעומת זאת, קצב יציאת הלקוחות (Throughput), כלומר מספר הלקוחות היוצאים בכל דקה מן החנות, מייצג יחס בין מספרים ולא גודל מוחשי. על כן קשה יותר להבין את המושג "קצב" ולהשתמש בו. כך נמצא במחקרים שנעשו למשל בקרב תלמידים שלומדים על קצב מילוי בריכה. אפילו מהנדסים שצריכים לחשב את קצב זרימת הנתונים ברשתות תקשורת מתבלבלים לעיתים.
כדי להיעזר בכל זאת באינטואיציה נניח שהזמן בין יציאת לקוח אחד למשנהו (cycle time) הוא כחצי דקה (1 חלקי קצב היציאה, שהוא כאמור שני לקוחות לדקה). נדמיין גם שהלקוחות נכנסים לחנות ונעמדים כמעט מייד בתור מסודר המתקדם כל חצי דקה לכיוון היציאה. כעת הבעיה נהיית פשוטה: בכל חצי דקה הלקוח מתקדם מקום אחד בתור. כיוון שידוע שהוא עמד בתור עשרים דקות בממוצע, ברור שהיו לפניו כ־40 אנשים. זהו מספר הלקוחות הממוצע בחנות. לפי חוק ליטל, מספר הלקוחות הממוצע (W) שווה למכפלת קצב היציאה הממוצע (THR) בזמן השהייה הממוצע (T) או בנוסחה:
W = THR×T = 2×20 = 40
בדוגמה זו הנחנו שיש תור יחיד ושזמן השירות לכל לקוח הוא זהה. לאמיתו של דבר, ג'ון ליטל הוכיח שהחוק תקף גם במערכות מורכבות שבהן כמה תורים, כמו בסופרמרקט. החוק עדיין תקף גם אם לא נעמדים מייד בתור ואפילו אם זמן השירות ללקוח לא אחיד. משתמשים בחוק ליטל לצורך ניתוח מערכות, למשל במפעלי יצור, אבל אפשר להשתמש בו גם בחיי היום יום.
לדוגמה, מתמטיקאי ששמו סמוֹר מתאר בסרטון [3] כיצד ישב במסעדה וניסה להעריך את הכנסותיה. מהסתכלות סביבו העריך סמור שיש כ־60 אנשים במסעדה, וכל סועד שוהה בה כשעה וחצי בממוצע. לכן לפי חוק ליטל קצב יציאת הלקוחות הוא 60/1.5, כלומר 40 לקוחות לשעה. כיוון שהמסעדה פתוחה 10 שעות ביום, קצב היציאה הוא כ־400 לקוחות ביום. סמור עיין בתפריט והעריך שלקוח משלם 20 דולר בממוצע על ארוחה. לפיכך ההכנסה המשוערכת של המסעדה היא 8,000 דולר ליום. פשוט, לא?
יכולתו של סמור להעריך בקירוב את הכנסות המסעדה מדגימה יכולת חשיבה כמותית [4] הקרויה "Numeracy". חוקרים טוענים שחשוב להקנותה לאנשים בימינו, שכן אנו מוצפים בשפע של נתונים. אף על פי שרוב החישובים נעשים בעזרת מחשבים, צריך לדעת להעריך כדי לוודא שהמספרים הגיוניים.
נחזור כעת לסופרמרקט. לאחר שמילאנו את העגלה, עומד לפנינו האתגר הגדול: באיזה תור כדאי לבחור? חוק ליטל מאפשר לחשב מדדים ממוצעים, ולכן כדי לבחור את התור המהיר ביותר יש להיעזר בפתרון אחר.
במאמר שהתפרסם ב"ניו־יורק טיימס" [5] הציע המתמטיקאי דן מייר (Meyer) טיפים לבחירת התור. דן ניסה לענות על השאלה הקלאסית: האם הקופה המהירה (עד עשרה מוצרים) באמת מהירה? כיום, בעידן הסורקים האופטיים, סריקת כל מוצר נמשכת כ־3 שניות. לפי תצפיותיו של דן, יש להוסיף לזמן זה זמן "תקורה", כלומר זמן לאמירת שלום, לתשלום וליציאה. זמן התקורה הממוצע לכל לקוח הוא כ־41 שניות. לפי חישוב זה אפשר להסיק, שלרוב כדאי לעמוד בתור שיש בו פחות אנשים, אפילו אם הם קונים יותר מוצרים. למשל, אדם הקונה 100 מוצרים יהיה פחות משש דקות בקופה (100× 3 +41). לעומת זאת, הזמן הכולל בקופה של ארבעה אנשים שלכל אחד מהם 20 מוצרים יהיה כשבע דקות (80×3 + 4×41).
כשניסינו לאמת את התצפיות, גילינו שהמודל הפשוט די מתאים לקניות קטנות, אך בקניות גדולות מתעוררת בעיה: קצב האריזה המוגבל של הלקוחות, במיוחד כשהם נאבקים לפתוח שקיות ניילון דבוקות, יכול לעצור את התקדמות התור ולהיות צוואר בקבוק. אחד הפתרונות ההנדסיים לצווארי הבקבוק בסרט נע, למשל במפעלי יצור או בתכנון מחשבים, הוא להשתמש ביציאה מהסרט הנע במחסן זמני (buffer) כדי למנוע עצירה. ואכן קופאיות מנוסות אינן עוצרות בסריקה וממשיכות להעביר את מוצרי הלקוח הבא לעמדת האריזה, גם אם הלקוח הקודם לא סיים לארוז את מוצריו (למתעניינים, את הענף במתמטיקה העוסק בתורי המתנה [6] מיישמים בתחומים מגוונים, כגון תכנון מפעלי ייצור, רשתות תקשורת, מערכות הפעלה, תכנון מעבדים ועוד).
ואולם אפילו האנשים המתוחכמים ביותר המנסים "לצוד" קופה מהירה יכולים ליפול בפח. דמיינו שאתם בוחרים לעמוד בקופה, ויש לפניכם רק אדם אחד שקונה רק מוצר אחד: גביע לֶבן. אבל פתאום אתם מבחינים בחרדה, שהלקוח הזה הוא אמנון טיטינסקי מהסדרה "קופה ראשית" [7], והקופאית היא כוכבה שתמיד רבה איתו [8]. ואז אתם מבינים שלעיתים גם ליכולת הניבוי יש מגבלות בחיים האמיתיים.
תודות למיכל מדמון ולצוות "קהילת מחשב"ה למאה ה־21" על הסיוע בהכנת הפוסט.
מקורות והרחבות:
[1] פואסון בסופר
[2] חוק ליטל
[3] חוק ליטל במסעדה
[6] תורת התורים
[7] "קופה ראשית"
[8] קטעים מ"קופה ראשית", למשל "לֶבן"