Professional Documents
Culture Documents
Untitled
Untitled
20417
אלגוריתמים
חוברת הקורס סתיו 2023א
1
פנימי – לא להפצה.
2
תוכן העניינים
3
4
אל הסטודנט
בחוברת זו תמצא את לוח זמנים ופעילויות ,תנאים לקבלת נקודות זכות ומטלות .תאריכי
המפגשים בקורס יישלחו בהמשך .וודאו בבקשה שקראתם באתר הקורס את תאור המנהלות.
לקורס קיים אתר באינטרנט בו תמצאו חומרי למידה נוספים .בנוסף ,האתר מהווה עבורכם ערוץ
תקשורת עם צוות ההוראה ועם סטודנטים אחרים בקורס .פרטים על למידה מתוקשבת ואתר
הקורס ,תמצאו באתר שה"ם בכתובת .http://telem.openu.ac.il :מידע על שירותי ספרייה
ומקורות מידע שהאוניברסיטה מעמידה לרשותכם ,תמצאו באתר הספריה באינטרנט
.www.openu.ac.il/Libraryניתן לפנות אלי בשעות הקבלה הטלפונית (שתפורסם באתר החל
מפתיחת הסמסטר ,)09-7781222או במייל .assaf.nussbaum@gmail.com :לצורך בירורים
אדמיניסטרטיביים נא לפנות לזמירה בטלפון.09-7781220 :
למרות הריחוק הפיסי הגדול ,נשתדל לשמור אתכם על קשרים הדוקים ולעמוד לרשותכם ככל
האפשר.
הפרטים החיוניים על הקורס נכללים בחוברת הקורס וכן באתר הקורס.
מומלץ מאד להשתמש באתר הקורס ובכל אמצעי העזר שבו וכמובן לפנות אלינו במידת הצורך.
בברכה,
5
6
ופעילויות (2023/ 20417א) .לוח זמנים
תאריך אחרון מפגשי יחידת הלימוד תאריכי שבוע
להגשת המטלה ההנחיה המומלצת שבוע הלימוד הלימוד
28.10.2022-23.10.2022 1
פרקים 1,2
04.11.2022-30.10.2022
פרק 3 2
18.11.2022-13.11.2022 4
פרק 4
02.12.2022-27.11.2022 6
09.12.2022-04.12.2022 7
פרק 5
7
לוח זמנים ופעילויות -המשך
תאריך אחרון מפגשי יחידת הלימוד תאריכי שבוע
להגשת המטלה ההנחייה המומלצת שבוע הלימוד הלימוד
23.12.2022-18.12.2022 9
פרק 6
(ב-ו חנוכה)
30.12.2022-25.12.2022
" 10
(א-ב חנוכה)
.
8
.3הנחיות כלליות להצגת אלגוריתמים כפתרון למטלה
חובה להוכיח נכונות בצורה מדויקת. א.
חובה להציג ניתוח מדויק של זמן הריצה. ב.
חובה להציג את האלגוריתם היעיל ביותר שהצלחתם לפתח. ג.
אם ניתן לפתור בעיה ביעילות באמצעות הפעלה/תיקון של אלגוריתם מוכר, ד.
יש להציג פתרון שכזה במקום לפתח אלגוריתם חדש לחלוטין.
אסור לפתור תרגילים של פרק מוקדם באמצעות אלגוריתם שנלמד בפרק מאוחר. ה.
להלן פרוט הפרקים המתורגלים בכל מטלה:
ניקוד המטלות
בקורס חובת הגשה של 3מטלות מתוך .5ככל שמוגשות יותר מטלות ,כך עולה משקל
המטלות בציון הסופי.
למען הלימוד ,חשוב לפתור גם שאלות שאינכם מגישים לקבלת ציון.
לתשומת לבכם!
כדי לעודדכם להגיש לבדיקה מספר רב של מטלות הנהגנו את ההקלה שלהלן:
אם הגשתם מטלות מעל למשקל המינימלי הנדרש בקורס ,המטלות בציון הנמוך ביותר,
שציוניהן נמוכים מציון הבחינה (עד שתי מטלות) ,לא יילקחו בחשבון בעת שקלול הציון
הסופי .זאת בתנאי שמטלות אלה אינן חלק מדרישות החובה בקורס ושהמשקל הצבור של
המטלות האחרות שהוגשו ,מגיע למינימום הנדרש.
זכרו! ציון סופי מחושב רק לסטודנטים שעברו את בחינת הגמר בציון 60ומעלה והגישו
מטלות כנדרש באותו קורס.
9
11
מטלת מנחה (ממ"ן) 11
,20417אלגוריתמים הקורס:
חומר הלימוד למטלה :פרקים 1,3בספר
משקל המטלה4% : מספר השאלות4 :
מועד הגשה11.11.2022 : סמסטר2023 :א
הציגו אלגוריתם למציאת מסלול מ s -ל , t -שמבקר ב U -בדיוק פעמיים ,ושאורכו מזערי מבין כל
המסלולים הללו .כלומר ,האלגוריתם נדרש להחזיר מסלול מ s -ל t -כך ש , # P(U ) 2 -וכך
שאם ישנם מסלולים נוספים Pמ s -ל t -המקיימים , # P(U ) 2אז ). ( P) ( P
בשאלה זו מותרים מסלולים לא פשוטים ,כלומר מותר למסלול לעבור דרך קדקוד מסוים ,ואפילו
דרך צלע מסוימת יותר מפעם אחת .למשל ,נניח שהגרף הינו משולש מכוון s t v sללא
שום קדקוד או צלע נוספת ,ושהקבוצה המועדפת הינה } . U {vאזי המסלול היחיד ,ולכן גם
המזערי ,שמקיים # P(U ) 2הינו המסלול הלא פשוט . s t v s t v s t
הדרכה :העזרו ברדוקציה לגרף אחר . G
11
שאלה מס' )33%( 4
בעיית הספיקות ( .)2-SATהגדרות :נוסחת k-CNFהיא נוסחה מהצורה , 1 2 ... m
הינו אחד מהליטרלים zi , j ) , i ( zi ,1 zi ,2 ... zi ,kוכל כשלכל פסוקית הצורה
פסוקית n 5 ,משתנים ,ו m 2 -פסוקיות .השמה הינה פונקציה שמתאימה לכל משתנה xiערך
"אמת" Tאו "שקר" . Fבהינתן השמה מסוימת ,אזי הליטרל xiמסופק אם ההשמה מקיימת
, xi Tוהליטרל xiמסופק אם . xi Fהפסוקית ) i ( zi ,1 zi ,2 ... zi ,kמסופקת,
אם לפחות אחד מהליטרלים שבה zi ,1, zi ,2 ,..., zi ,kמסופק .הנוסחא כולה 1 2 ... m
מסופקת ,אם כל הפסוקיות 1 ,.., mמסופקות .הנוסחא נקראת ספיקה ,אם לפחות אחת מבין
הציגו אלגוריתם יעיל ,שבהינתן נוסחה בצורת 2-CNFמוצא לה השמה מספקת ,ואם אין
השמה כזו -מדווח שהנוסחה איננה ספיקה .הדרכה :העזרו בגרף מכוון Gשמותאם לנוסחה .
12
מטלת מנחה (ממ"ן) 12
,20417אלגוריתמים הקורס:
חומר הלימוד למטלה :פרק 4בספר
משקל המטלה4% : מספר השאלות4 :
מועד הגשה25.11.2022 : סמסטר2023 :א
יש להגיש תשובות לשאלות 1,2,4בלבד .שאלה 3היא לתרגול נוסף ואיננה להגשה
בכל השאלות בקורס אודות גרפים ממושקלים :משקל=מחיר=אורך של מסלול מוגדר כסכום
משקלי הצלעות במסלול (ולא כמספרן של הצלעות במסלול) .בהתאם לכך ,המרחק מקדקוד א'
לקדקוד ב' מוגדר כמשקל המזערי של מסלול מ-א' ל-ב' (או כאינסוף אם אין בכלל מסלול כזה).
בגרף .כרגיל ,משקלו של מסלול מוגדר כסכום משקלי הצלעות ) , w( P) w(eומסלול Ps,v
eP
נקרא מזערי אם מתקיים ) w( Ps,v ) w( Ps,vעבור כל מסלול אחר . Ps,vהגדרות חדשות :מסלול
Ps,vייקרא כמעט מזערי ,אם משקלו קטן ביותר מבין כל המסלולים הלא מזעריים מ s -ל. v -
כלומר ,אם w1 w2 ... wkהינה רשימת כל המשקלים האפשריים של מסלולים מ s -ל, v -
אז למסלול מזערי מתקיים w( Ps,v ) w1ולמסלול כמעט מזערי מתקיים . w( Ps,v ) w2צלע
e (u, v) Eתיקרא שימושית אם היא צלע אחרונה באיזשהו מסלול מזערי . Ps,v
ב .הוכיחו שאם יש צלע לא שימושית ב( Ps,v -אחת או יותר) ,אז Ps,vאיננו מסלול מזערי.
הוכיחו שאם Ps,vמסלול כמעט מזערי אז מופיעה בו צלע לא שימושית אחת ויחידה. ג.
ד .תהי ) e (u1, u2הצלע הלא שימושית היחידה במסלול כמעט מזערי . Ps,vהוכיחו שהרישא
של Ps,vמ s -ל u1 -מהווה מסלול מזערי ,וגם שהסיפא של Ps,vמ u 2 -ל v -מהווה מסלול
מזערי.
ה .הציגו בעזרת הסעיפים הקודמים אלגוריתם למציאת מסלול כמעט מזערי מקדקוד מקור
נתון sלקדקוד יעד נתון " , tבזמן" )| ( . (| E | log | Vבחישוב זמן הריצה מניחים שחיבור,
חיסור והשוואה של משקלי צלעות – כולן פעולות אלמנטריות שמתבצעות בזמן ).) (1
13
שאלה מס' )40%( 2
תיקון עץ פורש שהושמטה ממנו צלע .נתון עץ פורש מזערי Tשל גרף לא מכוון קשיר
) G (V , Eעם משקלים אי-שליליים c(e) 0לכל אחת מהצלעות . e Eתהי e* Tצלע
14
מטלת מנחה (ממ"ן) 13
,20417אלגוריתמים הקורס:
חומר הלימוד למטלה :פרק 5בספר
משקל המטלה4% : מספר השאלות4 :
מועד הגשה16.12.2022 : סמסטר2023 :א
אלגוריתם הכפל של Karatsubaמבוסס על פיצול הספרות של כל קלט לשני בלוקים שווי גודל,
ורץ בזמן ) . ( n log 2 3הציגו אלגוריתם משופר ,שמחלק כל קלט ל (n / k ) -בלוקים בגודל . k
היעזרו באלגוריתם ה FFT-לפתרון תתי-הבעיות המתקבלות .הניחו לשם פשטות (וללא הצדקה),
כי ההכפלות שמתבצעות במהלך הקריאות הרקורסיביות אינן מגדילות את אורכם של המספרים,
ולכן ניתן לממש הכפלות אלו בצורה תמימה תוך ביצוע ) ( k 2פעולות על ביטים .בחרו לבסוף
את גודלם של הבלוקים להיות . k log n
15
שאלה מס' )35%( 3
כפל מטריצות ריבועיות ) .(Strassenכזכור ,כפל של שתי מטריצות ריבועיות A, Bמסדר n n
(מעל שדה שרירותי) מניב מטריצה C A Bאף היא מסדר , n nהמוגדרת ע"י הכלל
לכן מימוש ישיר של כפל מטריצות כרוך ב ( n 3 ) -פעולות אריתמטיות בסיסיות מעל השדה
הנדון (כפל/חיבור/חיסור) ,ובפרט ב ( n 3 ) -פעולות כפל .בתרגיל זה נוכיח כי ניתן להכפיל
מטריצות ריבועיות באמצעות ) (n log 7 ) O(n 2.81פעולות אריתמטיות בסיסיות בלבד .פרטי
2
n
2 ההוכחה מובאים להלן .נניח בה"כ כי nזוגי .נפרק כל מטריצה ל 4-תתי-מטריצות מסדר n2
(ב) וודאו (לא להגשה) כי חישוב המטריצות , P1 ,..., P7כרוך ב 7-פעולות כפל בלבד (וכן מספר
מצומצם של פעולות חיבור/חיסור) של מטריצות מסדר . n2 n2
(ג) וודאו (לא להגשה) כי מתקיים:
s P1 P2
t P3 P4
r P4 P5 P6 P2
u P1 P5 P3 P7
(ד) הוכיחו (כן להגשה) כי מספר הפעולות האלמנטריות של האלגוריתם הוא ) (n log 2 7בלבד.
16
שאלה מס' )35%( 4
חישוב כל הנגזרות של פולינום בנקודה .מקובל לסמן ב f ( k ) ( x ) -את הנגזרת מסדר kשל
וכן )f (3) ( x) f ( x ), f (2) ( x) f ( x ) , f (1) ( x ) f ( x ) . f ( xלמשל, הפונקציה
) . f (0) ( x ) f ( xנתונים מקדמי הפולינום f ( x) a0 a1x a2 x2 ... an xnונתונה נקודה
מסוימת . x 0הציגו אלגוריתם לחישוב ערכי כל הנגזרות ) f (0) ( x0 ),..., f ( n ) ( x0באותה נקודה , x 0
תוך ביצוע ) ( n log nפעולות אריתמטיות בסיסיות בלבד( .פעולה בסיסית = חיבור ,חיסור ,כפל,
חילוק או השוואה של מספרים) .למשל לפולינום מדרגה n 4יש לחשב את הערכים הבאים:
f (0) ( x0 ) a0 a1 x0 a2 ( x0 )2 a3 ( x0 )3 a4 ( x0 )4
f (1) ( x0 ) a1 2a2 x0 3a3 ( x0 )2 4a4 ( x0 )3
f (2) ( x0 ) 2 a2 2 3a3 x0 3 4a4 ( x0 )2
f (3) ( x0 ) 2 3a3 ) 2 3 4a4 ( x0
f (4) ( x0 ) 2 3 4 a4
נדרשת תשובה של 4-5שורות בלבד .נדרשת תשובה שמבוססת על .FFTבפרט ,לא יינתן ניקוד על
האלגוריתם הטריוויאלי שמחשב בנפרד כל אחד מבין ) ( n 2המחוברים .העזרו בתשובתכם
בצמצום הסטנדרטי של עצרות:
17
מטלת מנחה (ממ"ן) 14
,20417אלגוריתמים הקורס:
חומר הלימוד למטלה :פרק 6בספר
משקל המטלה4% : מספר השאלות4 :
מועד הגשה06.01.2023 : סמסטר2023 :א
הציגו אלגוריתם שרץ בזמן ) (n 2למציאת מסלול במחיר מזערי מהפינה השמאלית התחתונה
לפינה הימנית העליונה ,כשמחיר מסלול מוגדר כסכום מחירי הנקודות במסלול( .פעולות
אריתמטיות על המחירים ,כמו חיבור ,חיסור והשוואה ,מתבצעות בזמן ).) (1
____________________________________________________________________
18
שאלה מס' )33%( 2
בחירת מלונות לאורך מסלול) ברצוננו לערוך מסע לאורכו של מסלול ישר מנקודת-התחלה s
לנקודת-סיום . fנתונה רשימה p1 ... pnשל מיקומי-מלונות ,כך שמלון iממוקם בדיוק
piקילומטרים מתחילת-המסלול .במהלך המסע לנים בכל לילה במלון אחר .החופשה מוגבלת
בזמן ,ולכן חייבים להשלים את המסע תוך לכל היותר tימים ( t nנתון) .ידוע שכמות-המאמץ,
שנדרש ביום-הליכה הינה הריבוע d 2של המרחק , dשהולכים באותו יום .ברצוננו לבחור את
נקודות-הלינה ,כך שנמזער את סכום המאמצים בכל המסע.
הציגו אלגוריתם יעיל ככל האפשר לבעיה ,שרץ בזמן פולינומי ביחס ל t -וביחס ל . n -נדרשת
תשובה שמבוססת על נוסחת-נסיגה בשיטה של תכנון-דינאמי.
_______________________________________________________________( 22נק')
19
שאלה מס' )33%( 3
אינטרפולציה באמצעות תכנון דינאמי :פולינום ממשי מדרגה קטנה מ n -הינו ביטוי מהצורה
. p( x) a0 a1x a2 x2 ... an1x n1משפט נודע באלגברה קובע ,כי פולינום שכזה נקבע
ביחידות לפי ערכו ב n -מקורות שונים . xiלמשל ,כל קו ישר (כלומר פולינום מדרגה קטנה מ)2-
נקבע ביחידות ע"י 2נקודות דרכן הוא עובר .באופן כללי ,בהינתן nנקודות ) ( x1 , y1 ),...,( xn , yn
עבורן xi x jלכל , i jקיים פולינום אחד ויחיד ) p ( xמדרגה קטנה מ n -המקיים
(א 26 .נק') לכל i jנסמן ב pi , j -את פולינום האינטרפולציה של הנקודות ) .( xi , yi ),...,( x j , y j
____________________________________________________________________
____________________________________________________________________
21
(ב 7 .נק') הציגו אלגוריתם תכנון-דינאמי לבעיית-האינטרפולציה ,המבוסס על נוסחת-הנסיגה
מסעיף (א) .לשם פשטות ,החשיבו פעולות אריתמטיות על מספרים כפעולות-אלמנטריות.
הגדרת המערך_________________________________________________________:
אתחול המערך_________________________________________________________:
____________________________________________________________________
____________________________________________________________________
יעילות_______________________________________________________________:
____________________________________________________________________
21
שאלה מס' )33%( 4
נתון גרף מכוון ) G (V , Eעם משקלים אי-שליליים c(e) 0על הצלעות , e Eונתון קדקוד
מסוים . r Vהביטו באלגוריתם הבא:
0, v r
. A[v ] ( )iמאתחלים מערך חד-ממדי Aבאמצעות הכלל:
, v r
( )iiלולאה חיצונית :חוזרים שוב ושוב על הפעולה הבאה.
( )1iiלולאה פנימית :סורקים את הצלעות בסדר לקסיקוגרפי .לכל e (u, v ) Eמבצעים:
אם ) A[v ] A[u] c(eאז מעדכנים ). A[v] A[u] c(e
( )2iiאם בהרצה הנוכחית של כל הלולאה הפנימית לא בוצע אף עדכון,
אז האלגוריתם מסיים.
____________________________________________________________________
____________________________________________________________________
(ב) יהי ) B(nהמספר המרבי של איטרציות שמתבצעות בלולאה החיצונית על גרפים בעלי n
____________________________________________________________________
____________________________________________________________________
(ג) הציגו סדרת גרפים אחרת , Gnעבורם נכנסים ללולאה החיצונית פעמיים בלבד ,וזאת למרות
שמספר הצלעות שלהם זהה לגרפים מהסעיף הקודם ,כלומר | ) | E (Gn ) || E (Gnלכל . n
____________________________________________________________________
____________________________________________________________________
22
מטלת מנחה (ממ"ן) 15
,20417אלגוריתמים הקורס:
חומר הלימוד למטלה :פרק 7בספר
משקל המטלה4% : מספר השאלות4 :
מועד הגשה22.01.2023 : סמסטר2023 :א
יש להגיש תשובות לשלוש השאלות .1,2,3שאלות 4,5לתרגול נוסף ולא להגשה.
בכל רשתות הזרימה בקורס לא נכנסות צלעות למקור ,ולא יוצאות צלעות מהיעד.
קיבולת חוסמת את הזרימה דווקא מלמטה :כלומר fנדרשת לקיים ) f ( e) c( eלכל צלע
( e Eבמקום ) .) f ( e) c( eכל השאלות להלן מתייחסות לרשת המתוארת בפסקה האחרונה.
(א) הוכיחו שאם קיימת זרימה חוקית ברשת אז קיימת ברשת זרימה חוקית גדולה כרצוננו.
(ב) הציגו אלגוריתם למציאת זרימה חוקית (לאו דווקא מזערית) ברשת.
(ג) הציגו אלגוריתם למציאת זרימה חוקית מזערית ברשת.
23
שאלה מס' )33%( 3
תיקון זרימה מרבית נתונה .נתונה רשת זרימה ,כלומר גרף מכוון ) G (V , Eעם מקור ויעד
, s t Vועם קיבולות שלמות c( e) 0לכל . e Eנתונה זרימה מרבית fברשת,
שהתקבלה מהרצה של אלגוריתם ,Ford Fulkersonונתונה צלע מסוימת . e* Eהציגו
אלגוריתמים בסיבוכיות ליניארית עבור כל אחת מהבעיות הבאות( .כדי לקצר את ניתוח היעילות,
הניחו שבכל הצלעות הקיבולות קטנות ולכן חיבור/חיסור/השוואה של קיבולת/זרימה הינן
פעולות אלמנטריות המתבצעות בזמן ).) (1
(א) מציאת זרימה מרבית ברשת ,המתקבלת מהגדלת הקיבולת של * eב.1-
(ב) מציאת זרימה מרבית ברשת ,המתקבלת מהקטנת הקיבולת של * eב.1-
ידוע שניתן לפתור ביעילות את הבעיה המקורית הזו כל עוד נצליח להציג עבורה "אוב הפרדה".
אוב הפרדה הינו אלגוריתם יעיל , Aשבהינתן הצעת-פתרון לבעיה המקורית (כלומר בהינתן
רשימת משקלים ,) w(e) 0מקיים:
(א) אם המשקלים חוקיים – אז האלגוריתם Aעונה "המשקלים חוקיים".
(ב) אם המשקלים אינם חוקיים – אז האלגוריתם מוצא קבוצה מסוימת S של קדקודים,
שביחס אליה המשקלים אינם חוקיים( .שימו לב שהאלגוריתם Aחייב להיות יעיל .לכן
אסור לו לבדוק בזו אחר זו את כל 2|V | 2תתי-הקבוצות האפשריות .) S
24
(נביט למשל ,במקרה הפרטי שבו כל המשקלים } w(e) {0,1ובנוסף . k 1אוב ההפרדה
הנדרש במקרה הפרטי מתקבל מהרצה של BFS/DFSעל תת-הגרף Gשכולל רק את הצלעות
שמשקלן . w(e) 1ואכן( :א) אם BFS/DFSמגלה ש G -קשיר ,אז מכל Sיוצאת בגרף המקורי
Gלפחות צלע אחת עם משקל , w(e) 1והאוב יענה כנדרש שהמשקלים חוקיים( .ב) אם
בסריקת BFS/DFSמתגלה ש G -איננו קשיר ,אז בסריקה מוצאים גם את קבוצת הקדקודים S
ברכיב הקשירות של קדקוד ההתחלה של הסריקה .בברור ,לכל לצלע שיוצאת מ S -בגרף המקורי
Gיש משקל . w(e) 0האוב יחזיר את S כקבוצה מסוימת שביחס אליה המשקלים אינם
חוקיים).
השאלה :הציגו אוב הפרדה ,כלומר אלגוריתם יעיל שמקיים (א,ב) ,עבור המקרה הכללי שבו
. k 1 , w(e) 0כל הרקע וההסברים המקדימים נתונים עבורכם ואין שום צורך להוכיחם.
25