ממן 12 אלגוריתמים 25א


שאלה 1

  • נתון גרף מכוון , עם לכל , ומקור .

  • נתון כי לכל , קיים מסלול מ- ל-.

  • אם לכל מסלול , אזי הוא מסלול מזערי מ- ל-.

  • אם הם המשקלים האפשריים של מסלולים מ- ל-, אזי לכל מסלול מזערי , מתקיים . המסלולים עם המשקל נקראים מסלול כמעט-מזערי

  • אם צלע היא הצלע האחרונה במסלול מזערי , היא נקראת צלע שימושית.

  • (א) מסלולים עם צלעות שימושיות בלבד הם מסלולים מזעריים

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

    • יהי מסלול מ- ל- באורך כלשהו . נניח כי מכיל צלע לא שימושית .
    • לפי ההגדרה, צלע היא לא שימושית אם קיים מסלול מ- ל- שאינו משתמש ב- ו-.
    • נגדיר מסלול חדש .
    • מכיוון ש-, אזי .
    • לכן, אינו יכול להיות מסלול מזערי.
  • (ג) אם הוא מסלול כמעט-מזערי, אז יש לו בדיוק צלע לא שימושית אחת

    • המסלול הוא כמעט-מזערי אם , כאשר הוא משקל המסלול המזערי. לכן, אינו מסלול מזערי. לפיכך, חייב להכיל לפחות צלע לא שימושית אחת. (לפי א)
    • נניח כי מכיל יותר מצלע לא שימושית אחת. יהיו ו- שתי הצלעות הלא שימושיות ב-.
    • יהי מסלול המזערי מ- ל-.
    • מכיוון ש- ו- לא שימושיות, קיימים מסלולים ו- הקצרים מ- ו-, בהתאמה.
    • לכן, המסלול מקיים:
      • גם: (כי )
      • וגם: (כי )
    • לכן , מה שסותר את ההנחה ש הוא כמעט-מזערי.
  • (ד) הרישא של מ- ל- היא מסלול מזערי, והסיפא מ- ל- היא מסלול מזערי

    • לפי סעיף א, הן הרישא והן הסיפא הם מסלולים מזעריים כי הם מכילים רק צלעות שימושיות.
  • (ה) אלגוריתם למציאת מסלול כמעט-מזערי מ- ל- בסיבוכיות זמן

    • נמצא מסלול מזערי בעזרת דייקסטרה מ-.
    • נגדיר ו-.
    • לכל צלע שעבורה pred[v]!=u (כלומר אינה שימושית) נבצע:
      • אם אזי:
        • גם:
        • וגם:
    • אם או אזי אין מסלול כמעט-מזערי מ- ל-. אחרת, יש מסלול כמעט-מזערי .

שאלה 2

  • נתון גרף בלתי מכוון קשיר עם שהם ערכים שלמים ושונים זה מזה.
  • הגרף הוא עמ”מ מ- לכל שאר הקודקודים ב-. ו- הוא עפ”מ של .
  • (א) הוכיחו כי ו- חולקים לפחות צלע אחת.
    • נניח בשלילה כי ו- אינם חולקים צלעות משותפות.
    • כלומר, .
    • ניקח צלע כלשהי ב- שאינה ב-.
    • מאחר ו- הוא עמ”מ, קיים מסלול מ- ל- ב- כך ש-.
    • נסמן את הגרף כגרף הזהה ל- אך עם הוספת המסלול והסרת הצלע והסרת צלע אחרת . (שבהכרח הייתה שם כדי לחבר את לעפ”מ)
    • לפיכך, . (מאחר ו-)
    • כך שיש לנו עץ פורש כך ש-, מה שסותר את ההנחה כי הוא עפ”מ.
  • (ב) הציגו סדרה של גרפים עם וקודקוד מוצא ומשקלים חיוביים שלמים ושונים כך שלגרף יש עמ”מ ועפ”מ שיש להם בדיוק צלע אחת משותפת.TODO

שאלה 4

  • הוכיחו כי עבור כל עץ בינארי לחלוטין (full) מושרש עם עלים, קיימת סדרת שכיחויות כך שאחד מעצי הופמן עבור סדרת השכיחויות הזו הוא .
    • נשתמש באינדוקציה על מספר העלים בעץ .
    • מקרה בסיס ():
      • עץ בינארי מלא עם עלים מורכב משורש יחיד עם שני צאצאים (העלים). האלגוריתם עם שתי שכיחויות ו-, תמיד חבנה עץ שבו שני העלים מאוחדים לשורש..
    • הנחת האינדוקציה:
      • נניח כי עבור כל עץ בינארי מלא עם עלים, קיימת סדרת שכיחויות כך שהאלגוריתם של הופמן מייצר איתה את .
    • צעד האינדוקציה:
      • נבחר שני עלים ו- בעומק המרבי. נניח שהורה של עלים אלו הוא .
      • אם נסיר את ו- מ- ונחליף את ההורה שלהם בעלה חדש , ניצור עץ חדש עם עלים.
      • על פי הנחת האינדוקציה, קיימת סדרת שכיחויות עבור העלים של כך שהאלגוריתם של הופמן יכול לבנות את .
      • נגדיר את השכיחויות של ו- כ- ו-, כך ש-, כאשר היא השכיחות של ב-. נבחר את ו- כך שיהיו שונים וקטנים מכל שאר השכיחויות ב-.
      • בהרצת של האלגוריתם של הופמן, שתי השכיחויות הקטנות ביותר ו- יאוחדו ל-, מה שייצור את . ואז על פי הנחת האינדוקציה, זה יבנה את , כלומר בסך הכל נקבל את .

תודה רבה :)