Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.