שאלת מבחן באלגוריתמים - האוניברסיטה הפתוחה 2020 - מסלולים קצרים
נתון גרף מכוון עם משקלים וקדקוד מקור . בנוסף נתון עץ פורש מכוון המושרש ב-. הציגו אלגוריתם המכריע האם הוא אכן עץ מסלולים מזעריים (עמ"מ) מ-. האלגוריתם חייב לרוץ מהר יותר אסימפטוטית מ-Dijkstra, ופלטו הוא "כן (Accept)" או "לא (Reject)" בלבד (אינכם נדרשים לחשב עמ"מ בעצמכם).
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 85 · 2020 · סמסטר א
★★★★★
מסלולים קצריםהוכחת נכונותגרפיםסיבוכיות
הוא עמ"מ אם ורק אם מרחקי-העץ מקיימים את תנאי האופטימליות של Bellman: אף צלע אינה מקיימת . מעבר יחיד על הצלעות מספיק — ללא תור-קדימויות.
האלגוריתם.
1. עבור מ- על העץ וחשב לכל קדקוד את = משקל המסלול מ- ל- בתוך (מעבר יחיד, ).
2. לכל צלע : אם — פלוט "לא (Reject)" וסיים.
3. פלוט "כן (Accept)".
כלומר הוא עמ"מ אם ורק אם אף צלע אינה "מרפה" (relax) מרחק בעץ: לכל צלע.
זמן ריצה. לחישוב , ו- למעבר על הצלעות — סה"כ . מהיר יותר מ-Dijkstra () — ללא גורם לוגריתמי ותור-קדימויות.
הוכחת נכונות.
1. עבור מ- על העץ וחשב לכל קדקוד את = משקל המסלול מ- ל- בתוך (מעבר יחיד, ).
2. לכל צלע : אם — פלוט "לא (Reject)" וסיים.
3. פלוט "כן (Accept)".
כלומר הוא עמ"מ אם ורק אם אף צלע אינה "מרפה" (relax) מרחק בעץ: לכל צלע.
זמן ריצה. לחישוב , ו- למעבר על הצלעות — סה"כ . מהיר יותר מ-Dijkstra () — ללא גורם לוגריתמי ותור-קדימויות.
הוכחת נכונות.
- אם עמ"מ: אז לכל , ולכל צלע מתקיים אי-שוויון המשולש , כלומר — אין הפרה, ומוחזר Accept.
- אם אינו עמ"מ: קיים קדקוד שמרחקו בעץ גדול מהמרחק האמיתי. יהי מסלול מזערי אמיתי; קיימת עליו צלע שעבורה (אחרת כל מרחקי העץ היו אופטימליים), והאלגוריתם מזהה אותה ומחזיר Reject.