130 likes | 294 Views
UNIVERSAL HASHING. ממוצע זמן חיפוש. - משתמש “זדוני” יכול לבחור n מפתחות, כולם לתוך אותו סל. - נכון עבור כל פונקצית Hash קבועה. משרד הפנים נגד אונ תל-אביב. - דרך מניעה יחידה :. בחירת פונקציה באקראי לא תלויה במפתחות . (אבל עקבית).
E N D
UNIVERSAL HASHING ממוצע זמן חיפוש - משתמש “זדוני” יכול לבחור n מפתחות,כולם לתוך אותו סל. - נכון עבור כל פונקצית Hash קבועה. משרד הפנים נגד אונ תל-אביב - דרך מניעה יחידה: בחירת פונקציה באקראי לא תלויה במפתחות. (אבל עקבית) - בגלל אקראיות האלגוריתם יתנהג שונה בכל ריצה (על אותו input ) input - מסויים אינו יכול “לסבול” באופן תמידי. - עבור כל input ההסתברות לבצועים גרועים קטנה (וזהה לקלטים אחרים דומים) Data Structures, CS, TAU - 4.14
UNIVERSAL HASHING - המשך H - אוסף סופי של פונקציות Hash שממפות תחום U ל B סלים {0, 1,…B-1} לכל x, y U מספר הפונקציות h Hכל ש h(x )=h(y) הינו B / |H| אם h נבחרת מאוסף אוניברסלי של פונקציותhash ומשומשת להכניס N מפתחות לתוך טבלה בגודל N B ,B, אזי תוחלת מס’ ההתנגשויותהקשורות במפתח x הינה קטנה מ 1. H נקרא אוניברסלי אם: כלומר: אם פונקציה נבחרת אקראית מ- H אזי סיכוי ההתנגשות של x ו y הינו 1/B אונ' ת"א: B=29,999 , |H|=10^9 TAU vs misrad hapniim משפט Data Structures, CS, TAU - 4.15
הוכחת המשפט יהי: אם z, y מתנגשים 1 =Cyz אחרת 0 לכן: E[Cyz] = 1 B )כי z, y מתנגשים בהסתברות 1 ) B אזי: הוכחה: יהי Cxמס’ ההתנגשויות הכולל של X תוחלת סכום = סכום תוחלות Data Structures, CS, TAU - 4.16
בחירת קבוצה אוניברסלית x=(x0, x1,…xr) - יהי a={a0, …ar } רצף של אברים נלקחים באקראי מהקבוצה {0, 1,…B-1} ונגדיר ha H : - בחר B ראשוני. - פרק x ל r+1 בתים - דרישה: ערך כל byte קטן מ B- Data Structures, CS, TAU - 4.17
משפט - ניקח שני מפתחות שונים כלשהם x y - בלי הגבלת הכלליות נניח x0 y0 a1, a2,…ar - נסתכל על בחירה שרירותית של אבל B הוא ראשוני ולכן יש יחידי הפותר את המשוואה a0w=z וזה נכון כי אם a0’w=z, a0w=z אז (a0-a0’)w=B בניגוד לראשוניות של B 0 a0 B האוסף H הוא אוסף אוניברסלי של פונקציות Hash הוכחה: טענה: עבור הבחירה הנ”ל ישנו בדיוק a0בודד המקיים h(x)=h(y) הוכחה: כדי שיתקיים h(x)=h(y) חייב להתקיים: Data Structures, CS, TAU - 4.18
המשך ההוכחה - לכן יש בדיוק ערכים של{a0, …ar} שעבורם x ו y מתנגשים )לכל (x,y)( - היות ומס’ הערכים של a={a0, …an} הוא בדיוקx ו-y מתנגשים בדיוקבהסתברות: H אוניברסלית Finished here 3/5/04 Data Structures, CS, TAU - 4.19
הערכת ביצועים Hash סגור (OPEN ADDRESSING) Hash לינארי: אם התנגשנו סיכוי התנגשות שניה גבוה (כבר נפלנו באזור “מועד”) נניח: פונקצית rehash שולחת בצורה אקראית. “אמונה”: זה הטוב ביותר B - סלים N - איברים (כרגע בטבלה) Data Structures, CS, TAU - 4.20
הערכת ביצועים : תוחלת עלות הכנסת איבר כשיש N איברים הסתברות לפחות להתנגשות אחת: הסתברות לפחות לשתי התנגשויות: הסתברות לפחות ל i התנגשויות: עבור N, B גדולים: תוחלת: הצלחה אבל: Data Structures, CS, TAU - 4.21
הערכת ביצועים - המשך אם נדייק ונחליף ב: חשבון מסובך ייתן (amortized) :1, 2,…M כמה עולה להכניס האיברים בממוצע: Data Structures, CS, TAU - 4.22
הערכת ביצועים - המשך למלא את הטבלה יקח: logB בממוצע לאיבר!! 10/9 ln10 אבל למלא 90% (M=0.9B) : כלומר: קיים: לא קיים: - מילוי הטבלה – פונקציה B - כל שבר שונה מ- 1 – לא תלויים ב- B בדיקת חברות - לאיבר שלא קיים - כמו הכנסה - לאיבר שקיים - כמו הממוצע עד כה Data Structures, CS, TAU - 4.23
הערכת ביצועים - המשך למלא 90% מ 1000 למלא 90% מ- 109 שווה!! אבל למלא הכל lnB הערה: אם M אחוז ( ) של B – אזי יעילות הכנסה היא: לא תלוי ב-B!!! כלומר: סיבה: השבריר האחרון של המילוי שבו אורך השרשרות פרופורציונלי למספרהסלים – קובע. Data Structures, CS, TAU - 4.24