Download presentation
Presentation is loading. Please wait.
1
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע Worst case * מוכנים להשקיע בבניית הטבלה (זמן בנייה (O(n בתוחלת) * מקום: (O(n שיטה: טבלה דו-שלבית רוצים: לבנות טבלת T Lookup בגודל (O(n שבאמצעותה אפשר לבדוק חברות, בזמן קבוע (1)O. Perfect Hashing
2
2 Data Structures, CS, TAU, Perfect Hashing עקרונות: 1) f ממפה את כל n המפתחות לטבלת ביניים בגודל n. בטבלת הביניים קיימים תאים עם יותר ממפתח אחד. 2) g i - פונקציה אישית של תא i : ממפה מ- B i לתחום בגודל ²|B i | בצורה חד-חד ערכית. T S מפתחות 1 i 2 n ²|B i | BiBi g i (Hash) f (hash)
3
3 Data Structures, CS, TAU, Perfect Hashing 1) אם B i גדול מידי T לא תהיה (O(n צריך לחפש f כזה כך שלא יהיו B i גדולים. 2) צריך למצוא (לחפש) פונקציות g i שימפו את B i ל ²|B i | בלי התנגשויות בסיס לפתרון: הסתברות !! * הסתברות למציאת פתרונות ל-1) ו-2) היא גבוהה. * לא נצטרך לחפש הרבה בתוחלת זמן לינארי בעיות שיש להתמודד איתן
4
4 Data Structures, CS, TAU, Perfect Hashing * ממפה לדליים B 1 …B n b i = | B i | * * דרך להשגה : בחרו f עד שתצליחו! (מפונקציה אוניברסלית) אנליזה: * תכונה נדרשת 2) משפט: אם f אוניברסלית וממפה N מפתחות ל B סלים אז תוחלת מס’ התנגשויות של מפתח בודד הינו (N-1)/B * ממפה n אלמנטים ל -1…n בחירת פונקציה f : 1 i n BiBi f 1) בוחרים בצורה אקראית מקבוצה אוניברסלית של פונקציות Hash f: U [1…n] בחירת פונקציה f 2) הוכחה: פרק על HASH אוניברסלי
5
5 Data Structures, CS, TAU, Perfect Hashing תוחלת מס’ ההתנגשויות של כל האיברים: n(n-1/n)= n-1 #collisions = אבל: וכן ניקח תוחלת 3) לכן: במיפוי n מפתחות ל תוחלת מס’ ההתנגשויות של איבר בודד: n-1/n 1…n
6
6 Data Structures, CS, TAU, Perfect Hashing 4) אי שוויון מרקוב: 6) נבחר f באקראי. סיכוי להצלחה בכל ניסוי > 1/2 תוחלת מספר הניסיונות = 2 אם x משתנה אקראי לא שלילי 5) ולכן
7
7 Data Structures, CS, TAU, Perfect Hashing מסקנה: במספר ניסיונות שתוחלתם 2 נקבל f כך ש: גודל הטבלה לינארית + זמן הריצה של חיפוש f קבוע בתוחלת
8
8 Data Structures, CS, TAU, Perfect Hashing * נבחר g i מאוסף אוניברסלי: * נמפה אותם לתחום נבחר * תוחלת מס’ התנגשויות של מפתח בודד * תוחלת מס’ התנגשויות של כל המפתחות * אי שוויון Boole: * נתונים מפתחות * אי שוויון מרקוב: בחירת פונקציה g i : 23/1/06
9
9 Data Structures, CS, TAU, Perfect Hashing תוחלת מס’ הניסיונות עד שנמצא gi gi כך שאין התנגשויות היא 2
10
10 Data Structures, CS, TAU, Perfect Hashing * עבור כל g i שמנסים צריך לבדוק אם בקבוצה B i יש התנגשויות. היות ומס’ בחירות בתוחלת הינו 2 (עבור g i ) * בונים וקטור ביטים בגודל * יש לאתחלו פעולות. * היות (בחרנו קודם את f כדי שתקיים את זה!) עלות כוללת של בחירת כל g i כבבחירה ראשונה הינה worst case O(n) עלות כל בחירת g i בתוחלת O(n) עלות בניית פונקציה g i :
11
11 Data Structures, CS, TAU, Perfect Hashing 1) עלות העבודה בכל שלבי ההכנה בתוחלת. O(n) 2) עלות ביצוע find: : Worst Case O(1) סיכום
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.