שאלת מבחן באלגוריתמים - האוניברסיטה הפתוחה 2022 - גרפים
שאלה 2 – מחלוקות וגרפים (עמוד 8)
נתון גרף קשיר ולא מכוונן עם משקלות חיוביות על הקשתות. הגרף עשוי להכיל קשתות מרובות או לולאות עצמיות (אך לא מרובות).
נאמר שקשת היא שקלילה אם היא צריכה להופיע בכל עץ פורש מינימלי של . ההוכחה מבססת על חוקי הטריאנגולציה של Prim.
מחלוקות סטנדרטיות:
- קשת בגרף היא שקלילה אם ורק אם הצלע מהווה גשר בגרף או משקלה נמוך מכל קשת אחרת המחברת את אותו שני קודקודים.
הוכח או הפרך: קשת היא שקלילה אם ורק אם היא הקשת היחידה בחיתוך מינימלי של .
נתון גרף קשיר ולא מכוונן עם משקלות חיוביות על הקשתות. הגרף עשוי להכיל קשתות מרובות או לולאות עצמיות (אך לא מרובות).
נאמר שקשת היא שקלילה אם היא צריכה להופיע בכל עץ פורש מינימלי של . ההוכחה מבססת על חוקי הטריאנגולציה של Prim.
מחלוקות סטנדרטיות:
- קשת בגרף היא שקלילה אם ורק אם הצלע מהווה גשר בגרף או משקלה נמוך מכל קשת אחרת המחברת את אותו שני קודקודים.
הוכח או הפרך: קשת היא שקלילה אם ורק אם היא הקשת היחידה בחיתוך מינימלי של .
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 912022סמסטר א
★★★★★
גרפיםעץ פורש מינימליהוכחההוכח או הפרךאלגוריתמים חמדנייםקרוסקלפרים
השתמשו בתכונת החתך של עצים פורשים מינימליים. כדי להוכיח את הטענה, הראו שקשת נמצאת בכל עפ"מ אם ורק אם קיים חתך כלשהו שהיא הקשת בעלת המשקל הנמוך ביותר באופן יחיד בו.
הטענה נכונה. נוכיח אותה על ידי פירוש הביטוי "הקשת היחידה בחיתוך מינימלי" כקשת שהיא בעלת המשקל המינימלי באופן יחיד ביחס לחיתוך כלשהו. תכונה זו ידועה בשם תכונת החתך הבטוח. קשת נקראת קשת קלה ביחס לחיתוך אם משקלה הוא הנמוך ביותר מבין כל הקשתות באותו חיתוך. הטענה היא שקשת נמצאת בכל עפ"מ אם ורק אם קיים חתך שבו היא קשת קלה יחידה.
נוכיח את שני כיווני הטענה:
**כיוון ראשון ():**
נניח שקיים חתך כך שהקשת היא הקשת הקלה היחידה החוצה אותו. כלומר, ולכל קשת אחרת החוצה את החתך (), מתקיים .
נרצה להוכיח כי חייבת להופיע בכל עץ פורש מינימלי (עפ"מ) של .
נניח בשלילה שקיים עפ"מ שאינו מכיל את הקשת . מכיוון ש- הוא עץ פורש, קיים מסלול יחיד ב- בין שני צומתי הקצה של , כלומר בין ל-. מכיוון ש- ו-, המסלול חייב לחצות את החתך. לכן, קיימת ב- לפחות קשת אחת כך שגם היא חוצה את החתך .
כעת, נבנה גרף חדש .
- הוא עץ פורש: הסרת מ- מנתקת אותו לשני רכיבי קשירות. מכיוון ש- מחברת בין שני רכיבים אלו (כי היא חוצה את החתך כמו ), הוספתה הופכת את לעץ קשיר. מספר הקשתות נותר , ולכן הוא עץ פורש.
- נשווה את משקלי העצים: .
- מההנחה שלנו, היא הקשת הקלה היחידה בחתך, ולכן .
- מכאן נובע כי .
מצאנו עץ פורש שמשקלו קטן ממש ממשקלו של . זוהי סתירה להנחה ש- הוא עץ פורש מינימלי.
לכן, ההנחה הראשונית שלנו שגויה, ו- חייבת להופיע בכל עפ"מ. **כיוון שני ():**
נניח שהקשת מופיעה בכל עפ"מ של . נרצה להוכיח שקיים חתך שבו היא הקשת הקלה היחידה.
ניקח עפ"מ כלשהו . אנו יודעים כי . אם נסיר את מ-, העץ יתפרק לשני רכיבי קשירות. נגדיר את החתך על פי רכיבים אלה: יהיה קבוצת הצמתים באחד הרכיבים (זה המכיל את ), ו- יהיה קבוצת הצמתים ברכיב השני (המכיל את ).
הקשת חוצה את החתך הזה מעצם הגדרתו. נותר להוכיח שהיא הקשת הקלה היחידה שחוצה אותו.
נניח בשלילה שקיימת קשת אחרת החוצה את החתך כך ש-.
- נבנה גרף חדש .
- הוא עץ פורש: הסרת מ- מנתקת אותו לשני רכיבי קשירות ו-. הקשת מחברת צומת מ- לצומת מ-, ולכן היא מאחה את הרכיבים בחזרה לעץ קשיר. מספר הקשתות נותר , ולכן עץ פורש.
- נשווה את משקלי העצים: .
- מההנחה בשלילה, , ולכן .
מכיוון ש- הוא עפ"מ, משקלו מינימלי. לכן, גם חייב להיות עפ"מ.
אבל, הוא עפ"מ שאינו מכיל את הקשת . זוהי סתירה להנחה ש- מופיעה בכל עפ"מ.
לכן, ההנחה בשלילה שגויה. כלומר, לא קיימת קשת כזאת. מכאן ש- היא הקשת הקלה היחידה החוצה את החתך שהגדרנו.
נוכיח את שני כיווני הטענה:
**כיוון ראשון ():**
נניח שקיים חתך כך שהקשת היא הקשת הקלה היחידה החוצה אותו. כלומר, ולכל קשת אחרת החוצה את החתך (), מתקיים .
נרצה להוכיח כי חייבת להופיע בכל עץ פורש מינימלי (עפ"מ) של .
נניח בשלילה שקיים עפ"מ שאינו מכיל את הקשת . מכיוון ש- הוא עץ פורש, קיים מסלול יחיד ב- בין שני צומתי הקצה של , כלומר בין ל-. מכיוון ש- ו-, המסלול חייב לחצות את החתך. לכן, קיימת ב- לפחות קשת אחת כך שגם היא חוצה את החתך .
כעת, נבנה גרף חדש .
- הוא עץ פורש: הסרת מ- מנתקת אותו לשני רכיבי קשירות. מכיוון ש- מחברת בין שני רכיבים אלו (כי היא חוצה את החתך כמו ), הוספתה הופכת את לעץ קשיר. מספר הקשתות נותר , ולכן הוא עץ פורש.
- נשווה את משקלי העצים: .
- מההנחה שלנו, היא הקשת הקלה היחידה בחתך, ולכן .
- מכאן נובע כי .
מצאנו עץ פורש שמשקלו קטן ממש ממשקלו של . זוהי סתירה להנחה ש- הוא עץ פורש מינימלי.
לכן, ההנחה הראשונית שלנו שגויה, ו- חייבת להופיע בכל עפ"מ. **כיוון שני ():**
נניח שהקשת מופיעה בכל עפ"מ של . נרצה להוכיח שקיים חתך שבו היא הקשת הקלה היחידה.
ניקח עפ"מ כלשהו . אנו יודעים כי . אם נסיר את מ-, העץ יתפרק לשני רכיבי קשירות. נגדיר את החתך על פי רכיבים אלה: יהיה קבוצת הצמתים באחד הרכיבים (זה המכיל את ), ו- יהיה קבוצת הצמתים ברכיב השני (המכיל את ).
הקשת חוצה את החתך הזה מעצם הגדרתו. נותר להוכיח שהיא הקשת הקלה היחידה שחוצה אותו.
נניח בשלילה שקיימת קשת אחרת החוצה את החתך כך ש-.
- נבנה גרף חדש .
- הוא עץ פורש: הסרת מ- מנתקת אותו לשני רכיבי קשירות ו-. הקשת מחברת צומת מ- לצומת מ-, ולכן היא מאחה את הרכיבים בחזרה לעץ קשיר. מספר הקשתות נותר , ולכן עץ פורש.
- נשווה את משקלי העצים: .
- מההנחה בשלילה, , ולכן .
מכיוון ש- הוא עפ"מ, משקלו מינימלי. לכן, גם חייב להיות עפ"מ.
אבל, הוא עפ"מ שאינו מכיל את הקשת . זוהי סתירה להנחה ש- מופיעה בכל עפ"מ.
לכן, ההנחה בשלילה שגויה. כלומר, לא קיימת קשת כזאת. מכאן ש- היא הקשת הקלה היחידה החוצה את החתך שהגדרנו.