עצים מאוזנים הגדרה: משפחת עצים תקרא מאוזנת אם ,h(T) = O(log n) באשר T הוא עץ במשפחה, n הוא מספר הצמתים ב-T ו-h(T) הוא הגובה של T עצי (Adelson-Velsky,

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

1 Data Structures, CS, TAU, RB-Tree1 עץ אדום-שחור  עץ חיפוש בינארי  בכל צומת ביט אינפורמציה נוסף - צבע  עץ “כמעט מאוזן”  (O(log n במקרה גרוע ביותר.
מבוא למדעי המחשב לתעשייה וניהול
1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
גרף מכוון Directed Graph a b c f g ed h צמתים חוג עצמי קשתות.
פונקציונל פונקציה מספר פונקציונל דוגמאות לא פונקציונל פונקציונל.
מתמטיקה בדידה תרגול 3.
1 Data Structures, CS, TAU, RB-Tree1 עץ אדום-שחור  עץ חיפוש בינארי  בכל צומת ביט אינפורמציה נוסף - צבע  עץ “כמעט מאוזן”  (O(log n במקרה גרוע ביותר.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
עצים ועצי חיפוש חומר קריאה לשיעור זה Chapter 5.5– Trees (91 – 97)
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית ( חוץ מהשורש ) יש לפחות.
1 Data Structures, CS, TAU, Splay Tree Splay Tree  מימוש של עץ חיפוש בינארי  מטרה לדאוג ל- Amortized Time  פעולה בודדת יכולה לקחת O(N)  אבל כל רצף.
משפט ההרכבה Composition Theorem תהי C מחלקה של פונקציות בוליניות תהי נגדיר סדרת פונקציות שניתנות לחישוב בזמן פולינומיאלי.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
סמינר במדעי המחשב 3 עודד פרץ משפט הנורמליזציה החזקה.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Data Structures, CS, TAU, Splay Tree 1 Splay Tree - עץ חיפוש בינארי - מטרה לדאוג ל - Amortized Time - פעולה בודדת יכולה לקחת O(N) - אבל כל רצף M פעולות.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
צביעת גרפים: הגדרה: G=(V,E) גרף בלתי מכוון. צביעת G ב-K צבעים 1
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
קובץ רב-אינדקס Multi-Indexed File
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.
תחשיב הפסוקים חלק ג'. צורות נורמליות א. DF – Disjunctive Form – סכום של מכפלות. דוגמא: (P  ~Q  R)  (R  P)  (R  ~Q  ~P) הגדרה: נוסחה השקולה לנוסחה.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תרגול 7 עצי B
2-3 trees עצי 3-2 ועצי דרגות Chapter 19: B trees (381 – 397) Chapter 15: Augmenting data structures (281 – 290) חומר קריאה לשיעור זה Lecture5 of Geiger.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
שאלה 1 נתון כביש ישר עם תחנות דלק בנקודות , בנקודת המוצא נתונה מכונית עם תא דלק שמספיק ל-100 ק"מ. מחיר מילוי תא הדלק בתחנה.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
תחשיב הפסוקים חלק ד'. תורת ההיסק של תחשיב הפסוקים.
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 דוא " ל :
תחשיב היחסים (הפרדיקטים)
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
1 Data Structures, CS, TAU, RB-Tree1 עץ אדום-שחור  עץ חיפוש בינארי  בכל צומת ביט אינפורמציה נוסף - צבע  עץ “כמעט מאוזן”  (O(log n במקרה גרוע ביותר.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
1 - גמישות בבינאריות גמישות בעומק - עץ חיפוש בינארי: ממוצע O(log n) גרוע ביותר (O(n - היינו רוצים לשמור את העץ מאוזן תמיד Data Structures, CS, TAU
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מבנה מחשבים תרגול מספר 3. טענה על עצים משפט: בעץ שדרגת כל קודקודיו חסומה ב-3, מספר העלים ≤ מספר הקודקודים הפנימיים + 2. הוכחה: באינדוקציה על n, מספר הקודקודים.
Lecture 13 Maximal Accurate Forests From Distance Matrix.
תרגול 4 21/3/2007 מבני נתונים 07b ליאור שפירא. תזכורת – B-trees  לכל צומת x יש השדות הבאים n[x] מס ' מפתחות ב -x המפתחות עצמם בסדר לא יורד כל צומת פנימי.
2-4 tree k=2 Each node has 2,3,or 4 children. Delete delete(14,T)
Data Structures Hanoch Levi and Uri Zwick March 2011 Lecture 3 Dynamic Sets / Dictionaries Binary Search Trees.
Tirgul 12 Trees 1.
מבוא למדעי המחשב סיבוכיות.
אינדקסינג והשינג (indexing & hashing)
תירגול 14: מבני נתונים דינאמיים
הרצאה 07 עצים קרן כליף.
מבני נתונים עצים קרן כליף.
Data Structures, CS, TAU, Splay Tree
Marina Kogan Sadetsky –
Randomized Search Trees
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

עצים מאוזנים הגדרה: משפחת עצים תקרא מאוזנת אם ,h(T) = O(log n) באשר T הוא עץ במשפחה, n הוא מספר הצמתים ב-T ו-h(T) הוא הגובה של T עצי (Adelson-Velsky, Landis) AVL הגדרה: עץ AVL הוא עץ חיפוש בינרי שבו לכל צומת v התכונה : | h(v  left) – h(v  right) |  1 דוגמאות דוגמאות נגד * * בצומת בו מופר האיזון

מטרה: מציאת חסם לגובה של עץ AVL כמובן, נרצה לבטא את הגובה כפונקציה של מספר הצמתים מהלך האנליזה: נגדיר את סדרת עצי פיבונצ'יFibonacci trees) ) F1,…,Fh,… נראה שקיים קבוע a כך שמספר הצמתים |Fh| בעץ Fh מקיים |Fh|>ah. נראה שמספר הצמתים |T|n= של עץ AVL כלשהו בגובה h ≤ |Fh|. מסקנה: לכל עץ AVL עם n צמתים מתקיים: n≥|Fh|>ah. לכן גובה עץ AVL חסום מלעיל ע"י logan. cs,Technion

חסם לגובה עץ AVL נגדיר באינדוקציה את משפחת עצי פיבונצ'יFibonacci trees) ): F0 F1 F2 F3 Fi+1 Fi-1 Fi טענה 2: . |Fh| = 1 + |Fh-1| + |Fh-2| טענה 1: לכל h, לעץ Fh גובה h. הוכחה: נכון עבור F0 ועבור F1. נמשיך באינדוקציה. מתקיים לפי הגדרת עץ פיבונצ'י: height(Fi+1) = height(Fi) + 1 = i + 1 . cs,Technion

חסם לגובה עץ AVL (המשך) F0 F1 טענה 3: יהי T עץ AVL בעל גובה h. אזי .|T|  |Fh| הוכחה: באינדוקציה על h. נכון עבור h=0 ועבור h=1. יהי T עץ AVL בעל גובה h. יהי L תת-העץ השמאלי ו-R תת-העץ הימני כמצויר. R L T תתי העצים R ו- L הם עצי AVL בגובה קטן מהגובה של T. אחד מהם (נאמר R) בגובה h-1 והשני בגובה h-1 או h-2. לפי הנחת האינדוקציה:  |Fh-1| |R|.  min{|Fh-1 |, |Fh-2|} = |Fh-2| |L|. לכן, מהגדרת T מתקיים: |T| = 1 + |R| + |L|  1 + |Fh-1| + |Fh-2| = |Fh| cs,Technion

מספרי פיבונצ'י סדרת פיבונצ'י ni מוגדרת ברקורסיה באופן הבא : ni+1 = ni + ni-1 n0 = 0, n1=1 n2=1, n3=2, n4=3, n5=5, n6=8 תנאי התחלה: טענה 4: מתקיים באשר ( נקרא יחס הזהב). הערה: מכיוון שמתקיים נובע גם עבור i גדול. cs,Technion

על מספרי פיבונצ'י סיפור הארנבים (תרגיל בספרו משנת 1202): פיבונאצ'י סיפור הארנבים (תרגיל בספרו משנת 1202): יש זוג ארנבים צעירים כעבור חודש מתבגרים כעבור חודש ממליטים זוג ארנבים וכו' כמה ארנבים יהיו בחודש i? cs,Technion

מספרי פיבונצ'י (המשך) הוכחת טענה 4: נתונה המשוואה הבאה. הוכחת טענה 4: נתונה המשוואה הבאה. נניח פתרון מהצורה: נציב במשוואה ונקבל: משוואת ההפרשים ליניארית ולכן כל צרוף ליניארי של פתרונות מהווה פתרון: שימוש בתנאי השפה מוביל למציאת הקבועים: לפיכך פתרון המשוואה (כולל תנאי ההתחלה) הוא: cs,Technion

על מספרי פיבונצ'י - 2 cs,Technion

יחס ומלבן הזהב cs,Technion

לחובבי המתמטיקה נוסחאות שונות למספרי פיבונצ'י cs,Technion

ניתוח גובה עץ AVL טענה 5: לעץ פיבונאצ'י Fi יש |Fi| = ni+3 - 1 צמתים כאשר ni הוא מספר פיבונצ'י ה-i. n3=2, n4=3, n5=5, n6=8 לדוגמא: F0 F1 F2 F3 הוכחה: באינדוקציה על i בסיס האינדוקציה: ראינו בתרשים הנחת האינדוקציה: נניח נכונות לכל i j ≤ צעד האינדוקציה: מטענה 2, הנחת האינדוקציה והגדרת מספרי פיבונצ'י,

ניתוח גובה עץ AVL (סיום) טענה 6: יהי T עץ AVLבן n צמתים וגובה h, אזי h=O(log n) . לאור טענה 3 מתקיים: לאור טענות 5, 4 מתקיים: כלומר לקיחת לוגריתם משני צדי המשוואה: cs,Technion

איזון בעץ AVL זמן החיפוש בעץ AVL הוא O(log n). נצטרך לדאוג שלאחר הכנסה או הוצאה, העץ הנותר יהיה עץ AVL. 12 8 15 6 10 24 14 11 29 4 20 13 19 בזמן הוצאה קיימת הפרת איזון דומה. למשל בהוצאת 29. 18 לאחר הוספת האיבר 18 נתקבל עץ שאינו עץ AVL. אבל נתן לשנות את תת העץ שבו הופר האיזון בצורה הבאה: תיקון כזה נקרא גלגול. 20 19 cs,Technion

איזון בעץ AVL (המשך) עבור צומת v בעץ בינרי נסמן: hL(v) גובה תת העץ השמאלי של v. hR(v) גובה תת העץ הימני של v. גורם האיזון (Balance Factor) מחושב כהפרש הגבהים:BF(v) = hL(v) – hR(v) בעץ AVL תקין: 1≤|BF(v)| 8 6 10 12 15 24 20 29 11 14 13 19 -1 +1 1+ 2+ 2- לדוגמא: מצד שמאל של כל צומת מסומן גורם האיזון. 18 אחרי ההכנסה של 18 גורם האיזון מופר על מסלול ההכנסה. cs,Technion

אבחנות הצמתים היחידים שאולי הופר בהם האיזון הם הצמתים לאורך מסלול הכנסה/הוצאה. אם עבור צומת v במסלול הנ"ל גובה העץ ששורשו v לא השתנה אזי גורמי האיזון בצמתים שמעליו במסלול לא השתנו. אם גורם האיזון הופך ל-2 או ל 2-, אזי יש לבצע גלגול על מנת שהעץ יחזור להיות עץ AVL. גורם האיזון לא יכול להיות גדול מ-2 בערכו המוחלט כי בכל הכנסה/הוצאה הוא משתנה ב-1 לכל היותר. גלגול– פעולה המתבצעת על צומת שהופר בו האיזון על מנת להחזירו לתחום המותר [1 … 1-]. 8 6 10 12 15 24 20 29 11 14 13 19 -1 +1 cs,Technion

סוגי הגלגולים סוג הגלגול, כלומר הדרך לתקן חוסר איזון בצומת, תלוי בצורה בה האיזון מופר. נתן לסווג חוסר איזון בארבע קטגוריות שונות המכסות את כל המקרים. +2 +1 1- גלגול LL גלגול LR גלגול RR 2- 1+ גלגול RL בשורש v בבן השמאלי vL הגלגול המתאים BF(v)=2 BF(vL) =1 BF(vL) = -1 בבן הימני vR LL LR BF(v)= -2 BF(vR) = -1 BF(vR) = 1 RR RL cs,Technion

גלגול LL +1 B +2 לפני הכנסת v : גובה העץ הוא 2+ h. הוכנס צומת v שהגדיל את גובה AL ל-1+h . A +1 מצד ימין של הצמתים מסומנים גורמי האיזון שהשתנו. גלגול LL : יעביר את A לשורש BR h AL AR v v אחרי הגלגול: גובה העץ לאחר הגלגול הוא 2+ h, כמו לפני ההכנסה. השורש מאוזן. שינינו (1)O מצביעים ולכן זמן הגלגול (1)O. h AR AL BR B A

גלגול LR C לפני הכנסת איבר v : A B AL CR BL BR h-1 h +1 +2 -1 A B C v לפני הכנסת איבר v : הוכנס איבר ל-BL שגרם לו להעלות את גובהו ל-h. גלגול LR: גובה העץ אחרי הגלגול הוא 2+h , כמו לפני ההכנסה. שינינו (1)O מצביעים ולכן זמן הגלגול (1)O. AL CR BL BR h-1 h -1 v C B A

דוגמא להכנסת ערך x לעץ AVL 8 6 10 4 12 15 24 20 29 11 14 13 19 18 +1 הוסף 18: לאחר גלגול LL: 8 6 10 4 12 15 24 19 29 11 14 13 18 20 cs,Technion

דוגמא להכנסת ערך x לעץ AVL 10 6 13 4 15 20 24 14 17 2 -1 7 12 11 הוסף 11 : לאחר גלגול LR: 10 6 13 4 15 20 24 14 17 7 12 11

דוגמא להכנסת ערך x לעץ AVL 8 6 10 11 19 13 25 29 23 17 12 15 -2 1 הוסף 15 (נחוץ גלגול RL) 8 6 10 13 19 11 25 29 23 17 12 15 -1 לאחר גלגול RL:

אלגוריתם להכנסת ערך x לעץ AVL הכנס את x כמו לעץ חיפוש בינרי. יהי v העלה שהוסף. h(v) = 0 כל עוד v  root בצע: 4.p = parent(v) 5. אם h(p)  h(v) +1 סיים. 6 . h(p) = h(v) +1 7. אם ב- p הופר האיזון, בצע גלגול וסיים. 8. אחרת v = p איך נחשב את parent(v) ? למשל, נוציא אותו ממחסנית בה נמצאים כל הצמתים על המסלול מהשורש ועד v. cs,Technion

זמן ההכנסה לעץ AVL כיוון שהצומת בו עושים גלגול לא משנה את גובהו, מבצעים רק גלגול אחד. מציאת המקום הדרוש להכנסה (h)O הוספת הצומת (1)O מציאת המקום בו מופר האיזון (אם מופר) (h)O תיקון האיזון (1)O סה"כ O(h) = O(log n) cs,Technion

אלגוריתם הוצאה הוצא צומת v כפי שהפעולה מתבצעת בעץ חיפוש בינרי. החל מלמטה ועד לשורש בצע: עדכן אתBF(v) אם |BF(v)| = 2 , בצע גלגול והמשך כלפי מעלה. אם גובה תת העץ ששורשו v לא השתנה, סיים. אם גובה תת העץ השתנה ו-BF(v) תקין, המשך כלפי מעלה. בהוצאה יתכן יותר מגלגול אחד. cs,Technion

דוגמא להוצאה מעץ AVL -2 -1 5 5 3 8 6 10 9 7 12 11 4 2 -2 2 8 1 * 4 6 -2 -1 5 גלגול RL 5 3 8 6 10 9 7 12 11 4 2 -2 2 8 1 * 4 6 10 3 7 9 12 11 גלגול RR 5 3 8 6 10 9 7 12 11 4 2 cs,Technion

דוגמא: הוצאה מעץ פיבונצ'י בהוצאה יתכן גלגול בכל צומת על המסלול בין הצומת המוצא ובין השורש. לדוגמא כאשר מוציאים עלה ראשון מעץ פיבונצ'י - Fi. A * C B תרגיל לבית: מהי סדרת הגלגולים המתבצעת כאשר מוציאים עלה ראשון מעץ פיבונצ'י - Fi. cs,Technion

עצי AVL מאפשרים חיפוש, הכנסה, הוצאה בזמן O(log n) מציאת המקום הדרוש להוצאה (h)O מציאת המקום בו מופר האיזון (אם מופר) (h)O תיקון האיזון (h)O (לכל היותר פעם בכל רמה) סה"כ O(h) = O(log n) עצי AVL מאפשרים חיפוש, הכנסה, הוצאה בזמן O(log n) ראו הדגמה באתר http://www.compapp.dcu.ie/~aileen/balance/ cs,Technion