תכנון אלגוריתמים 202-1-2001 סמסטר ב' תשע''ב בוחן אמצע סמסטר 18.5011 ללא חומר עזר. הנחיות חשובות: הבוחן ללא חומר עזר מכל סוג שהוא. משך הבוחן שעתיים וחצי. פתרו את הבוחן תחילה במחברת טיוטא. לאחר מכן העתיקו את התשובות למקום המיועד בטופס התשובות. אין לחרוג מהמקום בדף התשובות. שימו לב: בדיקת הבוחן לא תביא בחשבון את מחברת הטיוטה או תוספות בגב העמוד! רשמו את מספר הנבחן בראש כל דף. הבוחן מורכב מ- 3 שאלות, יש לענות על כל השאלות. מותר להשתמש במשפטים מהכיתה ומהתרגול, אך יש לציין את הניסוח המדויק של המשפט. ניתן להסתמך על סעיפים קודמים גם אם לא פתרתם אותם. אם לא מצוין אחרת, על תאור האלגוריתם לכלול ניתוח זמן ריצה והוכחת נכונות. במידה ואינכם יודעים את התשובה לסעיף כלשהו, רשמו "לא יודעים" ותזכו ב- 20% מניקוד הסעיף. שימו לב, לא תהיינה הארכות זמן למבחן זה )פרט לסטודנטים עם אישורים(. המלצה חמה: לבדוק את התשובות לפני ההגשה. בהצלחה! 1 / 5
.. שאלה )17 1 נקודות( ניזכר באלגוריתם של,Dijkstr כפי שמופיע בדפי העזר המצורפים. הוכיחו את הטענה הבאה: יהי הקודקוד המוכנס ל- בשלב כלשהו בצעד האלגוריתם, עבורו מתקיים כי אזי קיים מסלול קל ביותר מ- ל- אשר כל קודקודיו מלבד עצמו שייכים ל- שאלה )22 2 נקודות( סעיף א )13 נקודות(: גרף לא מכוון וקשיר ו- פונקציית משקל על צלעות הגרף. יהיו הוכח או הפרך את הטענה הבאה: אם בגרף קיימת צלע יחידה בעלת משקל שלילי )כל שאר הצלעות במשקלות אי שליליים(, כל עץ פורש מינימום של מכיל את. אזי סעיף ב )12 נקודות(: נגדיר כי גרף הבאים:, ו- הוא תת גרף פורש של קשיר. הגרף אם מתקיימים התנאים דוגמא: יהי הגרף הבא: b 6 2 3 c 1 תת גרף פורש: גרף שאינו תת גרף פורש: b 1 b 2 6 c 3 c בעיית תת גרף פורש במשקל מינימום: ו- מופע: גרף לא מכוון וקשיר שימו לב: יתכנו משקלות שליליים. פתרון חוקי: תת גרף פורש של. יש למצוא: פתרון חוקי במשקל מינימום. פונקציית משקל על צלעות הגרף. תארו אלגוריתם הפותר את הבעייה. אין צורך להוכיח את נכונותו. במידת האפשר. יש לנתח את זמן הריצה של האלגוריתם. על האלגוריתם להיות יעיל 2 / 5
שאלה )25 3 נקודות( בעיית כיסוי קודקודים בעץ מושרש: עץ מושרש )לא בהכרח בינארי(. לכל קודקוד x בעץ מוצמד משקל מופע: ממשי אי שלילי. בעץ מתקיים כי של קודקודים בעץ כך שלכל צלע פתרון חוקי: קבוצה. )או שניהם(. מחיר פיתרון הוא יש למצוא: פתרון חוקי בעל מחיר מינימאלי. מספר או סעיף א )2 נקודות(: הוכיחו כי בפתרון חוקי לבעיה, אם שורש העץ כך ש- ) חייבים להיות בכיסוי. לא נמצא בפתרון אזי כל בניו )כלומר, הקודקודים סעיף ב )12 נקודות(: נסחו תת-בעיה אופיינית ונוסחאת מבנה הכוללת מקרי בסיס. סעיף ג )22 נקודות(: הוכיחו את נוסחאת המבנה. חובה להשתמש בסכמת ההוכחה שנלמדה בכיתה. סעיף ד )13 נקודות(: נסחו אלגוריתם יעיל איטראטיבי למציאת ערך פתרון אופטימאלי בהוכחת נכונות. יש לנתח את זמן ריצתו של האלגוריתם. ונתחו את זמן ריצתו. אין צורך, סעיף ה )2 נקודות(: בסעיף זה נניח כי המופע לבעיה הוא עץ מושרש בינארי. בעזרת המערך שחושב בסעיף הקודם, הראו אלגוריתם הבודק קיים פתרון אופטימאלי המכיל את שורש העץ. בזמן קבוע, כלומר ב- האם 3 / 5
האלגוריתם של קרוסקל )Kruskl( תכנון אלגוריתמים 202-1-201 בוחן אמצע סמסטר 18.5012 דפי עזר לבוחן. w: E קלט: גרף לא מכוון E) G ( V, קשיר עם פונקצית משקל, B, אתחל C E כל עוד1 B V בצע: 2. הוצא צלע זולה ביותר מ- C, נקרא לה e 2. אם e אינה יוצרת מעגל עם הצלעות ב- B החזר את B) ( V,. אז {e} B B האלגוריתם של פרים )Prim(. w: E קלט: גרף לא מכוון E) G ( V, קשיר עם פונקצית משקל u S, vs כך ש- ( u, v) E בחר r V כלשהו אתחל{ r B, S { B בצע: כל עוד1 V,u ( צלע זולה ביותר מבין הצלעות תהי v) B B {e} S S {} v החזר את B) ( V,.. האלגוריתם של דיקסטרה )Dijkstr( INITIALIZE-SINGLE-SOURCE(G, s) 1 for ech vertex v V[G] o 2 [v] 3 π[v] NIL [s] 0 RELAX(u, v, w) 1 if [v] > [u] + w(u, v) then 2 [v] [u] + w(u, v) 3 π[v] u DIJKSTRA(G, w, s) 1 INITIALIZE-SINGLE-SOURCE(G, s) 2 S Ø 3 Q V[G] while Q Ø o 5 u EXTRACT-MIN(Q) 6 S S {u} 7 for ech vertex v in Q such tht v Aj[u] o 8 RELAX(u, v, w) / 5
תכנון אלגוריתמים 202-1-201 בוחן אמצע סמסטר 30.010 דפי עזר לבוחן משפטים משפט 1: G ( V, יהי (E גרף פשוט ולא מכוון. התנאים הבאים שקולים זה לזה: G קשיר וחסר מעגלים,, E V 1 חסר מעגלים ו- G, E V 1 קשיר ו- G. ב- G יש מסלול פשוט יחיד בין כל זוג קודקודים.. e F ו- G עץ פורש של T ( V, F) משפט 2: יהי (E G (,V גרף קשיר, לא מכוון ופשוט. יהי אזי 'T הוא עץ פורש ( V, F { e} \ { e'}) במעגל e' מכיל מעגל יחיד, ולכל צלע H ( V, F { e}) של G. 5 / 5