Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

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

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

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

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

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

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

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

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

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

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


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

Similar presentations


Ads by Google