1 / 33

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

אלגוריתמים – תרגול 4. 3. 1. 4. 2. 5. 2. 3. חידה : מכשף רשע השתלט על קניגסברג , וכלא 4 נסיכות בעיר. הוא שכר גורילות לשמור על הגשרים. ניתן לשחד כל גורילה ע"י מספר שונה של בננות. מהרגע שגורילה שוחדה, ניתן לעבור על הגשר המתאים בחופשיות. יש לנסיך 6 בננות. האם הוא יוכל להציל את כל הנסיכות?.

vivian
Télécharger la présentation

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

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. אלגוריתמים – תרגול 4 3 1 4 2 5 2 3 חידה : מכשף רשע השתלט על קניגסברג, וכלא 4 נסיכות בעיר. הוא שכר גורילות לשמור על הגשרים. ניתן לשחד כל גורילה ע"י מספר שונה של בננות. מהרגע שגורילה שוחדה, ניתן לעבור על הגשר המתאים בחופשיות. יש לנסיך 6 בננות. האם הוא יוכל להציל את כל הנסיכות?

  2. הצעות לשיפור • אימייל:shaicandobetter@gmail.com • סיסמא: dijkstra

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

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

  5. שאלה 1 – דוגמא 1 1 2 6 1 2 6 2 6 5 1 1 2 6 1 2 6 2 6 5

  6. שאלה 1 – דוגמא 1 1 2 6 2 5 1 2 1 2 6 5

  7. שאלה 1 – דוגמא 1 1 2 6 2 5 1 2 1 2 6 5

  8. שאלה 1 – פתרון • נניח בשלילה שקיימים ושני עפ"מים כך שרכיבי הקשירות של ושל אינם זהים: • קיימים שני קודקודים הנמצאים באותו רכיב קשירות בגרף אחד, וברכיבים שונים בגרף השני. • בה"כ, נניח שקיימת קשת ב- , כך ששני הקודקודים שלה נמצאים ברכיבי קשירות שונים ב- (הוכיחו!) • אם נוסיף את לעץ היא תסגור מעגל שלפחות אחת מקשתותיו במשקל גדול מ- נסמן קשת כזו בתור • כלומר, אם נחליף את על ידי , נקבל עץ קל יותר. בסתירה לכך ש- הינו עפ"מ.

  9. למה המעגל בהכרח מכיל קשת כבדה? • ב- קיימת הקשת וב- הקודקודים ו- נמצאים ברכיבי קשירות שונים. • ב- יש מסלול בין ו- כאשר אנו מוסיפים את הקשת היא סוגרת מעגל יחד עם • היות ש- ו- נמצאים ברכיבי קשירות שונים בגרף לפחות אחת מהקשתות של הינה במשקל גדול מ -

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

  11. שאלה 2 – דוגמא (על הגרף משאלה 1) 1 1 2 6 2 5 משקלי הקשתות: 1,1,2,2,5,6 1 2 1 2 6 5

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

  13. שאלה 2 – פתרון • צעד האינדוקציה – נניח שרשימות המשקלים זהות עד האיברים בגודל ונראה שיש בשני העצים אותו מספר של קשתות במשקל • לפי השאלה הקודמת עם אם נזרוק את הקשתות שגדולות ממשקל זה, נקבל בשני העצים את אותם רכיבי הקשירות. • זאת אומרת שיש בשני העצים אותו מספר קשתות במשקל . • (כי בעץ עם קודקודים יש קשתות.) • מהנחת האינדוקציה, יש בשני העצים אותו מספר קשתות עם • משקל . לכן, יש בשני העצים אותו מספר של קשתות במשקל

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

  15. שאלה 3 – דוגמא

  16. רעיון לפתרון • נגדיר קבוע קטן ונתייחס למשקל של קשת כחולה כאל

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

  18. פורמלית • נגדיר פונקצית משקל חדשה ,כאשר לכל קשת אדומה , , ולכל קשת כחולה . • טענה: עפ"מ ב עם הוא גם עפ"מ ב עם .

  19. הוכחת הטענה • טענה: עפ"מ ב עם הוא גם עפ"מ ב עם . • הוכחה: שיעורי בית. • מהטענה, כיוון שהאלגוריתם של Kruskal מוצא עפ"מ • ב - עם ,הוא מוצא עפ"מ ב המכיל מספר מקסימאלי של קשתות אדומות (מבין העפ"מים).

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

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

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

  23. דוגמא

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

  25. שאלה 4 – עלים מנדטוריים • תרגיל: נתונים גרף קשיר ולא מכוון פונקציית משקל ותת קבוצה של קודקודים תארו אלג' המוצא עץ במשקל מינימאלי מבין העצים הפורשים שכל איברי הם עלים שלהם (או מודיע שלא קיים עץ כזה).

  26. שאלה 4 – פתרון • נגדיר גרף כך ש- ו- הינה קבוצת הקשתות ששני הקודקודים שלהם ב- • האלגוריתם: • נבנה את • אם הגרף אינו קשיר, נודיע שלא קיים עץ מתאים. • אחרת, נמצא עפ"מ ב- . • עבור כל קודקוד ב- נמצא את הקשת הקלה ביותר שמחברת בינו לבין ונוסיף אותה לעץ (אם לא קיימת קשת ל- נודיע שלא קיים עץ מתאים).

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

  28. דוגמא נוספת • נבנה את • אם הגרף אינו קשיר, נודיע שלא קיים עץ מתאים.

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

  30. הוכחת נכונות • נגדיר את התנאי להיות – כל עלה מחובר בקשת ל- • נראה שקיים עץ פורש מתאים ב- אם"םמתקיימים שני התנאים שהאלג' בודק: • קשיר וגם מתקיים  קיים עץ פורש ב- שאיברי עלים בו. • קיים עץ פורש ב- שאיברי עלים שלו  קשיר (אם נזרוק את העלים מהעץ, הגרף עדיין יהיה קשיר), וגם מתקיים

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

  32. מינימאליות העץ הפורש • היות ואנו יודעים בדיוק איזה קשתות סמוכות לאיברי נותר רק למצוא עפ"מ של

  33. עוד דברים כייפים שאפשר לעשות עם עפ"מים Use of the Minimum Spanning Tree Model for Molecular Epidemiological Investigation of a Nosocomial Outbreak of Hepatitis C Virus Infection (Spada et al., 2003) The MST model was applied to the molecular data and, together with the available clinical-epidemiological data, was used to identify the root of transmission of the outbreak and the most probable patient-to-patient chain of transmission. The basic concept of the model is that the outbreak and the most probable patient-to-patient chain of transmission are considered as a special graph connecting all patients with the minimum viral genetic distances among them.

More Related