ממן 12 אלגוריתמים 25א
שאלה 1
-
נתון גרף מכוון , עם לכל , ומקור .
-
נתון כי לכל , קיים מסלול מ- ל-.
-
-
אם לכל מסלול , אזי הוא מסלול מזערי מ- ל-.
-
אם הם המשקלים האפשריים של מסלולים מ- ל-, אזי לכל מסלול מזערי , מתקיים . המסלולים עם המשקל נקראים מסלול כמעט-מזערי
-
אם צלע היא הצלע האחרונה במסלול מזערי , היא נקראת צלע שימושית.
-
(א) מסלולים עם צלעות שימושיות בלבד הם מסלולים מזעריים
- מקרה בסיסי ():
- מסלול עם משמעו מכיל צלע אחת בלבד, אשר היא שימושית, ולכן מסלול מזערי, היות והוא המסלול היחיד מ- ל-.
- הנחת האינדוקציה:
- נניח כי לכל מסלול באורך , אם כל הצלעות שלו שימושיות, אזי הוא מסלול מזערי.
- צעד האינדוקציה:
- נסתכל על מסלול באורך , שכל צלעותיו שימושיות.
- תהי הצלע האחרונה של . כלומר , כאשר הוא מסלול מ- ל- באורך .
- מהנחת האינדוקציה, הוא מסלול מזערי היות וכל צלעותיו שימושיות.
- כעת, בהוספת , שהיא גם שימושית, לפי הגדרת השימושיות, הוספת למסלול המזערי מ- ל- יוצרת את המסלול המזערי מ- ל-.
- המשקל הכולל של הוא .
- אף מסלול חלופי מ- ל- לא יכול להיות בעל משקל נמוך יותר כי כבר המזערי ל- ו- שימושית.
- לכן, הוא מסלול מזערי.
- מקרה בסיסי ():
-
(ב) מסלולים המכילים צלעות לא שימושיות אינם מסלולים מזעריים
- יהי מסלול מ- ל- באורך כלשהו . נניח כי מכיל צלע לא שימושית .
- לפי ההגדרה, צלע היא לא שימושית אם קיים מסלול מ- ל- שאינו משתמש ב- ו-.
- נגדיר מסלול חדש .
- מכיוון ש-, אזי .
- לכן, אינו יכול להיות מסלול מזערי.
-
(ג) אם הוא מסלול כמעט-מזערי, אז יש לו בדיוק צלע לא שימושית אחת
- המסלול הוא כמעט-מזערי אם , כאשר הוא משקל המסלול המזערי. לכן, אינו מסלול מזערי. לפיכך, חייב להכיל לפחות צלע לא שימושית אחת. (לפי א)
- נניח כי מכיל יותר מצלע לא שימושית אחת. יהיו ו- שתי הצלעות הלא שימושיות ב-.
- יהי מסלול המזערי מ- ל-.
- מכיוון ש- ו- לא שימושיות, קיימים מסלולים ו- הקצרים מ- ו-, בהתאמה.
- לכן, המסלול מקיים:
- גם: (כי )
- וגם: (כי )
- לכן , מה שסותר את ההנחה ש הוא כמעט-מזערי.
-
(ד) הרישא של מ- ל- היא מסלול מזערי, והסיפא מ- ל- היא מסלול מזערי
- לפי סעיף א, הן הרישא והן הסיפא הם מסלולים מזעריים כי הם מכילים רק צלעות שימושיות.
-
(ה) אלגוריתם למציאת מסלול כמעט-מזערי מ- ל- בסיבוכיות זמן
- נמצא מסלול מזערי בעזרת דייקסטרה מ-.
- נגדיר ו-.
- לכל צלע שעבורה
pred[v]!=u
(כלומר אינה שימושית) נבצע:- אם אזי:
- גם:
- וגם:
- אם אזי:
- אם או אזי אין מסלול כמעט-מזערי מ- ל-. אחרת, יש מסלול כמעט-מזערי .
שאלה 2
- נתון גרף בלתי מכוון קשיר עם שהם ערכים שלמים ושונים זה מזה.
- הגרף הוא עמ”מ מ- לכל שאר הקודקודים ב-. ו- הוא עפ”מ של .
- (א) הוכיחו כי ו- חולקים לפחות צלע אחת.
- נניח בשלילה כי ו- אינם חולקים צלעות משותפות.
- כלומר, .
- ניקח צלע כלשהי ב- שאינה ב-.
- מאחר ו- הוא עמ”מ, קיים מסלול מ- ל- ב- כך ש-.
- נסמן את הגרף כגרף הזהה ל- אך עם הוספת המסלול והסרת הצלע והסרת צלע אחרת . (שבהכרח הייתה שם כדי לחבר את לעפ”מ)
- לפיכך, . (מאחר ו-)
- כך שיש לנו עץ פורש כך ש-, מה שסותר את ההנחה כי הוא עפ”מ.
- (ב) הציגו סדרה של גרפים עם וקודקוד מוצא ומשקלים חיוביים שלמים ושונים כך שלגרף יש עמ”מ ועפ”מ שיש להם בדיוק צלע אחת משותפת.TODO
שאלה 4
- הוכיחו כי עבור כל עץ בינארי לחלוטין (full) מושרש עם עלים, קיימת סדרת שכיחויות כך שאחד מעצי הופמן עבור סדרת השכיחויות הזו הוא .
- נשתמש באינדוקציה על מספר העלים בעץ .
- מקרה בסיס ():
- עץ בינארי מלא עם עלים מורכב משורש יחיד עם שני צאצאים (העלים). האלגוריתם עם שתי שכיחויות ו-, תמיד חבנה עץ שבו שני העלים מאוחדים לשורש..
- הנחת האינדוקציה:
- נניח כי עבור כל עץ בינארי מלא עם עלים, קיימת סדרת שכיחויות כך שהאלגוריתם של הופמן מייצר איתה את .
- צעד האינדוקציה:
- נבחר שני עלים ו- בעומק המרבי. נניח שהורה של עלים אלו הוא .
- אם נסיר את ו- מ- ונחליף את ההורה שלהם בעלה חדש , ניצור עץ חדש עם עלים.
- על פי הנחת האינדוקציה, קיימת סדרת שכיחויות עבור העלים של כך שהאלגוריתם של הופמן יכול לבנות את .
- נגדיר את השכיחויות של ו- כ- ו-, כך ש-, כאשר היא השכיחות של ב-. נבחר את ו- כך שיהיו שונים וקטנים מכל שאר השכיחויות ב-.
- בהרצת של האלגוריתם של הופמן, שתי השכיחויות הקטנות ביותר ו- יאוחדו ל-, מה שייצור את . ואז על פי הנחת האינדוקציה, זה יבנה את , כלומר בסך הכל נקבל את .
תודה רבה :)