23
10:55:30 AM 1 ללללל7 יייB +

25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

  • View
    234

  • Download
    3

Embed Size (px)

Citation preview

Page 1: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:32 PM1

7תרגול

+Bעצי

Page 2: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:32 PM2

Page 3: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM3

:+Bעצי דרגת פיצול גבוהה.•מנגנון לאיזון העץ.•

.מספר קבוע וקטן של רמות מהשורש לעלים

יתרונות לעומת קובץ סידרתי:גישה אקראית יעילה )קבועה - תלוי רק בגובה העץ •

ודרגת הפיצול(.אפשרות להוספת רשומה ללא ארגון מחדש )לא •

צריך כתיבה של כל הקובץ מחדש(.גישה יעילה לתת תחום )ע"פ המפתח הראשי(.•

Page 4: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM4

:B וקיבולת עלה m מדרגה +Bהגדרת עץ כך ש- dלשורש דרגה )מספר בנים( •

כך ש- dלצומת פנימי דרגה •

בעלה מקיים bמספר רשומות •

הרשומות יושבות רק בעלים, וכל העלים באותו מרחק מהשורש.

מפתחות מפרידים, כך d-1 בנים יש dלצומת פנימי עם שערכיהם מפרידים בין תתי העצים של הבנים, כלומר

לכל מפתח המפריד בין שני תתי-עצים מתקיים:

2 d m

2

md m

2

Bb B

ik1,i iT T

1max mini i ix T k x T

שימו לב בבקשה להבדלבין העצים הללו לעציםשל קורס מבני נתונים,

!אחדשם היה רק פרמטר

כלומר עץ מאוזן

Page 5: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

כלומר איך נראה צומת פנימי?

09:42:33 PM5

אזי מבנה של צומת פנימי יראהm( הוא אכן mאם דרגת העץ עבור צמתים פנימיים )כלומר פרמט

וגודל מפתח ראשי )מפתח ייחודי כךaוזה אומר, שאם גודל מצביע )כלומר גודל כתובת( הוא נניח , אזי יוצא שגודל כל הצומת הואKשלכל רשומה יש ערך שונה( הוא

(m-1)k+maוזה כי צריך לתת מצביע לכל הבנים, והפרדה בין כולם.

ומה תמיד שוכחים בחישוב? בנים אפשריים, עדיין המקום שהוא תופס8גם אם הצומת לא מלא כרגע )ויש לו רק שני בנים מתוך

בזיכרון הוא כצומת מלא, כי כל הרעיון הוא שאין צורך לשכב את כל העץ בעת הכנסה או הוצאה, אלארק את העלה הספציפי שעבר שינוי!!!!

Page 6: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

ואיך נראה עלה?

09:42:33 PM6

שהוא דרגה מקסימלית עבור עלה(B פנימיים )כלומר פרמט עליםאם דרגת העץ עבור אזי מבנה של עלה הואbהוא אכן

אז גודל של עלה בזיכרון הואqוזה אומר, דאם גודל רשומה הוא

qb

באופן דומה לשקופית קודמת – זה נכון גם אם העלה לא מלא )ועוד מעט נראה שבדרך כלל הואאכן לא מלא...( אלא עדיין מתמלא. כל עלה הוא בגודל כזה מהרגע שהוא נוצר.

: שימו לב תמיד בשאלה בכמה אחוזים מלאים העלים. אם לא כתוב, אז יש תוחלת למספר הזה.טיפ

Page 7: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM7

:+Bפעולות על עצי חיפוש: יורדים מהשורש עד לעלה המתאים, בעזרת 1.

המפתחות המפרידים.הכנסה: 2.

מציאת העלה המתאים ע"י חיפוש.• רשומות, הוסף את Bאם יש בעלה פחות מ-•

הרשומה וסיים. בעלה הישן :אחרת – פצל את העלה לשני עלים•

רשומות ובעלה החדש רשומות, והוסף רקורסיבית מפתח מפריד לאב של העלה )יתכן

