מבוא
באלגוריתמים, כמו בחיים, השליליות יכולה להיות גרירה.
שקול את הבעיה של מציאת הנתיב הקצר ביותר בין שתי נקודות בגרף - רשת של צמתים המחוברים באמצעות קישורים, או קצוות. לעתים קרובות, הקצוות הללו אינם ניתנים להחלפה: גרף יכול לייצג מפת דרכים שבה חלק מהכבישים איטיים יותר מאחרים או בעלי אגרה גבוהה יותר. מדעני מחשבים מסבירים את ההבדלים הללו על ידי חיבור לכל קצה עם "משקל" שמכמת את עלות המעבר על פני אותו פלח - בין אם העלות הזו מייצגת זמן, כסף או משהו אחר. מאז שנות ה-1950, הם יודעים למצוא את הנתיבים הקצרים ביותר, בעצם כמה שיותר מהר תיאורטית, בהנחה שכל המשקלים הם מספרים חיוביים.
אבל בכמה גרפים משקלים יכולים להיות שליליים - נסיעה לאורך פלח אחד יכולה לקזז את העלות של מעבר אחר. קחו, למשל, נהג משלוחים שעליו לאזן את עלות הדלק והאגרה (מיוצגים במשקלים חיוביים) מול הכנסה מהובלת חבילות (מיוצגת במשקלים שליליים). במקרים כאלה, אלגוריתם הנתיב הקצר ביותר הידוע לא עובד. במשך עשרות שנים, אלגוריתמים מהירים למציאת הנתיבים הקצרים ביותר בגרפים בעלי משקל שלילי נותרו חמקמקים.
כעת שלישיית מדעני מחשב פתרה את הבעיה ארוכת השנים הזו. החדש שלהם אַלגוֹרִיתְם, שמוצא את הנתיבים הקצרים ביותר דרך גרף מצומת "מקור" נתון לכל צומת אחר, כמעט תואם את המהירות שהשיגו אלגוריתמים בעלי משקל חיובי לפני זמן כה רב.
יתרה מכך, הגישה החדשה משתמשת בטכניקות מתמטיות בנות עשרות שנים, ונמנעת משיטות מתוחכמות יותר ששלטו במחקר המודרני של תורת הגרפים.
"פשוט לא האמנתי שקיים אלגוריתם כל כך פשוט", אמר מקסימיליאן פרובסט גוטנברג, מדען מחשבים במכון הפדרלי השוויצרי לטכנולוגיה בציריך. "כל זה נמצא שם כבר 40 שנה. זה פשוט לקח מישהו להיות ממש חכם ונחוש לגרום להכל לעבוד".
גבולות החמדנות
הסיפור מתחיל ב-1956, כאשר מדען המחשבים ההולנדי אדסגר דיקסטרה פיתח אלגוריתם מהיר למצוא את הנתיבים הקצרים ביותר בגרף עם משקלים חיוביים בלבד. כדי להבין את זה, דמיינו לעצמכם להתחיל מהמקור ולחקור את הגרף צומת אחד בכל פעם, לרשום את המשקולות של קצוות שהתגלו לאחרונה תוך כדי. בכל פעם שאתה מבקר בצומת, בצע הערכות ראשוניות של הנתיבים הקצרים ביותר מהמקור לכל אחד מהשכנים של הצומת החדש, עדכן את ההערכות הקיימות אם מצאת נתיב קצר יותר. כדי להחליט באיזה צומת לא נחקר לבקר הבא, השתמש במה שנקרא אסטרטגיה חמדנית: עבור אל הצומת הקרוב ביותר למקור לפי ההערכה הנוכחית שלך.
עם משקלים חיוביים, הנתיב שהאלגוריתם של דיקסטרה לוקח כדי לבקר בכל צומת בפעם הראשונה הוא באמת הקצר ביותר. הכי קל לראות שזה נכון לגבי הצעד הראשון. דמיינו שני צמתים A ו-B מחוברים באמצעות קצה עם משקל 2. אם A הוא צומת המקור, ולכל קצה אחר הנוגע בו יש משקל גדול יותר, אז הנתיב הישיר מ-A ל-B חייב להיות הנתיב הקצר ביותר האפשרי המחבר בין שתי הנקודות הללו , מכיוון שהקטע הראשון של כל נתיב אחר כבר יהיה ארוך יותר. נימוק דומה פועל בכל שלב. האלגוריתם לעולם לא צריך להסתכל אחורה, אז מובטח שהוא יסתיים לאחר ריצה על הגרף פעם אחת - זה מה שעושה אותו כל כך מהיר.
אבל משקלים שליליים מאיים על האסטרטגיה החמדנית של דיקסטרה. שקול שוב את נהג המשלוחים שלנו. מסלול ישיר מ-A ל-B שמביא לרווח קטן עשוי להרוויח פחות כסף מאשר מסלול עקיף שיש לו תמורה גדולה איפשהו. "אי אפשר לקבל החלטות רק על סמך המידע המקומי", אמר סנג'יב חאנה, מדען מחשבים באוניברסיטת פנסילבניה. "ייתכן שתצטרך לבצע כמה מהלכים לא אופטימליים לכאורה כדי לקבל סוף סוף פרס אמיתי."
במשך עשרות שנים, מדעני מחשבים שעבדו על גרפים במשקל שלילי ניסו להתאים את מהירות האלגוריתם של דיקסטרה לאלגוריתמים "קומבינטוריים" דומים. אלה כוללים פעולות בדידות - כמו ספירת אפשרויות, שינוי משקלים ומחיקה סלקטיבית של קצוות - המשקפות את המבנה הבדיד של הגרף הבסיסי. לעומת זאת, ההתקדמות הואטה בשנות ה-1990. לאחרונה, חוקרים השתמשו באלגוריתמים של "אופטימיזציה מתמשכת", ששואלים טריקים מהחשבון. למרבה הצער, ההאצות שנוצרו היו מוגבלות, ולעתים קרובות באו במחיר של פשטות.
לשבור את המחזור
בקיץ 2021, שני מדעני מחשב שהפכו לקולגות באוניברסיטת קופנהגן - Danupon Nanongkai ו כריסטיאן וולף-נילסן - חיפשו נושא לפרויקט מחקר משותף. "כריסטיאן אמר, 'אוי, דרך אגב, הייתי בחופשה, ובגלל זה ניסיתי לחשוב על משהו מאוד שאפתני'", נזכר ננונגקאי, שנמצא כעת במכון מקס פלאנק לאינפורמטיקה בסארבריקן, גרמניה. הם הסתפקו בבעיית המשקל השלילי של הנתיבים הקצרים ביותר והזמינו אהרון ברנשטיין מאוניברסיטת רוטגרס להצטרף אליהם.
כל שלושת החוקרים היו מומחים באלגוריתמים של גרפים קומבינטוריים לבעיות אחרות, והם רצו לראות עד כמה הגישות העתיקות יחסית הללו יכולות להביא אותן. "יש למעשה חופש מסוים בעבודה על בעיה שאפתנית והייתה פתוחה במשך זמן רב", אמר ברנשטיין.
השלישייה התחילה בהתעלמות זמנית מתת-קבוצה של גרפים אפשריים: אלה המכילים מחזורים שליליים. אלו הם נתיבים שחוזרים בלולאה למקום שבו הם התחילו לאחר שעברו דרך סדרה של קצוות שהמשקל שלהם מסתכם במספר שלילי. בגרף עם מחזורים שליליים שניתן להגיע אליהם מנקודת ההתחלה, הרעיון של הנתיב הקצר ביותר מתקלקל, מכיוון שאתה יכול להפוך את המרחק לכל צומת שלילי (או רווחי) ככל שתרצה, על ידי ביצוע הקפות חוזרות ונשנות סביב המחזור השלילי לפני יוצאים ליעד.
החוקרים חשדו שדרכים שליליות ארוכות אחראיות בעיקר להקשות על הבעיה. אז הם התחילו להתמקד בצברים הדוקים של צמתים קרובים, שאינם יכולים להכיל נתיבים שליליים ארוכים: הסיבה לכך היא שאם שתי נקודות מחוברות בנתיב חיובי קצר, הוספת נתיב שלילי ארוך ביניהן תיצור מחזור שלילי. בתוך אשכול צפוף, "העובדה שכולם קרובים זה לזה במובן החיובי למעשה נותנת לך מידע שימושי גם על הקצוות השליליים", אמר ברנשטיין. "זה אומר לך שדברים לא יכולים להיות שליליים מדי."
רוב הגרפים מכילים הרבה אשכולות הדוקים כאלה שמחוברים זה לזה רק בצורה חלשה. אם החוקרים יכלו לאתר את כל האשכולות, הם חשדו שהם יכולים לפתח דרך למצוא את הנתיבים הקצרים ביותר בתוך כל אחד מהם. משם, אולי יהיה להם קל יותר לחבר אשכולות בודדים ולמצוא את הנתיבים הקצרים ביותר בגרף המקורי. אבל זה ידרוש איתור מהיר של האזורים של כל גרף שבו צמתים קרובים זה לזה - דבר שהם לא ידעו לעשות. התברר שהמפתח הוא טכניקה שמקורה בענף אחר לגמרי של תורת הגרפים.
חיתוך גרפים
בשנות ה-1980, מדעני מחשבים פיתחו טכניקה שנקראת פירוק בקוטר נמוך כדי לבחור צבירים הדוקים בגרף ולזהות את הקצוות למחיקה כדי להפריד בין הצבירים הללו. טכניקה זו מספקת דרך לחלק גרפים למקטעים עצמאיים. זה הומצא כדי להקל על אלגוריתמים "מבוזרים", שבהם חישובים פועלים במקביל על חלקים שונים של גרף, כך שזה היה פחות שימושי עבור אלגוריתמים עם הנתיבים הקצרים ביותר, שאין להם תכונה זו.
ברנשטיין, ננונגקאי ו-וולף-נילסן הבינו שפירוק בקוטר נמוך יכול לעזור להם לזהות אשכולות ללא שליליות מרוכזת הרבה. למרבה הצער, אלגוריתמי פירוק סטנדרטיים בקוטר נמוך עובדים רק על גרפים לא מכוונים - אלה שבהם ניתן לחצות כל קצה בשני הכיוונים. בעיית הנתיבים הקצרים ביותר במשקל שלילי, בינתיים, הגיונית רק בגרפים מכוונים, שבהם כל קצה הוא רחוב חד סטרי. (אחרת, קצה שלילי יחיד לא מכוון ייצור מחזור שלילי המורכב מקפיצות חוזרות ונשנות על פני הקצה הזה.) אם החוקרים היו רוצים להשתמש בפירוק בקוטר נמוך, הם היו צריכים להתאים אותו.
זה מה שהם עשו בעיתון החדש שלהם. קיבל השראה מ עבודות עבר שבו ברנשטיין וולף-נילסן שיתפו פעולה עם פרובסט גוטנברג, הם פיתחו הליך שבירה לגרפים מכוונים בדומה לפירוק בקוטר נמוך. ההליך חותך גרף מכוון שרירותי לסדרה של אשכולות צמודים על ידי שימוש בתהליך אקראי כדי למחוק רק קומץ קצוות. לאחר מכן, האשכולות הללו מחוברים על ידי רשת דלילה יותר שבה כל הקצוות מצביעים לאותו כיוון. סוג זה של רשת נקרא גרף א-מחזורי מכוון, או DAG.
חשבו על DAG כמו נחל שבו מים עשויים לזרום בשבילים שונים: נתיבים מסוימים זורמים פנימה ממקורות שונים, אחרים מתנפחים לכיוונים שונים, ואחרים עשויים להתפצל ולהתמזג בחזרה יחד. אבל שום דבר לא זורם לאחור, אז אין מחזוריות; זה עושה DAGs הרבה יותר קל לעבוד איתם.
חוקרים יודעים מזה זמן רב כיצד למצוא במהירות את הנתיבים הקצרים ביותר ב-DAG גם עם משקלים שליליים. אז טכניקת השבר אפשרה לשלושת החוקרים לצמצם כל גרף מכוון לשילוב של שני מקרים מיוחדים - DAGs ומקבצים הדוקים - שכל אחד מהם היה קל לטיפול.
האלגוריתם החדש של הנתיבים הקצרים ביותר משתמש שוב ושוב בהליך השבירה כדי לשבור גרף לאשכולות הדוקים המחוברים על ידי DAG. אחר כך זה מפרק את האשכולות האלה עוד ועוד. בסופו של התהליך, האשכולות ברמה הפנימית מחוברים כמה שיותר. חלק מהסיבה שהאלגוריתם כל כך מהיר היא שלא נדרשות איטרציות רבות כדי לפרק לחלוטין אפילו גרף גדול מאוד, בדיוק כפי שלא לוקח הרבה זמן לקצץ מספר גדול לגודל סביר אם אתה מחלק שוב ושוב זה בחצי.
כשהגרף מפורק במלואו באופן זה, החוקרים יכלו למצוא במהירות את הנתיבים הקצרים ביותר בכל חלק בגרף. עבור אשכולות הדוקים ברמה הפנימית ביותר של מבנה הגרף המקונן, זה היה קל - כמעט לא נותרה להם שליליות. והחוקרים כבר ידעו למצוא את השבילים הקצרים ביותר בקטעי DAG המצטרפים אליהם.
לבסוף, האלגוריתם מוסיף בחזרה את הקצוות שנמחקו על ידי תהליך השבר ומחשב את השפעותיהם על הנתיבים הקצרים ביותר. החוקרים הוכיחו שהתהליך שלהם למחיקה אקראית של קצוות ידרוש כמעט תמיד רק כמה מחיקות כדי לחסל קצוות "אחוריים" - מהסוג שיהפוך את ה-DAG שלהם לגרף עם מחזורים גדולים. זה הפך את זה לבלתי סביר ביותר שכל דרך קצרה ביותר תעבור יותר מדי מקטעים לאחור שכאלה, כך שהם יכלו לפתור את השלב האחרון המסובך הזה על ידי שילוב של שתי שיטות ספרי לימוד משנות החמישים: האלגוריתם של דיקסטרה והאלגוריתם הראשון שפותח עבור גרפים במשקל שלילי.
"זהו הרכב חכם ביותר של הרעיונות האלה," אמרה חאנה. האלגוריתם הוא הראשון עבור גרפים במשקל שלילי שפועל בזמן "כמעט ליניארי" - מה שאומר שזמן הריצה שלו הוא כמעט פרופורציונלי לזמן הדרוש רק כדי לספור את כל הקצוות, המהיר ביותר שהוא יכול להיות.
ומה עם הגרפים עם מחזורים שליליים, שהחוקרים החליטו להתעלם מהם בהתחלה? לאחר שסיימו את הגימור באלגוריתם הנתיבים הקצרים ביותר שלהם, הם הראו שהוא יכול לעבוד גם כאלגוריתם מהיר לאיתור מחזורים שליליים. כמעט אף גרף לא היה מעבר להישג ידו.
נתיבים מקבילים
ברנשטיין הציג את התוצאה של הצוות בכנס היסודות למדעי המחשב 2022, שם כתב היד שלהם המתאר את האלגוריתם החדש נחשב לאחד משני המאמרים הטובים ביותר. ה נייר אחר במקרה גם תיאר אלגוריתם חדש לזמן כמעט ליניארי לפתרון בעיה ארוכת שנים בתורת הגרפים.
אלגוריתם זה, שפותח על ידי פרובסט גוטנברג וחמישה חוקרים נוספים, התייחס לבעיה כללית יותר שנקראת זרימת עלות מינימלית, שבה המטרה היא לייעל את התחבורה דרך נתיבים רבים במקביל, ולכל קצה יש קיבולת מקסימלית וכן עלות נלווית. . בעיות בנתיב הקצר ביותר הן מקרה מיוחד של זרימת עלות מינימלית, כך שניתן להשתמש באלגוריתם החדש של זרימת עלות מינימלית כדי לפתור את בעיית הנתיבים הקצרים ביותר במשקל שלילי בזמן כמעט ליניארי, אם כי בגישה שונה בתכלית.
הצוות שעובד על זרימת עלות מינימלית פיתח את האלגוריתם המהיר למטרות כלליות תוך שימוש בסינתזה מורכבת של טכניקות אופטימיזציה קומבינטורית ומתמשכת שהופכת אותו למסורבל בפועל, לפחות כרגע. האלגוריתם הקומבינטורי של ברנשטיין ועמיתיו, למרות שהוא מוגבל לבעיה ספציפית יותר, משיג את זמן הריצה כמעט ליניארי שלו מבלי לוותר על הפשטות.
"זה מה שמדהים כל כך בנייר הזה," אמר פרובסט גוטנברג. "אתה יכול להסביר את זה לסטודנט לתואר ראשון, ואתה יכול גם ליישם את זה במחשב שלך."
כתוצאה מכך, האלגוריתם החדש הזה עורר מחדש את העניין בגישות קומבינטוריות לבעיות אחרות בתורת הגרפים. נותר לראות אילו בעיות ניתן לפתור במהירות באמצעות אלגוריתמים קומבינטוריים גרידא, ואילו באמת דורשות את הטכניקות המתמשכות שפותחו ב-20 השנים האחרונות.
"זו שאלה פילוסופית שאני מנסה להבין", אמר ננונגקאי. "בעיית הדרך הקצרה הזו נותנת קצת תקווה."
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה כאן.
- מקור: https://www.quantamagazine.org/finally-a-fast-algorithm-for-shortest-paths-on-negative-graphs-20230118/
- שנים 20
- 2021
- 2022
- a
- אודות
- פי
- חֶשְׁבּוֹן
- הושג
- לרוחב
- למעשה
- מחזורי
- להסתגל
- מוסיף
- לאחר
- נגד
- אַלגוֹרִיתְם
- אלגוריתמים
- תעשיות
- כְּבָר
- תמיד
- שאפתן
- עתיק
- ו
- אחר
- בנפרד
- גישה
- גישות
- סביב
- המשויך
- בחזרה
- איזון
- מבוסס
- כי
- להיות
- לפני
- החל
- תאמינו
- ברנשטיין
- הטוב ביותר
- בֵּין
- מעבר
- גָדוֹל
- לִלווֹת
- סניף
- לשבור
- הפסקות
- שבור
- מחשב
- נקרא
- קיבולת
- מקרה
- מקרים
- מסוים
- חבר עמים
- סְגוֹר
- מקרוב
- אשכול
- שיתף פעולה
- עמיתים
- שילוב
- שילוב
- איך
- חישובים
- המחשב
- מדעי מחשב
- מרוכז
- כנס
- מחובר
- מקשר
- לשקול
- מורכב
- רציף
- עלות
- יכול
- לִיצוֹר
- נוֹכְחִי
- כיום
- חותך
- מחזורי
- DAG
- עשרות שנים
- החליט
- החלטות
- מסירה
- לתאר
- יעד
- נחוש
- לפתח
- מפותח
- DID
- ההבדלים
- אחר
- קשה
- ישיר
- כיוון
- גילה
- מרחק
- לא
- לא
- מטה
- נהג
- הולנדי
- כל אחד
- לזכות
- קל יותר
- הקל ביותר
- אדג '
- תופעות
- בוטל
- בוטלו
- מופעל
- לַחֲלוּטִין
- למעשה
- לְהַעֲרִיך
- הערכות
- אֲפִילוּ
- אי פעם
- כולם
- קיימים
- קיים
- מומחים
- להסביר
- היכרות
- מאוד
- לְהַקֵל
- אוהד
- מהר
- המהיר ביותר
- פדרלי
- מעטים
- סופי
- בסופו של דבר
- מציאת
- ממצאים
- ראשון
- firsttime
- תזרים
- זורם
- להתמקד
- מצא
- יסודות
- חופש
- החל מ-
- לגמרי
- נוסף
- גז
- כללי
- מטרה כללית
- גרמניה
- לקבל
- נתן
- נותן
- Go
- מטרה
- גרף
- גרפים
- חמדן
- מובטח
- גוטנברג
- חצי
- קומץ
- לטפל
- קרה
- כותרת
- לעזור
- גבוה יותר
- לקוות
- איך
- איך
- אולם
- HTML
- HTTPS
- רעיונות
- לזהות
- ליישם
- in
- הַכנָסָה
- עצמאי
- בנפרד
- מידע
- השראה
- למשל
- מכון
- אינטרס
- בדוי
- לערב
- IT
- איטרציות
- להצטרף
- הצטרפות
- מפתח
- סוג
- לדעת
- ידוע
- גָדוֹל
- גדול יותר
- רמה
- החיים
- מוגבל
- גבולות
- קישורים
- מקומי
- ארוך
- הרבה זמן
- ותיק
- עוד
- נראה
- עשוי
- לעשות
- עושה
- עשייה
- דרך
- רב
- מַפָּה
- להתאים
- מתימטי
- מקסימום
- מקסימום
- אומר
- בינתיים
- למזג
- שיטות
- יכול
- מודרני
- כסף
- יותר
- מהלכים
- נע
- כמעט
- שלילי
- השכנים
- נטס
- רשת
- חדש
- הבא
- צומת
- צמתים
- רעיון
- מספר
- מספרים
- לקזז
- ONE
- לפתוח
- תפעול
- אופטימיזציה
- מטב
- מְקוֹרִי
- מקורו
- אחר
- אחרים
- אַחֶרֶת
- חבילות
- זיווג
- מאמר
- ניירות
- מקביל
- חלק
- חלקים
- חולף
- עבר
- נתיב
- פנסילבניה
- לבחור
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- נקודה
- נקודות
- חיובי
- אפשרויות
- אפשרי
- לְמַעֲשֶׂה
- תרגול
- מוצג
- בעיה
- בעיות
- תהליך
- להרוויח
- משתלם
- התקדמות
- פּרוֹיֶקט
- רכוש
- הוכיח
- מספק
- אַך וְרַק
- מכניס
- קוונטמגזין
- שאלה
- מהירות
- באופן קיצוני
- אקראי
- מהר
- לְהַגִיעַ
- ממשי
- הבין
- טעם
- סביר
- לאחרונה
- להפחית
- לשקף
- אזורים
- יחסית
- נשאר
- שְׂרִידִים
- חזר
- שוב ושוב
- לייצג
- מיוצג
- מייצג
- לדרוש
- נדרש
- מחקר
- חוקרים
- אחראי
- מוגבל
- תוצאה
- וכתוצאה מכך
- לגמול
- כביש
- מסלול
- הפעלה
- ריצה
- אוניברסיטת רטגרס
- מקריב
- אמר
- אותו
- מדע
- מַדְעָן
- מדענים
- חיפוש
- סעיפים
- קטע
- מגזרים
- תחושה
- סדרה
- מיושב
- כמה
- קצר
- דומה
- פָּשׁוּט
- פשטות
- since
- יחיד
- מידה
- קטן
- So
- לפתור
- פותר
- כמה
- מישהו
- משהו
- אי שם
- מתוחכם
- מָקוֹר
- מקורות
- מיוחד
- ספציפי
- מְהִירוּת
- לַחַשׁ
- לפצל
- תֶקֶן
- התחלה
- החל
- החל
- שלב
- עוד
- סיפור
- אִסטרָטֶגִיָה
- זרם
- רְחוֹב
- מִבְנֶה
- סטודנט
- כזה
- קיץ
- השוויצרי
- לקחת
- לוקח
- נטילת
- נבחרת
- טכניקות
- טכנולוגיה
- אומר
- ספר לימוד
- השמיים
- הגרף
- המקור
- שֶׁלָהֶם
- דברים
- שְׁלוֹשָׁה
- דרך
- זמן
- ל
- יַחַד
- גַם
- נושא
- נגיעה
- להעביר
- נסיעה
- צרה
- נָכוֹן
- תור
- הסתובב
- בְּסִיסִי
- להבין
- אוניברסיטה
- עדכון
- להשתמש
- חופשה
- כמעט
- רציתי
- מים
- webp
- מִשׁקָל
- מה
- אם
- אשר
- מי
- בתוך
- לְלֹא
- תיק עבודות
- עובד
- עובד
- היה
- שנים
- אתה
- זפירנט
- ציריך