קורס אלגוריתמים ספר הקורס: מרצה: נעם ניסן מתרגלים:

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

סמינר על סוגיות במדעי המחשב מרצה : עמי ברלר מכללת " אחווה " 2003.
גרף מכוון Directed Graph a b c f g ed h צמתים חוג עצמי קשתות.
מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה
מתמטיקה בדידה תרגול 3.
מבני נתונים 1 – מבנה התרגולים
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
משפט ההרכבה Composition Theorem תהי C מחלקה של פונקציות בוליניות תהי נגדיר סדרת פונקציות שניתנות לחישוב בזמן פולינומיאלי.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מרצה: פרופסור דורון פלד
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Data Structures and Algorithms Introduction to Complexity Gal A. Kaminka Computer Science Department.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
Slide 1 of 40. Lecture A מבוא למדעי המחשב. Slide 2 of 40. Lecture A Lesson A - Introduction Unit A1 – About This Course.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
תזכורת: גרפים גרף (G=(V,E V|=n, |E|=m| מכוון \ לא מכוון דרגה של קדקד
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
מערכים מבוא לתכנות למנע"ס - שבוע מספר 8 - מאיר קומר - סמסטר ב' - תשס"ו והנה בעיה כתוב תוכנית אשר תקלוט 36 מספרים ותדפיס כמה מתוכם גדולים יותר מהממוצע.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
R. Bar-Yehuda © 1 קומבינטוריקה למדעי - המחשב – הרצאה #16 EULER GRAPHS גרפים אויילרים מבוסס על הספר : S. Even, "Graph Algorithms",
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
תזכורת : אלגברה ליניארית מסקנה קלט : וקטורים פלט : האם u תלוי ליניארית ב קלט : מערכת של n משואות לינאריות ב -m נעלמים. פלט : פתרון, או שאין כזה. אלגוריתם.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
1 Sorting We have actually seen already two efficient ways to sort:
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מבוא למדעי המחשב תרגול 9 – מערכים ומחרוזות, תרגילי חזרה שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
מבנה מחשבים תרגול מספר 3. טענה על עצים משפט: בעץ שדרגת כל קודקודיו חסומה ב-3, מספר העלים ≤ מספר הקודקודים הפנימיים + 2. הוכחה: באינדוקציה על n, מספר הקודקודים.
Lecture 13 Maximal Accurate Forests From Distance Matrix.
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
מבוא למדעי המחשב הרצאה 11: תכנות רקורסיבי 4 כולל מיון רקורסיבי 1.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
מבוא למדעי המחשב הרצאה 9: תכנות רקורסיבי 2 1. חישוב עצרת: רקורסיית זנב public static int fact (int n){ return factacc(n,1); } public static int factacc.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 12. ספריות.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
FAA FAA (int s, int val) { temp = s; s = s + val; return temp; }
Formal Specifications for Complex Systems (236368) Tutorial #1
מבוא למדעי המחשב סיבוכיות.
מבנה נתונים ואלגוריתמים
תירגול 14: מבני נתונים דינאמיים
מבוא למדעי המחשב הרצאה 5: תחומי הכרה של משתנים
מבוא למדעי המחשב הרצאה 1: מבוא כללי מי אני, שעות הקבלה:
מבני נתונים ADT, O() notation, Recursions תשס"ח סמסטר ב' תרגול 1
בעיות נוספות ב-NPC.
תרגול 11 NP complete.
שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב
Presentation transcript:

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

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

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

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

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

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

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

פתרון פתור את הבעיה עבור (N-1) הקבוצות הראשונות. או

דוגמה: 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

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

פתרון Sort A[1…N] for j=1…N find 1000000-A[j] in A

(f בערך קטנה או שווה ל-g) ניתוח זמן ריצה סימון: עבור אלגוריתם A TA(n) יסמן את מספר הפעולות שמבצע A על הקלט הגרוע ביותר מאורך n (על המחשב שלי בבית) הגדרה: יהיו f, g : N --> N נאמר ש: f = O(g) אם קיים קבוע C כך שלכל n: (f בערך קטנה או שווה ל-g)

דוגמה להוכחה פורמלית הוכחה: יהי 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)

פרספקטיבה בעיות ומגבלות: יתרונות: התעלמות מקבועים האם הקלט מספיק גדול? מקרה ממוצע זמן “משוערך" יתרונות: קרוב טוב במציאות (לרוב) ניתוח מתמטי מדויק קל מאוד לעבודה עובד לכל מחשב/שפה עובד לכל קלט

ניתוח זמן ריצה 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

ניתוח זמן ריצה 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

Merge-Sort -- זמן ריצה TMerge(n) = O(n) TSort(n) = 2TSort(n/2) + O(n) TSort(1) = O(1) משפט: Tsort(n) = O(n log n)