פתרון תרגיל בית 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
© Copyright 2024