הבנת בעיית הדרכים הקצרות ביותר

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

[ה] גישות נפוצות להתמודד עם בעיה זו, אך מול עסקאות חליפין ( Floyd-Warshall), אלגוריתם תכנות דינמי, עובד על גרפים צפופים אבל רץ ב-FLT:0O(VirFLT:1303306FLT:2)03PSK3, ואינו יכול להתמודד עם מחזורי משקל שליליים.

השוואות של Common Algorithms

כדי להעריך את האלגוריתם של ג'ונסון, זה עוזר בניגוד לפתרונות ה-APSP הנפוצים ביותר:

  • (FLT:0) Floyd-WarshallFIRLT:1 ; פשוט ליישם, משתמש ממטריקס מרחק 2D, עדכונים באמצעות לולאות משולשות. עובד על הקצוות שליליים אבל לא מחזורים שליליים.
  • (ב) [17] ,0) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ויקרא י"ד: ויקרא י"ד): "ה' ויקרא י' (בראשית כ"ד) , ויקרא י"ד): "וַיְהִדָּבְהִיאֶת עַל עַמְתִּים עַל הָאָרֶץ" (בראשית כ"ד).
  • (ב) ויקרא י"ד): "ה' אלקים' (ה') ויקרא י' (בראשית כ"ד)" (בראשית כ"ד, כ"ד) , ).

איך ג'ונסון עובד

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

שלב 1: הוספת סימן סופר

(ב) ,הופנה לגרף (ב"ב) ,ב[[1924]], [[1924]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]]]]], [[1924]]]]]]

שלב 2: פונקציות מחשוב עם בלמן-פורד

(ה) אלגוריתם האלגוריתם של בלמן-עד (ב"ד): "למלא את האלגוריתם" (ב)"ה' (ב')" (ב') יש אפס-קלות לכל התקנונים, האלגוריתם קובע את המרחק הקצר ביותר (FLT:4h):5 מ-FLT 7 למול כל אלגוריתם של מחזור שלילי זה, אם הוא בעל השפעה שלילית של מחזור 9.

שלב 3: משקלו של הגביע

(ב) ,(ב) , ויקרא י"ד) , כל אחד מן ה' (ב) ,2 (ו, v) , ⁇ ⁇ ;2 , ).

(ב) ויקרא י"א, ויקרא י"א)

שינוי זה מבטיח כי כל משקל עודף משקל הוא לא שלילי.ההוכחה מסתמכת על אי השוויון המשולש: כי (FLT:0h(v) ⁇ h(u), + w(u, v) LT:1 (מפלט של Bellman-Ford), זה עוקב אחר כך FLT:2w'(u), ⁇ 0LTFalure: 3, יתר על כן, את הגרף הראשון נשמר בגרף הראשון נשמר, בין שני נתיבים יותר:2, בין הגרף הראשון נשמר, הוא עדיין נשמר בגרף הראשון, בין שני נתיבים).

שלב 4: הפעלת אלגואטרם של דייקסטרה מכל Vertex

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

(ב) ויקרא י"ד): "וַיְהִיאוּ רָאוּ הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא

הצעד האחרון הזה מבטיח את המרחקים המדווחים מדויקים עבור הגרף המקורי.

מורכבות וניתוח ביצועים

(ה) אלגוריתם של ג'ונסון (V E + Vigrentiral) הוא חלק ממכלול הזמן (V) ,2FLT 3), כאשר הוא מיושם עם תור בעדיפות בינארית של גרף 1:2F15), ו-VLT (V) LT:5, ו-V LT5, ו-V1F7) .

(ב) שימוש ב-[[המאה ה-20]] ב[[1924]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]], [[1924]]]], [[1924]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]], [[1924]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]], [[1924]], [[1924]]]], [[1924]], [[1924]], [[1924]]]], [[1924]]]]]]]], [[1924]], [[1924]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]], [[[[1924]], [[

יישומים מעשיים

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

  • (FLT:0Network routing: 1) ספקי שירותי אינטרנט ורשתות תקשורת משתמשים בפרוטוקולים מבוזרים כי חייב לחשב באופן אדפטי את הנתיב הזול ביותר בין שני נתבים, גם כאשר עלויות קישור משתנות או להיות שלילי (למשל, בשל עומס או הנחות מדיניות).
  • (FLT:0)Urban תכנון תחבורה: FLT:1hilping חברות לוגיסטיקה (למשל, Google Maps, OpenStreetMap routing מנועים) ניתוק מסלולים קצרים ביותר בין זוגות מקור רבים אופטימיזציה צי. משקולות שליליות יכול מודל סובסידיות או הנחות מבוססות זמן.
  • (FLT:0) עלות שרשרת של ספוגה עלות minimization: ⁇ F1 ברשתות ייצור רב-שלביות, עלויות מצומת אחד למשנהו עשויות להיות שליליות (למשל, ריבאטים) האלגוריתם של ג'ונסון מוצא את הנתיבים הרווחיים ביותר בכל שרשרת האספקה.
  • ניתוח רשתי:0 (FLT) : ⁇ 1 (Measuring Closeness Centerity) או בין מרכזיות של חשיבות דורש מרחקים של כל-pair. הקצוות השליליים יכולים לייצג "חבר-של חבר" קישורים הנחה או יחסים רציונאליים.
  • מודלים של קלט ארגונומי: FOVALT:1 , מודלים ליוניטיפ וניתוחי זרימה כרוכים לעתים קרובות באפקטים שליליים; האלגוריתם של ג'ונסון מבסס את ההשפעה נטו של הפצת שינויים באמצעות כלכלה מקושרת.

לקריאה נוספת על יסודות מתמטיים, ראה:0Wikipedia מפורט כניסה של 1Feloph 1 ואת הנייר המקורי על ידי דונלד B. Johnson (1977), יישום מעשי ב- Python ניתן למצוא על FLT:2NetworkX's GitHub repositoryFLT 3: הכולל את האלגוריתם של ג'ונסון כתפקוד סטנדרטי.

מסקנה

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

כאשר מתמודדים עם בעיה של APSP בעולם האמיתי שבו גרמים הם דליקים ועשויים להכיל נקודות שליליות, האלגוריתם של ג'ונסון צריך להיות הראשון שיקולים, הערבויות התיאורטיות שלו וביצוע נרחב בספריות (למשל, FLT:0NetworkXigFLT:1,FLT:2Boost Graph Graph Graph Graph Graph GraphcioFLT 3) לעשות את זה מעשי לאמץ.