You are on page 1of 3

‫המכללה האקדמית נתניה‬

‫אלגוריתמים ב' ‪2024‬‬


‫תרגיל בית מספר ‪2‬‬
‫הגשה‪8.4.2024 :‬‬

‫שאלה מס' ‪:1‬‬


‫שפרו את אלגוריתם ‪ Dijkstra‬כדי שיגלה לכל צומת ‪ v‬כמה קשתות‬
‫ישנן באחד המסלולים הקצרים ביותר מצומת המקור אל ‪.v‬‬
‫נמקו את נכונות האלגוריתם‪ .‬מה סיבוכיות האלגוריתם?‬

‫שאלה מס' ‪:2‬‬


‫את‪:‬‬ ‫‪v V‬‬ ‫הציגו אלגוריתם המבוסס על ‪ BFS‬אשר מחשב לכל צומת‬
‫א‪ .‬המרחק מ‪ s-‬אל ‪.v‬‬
‫ב‪ .‬צומת לפני האחרון במסלול מינימלי מ‪ s-‬אל ‪.v‬‬
‫ג‪ .‬מספר המסלולים המינימליים מ‪ s-‬אל ‪.v‬‬
‫שימו לב‪ :‬מספר המסלולים מ‪ s-‬אל ‪ v‬בגרף שבדוגמה למטה גדול‬
‫יותר מ‪2-‬‬

‫ענו על השאלות הבאות‪:‬‬


‫‪ .1‬נמקו במפורט ככל האפשר את נכונות הדרך בה האלגוריתם מחשב‬
‫את מספר המסלולים ב‪ G-‬מ‪ s-‬אל ‪ .v‬שימו לב‪ :‬אין צורך לנמק את‬
‫נכונות הפלט הרגיל‪.‬‬
‫‪ . 2‬מהי סיבוכיות האלגוריתם המשופר? נמקו תשובתכם במפורט‪.‬‬
‫דוגמה‪:‬‬

‫מספר המסלולים מ‪ s -‬ל‪ v -‬הוא ‪4‬‬

‫שאלה מס' ‪:3‬‬


‫בהרצאה ‪ 2‬הוכחה הלמה הבאה‪:‬‬
‫‪ , v V‬צומת שרירותי ב‪ .G-‬נניח‬ ‫יהי ) ‪ G = (V , E‬גרף לא מכוון וקשיר ויהי‬
‫ש‪ .  ( s, v ) = l -‬אזי‪:‬‬

‫‪ .1‬אם ‪ v  s‬ל‪ v-‬יש לפחות שכן אחד‪ ,u ,‬המקיים‬


‫‪.  ( s, u ) = l − 1‬‬
‫מתקיים‪. l − 1   ( s, w )  l + 1 :‬‬ ‫לכל ‪ ,w‬שכן של ‪,v‬‬ ‫‪.1‬‬

‫שימו לב‪ :‬הלמה מוכחת רק לגבי גרף לא מכוון‪.‬‬


‫להלן ניסוח הלמה עבור גרף מכוון‪:‬‬
‫ב‪ .G-‬נניח ש‪-‬‬ ‫גרף מכוון ויהי ‪ , v V‬צומת שרירותי‬ ‫) ‪G = (V , E‬‬ ‫יהי‬
‫‪ .  ( s, v ) = l‬אזי‪:‬‬
‫ל‪ v-‬יש לפחות שכן אחד‪ ,u ,‬המקיים‬ ‫‪vs‬‬ ‫אם‬ ‫‪.2‬‬

‫‪.  ( s, u ) = l − 1‬‬

‫מתקיים‪. l − 1   ( s, w )  l + 1 :‬‬ ‫לכל ‪ ,w‬שכן של ‪,v‬‬ ‫‪.3‬‬

‫האם הלמה נכונה גם עבור גרף מכוון? נמקו תשובתכם בפרוט מרבי עבור‬
‫כל אחד מסעיפי הלמה‪.‬‬
‫שאלה מס' ‪:4‬‬
‫א‪ .‬הראו דוגמה לגרף לא ממושקל שבו עץ מרחקים ביחס לצומת אחד‬
‫אינו עץ מרחקים ביחס לצומת אחר‪.‬‬
‫ב‪ .‬הוכיחו שאם עץ פורש מסוים של גרף לא ממושקל הוא עץ מרחקים‬
‫ביחס לכל צומת ב ‪-G‬אז ‪ G‬הוא עץ‪.‬‬

‫שאלה מס' ‪:5‬‬


‫נתון גרף מכוון )𝐸 ‪ ,𝐺 = (𝑉,‬ונתונים 𝑉 ∈ 𝑡 ‪ 𝑠,‬וכן 𝐸 ∈ ‪𝑒1‬‬
‫הציעו אלגוריתם יעיל המוצא מסלול קצר ביותר אשר עובר מ‪ s -‬ל‪ t -‬ועובר‬
‫בדרך דרך הקשת ‪. 𝑒1‬‬
‫הסבירו מדוע האלגוריתם עובד נכון‪ .‬נתחו את סיבוכיות האלגוריתם‪.‬‬
‫בהצלחה!‬

You might also like