אדמונדס-קרפ אלגואטרם: ניתוח הסתברותי מפורט

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

תיאור אלגורית' ו- Key Properties

(ב) ב[[1924]]]] [[1924]]]]]] [[1924]]]]]]]] [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]], [[1924]]]]]]]], [[1924]], [[1924]]]]]]]]]]]], [[1924]]]]]], [[1924]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]], [[1924]]]]]]]]]], [[1924]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

  1. מדרש (ב) ויקרא י"ד): "ה'" (בראשית כ"ד)
  2. יצירת הגרף הדומה (FLT:0)GFLT:1cioph:2cioFLT 3:2, כולל קצוות לאחור עם יכולת שווה לזרם הנוכחי.
  3. (ב) ,2 (ב) ,5 ,5 , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  4. אם אין דרך להתקיים, לסיים; הזרם הנוכחי הוא מקסימלי.
  5. אחרת, לקבוע את יכולת צוואר הבקבוק לאורך הנתיב (קיבולת שאריות מינימלית).
  6. הגדלת זרימת הסכום לאורך הדרך ועדכון יכולות שאריות.
  7. חזור מצעד 2.

(ב) השימוש ב- BFS מבטיח כי כל נתיב גדל הוא דרך קצרה ביותר בגרף ה- משכן: "נכס קריטי" עולה: המרחק (בנקודות) מ-FLT:0sentiFLT:1 ל-FLT:2tuaFLT 3:2toriph 3 בגרף ה-Squaual אינו יורד ומגביר את כל ה-FLT:4OE) LT5 הוא מוביל למורכבות ישירה.

ניתוח מורכבות

(ב) ב[[1924]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]]]]]], [[1924]]]], [[1924]]]]]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

(ב) ,הניתוח הסטנדרטי מראה כי מספר ההגדלות הוא במרבית ה-FLT:0O(VE)FLT:1, כך שהזמן הכולל הוא FLT:2O(V E2)igFLT 3: (או FLT:4O(V) LT) {\displaystyle \ V +E)FLT:5 for Completeness.

השוואה עם Max Flow Algorithms

אלגורית אלגורית דיניק

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

Push-Relabel Algorithms

שיטות Push-relabel, כגון אלגוריתם הגנרית או הגרסאות הגבוהות ביותר של בלבל, להשיג את (FLT:0(V2 ⁇ E)BuildFLT:1 או FLT:2O(V3)FLT 3:53)FLT 3: הם פועלים על ידי לחיצה על זרימת זרם מקומי לאורך הקצוות זכאים וחיזוק אלגוריתמים כדי לשמור על תווית תקפה.

אלגוריתם חשוב נוסף הוא האלגוריתם של פורד-פרולרסון, הניב אלגוריתם של אלגוריתם של אלגוריתם (FLT:0) אלגוריתם של אלגוריתם (E2O(E2) 3, אשר מוסיף פרמטר מדרג לשיטת פורד-Fulkerson, אשר הוא גם יכולת מקסימלית, אך פשוטה יותר מדחף-larebel.

למה דיימונדס-קארטרפ עדיין משנה

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

השלכות מעשיות ושימוש במקרים

באפליקציות בעולם האמיתי, בחירת אלגוריתם תלויה במידה רבה במגבלות בעיות.לדוגמה:

  • (ב) (ב) ,9) ,(ב) , [17] , [17] , ).
  • (FLT:0) הנדסה היקפית הנדסה לאחור (FLT:1): רשתות תקשורת וכביש, זרימת הזרמים הם לעתים קרובות גדולים וגרפים ספאר. דיניקה או לחץ-רבל מועדים בגלל דרוג טוב יותר.
  • (FLT:0) איור פלמנטלציה של תמונה 1 (צילום: אלגוריתם) אלגוריתמים לראייה ממוחשבת לעתים קרובות מסתמכים על חישובים מקס-זרם/מוח-מין-האלגוריתם בוקוב-קולורוב, שיטה מיוחדת של הגדלת-פת, לעתים קרובות מזרזת אלגוריתמים גנרים עבור גרפים דמויי רשת אלה, אבל אדמונדס-קפ יכול לשמש לבעיות קטנות יותר.
  • (ב) [ה]: כאשר הפשטות והנכונות הם בעלי מהירות גולמית, אדמונדס-ארפ היא בחירה בטוחה.התנהגותו צפויה, ודה-ההתבה היא פשוטה משום ש- BFS קל ליישם.

ביצועים אמפיריים

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

המונחים

כאשר יישום Edmonds-Karp, ניהול גרפן זהיר חיוני.ייצוג שני הקצוות קדימה ואחורה מאפשר הגדלת קלה ו backtracking.coming רשימה של דבקות עם נקודות כדי להפוך הקצוות (או אחסון לאחור אינדיקציות) מפשט עדכונים.ה- BFS חייב גם לתעד את קודמיו כדי לשחזר את הנתיב הגדל.

אופטימיזציה כוללים:

  • (ב) אם לא ניתן להגיע ל-BFS:0)
  • שימוש ביכולות ובזרמים כדי להימנע מבעיות צף.
  • הגדלת מספר רב של רבודה אם לגרף יש הרבה קצוות מקבילים (למרות פחות נפוץ).

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

שיטת פורד-עתידרסון המקורית

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

תוספות וריאציות

מגוון של אדמונדס-קרפ כוללים:

  • (ב) [17] , [17] , [17] , [17] , [17] , אלגוריתם עובד עם פרמטר פרמטר קנה מידה:2 ⁇ FLT 3: 3 ו- רק רואה קצה עם יכולת ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) [ה]כל המיומנות של ה-Ul: כאשר כל היכולות הן 1, אלגוריתם הנתיב מבוסס BFS המרחיב את האלגוריתם של הופקרופט-Karp, אם כי האחרון משתמש בשינוי זהיר של BFS/DFS כדי להשיג את FLT:2O(E ⁇ V)FovalLT 3.
  • (ב) [17] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

מסקנה

אלגוריתם Edmonds-Karp הוא שיטה אמינה ומבונה לפתרון בעיות זרימה מקסימליות.ItFLT:0O(V E2)veFLT:1:1 הגרוע ביותר מזוודה הופכת אותו לבלתי מעשי עבור רשתות גדולות מאוד או צפופות, אבל הפשטות שלו ואת ההוכחה ברורה של רצף פולינומאלי ביססו את מקומו בספרי הלימוד החשובים עבור מערכות אמיתיות הדורשות ביצועים מדויקים, בדרך כלל, שיטות חינוכיות, או אלגוריתם קטן, אך ורקמות, אך הן שיטות חינוכיות, אך הן שיטות.

לקריאה נוספת על אלגוריתמים מתקדמים ניתן למצוא ב-FLT:0 [המאמר ויקיפדיה]:0 [ה] מאמר ויקיפדיה הוויקיפדיה: 1 ובתוך הספר הקלאסי FLT:2 introduction to AlgorithmsFLT 3: (CLRS) לניתוח עמוק יותר של ביצועי אלגוריתם זרימה, ראה את FLT:4 NetworkX תמלילות הערות יישום FLT:5 .