1 / 17

קורס אלגוריתמים

ספר הקורס : Introduction to Algorithms (Cormen, Leiserson, Rivest). גרסה עברית בהוצאת האונ ’ הפתוחה (שני חלקים ). מרצה: נעם ניסן שעור: ב’ 10-12 ד’ 12-1 שעת קבלה: ד’ 1-2 מתרגלים : דן גוטפרוינד אלי בן ששון יונתן בילו. קורס אלגוריתמים. דרישות הקורס. תרגיל לבית כל שבועיים .

Download Presentation

קורס אלגוריתמים

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ספר הקורס: Introduction to Algorithms (Cormen, Leiserson, Rivest). גרסה עברית בהוצאת האונ’ הפתוחה (שני חלקים) מרצה: נעם ניסן שעור: ב’ 10-12 ד’ 12-1 שעת קבלה: ד’ 1-2 מתרגלים: דןגוטפרוינד אלי בן ששון יונתן בילו קורס אלגוריתמים

  2. דרישות הקורס • תרגיל לבית כל שבועיים. • הגשה חובה, בדיקה מדגמית • ציון סופי: 90% מבחן; 12% תרגילים. • אתר WEB של הקורס: פרטים, תרגילים, עדכונים. • נדרשת חזרה בבית על חומר השיעור!

  3. חלקב' (4-5 שבועות) אלגוריתמיםעלגרפים חיפושלרוחבולעומק מסלוליםקצריםביותר זרימהושידוכים חלקא (5-4 שבועות) שיטותתכנוןוניתוחאלגוריתמים מבוא ניתוחזמןריצה (חזרה) תכנותדינמי אלגוריתמיםחמדניים אלגוריתמים לקירוב תוכן הקורס

  4. אלגוריתמיםמקביליים אלגוריתמים על מספרים טבעיים אלגוריתמיםהסתברותיים אלגוריתמיםאלגבריים התאמתמחרוזות חלקג' (5-4 שבועות) נושאיםנבחרים ילמדוחלקמהנושאיםהבאים. תוכן הקורס (המשך)

  5. פרספקטיבה • האלגוריתם הינו לב התוכנית • הבנת הבעיה קשורה הדוקות להבנת האלגוריתם אבל • ב‘מציאות’ הבעיה היא הגדרת הבעיה • האלגוריתם הינו משרתם של הנתונים

  6. הפרד ומשול אינדוקציה חצי-חצי (“בערך”) שכלולים אלג’ חמדניים תכנות דינמי לדעת מראש להכיר את הפתרון רדוקציה לשנות אלגוריתם מוכר לגנוב רעיונות כיצד לתכנן אלגוריתם?

  7. יש N קבוצות קלט: לכל זוג קבוצות, מי ניצחה במשחק בין שתיהן. (כל הזוגות התחרו; אין תיקו) פלט: סידור של כל הקבוצות, כך שכל קבוצה ניצחה את קודמתה. דוגמה: בעיה 1 3 4 2

  8. פתור את הבעיה עבור (N-1) הקבוצות הראשונות. מצא מקום להוסיף את הקבוצה ה-N. פתרון או

  9. Sort(A,i,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] אחת ממוינת דוגמה: Merge-Sort מערך עזר [A[i..m] A[m+1..j

  10. A[1..n] קלט: מערך מספרים פלט: שני מספרים במערך שסכומם 10000000 (או שאין כאלו) בעיה

  11. Sort A[1…N] for j=1…N find 1000000-A[j] in A (FIND מתבצע ע”י חיפוש בינארי במערך ממוין.) פתרון

  12. סימון: עבור אלגוריתם 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]) 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)

More Related