Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 תוכן העניינים הקדמה שיטה כללית לכתיבת תוכנית שיטה כללית לכתיבת תוכנית יעילות של תוכנית (סיבוכיות) יעילות של תוכנית (סיבוכיות) מדדי סיבוכיות נוספים מדדי.

Similar presentations


Presentation on theme: "1 תוכן העניינים הקדמה שיטה כללית לכתיבת תוכנית שיטה כללית לכתיבת תוכנית יעילות של תוכנית (סיבוכיות) יעילות של תוכנית (סיבוכיות) מדדי סיבוכיות נוספים מדדי."— Presentation transcript:

1 1 תוכן העניינים הקדמה שיטה כללית לכתיבת תוכנית שיטה כללית לכתיבת תוכנית יעילות של תוכנית (סיבוכיות) יעילות של תוכנית (סיבוכיות) מדדי סיבוכיות נוספים מדדי סיבוכיות נוספים משוואת נסיגה - Recurrences משוואת נסיגה - Recurrences Substitution - הצבה Substitution - הצבה איטרציה The Master Method The Master Method

2 2 Procedure greedy (var G:GRAPH; var newclr:SET) {greedy assigns to newclr a set of vertices that may be given the same color} begin (1) newclr := (2) for each uncolored vertex v of G do (3) if v is not adjacent to any vertex in newclr then begin (4) mark v colored (5) add v to newclr end; end; {greedy} Data Structures, CS, TAU - 2.2 כתיבת הפתרון בפסאודו-שפה

3 3 דוגמא: מציאה אם צומת שכן (שורה 3). (3.1) found := false; (3.2) for each vertex W in newclr do (3.3) if there is an edge between V and W in G then (3.4) found := true; (3.5) if found = false then begin (4)... (5). Data Structures, CS, TAU - 2.1 עידון האלגוריתם להשגת תוכנית

4 4 מודל מתמטי אלגוריתם לא פורמלי * משמשים תפקיד דומה לשגרות (שגרות - תפקיד תפעולי, מבני נתונים - תפקיד מבני) תכנית בפסאודו-שפה מבנה נתונים מופשט תכנית C מבנה נתונים * מבנה נתונים מופשט = Abstract Data Type-ADT = מודל מתמטי עם אוסף הפעולות דוגמא: השלמים עם פעולות -, +. דוגמא: קבוצה של שלמים עם פעולות Union, Intersection, Difference Data Structures, CS, TAU - 2.3 שיטה כללית לכתיבת תוכנית

5 5 מטרה- לספק כלי עבודה נוח למתכנת (בקבוצות “נוח” להגדיר איחוד, חיתוך…) אמצעי- הפרדה בין הגדרת הפעולות ובין ישומן דוגמא: בדוגמת הצביעה - שימוש ברשימה LIST פעולות: 1. MAKENULL (newclr) 2. W:= FIRST (newclr) 3. W:= NEXT (newclr) 4. INSERT (v, newclr) תכנות: SET ישום: = SET = חוזה בין “מתכנת העל” ומיישם מבנה הנתונים ממשק Data Structures, CS, TAU - 2.4 Abstract Data Types

6 6 1. השג הצומת הראשון הלא צבוע 2. בדוק האם יש קשת בין 2 צמתים 3. סמן צומת כצבוע 4. השג את הצומת הבא (הוסף צומת, השמט קשת…).......... ישום: * תרגום לשפת התכנות * תלוי בשפת התכנות ובמשתנים שלה * ניתן להשתמש רק במבנים הקיימים בשפה * השפה צריכה להרשות מבנים מופשטים Data Structures, CS, TAU - 2.5 דוגמא ב-GRAPH

