1 / 20

אלגוריתמים – תרגול 5

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

damita
Télécharger la présentation

אלגוריתמים – תרגול 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. אלגוריתמים – תרגול 5 חידה : איך אפשר לעשות אינסוף כסף בטריק פשוט אחד?

  2. שאלה 1 – הדיקות מס' האיטרציות • תרגיל: הראו שיתכן והאלגוריתם של בלמן-פורד זקוק ל - איטרציות בשביל לחשב מסלולים קצרים ביותר.

  3. פתרון 1 • נזכר בתקציר האלגוריתם של Bellman-Ford (ללא בדיקת המעגלים השליליים): Bellman-Ford(G,s): Initialize(G). for i = 1 to |V|-1 for each edge (u,v) if (d(v)>d(u)+w(u,v)) Relax (u,v,w) מספר האיטרציות

  4. פתרון 1 Bellman-Ford(G,s): Initialize(G). for i = 1 to |V|-1 for each edge (u,v) if (d(v)>d(u)+w(u,v)) Relax (u,v,w) • הרצת Bellman-Ford: 1 1 1 1 s 0 1 2 7 8 9

  5. שאלה 2 – ארביטראג' • תרגיל: נתונים סוגי מטבעות וטבלת מחירי ההמרה ביניהם. תארו אלגוריתם הבודק האם ניתן להתחיל עם מטבע אחד מסוג ולבצע סדרת המרות שבסופה נקבל יותר ממטבע אחד מסוג

  6. שאלה 2 – דוגמא 1 X 22.3180 X 0.0120 X 0.7516 X 4.9517 =0.9967

  7. שאלה 2 – רעיון • נסמן את מספר המטבעות מסוג שניתן לקבל בתמורה למטבע אחד מסוג בתור • נבנה גרף מכוון . הגרף מכיל צומת עבור כל סוג מטבע, וקיימת קשת מכל צומת לכל צומת אחרת. • לקשת בגרף היוצאת מקודקוד ונכנסת לקודקוד ניתן משקל • המשקל של מעגל יהיה • אבל אנחנו מחפשים מעגל שמקיים

  8. שאלה 2 – תיקון הבעיה • אנחנו מחפשים מעגל כך שמתקיים • לקשת מ- אל ניתן משקל • קיים רצף המרות שמביא לרווח אם"ם בגרף החדש יש מעגל שלילי.

  9. שאלה 2 – המשך הפתרון • אנחנו רוצים למצוא מעגל שעבורו מתקיים • לצורך כך, נשתמש באלג' של Bellman Ford, וכך נפתור את הבעיה בסיבוכיות זמן של • הגרף קשיר בחוזקה, ולכן נוכל להריץ את Bellman-Ford מאיזו צומת שנרצה.

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

  11. שאלה 3 - דוגמא 8 1- 4- 2 2 5 0 2-

  12. שאלה 3 - פתרון • נוסיף קודקוד חדש ונוציא ממנו קשתות במשקל 0 לכל שאר קודקודי הגרף. • נריץ Bellman-Ford, ועבור כל קודקוד נציב 2 0 0 1- 1- 0 2 0 0 1 0 0 2-

  13. נכונות וזמן ריצה • נכונות האלגוריתם: • זמן ריצה: • הוספת קודקוד לגרף – • Bellman-Ford – • סה"כ -

  14. שאלה 4 – מעגלים במשקל 0 • תרגיל: נתון גרף מכוון , ופונקצית משקל בנוסף, ידוע שאין מעגלים שליליים בגרף. תארו אלג' שבודק האם קיים מעגל במשקל 0 בגרף. 9- 1 1 8 4 9 28 -3

  15. שאלה 3 – פתרון • בדומה לתרגיל הקודם, נוסיף קודקוד , ועבור כל קודקוד נוסיף קשת במשקל 0. • נריץ Bellman-Ford מהצומת . • ניצור תת-גרף , כאשר • במילים, קשת נשארת בגרף אמ"מ היא • חלק ממק"ב היוצא מ- (גרף המסלולים הקלים ביותר מ- ) 9- 1 1 8 4 9 28 -3

  16. שאלה 3 – פתרון המרחקים מ - : b -9 9- a 1 0 1 c -8 8 9 -8 d 28 4 נוריד קשתות: e -4 -3 f -7

  17. המשך פתרון • טענה: אם קיים ב- מעגל, אז בהכרח משקלו 0. • הוכחה: נניח שקיים מעגל אז • נסכום את המשוואות ונקבל

  18. המשך פתרון • טענה 2: מעגל במשקל 0 ב - יהיה קיים גם ב - . • הוכחה: נניח בשלילה ש • מעגל במשקל 0 ב - אבל לא ב - . אז לפחות אחד מהאי-שיוויוניםהבאים הוא חזק: • נסכום את המשוואות ונקבל

  19. סיכום וזמן ריצה • לסיכום, האלג' יראה כך: • נוסיף לגרף צומת וקשתות היוצאות ממנה. • נריץ Bellman-Ford מ- • נזרוק את הקשתות שאינן חלק ממק"ב היוצא מ- • נבדוק האם קיים מעגל בתת הגרף שקיבלנו. למשל, על ידי DFS. • כל השלבים פרט לשני לוקחים זמן לינארי. לכן, סיבוכיות זמן הריצה הינה הסיבוכיות של Bellman-Ford.

  20. נקודת בונוס בש"ב • למי שמבין את הקשר בין התמונה ל Bellman-Ford.

More Related