שאלת מבחן באלגוריתמים - האוניברסיטה הפתוחה 2022 - גרפים

שאלה 4 – קביעת קבוצה מינימלית ממשקלות מעגליות

נתונה רשת קשיר ולא מכוון עם משקלות שלמים חיוביים לכל הצלעות, וקביצות צלעות קבוצות צלעות. קביצות צלעות מנויות-מעגליות אם כזומור חוגף של קביצות הצלעות של קביצות הצלעות של קביצות משקלי הצלעות בקביצות משקלי הצלעות בקביצות מעגליות בעלת משקל מינימלי מתחשבנות בתוך לחיפוש שמופעלת לתוך.

למה מרכזית: אם קביצות מנויות-מעגליות אז היינו.

חוקרות החמיכה המרכזיות:

2

3

4

5

_6

_7

אלגוריתמים למצואיות קביצות צלעות מנויות-מעגליות במעגל מטוני:
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 892022סמסטר ב
גרפיםעץ פורש מינימליאלגוריתמים חמדנייםקרוסקלפריםהוכחת נכונותסיבוכיות
חשבו על הקשר בין מציאת קבוצת צלעות להסרה במשקל מינימלי לבין מציאת קבוצת הצלעות הנותרות במשקל מקסימלי. מהי התכונה המבנית של קבוצת הצלעות הנותרות?
השאלה כפי שהיא מנוסחת אינה ברורה לחלוטין. אנו נפרש אותה כבעיה קלאסית מתורת הגרפים, המתאימה להקשר של הקורס: מציאת קבוצת שוברת מעגלים (feedback edge set) במשקל מינימלי בגרף קשיר, לא מכוון וממושקל . קבוצת שוברת מעגלים היא קבוצת צלעות שהסרתן מהגרף הופכת אותו לחסר מעגלים (ליער). המטרה היא למצוא כזו שמשקלה הכולל הוא מינימלי.\n\nהבעיה השקולה\n\nנשים לב כי אם מסירים קבוצת צלעות מהגרף , קבוצת הצלעות הנותרת היא . הדרישה שהגרף יהיה חסר מעגלים אומרת ש- מהווה יער.\nמשקל הקבוצה הוא , כאשר הוא סכום משקלי כל הצלעות בגרף והוא ערך קבוע.\nכדי למזער את , עלינו למקסם את . לכן, הבעיה שקולה למציאת יער בעל משקל כולל מקסימלי.\nמכיוון שהגרף הנתון קשיר, היער בעל המשקל המקסימלי חייב להיות עץ פורש מקסימלי (Maximum Spanning Tree). כל יער שאינו עץ פורש (כלומר, אינו מקשר את כל צמתי הגרף) ניתן להרחיב על ידי הוספת צלע מבלי ליצור מעגל, ובכך להגדיל את משקלו (כי המשקלים חיוביים). לכן, הפתרון האופטימלי יהיה עץ המקשר את כל הצמתים.\n\nאלגוריתם\n\nהאלגוריתם לפתרון הבעיה הוא כדלקמן:\n1. מצא עץ פורש מקסימלי של הגרף .\n2. החזר את קבוצת הצלעות .\n\nניתן למצוא עץ פורש מקסימלי על ידי שינוי קל באלגוריתמים למציאת עץ פורש מינימלי:\n* אלגוריתם קרוסקל למשקל מקסימלי: מיין את הצלעות בסדר יורד של משקלן, ועבור על הצלעות הממוינות. הוסף כל צלע שאינה סוגרת מעגל עם הצלעות שכבר נבחרו.\n* אלגוריתם פרים למשקל מקסימלי: התחל מצומת שרירותי. בכל שלב, הוסף לעץ את הצלע בעלת המשקל המקסימלי המחברת צומת שכבר בעץ לצומת שמחוץ לעץ.\n\nהוכחת נכונות\n\nיהי עץ פורש מקסימלי של , ויהי .\nראשית, היא אכן קבוצת שוברת מעגלים, מכיוון שהגרף שנותר לאחר הסרתה הוא , שהוא עץ, ועל כן חסר מעגלים.\nכעת נוכיח כי מינימלי. נניח בשלילה שקיימת קבוצת שוברת מעגלים כך ש-.\nנסמן . מכיוון ש- שוברת מעגלים, הוא יער.\nמההנחה נובע ישירות כי .\nאבל הוא עץ פורש בעל משקל מקסימלי בגרף . בפרט, משקלו הוא מקסימלי מבין כל תתי-הגרפים חסרי המעגלים של .\nהעובדה ש- כאשר הוא יער (תת-גרף חסר מעגלים) עומדת בסתירה להגדרת כעץ פורש מקסימלי.\nלפיכך, ההנחה שגויה, ובהכרח היא קבוצת שוברת מעגלים בעלת משקל מינימלי.\n\n\nסיבוכיות\n\nהסיבוכיות של האלגוריתם נשלטת על ידי שלב מציאת העץ הפורש המקסימלי.\n* באמצעות אלגוריתם קרוסקל (עם מיון צלעות ומבנה Union-Find), הסיבוכיות היא .\n* באמצעות אלגוריתם פרים (עם ערימה בינארית), הסיבוכיות היא .\nבשני המקרים, האלגוריתם הוא פולינומיאלי ויעיל.