מבוא
מאז הימים הראשונים של מדעי המחשב - תחום הידוע בגישתו המתודית לפתרון בעיות - האקראיות מילאה תפקיד חשוב. התוכנית הראשונה שרצה במחשב האלקטרוני הראשון בעולם השתמשה באקראיות כדי לדמות תהליכים גרעיניים. מאז נעשה שימוש בגישות דומות באסטרופיזיקה, מדעי האקלים והכלכלה. בכל המקרים האלה, חיבור לחשמל מספרים אקראיים בשלבים מסוימים באלגוריתם עוזר לחוקרים להסביר את אי הוודאות לגבי הדרכים הרבות שבהן תהליכים מורכבים יכולים לפעול.
אבל הוספת אקראיות לתוך אלגוריתם יכולה גם לעזור לך לחשב את התשובה הנכונה לשאלות חד-משמעיות של אמת או שקר. "אתה פשוט אומר 'בסדר, תן לי לוותר, תן לי לא לנסות, תן לי פשוט לבחור משהו באקראי'", אמר אריק בלייס, מדען מחשבים באוניברסיטת ווטרלו. "עבור יותר מדי בעיות, זו בסופו של דבר גישה מוצלחת."
נניח שאתה רוצה לקבוע אם מספר נתון הוא ראשוני (מתחלק רק ב-1 ובעצמו) או מורכב (מתחלק גם במספרים שלמים אחרים). אתה יכול פשוט לנסות לחלק את זה בכל הגורמים האפשריים, אבל עבור מספרים גדולים שיטת ה"כוח האכזרי" הזו ואלגוריתמים אחרים של פירוק הם איטיים להחריד. ואם יתברר שהמספר מורכב, אלגוריתמי הפקטורינג אומרים לך את הערכים של המחלקים שלו - יותר מידע ממה שביקשת. אם אכפת לך רק מה"ראשוניות" של מספר, האם יש אלגוריתם יעיל יותר?
יש אם אתה משתמש באקראיות. הרעיון הבסיסי חוזר לתוצאה של המתמטיקאי הצרפתי פייר דה פרמה בן המאה ה-17, הידוע בכינויו "משפט קטן." פרמה שקל שני מספרים שלמים - קרא להם N ו x. הוא הוכיח שאם N הוא מספר ראשוני, אם כן xN - x הוא תמיד כפל של N, ללא קשר לערך של x. באופן שווה, אם xN - x אינו כפול של N, לאחר מכן N לא יכול להיות מספר ראשוני. אבל ההצהרה ההפוכה לא תמיד נכונה: אם xN - x הוא מכפיל של N, לאחר מכן N הוא בדרך כלל אבל לא תמיד ראשוני.
כדי להפוך את המשפט הקטן של פרמה למבחן ראשוניות, פשוט קח את N שאתה מעוניין בו, בחר x באופן אקראי, וחבר את שני המספרים לתוך xN - x. אם התוצאה אינה כפולה של N, אז סיימת: אתה יודע את זה N הוא בהחלט מורכב. אם התוצאה היא כפולה של N, לאחר מכן N הוא כנראה ראשי. כעת בחר אקראי אחר x ותנסה שוב. ברוב המקרים, לאחר כמה עשרות ניסיונות, אתה יכול להסיק בוודאות כמעט N הוא מספר ראשוני. "אתה עושה את זה מספר קטן של פעמים," אמר בלייס, "ואיכשהו עכשיו ההסתברות שלך לטעות קטנה מההסתברות שאסטרואיד יפגע בכדור הארץ מעכשיו ועד שתסתכל על התשובה."
1 ראשוניות בדיקות שימוש באלגוריתמים אקראיים (המבוססים על חידודים למשפט הקטן של פרמה) הוביל עידן חדש. בעיה אחר בעיה התברר כי הרבה יותר קל לפתור באקראיות מאשר באלגוריתמים לא אקראיים, או דטרמיניסטיים. המפתח היה למסגר מחדש כל בעיה כאחת שניתן לפתור במהירות בהינתן ערך מתאים למספר כלשהו x, ולאחר מכן להוכיח כי כמעט כל x הייתי עושה. הפתרון עובד למרות שלחוקרים אין מושג איך לקבוע אם בחירה ספציפית כלשהי היא טובה. מתמטיקאים התבדחו שאתגר יוצא דופן זה דומה לו מציאת חציר בערימת שחת.
אבל ההצלחות הללו גרמו לחוקרים לתהות מדוע אקראיות צריכה לעזור בבעיות כמו בדיקות ראשוניות, שכולן עוסקות במציאת דפוסים נסתרים ולא אקראיים. "יש בזה משהו קצת פרדוקסלי", אמר Rahul Santhanam, מדען מחשבים באוניברסיטת אוקספורד. "אקראיות טהורה עוזרת לך לקבל שליטה על המבנה שפותר את הבעיה."
בשנת 1994, מדעני המחשב נועם ניסן ו אבי וידרסון עזר לפתור את הבלבול הזה על ידי הדגמה שאקראיות, אם כי שימושית, כנראה אינה הכרחית. הֵם הוכיח שאחד משני דברים חייב להיות נכון: או שלכל הבעיות שניתן לפתור ביעילות באמצעות אקראיות יש גם אלגוריתמים דטרמיניסטיים מהירים, או שבעיות רבות ידועות לשמצה הן קלות בסתר. מדעני מחשב רואים באפשרות השנייה מאוד לא סבירה.
למעשה, למדעני מחשבים לעתים קרובות קל יותר לפתח אלגוריתם דטרמיניסטי על ידי התחלת גרסה אקראית ואז "דה-רנדומיזציה" שלה. "ברגע שיש לי את זה, פתאום אני רואה דרך מאוד ברורה לעשות את זה דטרמיניסטי", אמר אלי אופפל, מדען מחשבים באוניברסיטת בראון. "אבל אם לא הייתי חושב על זה בצורה אקראית כשאלה הסתברותית, כנראה שלא הייתי חושב על זה."
כמעט 30 שנה לאחר ההוכחה הבולטית של ניסן וויגדרסון, אלגוריתמים אקראיים נותרו פופולריים כתמיד, מכיוון שדה-רנדומיזציה יכולה להיות מסובכת ואלגוריתמים דטרמיניסטיים יעילים לרוב רק באופן עקרוני. רק בשנת 2002 שלושה חוקרים מצאו דרך לעשות דה-אקראי בדיקות ראשוניות, ובפועל האלגוריתם שלהם הוא איטי בהרבה מהאלגוריתמים האקראיים הטובים ביותר. לבעיות אחרות, קשה אפילו לדעת מאיפה להתחיל - לאלגוריתם הידוע ביותר יש בעיית תרנגולת וביצה שאתה יכול לברוח ממנה רק באקראיות.
זה המקרה לפריצת דרך לאחרונה בתורת הגרפים. בשנה שעברה התפתחו שלושה מדעני מחשב אלגוריתם מהיר למציאת הנתיב הקצר ביותר דרך גרף - רשת של צמתים המחוברים על ידי קטעי קו - שפועלת גם כאשר חלקים מסוימים מורידים מאורך המסלול הכולל במקום להוסיף לו. האלגוריתם שלהם כלל הפיכת הגרף לגרף פשוט יותר על ידי מחיקת מקטעים מסוימים, פתרון הבעיה של הגרף הפשוט ואז התחשבות במקטעים שנמחקו. הם יכולים להוכיח שהאלגוריתם יפעל במהירות אם אף נתיב קצר ביותר לא יעבור יותר מדי מקטעים שנמחקו - אחרת, השלב האחרון ייקח יותר מדי זמן.
אבל איך להחליט אילו קטעים למחוק מלכתחילה? זה לא רק קשה למצוא את קבוצת הקטעים האידיאלית באופן דטרמיניסטי - זה בלתי אפשרי. הסט תלוי בנתיבים הקצרים ביותר, עצם הבעיה ששלושת החוקרים ניסו לפתור. אבל למרות שהם לא הצליחו למצוא את קבוצת הקטעים הטובה ביותר למחיקה, הם יכלו להוכיח שרוב הבחירות האקראיות יהיו די טובות, וזה הספיק כדי לשבור את לולאת ההפניה העצמית. במקרים נדירים שבהם האלגוריתם עושה בחירה חסרת מזל ומסתבך בשלב האחרון, הם יכולים פשוט לעצור ולהפעיל אותו שוב.
"אקראיות היא בעצם דרך להבטיח שמשהו נכון לגבי הפתרון האופטימלי מבלי לדעת את הפתרון האופטימלי", אמר אהרון ברנשטיין, אחד ממחבריו של האלגוריתם החדש.
אקראיות מצאה אינספור שימושים אחרים במדעי המחשב, מקריפטוגרפיה דרך תורת המשחקים ועד למידת מכונה. רוב הסיכויים שזה כאן כדי להישאר.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה כאן.
- מקור: https://www.quantamagazine.org/how-randomness-improves-algorithms-20230403/
- :הוא
- ][עמ'
- $ למעלה
- 1
- 1994
- a
- אודות
- בנוגע לזה
- AC
- חֶשְׁבּוֹן
- חשבונאות
- לאחר
- אַלגוֹרִיתְם
- אלגוריתמים
- תעשיות
- תמיד
- ו
- אחר
- לענות
- גישה
- גישות
- מתאים
- ARE
- AS
- אסטרואיד
- At
- מחברים
- בחזרה
- מבוסס
- בסיסי
- בעיקרון
- BE
- כי
- להתחיל
- להיות
- הטוב ביותר
- בֵּין
- קצת
- תקוע
- לשבור
- פריצת דרך
- by
- לחשב
- שיחה
- CAN
- אשר
- מקרה
- מקרים
- מסוים
- ודאות
- לאתגר
- סיכויים
- בחירה
- בחירות
- בחרו
- אַקלִים
- מורכב
- המחשב
- מדעי מחשב
- מסכם
- בלבול
- מחובר
- לשקול
- נחשב
- יכול
- קריפטוגרפיה
- ימים
- להחליט
- בהחלט
- הפגנה
- תלוי
- לקבוע
- לפתח
- מפותח
- קשה
- מטה
- תריסר
- כל אחד
- כדור הארץ
- קל יותר
- כלכלה
- יעיל
- יעילות
- או
- אֶלֶקטרוֹנִי
- מסתיים
- מספיק
- לְהַבטִיחַ
- תקופה
- שגיאה
- אֲפִילוּ
- אי פעם
- גורמים
- מהר
- מעטים
- שדה
- מציאת
- ראשון
- בעד
- מצא
- צרפתית
- החל מ-
- מִשְׂחָק
- מטרה כללית
- לקבל
- לתת
- נתן
- Goes
- טוב
- גרף
- לטפל
- קשה
- יש
- יש
- לעזור
- עזר
- עזרה
- עוזר
- כאן
- מוּסתָר
- להכות
- איך
- איך
- HTTPS
- i
- רעיון
- אידאל
- חשוב
- בלתי אפשרי
- in
- מידע
- מעוניין
- מעורב
- IT
- שֶׁלָה
- עצמו
- jpg
- מפתח
- לדעת
- יודע
- ידוע
- ציון דרך
- גָדוֹל
- אחרון
- שנה שעברה
- למידה
- אורך
- כמו
- קו
- קְצָת
- ארוך
- נראה
- מכונה
- למידת מכונה
- עשוי
- לעשות
- עושה
- רב
- מתמטיקה
- שיטה
- שיטתית
- יותר
- יותר יעיל
- רוב
- מספר
- ליד
- הכרחי
- חדש
- צמתים
- גַרעִינִי
- מספר
- מספרים
- ברור
- of
- on
- ONE
- אופטימלי
- אחר
- אַחֶרֶת
- אוקספורד
- עבר
- נתיב
- דפוסי
- לבחור
- פייר
- מקום
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- לְשַׂחֵק
- שיחק
- תקע
- פופולרי
- אפשרות
- אפשרי
- תרגול
- יפה
- ראשוני
- עקרון
- כנראה
- בעיה
- פתרון בעיות
- בעיות
- תהליכים
- תָכְנִית
- הוכחה
- להוכיח
- הוכיח
- קוונטמגזין
- שאלה
- שאלות
- מהירות
- אקראי
- אקראי
- אקראי
- נדיר
- במקום
- לאחרונה
- ללא קשר
- להשאר
- חוקרים
- תוצאה
- תפקיד
- הפעלה
- אמר
- מדע
- מַדְעָן
- מדענים
- שְׁנִיָה
- מגזרים
- סט
- צריך
- סיאם
- דומה
- פשוט
- בפשטות
- since
- להאט
- קטן
- פִּתָרוֹן
- לפתור
- פותר
- פותר
- כמה
- משהו
- ספציפי
- החל
- הצהרה
- להשאר
- שלב
- צעדים
- עצור
- מִבְנֶה
- מוצלח
- לקחת
- מבחן
- בדיקות
- זֶה
- השמיים
- הגרף
- שֶׁלָהֶם
- אותם
- אלה
- דברים
- שְׁלוֹשָׁה
- דרך
- פִּי
- ל
- גַם
- סה"כ
- הפיכה
- נָכוֹן
- תור
- הסתובב
- אי ודאות
- אוניברסיטה
- אוניברסיטת אוקספורד
- להשתמש
- בְּדֶרֶך כְּלַל
- ערך
- ערכים
- גרסה
- דֶרֶך..
- דרכים
- אינטרנט
- אם
- אשר
- עם
- לְלֹא
- עובד
- של העולם
- היה
- שנה
- שנים
- אתה
- זפירנט