שאלת מבחן באלגוריתמים - האוניברסיטה הפתוחה 2021 - אלגוריתמים חמדניים
נתון גרף לא מכוון . תת-קבוצה של קדקודים נקראת "מיוחדת" אם היא נוגעת בכל הצלעות, כלומר לכל מתקיים או (כיסוי קדקודים). ברצוננו למצוא קבוצה מיוחדת מזערית.
הציגו אלגוריתם למציאת קבוצה מיוחדת מזערית כאשר נתון ש- הוא יער (גרף חסר מעגלים), והוכיחו את נכונותו.
הציגו אלגוריתם למציאת קבוצה מיוחדת מזערית כאשר נתון ש- הוא יער (גרף חסר מעגלים), והוכיחו את נכונותו.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 52 · 2021 · סמסטר ב
★★★★★
אלגוריתמים חמדנייםגרפיםהוכחת נכונות
לצלע של עלה, כדאי תמיד להעדיף את השכן (ההורה) על פני העלה — ההורה עשוי לכסות צלעות נוספות, העלה מכסה רק את עצמו. עבדו מהעלים כלפי מעלה.
האלגוריתם (חמדני על עלים). נשרש כל עץ ביער ונעבד את הקדקודים בסדר post-order (מהעלים כלפי מעלה). נחזיק קבוצה , ונסמן צלעות כ"מכוסות". לכל קדקוד שמעובד: אם קיימת צלע שאינה מכוסה — נוסיף את ההורה ל-, ונסמן את כל הצלעות הנוגעות בהורה כמכוסות. בסוף נחזיר את .
שקול לניסוח האיטרטיבי: כל עוד יש צלעות, בחר עלה , הוסף ל- את שכנו , והסר את ואת כל הצלעות הנוגעות בו.
זמן ריצה. (ביער ).
הוכחת נכונות. נראה שקיים כיסוי מזערי שאינו כולל את העלה אלא את שכנו . תהי צלע כך ש- עלה. כל כיסוי חייב להכיל את או את כדי לכסות את הצלע . בהינתן כיסוי מזערי המכיל את (ולא את ): מכסה רק את הצלע (כי עלה), ואילו עשוי לכסות צלעות נוספות; לכן הוא כיסוי בגודל זהה או קטן יותר. מכאן שקיים כיסוי מזערי הכולל את — בדיוק כפי שהאלגוריתם בוחר. לאחר הוספת והסרת הצלעות שנוגעות בו, נותרת בעיה קטנה יותר (יער) שנפתרת רקורסיבית באותו אופן; באינדוקציה על מספר הצלעות מתקבל כיסוי מזערי.
> הערה — תיקון לפתרון נפוץ: אין לבחור פשוט את "הצד הקטן מבין שני צבעי היער הדו-צדדי". זהו אמנם כיסוי, אך אינו מזערי בהכרח: ב"כוכב-כפול" עם עלים ל- ו- ל-, שני הצבעים בגודל כל אחד, אך הכיסוי המזערי הוא בגודל .
שקול לניסוח האיטרטיבי: כל עוד יש צלעות, בחר עלה , הוסף ל- את שכנו , והסר את ואת כל הצלעות הנוגעות בו.
זמן ריצה. (ביער ).
הוכחת נכונות. נראה שקיים כיסוי מזערי שאינו כולל את העלה אלא את שכנו . תהי צלע כך ש- עלה. כל כיסוי חייב להכיל את או את כדי לכסות את הצלע . בהינתן כיסוי מזערי המכיל את (ולא את ): מכסה רק את הצלע (כי עלה), ואילו עשוי לכסות צלעות נוספות; לכן הוא כיסוי בגודל זהה או קטן יותר. מכאן שקיים כיסוי מזערי הכולל את — בדיוק כפי שהאלגוריתם בוחר. לאחר הוספת והסרת הצלעות שנוגעות בו, נותרת בעיה קטנה יותר (יער) שנפתרת רקורסיבית באותו אופן; באינדוקציה על מספר הצלעות מתקבל כיסוי מזערי.
> הערה — תיקון לפתרון נפוץ: אין לבחור פשוט את "הצד הקטן מבין שני צבעי היער הדו-צדדי". זהו אמנם כיסוי, אך אינו מזערי בהכרח: ב"כוכב-כפול" עם עלים ל- ו- ל-, שני הצבעים בגודל כל אחד, אך הכיסוי המזערי הוא בגודל .