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

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

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

כמו פאי | איור: Mykola Mazuryk, Shutterstock
לפעמים אין ברירה אלא לעגל, כי יש מספרים בעלי אינסוף ספרות אחרי הנקודה העשרונית, כמו פאי | איור: Mykola Mazuryk, Shutterstock

מחירים ודליפות

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

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

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

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

עיגול אקראי למחצה

שיטה מתקדמת יותר, שאותה סקרו כותבי המאמר, נקראת עיגול סטוכסטי (stochastic rounding). בהקשר זה אפשר להבין את המילה "סטוכסטי" כ"הסתברותי". גם בשיטה זו כל מספר מעוגל לאחד משני הערכים השלמים הקרובים אליו, מלמעלה או מלמטה. ההבדל הוא שכאן העיגול מתבצע באופן אקראי, כשההסתברות לעיגול לכל מספר שלם יחסית לקרבה אליו. למשל, 1.7 יעוגל כלפי מעלה, ל-2, בהסתברות של 70 אחוזים וכלפי מטה, ל-1, בהסתברות של 30 אחוזים.

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

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

 

2 תגובות

  • עפר

    רעיון יפה! אלא שהוא צורך כוח

    רעיון יפה! אלא שהוא צורך כוח עיבוד נוסף.

  • ניסקו

    כלומר, מהומה רבה על לא דבר