Download presentation
Presentation is loading. Please wait.
1
קורס אלגוריתמים ספר הקורס: מרצה: נעם ניסן מתרגלים:
Introduction to Algorithms (Cormen, Leiserson, Rivest). גרסה עברית בהוצאת האונ’ הפתוחה (שני חלקים) מרצה: נעם ניסן שעור: ב’ 10-12 ד’ 12-1 שעת קבלה: ד’ 1-2 מתרגלים: דן גוטפרוינד אלי בן ששון יונתן בילו
2
דרישות הקורס תרגיל לבית כל שבועיים. ציון סופי: 90% מבחן; 12% תרגילים.
הגשה חובה, בדיקה מדגמית ציון סופי: 90% מבחן; 12% תרגילים. אתר WEB של הקורס: פרטים, תרגילים, עדכונים. נדרשת חזרה בבית על חומר השיעור!
3
שיטות תכנון וניתוח אלגוריתמים
תוכן הקורס חלק ב' (4-5 שבועות) אלגוריתמים על גרפים חיפוש לרוחב ולעומק מסלולים קצרים ביותר זרימה ושידוכים חלק א (5-4 שבועות) שיטות תכנון וניתוח אלגוריתמים מבוא ניתוח זמן ריצה (חזרה) תכנות דינמי אלגוריתמים חמדניים אלגוריתמים לקירוב
4
תוכן הקורס (המשך) חלק ג' (5-4 שבועות) נושאים נבחרים
אלגוריתמים מקביליים אלגוריתמים על מספרים טבעיים אלגוריתמים הסתברותיים אלגוריתמים אלגבריים התאמת מחרוזות חלק ג' (5-4 שבועות) נושאים נבחרים ילמדו חלק מהנושאים הבאים.
5
פרספקטיבה אבל האלגוריתם הינו לב התוכנית
הבנת הבעיה קשורה הדוקות להבנת האלגוריתם אבל ב‘מציאות’ הבעיה היא הגדרת הבעיה האלגוריתם הינו משרתם של הנתונים
6
כיצד לתכנן אלגוריתם? הפרד ומשול לדעת מראש אינדוקציה חצי-חצי (“בערך”)
שכלולים אלג’ חמדניים תכנות דינמי לדעת מראש להכיר את הפתרון רדוקציה לשנות אלגוריתם מוכר לגנוב רעיונות
7
בעיה דוגמה: יש N קבוצות קלט: לכל זוג קבוצות, מי ניצחה במשחק בין שתיהן. (כל הזוגות התחרו; אין תיקו) פלט: סידור של כל הקבוצות, כך שכל קבוצה ניצחה את קודמתה. 1 3 4 2
8
פתרון פתור את הבעיה עבור (N-1) הקבוצות הראשונות.
או
9
דוגמה: Merge-Sort Sort(A,i,j) Merge(A,i,m,j)
A[i]..A[j] ממיין את חלק המערך if i<j then m <-- (i+j)/2 sort(A,i,m) sort(A,m+1,j) merge(A,i,m,j) Merge(A,i,m,j) A[m+1..j], A[i..m] מניח ש ממוינים כבר, וממזג לרשימה A[i..j] אחת ממוינת מערך עזר [A[i..m] A[m+1..j
10
בעיה A[1..n] קלט: מערך מספרים
פלט: שני מספרים במערך שסכומם (או שאין כאלו)
11
פתרון Sort A[1…N] for j=1…N find 1000000-A[j] in A
12
(f בערך קטנה או שווה ל-g)
ניתוח זמן ריצה סימון: עבור אלגוריתם A TA(n) יסמן את מספר הפעולות שמבצע A על הקלט הגרוע ביותר מאורך n (על המחשב שלי בבית) הגדרה: יהיו f, g : N --> N נאמר ש: f = O(g) אם קיים קבוע C כך שלכל n: (f בערך קטנה או שווה ל-g)
13
דוגמה להוכחה פורמלית הוכחה: יהי C כך שלכל n: f(n) <= Cg(n)
יהי D כך שלכל n: h(n) <= Dg(n) נציב E=C+D, ונקבל לכל n: (f+h)(n)=f(n)+h(n) <= <= Cg(n)+Dg(n)=Eg(n) משפט: אם f=O(g) ; h=O(g) אזי f+h=O(g) הגדרה: (f+h)(n) = f(n) + h(n)
14
פרספקטיבה בעיות ומגבלות: יתרונות: התעלמות מקבועים האם הקלט מספיק גדול?
מקרה ממוצע זמן “משוערך" יתרונות: קרוב טוב במציאות (לרוב) ניתוח מתמטי מדויק קל מאוד לעבודה עובד לכל מחשב/שפה עובד לכל קלט
15
ניתוח זמן ריצה Proc1(A[1..n]) s <-- 0 for i = 1 .. n do
for j = (i +1) .. n do if A[i] < A[j] s <-- s + 1
16
ניתוח זמן ריצה Proc2(A[1..n]) Proc1(A[1..n]) s <-- 0
i <-- 1; j <-- 1; s <-- 0 repeat if A[i] < A[j] s <-- s + 1 if j=n j=i + 1; i <-- i+1 else j <-- j+1 until i+j > 2n Proc1(A[1..n]) s <-- 0 for i = 1 .. n do for j = (i +1) .. n do if A[i] < A[j] s <-- s + 1
17
Merge-Sort -- זמן ריצה TMerge(n) = O(n) TSort(n) = 2TSort(n/2) + O(n)
TSort(1) = O(1) משפט: Tsort(n) = O(n log n)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.