3 פתרון תרגיל בית

‫פתרון תרגיל בית ‪3‬‬
‫שאלה ‪.1‬‬
‫נריץ את האלגוריתם של קרוסקל על הקשתות החדשות שנוספו )הקשתות שיוצאות מ‪ )v‬ועל קשתות‬
‫העץ ‪ T‬בלבד‪ .‬ניתן לראות ש |‪ |E|<=2*|V‬לכן הסיבוכויות היא )|‪ ,O(|V|log|V‬נותר להראות שאין‬
‫קשת מ ‪ E\T‬שתוכל להקטין את מחיר העץ שנוצר‪.‬‬
‫שאלה ‪.2‬‬
‫נחשב את עץ פורש מינימאלי ‪ ,T‬נצבע את שאר הקשתות‪ ,E\T ,‬באדום‪ ,‬נריץ את האלגוריתם שלמדנו‬
‫בתרגול שמחפש עץ פורש מינימאלי עם מספר מקסימאלי של קשתות אדומות‪ .‬אם הוא מצא עץ עם‬
‫קשת אדומה אחת לפחות הרי שיש לפחות שני עצים פורשים מינימאליים אחרת לא קיים‪( .‬פתרון‬
‫שקול זה להריץ שוב קרוסקל ובמיון הפנימי של קשתות באותו משקל נשים את קשתות העץ בסוף‬
‫משקלן)‪.‬‬
‫שאלה ‪.3‬‬
‫עבור ‪ c=2‬הגרף משתנה‬
‫שאלה ‪.4‬‬
‫נחשב את )‪ δ(s,v‬לפי ‪ w1‬נחשב את גרף המסלולים הקלים ביותר לפי ‪+ w1(s,v)=δ(s,u)( , w1‬‬
‫)‪ .δ(v,u‬על גרף זה נמצא את המסלול הקל ביותר לפי ‪.w2‬‬
‫שאלה ‪.5‬‬
‫נשכפל כל צומת ‪ v‬ל ‪.6‬‬
‫צומת במרחק ‪ ,1‬צומת במרחק ‪ ,2‬צומת במרחק ‪ ,3‬צומת במרחק ‪ ,4‬צומת במרחק אי זוגי גדול מ‪,5‬‬
‫צומת במרחק זוגי גדול מ‪.6‬‬
‫כל קשת )‪ (v,u‬בגרף המקורית תשוכפל ל ‪ v‬במרחק ‪ 1‬ל ‪ u‬במרחק ‪ v ,.... ,2‬במרחק אי זוגי גדול מ‪5‬‬
‫ל‪ u‬במרחק זוגי גדול מ‪ v ,6‬במרחק זוגי גדול מ‪ 6‬ל‪ u‬במרחק אי זוגי גדול מ‪ .5‬נחשב דייקסטרא על‬
‫הגרף החדש ונחזיר מסלולים מ‪ s‬להעתק של הצמתים במרחק זוגי גדול מ‪.6‬‬
‫שאלה ‪.6‬‬
‫נפעיל דייקסטרא מ‪ .s‬נהפוך את כיווני הקשתות ונריץ שוב דייקסטרא מ‪ .s‬המעגל הוא הוא המסלול מ‪s‬‬
‫ל‪ v‬בדייקסטרא הראשון והמסלול מ‪ s‬ל‪ v‬בדייקסטרא השני (שהוא למעשה מסלול מ‪ v‬ל ‪ s‬בגרף‬
‫המקורי)ץ‬
‫שאלה ‪ 7‬פתרון מלא‬
‫סעיף א'‬
‫ישנו עפ"מ יחיד ( שתי הקשתות במשקל ‪ )2‬אך אם נבחר את ‪ s‬הצומת השחור נקבל עץ מסלולים‬
‫קלים ביותר שונה מאם נבחר את ‪ s‬כצומת האדום‪.‬‬
‫סעיף ב'‬
‫נוכיח שהעפ"מ היחידי הוא העץ החשמונאי ‪ :‬נראה שכל קשת שאינה ב‪ T‬סוגרת מעגל שבו היא‬
‫הקשת הכבדה ביותר (ממש) לכן היא לא יכולה להיות באף עפ"מ‪ .‬תהי )‪ e=(u,v‬קשת שאינה שייכת‬
‫ל‪ ,T‬המסלול בין ‪ u‬ל ‪ v‬ב‪ T‬קטן שווה ל)‪ , w(e‬כי כאשר השורש היה ‪ u‬המסלול הקל ביותר היה‬
‫המסלול ב‪ .T‬מכיוון של המשקלים חיובים המשקל של כל אחת מהקשתות במסלול מ‪ v‬ל‪ u‬ב‪ T‬קטן‬
‫ממש מ)‪ w(e‬לכן ‪ e‬לא יכולה להיות באף עפ"מ‪.‬‬
‫שאלה ‪ 8‬פתרון מלא‬
‫סעיף א'‬
‫נשים לב שאין קשתות שנכנסות ל ‪ s‬לכן‪ .δ(s,s) =0‬ובכל מסלול מ‪ s‬לכל קודקוד ‪ u‬רק הקשת הראשונה‬
‫יכולה להיות שלילית‪ .‬נחזור להוכחת נכונות של דייקסטרא נוכיח באינדוקציה שכל צומת ‪ u‬כשנכנס‬
‫ל‪ ,d.u= δ(s,u) ,S‬נניח בשלילה שלא‪ .‬יהי ‪ u‬הצומת הראשון שלא מתקיים התנאי‪ .‬לפני הכנסת ‪ u‬ל‬
‫‪ S‬נסתכל על ‪ p‬המסלול הקל ביותר מ‪ s‬ל‪ .u‬יהי ‪ y‬הצומת הראשונה בין ‪ s‬ל‪ u‬שאינה ב‪ S‬ו ‪ x‬הצומת‬
‫לפניה‪ .‬ניתן לפצל את המסלול לשניים מ‪ s‬ל ‪ x‬ע"י ‪ ,p1‬מ‪ x‬ל ‪ ,y‬ומ‪ y‬ל‪ u‬ע"י ‪ .p2‬נשים לב ש ‪ p2‬זה‬
‫מסלול עם קשתות לא שליליות בלבד ( הקשת השלילית ביחידה במסלול יכולה להיות הראשונה‬
‫בלבד)‪ .‬כמו בהוכחה בכיתה גם כאן ניתן להראות ש ‪ δ(s,y)= d.y‬ובגלל שב ‪ p2‬הקשתות הם אי‬
‫שליליות גם כאן )‪ δ(s,y)<= δ(s,u‬שאר ההוכחה נשארת זהה (בחרנו את ‪ u‬ל ‪ s‬לפני ‪ y‬לכן ‪d.u<=d.y‬‬
‫לכן ( ‪d.u= δ(s,u‬‬
‫סעיף ב'‬
‫דייקסטרא יכניס ל ‪ S‬את ‪ u‬אחרי ‪ .v‬כשהוא יחקור את ‪ v‬הוא ייתן ל‪ w‬מרחק ‪ 7‬ולא יעדכן שוב את‬
‫מרחק ‪ w‬למרות שהמרחק הוא ‪.6‬‬