|
صفحة: 304
אלגוריתם דיקסטרה למציאת מסלולים קצרים ביותר בין כל הזוגות : בפרק הקודם הכרנו את אלגוריתם דיקסטרה למציאת מסלולים קצרים ביותר מקדקוד מקור יחיד . עתה נפעיל את אלגוריתם דיקסטרה n פעמים כאשר , n = \ V \ ובהפעלה / -ה -ית קדקוד המקור היחיד יהיה קדקוד / עבור . 1 < n נתון הגרף G = ( V , E ) וכל המשקלות של הקשתות הס אי-שליליים . נניח שבגרף n = \ V \ קדקודים הממוספרים באופן אקראי 1-מ עד , « והגרף G מיוצג בעזרת מטריצת סמיכות כדלהלן - EJ המשקל שעל הקשת : ((*' , j ) - d [ i ][ v ] מציין את אורך המסלול הזמני הקצר ביותר מקדקוד המקור / לקדקוד . v ברור כי d [ i ][ i ] שווה אפס לכל , 1 < / < n כי כל המשקלות של הקשתות הם אי-שליליים , לכן אורך המסלול הקצר ביותר מקדקוד מקור / לעצמו הוא . 0 כמו כן T d [ i ] \ j ] = | 1 מאחר ש- מתאר את אורך המסלול המינימלי הזמני מקדקוד מקור i - ^ לקדקוד לסיכום , האלגוריתם המבוקש הוא : . 1 לכל קדקוד , / עבור , / = 1 , ... « בצע m : 0 = 0 [ . 2 לכל ק 7 ק , / 7 ) עכ ( ר , / = / , ... # בצע -.2 . 1 לכל קדקוד j עבור ; = 1 ... n בצע : אס / * j אז ? d \ i \ j \\ = a ^ . 3 לכל קדקוד מקור , / עבור / = 1 .. n בצע : קרא לשגרה דיקסטרה . ( G , i , d ) השגרה דיקסטרה מוצאת מסלולים קצרים מקדקוד המקור / ליתר הקדקודים . עבור הגרף הזה :
|
|