300 likes | 425 Views
Minimum Spanning Trees. Linear Time Randomized Algorithm. על הפרק. מהו MST אלגורתימים קיימים האלג' של Boruvka צלעות F-light ו- F-heavy מדגם אקראי – גרף ה- אלג' לבעיית ה MST עם תוחלת זמן ריצה לינארית ניתוח זמן ריצה. MST.
E N D
Minimum Spanning Trees Linear Time Randomized Algorithm
על הפרק • מהו MST • אלגורתימים קיימים • האלג' של Boruvka • צלעות F-light ו- F-heavy • מדגם אקראי – גרף ה- • אלג' לבעיית ה MST עם תוחלת זמן ריצה לינארית • ניתוח זמן ריצה
MST • בהינתן גרף G=(V,E) ופונקציה: נרצה למצוא עץ פורש T של ,G אשר סכום משקולות צלעותיו מינימלי. • כלומר למצוא עץ פורש T המקיים:
דוגמה 7 15 3
עובדות בסיסיות של MST • יהי G גרף קשיר, בעל n קודקודים ו – m צלעות. אז עץ פורש T של G הוא גרף חסר מעגלים, קשיר המכיל n קודקודים ו – n-1 צלעות. • אם כל משקולות G יחודיות אזי קיים MST יחיד לגרף G. • הנחה: מעתה נניח כי כל משקולות G שונות.
עובדות בסיסיות של MST/MSF • יער פורש מינמלי MSF ביחס לגרף G הינו אוסף של עצים פורשים לרכיבי הקשירות של הגרף G (כאשר G קשיר אז היער מורכב מעץ אחד) • משקל ה MSF הוא סכום משקולות העצים ביער.
על הפרק • מהו MST • אלגורתימים קיימים • האלג' של Boruvka • צלעות F-light ו- F-heavy • מדגם אקראי – גרף ה- • אלג' לבעיית ה MST עם תוחלת זמן ריצה לינארית • ניתוח זמן ריצה
מה קיים? • רוב האלג' המבוססים על אסטרטגיה חמדנית – בחירת הצלע המינמלית שאינה סוגרת מעגל. • Prim, Kruskal , Boruvka אלג' דטר' אשר עובדים בזמן • ניתן להשתמש במבני נתונים מתוחכמים ולהגיע לזמני ריצה של: כאשר היא פונקציה העולה מאוד לאט. ולכול צורך מעשי נחשבת כקבועה.
המטרה שלנו • לתכנן אלג' המחשב MST (תמיד מחזיר תשובה נכונה) אשר תוכלת זמן הריצה שלו היא O(n+m). • ZPP– Zero error Probabilistic Polynomial Time
על הפרק • מהו MST • אלגורתימים קיימים • האלג' של Boruvka • צלעות F-light ו- F-heavy • מדגם אקראי – גרף ה- • אלג' לבעיית ה MST עם תוחלת זמן ריצה לינארית • ניתוח זמן ריצה
האלג' של Boruvka • אבחנה: תהי (v,u) הצלע הקלה החוצה את v אזי ה- MST חייב להכיל אותה. x 7 V 2 3 U
האלג' של Boruvka • קלט: גרף ממושקל G • פלט: עץ פורש מינמלי T. • T={} • כל עוד G מכיל יותר מקודקוד אחד. • סמן עבור כל קודקוד את הצלע הקלה ביותר החוצה אותו. • הוסף את הצלעות המסומנות ל T. • קבע את רכיבי הקשירות הנוצרים ע"י הצלעות המסומנת. • אחד כל רכיב קשירות לקודקוד אחד. • מחק לולאות עצמיות וצלעות מרובות.
אבחנות • הצלעות המסומנות בתחילת שלב Boruvka מוכלות ב- MST. • לפי ההבחנה הקודמת. • בהינתן גרף עם n קודקודים ו-m צלעות שלב Boruvka ניתן למימוש בזמן של O(n+m) • הגרף G’ המתקבל מביצוע שלב Boruvka אחד יכיל לכול היותר n/2 קודקודים. • כל קודקוד מסמן צלע אחת. לכן במקרה הגרוע כל זוג קודקודים מסמן את אותה הצלע ולכן יהיו לנו n/2 זוגות שיתאחדו ל n/2 קודקודים.
מסקנה • שלבBoruvkaאחדמוריד את בעיית ה MST עם n קודקודים ו-m צלעות לבעיית מציאת ה MST עם לכול היותר n/2קודקודים ו-mצלעותבזמן של O(n+m).
על הפרק • מהו MST • אלגורתימים קיימים • האלג' של Boruvka • צלעות F-light ו- F-heavy • מדגם אקראי – גרף ה- • אלג' לבעיית ה MST עם תוחלת זמן ריצה לינארית • ניתוח זמן ריצה
F-heavy, F-light • יהי G גרף ממושקל, יהי F יער ב-G ו-u,v קודקודים ב-G. • נגדיר: משקל הצלע המקסימלית במסלול מ u ל v ביער F. • אם u ו- v נמצאים בעצים שונים אז נקבע: • דוגמה: 1 5 x 6 y V U Z
F-heavy, F-light • תהי צלע ו-F יער ב G. • נאמר כי (u,v) היא F-heavy אם • נאמר כי (u,v) היא F-light אם (v,u) F-heavy (y,z) F-light 3 5 x 6 y V 7 U 1 2 Z
F-heavy, F-light • שאלה: יהי G=(V,E) , G’=(V’,E’) כך ש: , ויהי F יער פורש מינמלי עבור G’ • האם (F=(VT , ET מוכל ב MST של G ? • מה ניתן להגיד על צלעות F ? • מה ניתן להגיד על E \ ET ביחס ל F? • מי ירה בשריף, אבל לא ירה בסגנו ? 3 5 x 6 y V 7 U 1 2 Z
מציאת צלעות F-heavy • אנחנו נשתמש באלג' דטרמינסטי' העובד בזמן של O(V+E) אשר: Uses LCA G=(V,E) F
על הפרק • מהו MST • אלגורתימים קיימים • האלג' של Boruvka • צלעות F-light ו- F-heavy • מדגם אקראי – גרף ה- G(p) • אלג' לבעיית ה MST עם תוחלת זמן ריצה לינארית • ניתוח זמן ריצה
מדגם אקראי – גרף ה- • יהי גרף G=(V,E) ומספר ממשי • נסמן ב G(p) את הגרף המתקבל מהגרף G כתוצאה מהתליך הבא: • עבור כל צלע e ב G בחר בהסתברות 1-p אם למחוק אותה. x y Z
מדגם אקראי – גרף ה- • אבחנה: G(p) הוא גרף עם n קודקודים ותחולת מספר הצלעות היא: np • (מתאים ל n ניסוי ברנולי עם הסתברות p להצלחה( • טענה 10.19: יהי F יער פורש מינמלי עבור G(p) אז תוחלת מספר הצלעות מסוג F-light ב G חסומה ע"י n/p • הוכחה: בסוף.
על הפרק • מהו MST • אלגורתימים קיימים • האלג' של Boruvka • צלעות F-light ו- F-heavy • מדגםאקראי – גרף ה- G(p) • אלג' לבעיית ה MST עם תוחלת זמן ריצה לינארית • ניתוח זמן ריצה
FindMSF • קלט: גרף G לא מכוון, ממושקל עם n קודקודים ו-m צלעות. • פלט: יער פורש מינמלי F עבור G. • בצע שלושה שלבי Boruvka וקבל גרף G בעל לכול היותר n/8 קודקודים. יהי C קבצ' הצלעות שסומנו ע"י שלושת השלבים. • אם G ריק אז החזר C. • G’=G(1/2) • חשב יער פורש מינמלי F’ עבור G’ רקורסיבית. • באמצעות אלג' הקופסא השחורה מצא ומחק את כל הצלעות F’-heavy ב-G • חשב רקורסיבית יער פורש מינמלי F עבור G החדש. • החזר:
על הפרק • מהו MST • אלגורתימים קיימים • האלג' של Boruvka • צלעות F-light ו- F-heavy • מדגםאקראי – גרף ה- G(p) • אלג' לבעיית ה MST עם תוחלת זמן ריצה לינארית • ניתוח זמן ריצה
ניתוח זמן ריצה • תהי T(n,m) תוחלת זמן הריצה של האלג' על גרף עם n קודקודים ו- m צלעות. • שורה אחת ניתנת לביצוע בזמן של O(n+m) ומסתיימת בגרף בעל לכול היותר n/8 קודקודים ו-m צלעות. • שורה שתיים מייצרת G’ עם n/8 קודקודים תוחלת מספר קשתות של m/2 בזמן O(n+m) • מציאת MSF רקורסיבית עבור G’ ידרוש תוחלת זמן של T(n/8,m/2) • אלג' הקופסה השחורה עובר בזמן O(n+m) ולפי טענה 10.19 G יכיל בממוצע n/8 קודקודים ו n/4 קשתות
ניתוח זמן ריצה • זמן הריצה הדרוש למציאת עץ פורש עבור G החדש יקח בממוצע: T(n/8,n/4) • ושלב 7 יתבצע בזמן של O(n) • לכן: • פתרון נוסחאת הנסיגה גורר ש: T(n,m)=O(n+m)
על הפרק • מהו MST • אלגורתימים קיימים • האלג' של Boruvka • צלעות F-light ו- F-heavy • מדגםאקראי – גרף ה- G(p) • אלג' לבעיית ה MST עם תוחלת זמן ריצה לינארית • ניתוח זמן ריצה