המצגת נטענת. אנא המתן

המצגת נטענת. אנא המתן

Data Structures, CS, TAU, Perfect Hashing

מצגות קשורות


מצגת בנושא: "Data Structures, CS, TAU, Perfect Hashing"— תמליל מצגת:

1 Data Structures, CS, TAU, Perfect Hashing
בעיה: נתונה קבוצה S של n מפתחות מתחום U רוצים: לבנות טבלת T Lookup בגודל (O(n שבאמצעותה אפשר לבדוק חברות, בזמן קבוע (1)O . השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע Worst case * מוכנים להשקיע בבניית הטבלה (זמן בנייה (O(n בתוחלת) * מקום: (O(n שיטה: טבלה דו-שלבית Data Structures, CS, TAU, Perfect Hashing

2 Data Structures, CS, TAU, Perfect Hashing
מפתחות 1 i 2 n ²|Bi|  Bi gi (Hash) f (hash) עקרונות: 1) f ממפה את כל n המפתחות לטבלת ביניים בגודל n .  בטבלת הביניים קיימים תאים עם יותר ממפתח אחד. 2) gi- פונקציה אישית של תא i : ממפה מ- Bi לתחום בגודל ²|Bi|  בצורה חד-חד ערכית. ? Data Structures, CS, TAU, Perfect Hashing

3 Data Structures, CS, TAU, Perfect Hashing
בעיות שיש להתמודד איתן 1) אם Bi גדול מידי  T לא תהיה (O(n  צריך לחפש f כזה כך שלא יהיו Bi גדולים. 2) צריך למצוא (לחפש) פונקציות gi שימפו את Bi ל ²|Bi|  בלי התנגשויות בסיס לפתרון: הסתברות !! * הסתברות למציאת פתרונות ל-1) ו-2) היא גבוהה. * לא נצטרך לחפש הרבה  בתוחלת זמן לינארי Data Structures, CS, TAU, Perfect Hashing

4 Data Structures, CS, TAU, Perfect Hashing
1 i n Bi f * ממפה n אלמנטים ל - 1…n * ממפה לדליים B1 …Bn * | bi = | Bi * תכונה נדרשת * דרך להשגה : בחרו f עד שתצליחו! (מפונקציה אוניברסלית) אנליזה: 1) בוחרים  בצורה אקראית מקבוצה אוניברסלית של פונקציות Hash f: U [1…n] 2) משפט: אם f אוניברסלית וממפה N מפתחות ל B סלים אז תוחלת מס’ התנגשויות של מפתח בודד הינו (N-1)/B Data Structures, CS, TAU, Perfect Hashing

5 Data Structures, CS, TAU, Perfect Hashing
תוחלת מס’ ההתנגשויות של איבר בודד: n-1/n 1…n  תוחלת מס’ ההתנגשויות של כל האיברים: n(n-1/n)= n-1 #collisions = אבל: ולכן ניקח תוחלת Data Structures, CS, TAU, Perfect Hashing

6 Data Structures, CS, TAU, Perfect Hashing
4) אי שוויון מרקוב: אם x משתנה אקראי לא שלילי 5) ולכן 6) נבחר f באקראי. סיכוי להצלחה בכל ניסוי > 1/2  תוחלת מספר הניסיונות = 2 Data Structures, CS, TAU, Perfect Hashing

7 Data Structures, CS, TAU, Perfect Hashing
 גודל הטבלה לינארית + זמן הריצה של חיפוש f קבוע בתוחלת Data Structures, CS, TAU, Perfect Hashing

8 Data Structures, CS, TAU, Perfect Hashing
בחירת פונקציה gi: * נתונים מפתחות * נמפה אותם לתחום נבחר * נבחר gi מאוסף אוניברסלי: * תוחלת מס’ התנגשויות של מפתח בודד * אי שוויון מרקוב: * תוחלת מס’ התנגשויות של כל המפתחות * אי שוויון Boole: Data Structures, CS, TAU, Perfect Hashing

9 Data Structures, CS, TAU, Perfect Hashing
 תוחלת מס’ הניסיונות עד שנמצא gi כך שאין התנגשויות היא 2 Data Structures, CS, TAU, Perfect Hashing

10 Data Structures, CS, TAU, Perfect Hashing
עלות בניית פונקציה gi: * עבור כל gi שמנסים צריך לבדוק אם בקבוצה Bi יש התנגשויות. * בונים וקטור ביטים בגודל * יש לאתחלו  פעולות. * היות (בחרנו קודם את f כדי שתקיים את זה!)  עלות כוללת של בחירת כל gi כבבחירה ראשונה הינה worst case O(n)  היות ומס’ בחירות בתוחלת הינו 2 (עבור gi )  עלות כל בחירת gi בתוחלת O(n) Data Structures, CS, TAU, Perfect Hashing

11 Data Structures, CS, TAU, Perfect Hashing
סיכום 1) עלות העבודה בכל שלבי ההכנה בתוחלת. O(n) 2) עלות ביצוע find: : Worst Case O(1) Data Structures, CS, TAU, Perfect Hashing


הורד את "ppt "Data Structures, CS, TAU, Perfect Hashing

מצגות קשורות


מודעות Google