7 7 מטרות בתכנית: * מס’ הפעולות, סוג הפעולות. קלות בתכנות, נוחות באחזקה, יעילות (מהירות וזיכרון) * ממוצע, מקרה גרוע ביותר * פונקציה של סוג הקלט, סוג מחשב, קומפיילר איכות: מהירות: * סדר גודל - BIG O * חישוב כפונקציה של גודל הבעיה (אורך הקלט): - קיים c ו- כך ש: דוגמא: Data Structures, CS, TAU - 2.6 יעילות של תוכנית (סיבוכיות( Upto here 20/10/04

8 8 דוגמא : חשוב מבחינת פיתוח מחשבים: אם מחשב מהיר פי 10 - מה תהיה הגדלת הבעיה? 1000 3000 2000 משמעות סדרי גודל: Data Structures, CS, TAU - 2.7 דוגמא

9 9 חישובי זמן ריצה Data Structures, CS, TAU - 2.8 דוגמא: מחשב מהיר פי 64

10 10 Procedure bubble var I, j, temp : integer begin (1) for I := 1 to n-1 do (2) for j := n downto I+1 do (3) if A[j-1] > A[j] then begin {swap A[j-1] and A[j]} (4) temp := A[j-1]; (5) A[j-1] := A[j]; (6) A[j] := temp; end end; {bubble} Data Structures, CS, TAU - 2.9 דוגמא

11 11 d T(n) = c + T(n-1) Function fact (n: integer) begin (1) if n<1 then (2) fact := 1 else (3) fact := n*fact(n-1) end; {fact} T(n) = 2c+T(n-2) T(n) = 3c+T(n-3) T(n) = c(n-1)+T(1)=c(n-1)+d=O(n)........ Data Structures, CS, TAU - 2.10 דוגמא: חישוב עצרת (רקורסיבי)

12 12 חסם תחתון חסם עליון חסם עליון ותחתון exist c, n 0 such that f(n): exist c 1, n 0, c 2 such that Data Structures, CS, TAU - 2.11 ממדי סיבוכיות נוספים

13 13 O יכול להיות tight (הדוק) או לא. הדוק לא הדוק o - מסמן חסמים שאינם הדוקים אסימפטוטית for any c>0 there exists n 0 >0 such that החסם תופס לכל ה C-ים!f(n)<cg(n) אינטואיציה: אסימפטוטית היא לא משמעותית לעומת f(n) g(n) Data Structures, CS, TAU - 2.12 מדד o קטן

14 14 cg(n) f(n) n0n0 cg(n) n0n0 f(n) c 2 g(n) c 1 g(n) n0n0 c 2 g(n) f(n) cg(n) n0n0 Data Structures, CS, TAU - 2.13 ציור מדדי סיבוכיות

15 15 Cormen 1, 2.1-2.2 Growth of functionsלהבין את (גם מושגים שלא עברנו בכיתה) 1. 2. Data Structures, CS, TAU - 2.14 חומר קריאה

16 16 Recurrence – משוואה (אי-שיוויון) שמתארת פונקציה ע”י ערכים קטנים של הפונקציה שיטות לפתרון: 1) Substitution 2) Iteration 3) Master דוגמא: n=1 n>1 Data Structures, CS, TAU - 2.15 משוואת נסיגה - Recurrences

17 17 א. נחש פיתרון ב. הוכח באינדוקציה דוגמה: הוכח: צ”ל:עבור c גדול. הוכחה: 1. נניח נכונות לגבי לכן: הצבה: Data Structures, CS, TAU - 2.16 1. SUBSTITUTION (הצבה)

18 18 בדוגמא: בעיה עקיפת הבעיה: התחל ב-n גבוה יותר: ולכן נכון עבור כל נקודות חשובות: 1) בחירת c - בד”כ ניתן לבצע בסוף הוכחת האינדוקציה. 2) אם ההוכחה לא עובדת - יתכן והטענה לא נכונה. 3) אסור לערבב O בהוכחה. Data Structures, CS, TAU - 2.17 2. הוכח נכונות לגבי תנאי הגבול

19 19 יכולנו לטעון: ולהוכיח: לא נכון! Data Structures, CS, TAU - 2.18 דוגמא להשתמש :

20 20 הדגמת השיטה: דוגמא: Data Structures, CS, TAU - 2.19 2. שיטת האיטרציה

21 21 שיטת Cookbook לנוסחאות Master Thm יהיו: קבועים - פונקציה - מוגדרת על שלמים לא שליליים: כאשר: הינו או אזי יכולה להחסם: 1) אם :2) אם :3) אם : ו: ל c כלשהו וכל הn-ים הגדולים Data Structures, CS, TAU - 2.20 3. THE MASTER METHOD

22 22 a bf(n) Data Structures, CS, TAU - 2.21 דוגמא 1

23 23 ab f(n) מקרה 2 Data Structures, CS, TAU - 2.22 דוגמא 2

24 24 abf(n) מקרה 3 עבור n גדול: Data Structures, CS, TAU - 2.23 דוגמא 3


Download ppt "1 תוכן העניינים הקדמה שיטה כללית לכתיבת תוכנית שיטה כללית לכתיבת תוכנית יעילות של תוכנית (סיבוכיות) יעילות של תוכנית (סיבוכיות) מדדי סיבוכיות נוספים מדדי."

Similar presentations


Ads by Google