שהוספה זו תגרום לפיצול נוסף, של צומת פנימי(. אם יש פיצול בשורש – מוסיפים מעליו רמה נוספת.

תהליך ההוספה מתבצע מלמטה למעלה, כדי –לשמור על איזון העץ.

2B 2 1B

Page 8: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM8

:+Bפעולות על עצי מחיקה:.3

מציאת העלה המתאים ע"י חיפוש.•אם יש בעלה יותר מ- רשומות, מחק את •

הרשומה וסיים. שכןאחרת – אם ניתן להעביר רשומות מאח •

באופן ששומר על קיבולת מינימאלית, העבר רשומות, ועדכן מפתח מפריד באב.

אחרת – אחד שני אחים, ובטל רקורסיבית מפתח •מפריד מהאב.

אם לשורש נותר בן יחיד, הפוך אותו לשורש.•

2B

גזור ושמור )למבחן(, כי אחרת עושים טעויות...

Page 9: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM9

+Bדוגמאות לפעולות על עצי m=3,B=3בדוגמה זו

3 5

1 2 3 4 5 6 7

3

1 2 3 4 5 6 7 8

7

5 8הוסף השקף הזה נכון לחלוטין!!!האם כולם מבינים למה

עלה למעלה?5המפתח

3,5,7כי נוצר מצב שבו היו בצומת פנימי בשורש4ולכן דרג השורש הייתה

שזה מעל המותר, ונוצר פיצול

Page 10: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM10

+Bדוגמאות לפעולות על עצי m=3,B=3בדוגמה זו

3

1 2 3 4 5 6 7 8

7

5

5 7

1 2 4 5 6 7 8

3מחק

Page 11: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM11

+Bדוגמאות לפעולות על עצי m=3,B=3בדוגמה זו

5 7

1 2 4 5 6 7 8

4 7

1 2 4 6 7 8

5מחק

שימו לב כי זה חשוב: כאשר נשאר לבד, לא חיפשנו לצרף6

חיפשנואותו למישהו אחר, אלא מי יצטרף אליו

Page 12: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM12

1שאלה מס' מוכנסת קבוצת B=4 וקיבולת עלה m=3 מדרגה +Bבעץ

.60,….,1,2,3רשומות שמפתחותיהן הינם נתון כי בתחילה העץ ריק.

א. הצע סדר הכנסה לעץ שבו מספר העלים הסופי גדול ככל האפשר. ציין את מספר העלים הדרוש.

עלים, 29 )כלומר בסדר עולה(. אז מתקבל 60,…1,2,3 רשומות כל אחד ועלה אחד 2 מכילים 28מתוכם

רשומות.4)אחרון( מכיל

Page 13: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM13

ב. הצע סדר הכנסה לעץ שבו מספר העלים הסופי קטן ככל האפשר. ציין את מספר העלים הדרוש.

1,2,3,4|5,6,7,8|9,10,11,12|13,14,15,16|17,18,19,…|57,58,59,60

1,2,5,6,9*,10,13*,14,17*,18,…,53*,54,57*,58,59*,3,4,7,8,11,12,15,16,19…55,56,60

עלים כל אחד 15בכל )*( יש פיצול של עלה, מתקבלים רשומות.4מכיל

Page 14: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM14

……

1 2 5 6

……

1 2 5 6 9

……

1 2 5 6 9 10 57 58 5953 54..…

……

1 2 3 4 5 6 7 8 9 10 11 12 57 58 59 6053 54 55 56..…

Page 15: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM15

:+Bאנליזה של עצי שנבנה מהכנסות בלבד +Bתפוסה ממוצעת של עץ •

של מפתחות היא עם פרמוטציה אקראית יהיו בממוצע עלה וכל צומת פנימי. כלומר, כל

מלאים. 70%

:+Bגובה מינימאלי ומקסימאלי של עץ n וקובץ עם B וקיבולת עלה m מדרגה +Bנתון עץ

רשומות:עץ עם גובה מינימלי ו- עלים מקיים: •

עץ עם גובה מקסימלי ו- עלים מקיים: •

ln 2 0.7

minHL

L maxH

min min1min

H HmH Log L m L m

max max1

max

2

1 2 22 2 2

H H

m

L m mH Log L

Page 16: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM16

2שאלה מס' האם ישנם 60,…,1,2,3,4ביחס לעץ וקבוצת המפתחות

סדרי הכנסה שונים המובילים לעצים שגובהם שונה?

פתרון: : 1עבור סדר הכנסה מסעיף א בשאלה

: 1עבור סדר הכנסה מסעיף ב בשאלה

.שונהכלומר, שני סדרי ההכנסה יתנו עצים בגובה

min 3 29 4H Log

max 2

151 3

2H Log

Page 17: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM17

חישוב זמני גישה:כדי להקטין את מספר פעולות הקריאה/כתיבה, משתדלים

לשמור בזיכרון הראשי חלק גדול ככל האפשר של העץ. בדרך כלל שומרים בדיסק רק עלים ורמה אחת של

צמתים פנימיים מעל העלים. חישוב זמן גישה לרשומה במקרה זה כולל קריאה אקראית של צומת פנימי

וקריאה אקראית של עלה.

: תמיד קוראים וכותבים עלים שלמים, ולא חלקי הערהעלים.

בהנחה שאין פיצול )או איחוד( עלים, זמן עדכון/הוספה/מחיקת רשומה כולל גישה אקראית לרשומה )קריאת עלה( + זמן של סיבוב שלם, עד

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

את הזמן שלוקח את הזמן למצוא את הרשומה הזאת בעץלא כולל זה

Page 18: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM18

יש אפשרות לקרוא תת-תחום שממוין על פי +Bבעץ המפתח הראשי של הקובץ. במקרה זה קוראים

אקראית את הרשומה הראשונה בתת התחום, ואחר כך קוראים לפי הסדר, עלה אחרי עלה, את כל

הרשומות השייכות לתת התחום.

בדרך כלל נניח שבכל עלה קיים מצביע לעלה הבא.זמן הקריאה של כל עלה מחושב כזמן גישה אקראי, כיוון

יושבים זה אחרי זה לאשעלים עוקבים ע"פ סדר פיסית.

Page 19: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM19

3שאלה מס' . m=200, דרגה +Bנתון עץ

שומרים על הדיסק שתי רמות – עלים ורמה אחת מעליהם..Nמספר הרשומות בעץ •.200Byteגודל רשומה •. 4Kbyteגודל צומת פנימי •.50Kbyteגודל מסילה •זמן תזוזת זרוע ממוצעת .•זמן סיבוב .•

חשב זמן קריאה אקראית של רשומה וקריאה סדרתית של כל הקובץ עבור המקרים:

רשומות4Kbyte( 20.)א. גודל עלה רשומות50Kbyte(250.) ב. גודל עלה

16 secavgSeekT m16.7 secrotT m

Page 20: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM20

פתרון:א.

זמן קריאת צומת פנימי או עלה: זמן קריאה אקראית – צומת פנימי + עלה:

גישה סדרתית – קריאה של כל העלים בקובץ:מספר העלים בעץ: •

זמן קריאה סדרתית של הקובץ: •

16.7 416 16.7 26 sec

2 50m

26 26 52 secm

0.7 20a

NL

1 26aL

יש כאן הנחה סמויה... מה היא?.שאין עלה או צומת ששבור בין שתי מסילות. הנחה זאת ממש מקלה עלינו

Page 21: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM21

3שאלה מס' . m=200, דרגה +Bנתון עץ

שומרים על הדיסק שתי רמות – עלים ורמה אחת מעליהם..Nמספר הרשומות בעץ •.200Byteגודל רשומה •. 4Kbyteגודל צומת פנימי •.50Kbyteגודל מסילה •זמן תזוזת זרוע ממוצעת .•זמן סיבוב .•

חשב זמן קריאה אקראית של רשומה וקריאה סדרתית של כל הקובץ עבור המקרים:

רשומות4Kbyte( 20.)א. גודל עלה רשומות50Kbyte(250.) ב. גודל עלה

16 secavgSeekT m16.7 secrotT m

Page 22: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM22

פתרון:ב.

זמן קריאת צומת פנימי: זמן קריאת עלה:

זמן קריאה אקראית – צומת פנימי + עלה:

גישה סדרתית – קריאה של כל העלים בקובץ:מספר העלים בעץ: •

זמן קריאה סדרתית של הקובץ: •

16.7 416 16.7 26 sec

2 50m

16.716 16.7 42 sec

2m

26 42 68 secm

0.7 250 12.5a

b

LNL

26 42 3.5b aL L

Page 23: 25.06.20151 תרגול 7 עצי B+. 25.06.20152 3 עצי B+: דרגת פיצול גבוהה. מנגנון לאיזון העץ. מספר קבוע וקטן של רמות מהשורש

09:42:33 PM23

מסקנה:

כאשר יש הרבה קריאות אקראיות, כדאי להגדיר •עלים קטנים.

כאשר יש הרבה קריאות סדרתיות, כדאי להגדיר •עלים גדולים.