לפני שבוע, הצייצן eSivion העלה סקר לא שגרתי בטוויטר, בו ביקש מהמשיבים להצביע כך התפלגות התשובות לסקר תהיה 10% לתשובה א, 20% לתשובה ב, 30% לתשובה ג ו-40% לתשובה ד:
הניסוי הצליח! ((אם כי מבחן כי בריבוע מראה כי ההתפלגות של ההצבעות שונה באופן מובהק סטטיסטית מההתפלגות לה קיווה אי-שיוויון ))
איך עושים את זה, או יותר נכון, איך הציבור הצליח לעשות את זה?
אחת המגיבים לסקר סיפק ספוילר כחצי שעה לאחר שהסקר פורסם:
טוב, אני לא יודע עד כמה הספוילר הזה השפיע על התוצאה הסופית. אומר רק שאני נתבקשתי לחוות את דעתי כמה דקות אחרי שהסקר עלה, ועניתי שאתייחס רק לאחר שהוא הסתיים. התשובה אל אותו ליאור היא אכן הדרך הנכונה להגיע להתפלגות שרוצים: רנדומיזציה, אם כי אני הייתי ממליץ על ספרת היחידות של השניות, או על מחוג השניות.
לפני כמה ימים כתבתי על רנדומיזציה בהקשר על ניסויים מבוקרים, אבל רעיון הרנדומיזציה טוב גם לדרים אחרים, כמו להשיג תוצאה מסויימת בסקר של טוויטר. אבל…
אם תצפו במשחקי טניס מקצוענים, תראו שרבים מן השחקנים עונדים שעון יד. זה לא בהכרח בלל שהם ממהרים לאן שהוא, ורוצים לסיים את המשחק בהתאם לתוכניות שלהם (( כמו שקרה בסרטו של אלפרד היצ’קוק זרים הרכבת )). כאשר מגיע תורו של שחקן טניס לחבוט את חבטת הפתיחה, יש לו בגדול שתי אפשרויות: לחבוט ימינה או לחבוט שמאלה (( אני מפשט קצת את הדברים )) . אם יחבוט כל הזמן ימינה, היריב ייערך בהתאם, וזה גם מה שיקרה אם יחבוט כל הזמן שמאלה. גם אם יחבוט ימינה ושמאלה לסירוגין, היריב יעלה על זה מהר מאוד. חייבים לשמור כל הזמן על יתרון ההפתעה. איך עושים את זה? מציצים בשעון. אם מספר השניות שעברו בדקה הנוכחית קטן משלושים, חובטים ימינה. אחרת – חובטים שמאלה. כך ליריב לא תהיה דרך טובה לחזות לאן תיחבט החבטה הבאה.
זה קורה גם בבייסבול. כאן יש פיצ’ר, שהוא השחקן שזורק את הכדור לעבר החובט. יש כל מיני סוגי זריקות שהפיצ’ר יכול לזרוק: כדור מהיר, כדור מסובב, וכדומה. אם החובט יודע מראש איזה סוג זריקה יזרוק הפיצ’ר, זה ישפר את סיכוייו לחבוט בכדור (( גם ככה הסכוי לחבוט נמוך למדי. החובטים הממש טובים מצליחים לחבוט בכדור בכ-30% מהפעמים )).
הפתרון הוא כמובן לזרוק את הכדור באופן שיקשה על החובט לנחש מראש מה יהיה סוג הזריקה. אפשר לעשות את זה על ידי רנדומיזציה, למשל על ידי מבט מהיר בשעון. גרג מאדוקס, אחד מגדולי הפיצ’רים בכל הזמנים, סיפר כי הוא השתמש בשיטה הזו כדי לקבל החלטות באשר לזריקה שאותה יזרוק. זה כמובן לא מספיק, כדי להיות כמו גרג מאדוקס צריך גם כשרון נדיר, אבל הרנדומיזציה בודאי שלא הזיקה לא.
במדעי המחשב יש לזה שימוש דומה.
לפעמים אלגוריתם עובד טוב בחלק מהמקרים אבל לא כולם.
הניתוח המחמיר הוא מה תעשה מול “יריב” (Adversarial Analysis) שמכיר אותך ובוחר בכוונה את הקלט הכי קשה בשבילך בכל צעד.
זה בעצם ניתוח של המקרה הגרוע ביותר.
אלגוריתמים שמשתמשים ברנדומיזציה ומגרילים דברים הם דרך להתמודד מול “יריב” כזה.