Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע."— Presentation transcript:

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) סיכום


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

Similar presentations


Ads by Google