درهم سازی سید مهدی وحیدی پور ارایه سوم: درهمسازی روشها و کاربردها
درهم سازی درهم سازی تابع h(k) است که کلید k بازیابي رکوردها استفاده ميشود. را به یك آدرس انتقال مي دهد. از این آدرس به عنوان مبنایي برای ذخیره و رکورد آدرس k=lowellکلید 1 به آدرس 4 آدرس خانگي گفته مي شود. 2 h(k) 3 آدرس 4 4 LOWELL 5
تفاوت درهم سازی و انديس سازی آدرسهای به دست آمده از درهم سازی تصادفي هستند. با درهم سازی دو کلید مختف ممكن است به یك آدرس انتقال داده شوند.که در آن صورت برخورد( Collision ) مي دهد. رخ
چندين روش مختلف برای كاهش تعداد برخوردها پراكنده كردن ركوردها بتوانیم الگوریتمي پیدا کنیم که رکوردها را به صورت تصادفي و پراکنده بین آدرس ها توزیع کند که تعداد زیادی ازرکوردها در اطراف یك آدرس مشخص تجمع نكند. استفاده از حافظه اضافي در مقابل تعداد رکورد از حافظه بیشتری کمك مي گیریم که پیدا کردن الگوریتم در هم سازی سادهتر باشد. قرار دادن بيشتر از يك ركورد دريك آدرس فایل به اندازه کافي بزرگ باشد تا چندین رکورد را در خود ذخیره کند. به آدرس هایي که چندین رکورد را نگهداری مي کنند باکت گفته مي شود.
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 A B C D E F G A B C D E F G A B C D E F G نیرتهب دروکر سردآ دروکر سردآ دروکر سردآ نیرتدب لوبق لباق اه سردآ نيب رد اهدروكر عيزوت
روش های درهم سازی جستجو در كليد براي يافتن يك الگو: اگر استفاده را نشان دهد. ميتوان از تابع درهمسازی بعضي از قسمتهای یك کلید یك الگو واقعي قابل استفاده کرد که آن بخش از کلید را استخراج کند. از کلید استخراج آنها را به و سپس مي کند تا كردن قسمت هايي از كليد: عددهایي را از قسمتهایي به هم اضافه ميکند. این روش الگوهای اولیه را خراب ميکند. اندازه آدرس را بر یك عدد تقسیم و از مي کنیم باقیمانده ی آن استفاده تقسيم يك كليد بر يك عدد: ميکنیم. مجذور كردن كليد و گرفتن عدد مياني تبديل مبنا
پيش بينی توزيع ركوردها P(x)= (r/n)x e -(r/n) X! توزيع پواسون N تعداد ادرسهای موجود R تعداد رکوردهایي که باید ذخیره شوند. X تعداد رکوردهایي که به یك ادرس مشخص اختصاص داده شدهاند. P(0) = 10 e -1 0! P(1) = 11 e -1 1! P(2) = 12 e -1 2! =0.368 =0.368 =0.184 احتمال اینكه هیچ کلیدی در یك ادرس مشخص درهم سازی نشود: احتمال اینكه دقیقا یك دو یا سه کلید در یك ادرس مشخص در هم سازی شوند: P(3) = 10 3 e -1 3! =0.061
دانسيته فشردگی تعداد رکورد ها تعداد فضا دانسیته فشردگي =R/N= اندازه فضای استفاده شده در فایل را نشان مي دهد و تنها راه تخمین کارایي محیط درهم سازی است.
دانسيته فشردگی- ادامه اثر اگر دانسیته فشردگي 50 درصد باشد وهر ادرس تنها قادر باشد یك رکورد را در خود ذخیره کند انتظار داریم که 21 درصد تعداد کل رکورد ها در جایي غیر از ادرس خانگي خودشان ذخیره شوند. دانسیته فشردگي نسبت به رکورد هایي که در ادرس خانگي خود ذخیره نشده اند: مترادف ها به صورت درصدی از رکوردها دانسیته فشردگي)درصد( 10 30 50 70 80 90 100 از تابع پواسون و دانسيته نتيجه ميشود كه برخورد اجتناب ناپذير است در نتيجه بايد به روشهاي رفع برخورد بيانديشيم. 4.8 13.6 21.4 28.1 31.2 34.1 36.8
روش های رفع برخورد online )کلید موجود نیست( ادرس باز خطي درجه دوم دوگانه دامنه محدود روشهای کاهش تعداد برخوردها توزیع رکورد ها بین ادرس ها.1 زنجیره ای انواع روشهای درهمسازی Offline.2 )کلید موجود 1 ست( perfect )بدون تصادم( minimal perfect preserving order MPHF توزیع پواسون و دانسیته فشردگي ذخیره کردن بیشتر از یك رکورد در هر ادرس)باکت( پیوند با ناحیه سرریز جدول های پراکندگي:اندیس سازی
H l (k,i) = (h(k) +c*i) mod m, i = 0,1, فرمول کلي درهم سازی آدرس دهی باز درهم سازي خطي برای کلید k k مقدار کلید h(k) یك تابع در هم ساز ساده i نشان دهنده تعداد تكرار تولید آدرس مشكالت: 1 _خوشه بندی اولیه: به ازای مقدار ثابت c وتمام مقادیر اولیه برای تابع ( h(k,i)=h(kیك دنباله ادرس مشخص بر اساس میزان جابجایي cتولید خواهد نمود. 2 _خوشه بندی ثانویه: به ازای دو کلید مختلف kو 1 k 2 رابطه ) 2 h(k 1 )=h(k برقرار باشد در این صورت تمام ادرسهای دو دنباله یكسان خواهد بود.
درهم سازی آدرس دهی روش سرريز فزاينده باز درهم سازی خطي با 1=c اگر به یك رکورد آدرسي تخصیص داده شود که قبال توسط رکوردی بعدی مورد جستجو قرار مي گیرند تا اولین آدرس خالي پیدا شود. اشغال شده است آدرس های آدرس 2 روال درهم سازي yorkکلید 1 2 3 4 5 Novak Rosen Jasper york 6 york هنگام جستجو کلید york جستجو از آدرس 2 زیرا مي شود شروع هنوز در آدرس 2 درهم سازی مي شود.
روش های مختلف جانشين سازی FCFS :کلید قدیمي در سلول نگه داشته میشود و کلید جدید سلول های بعدی را بررسي ميکند. LCFS :کلید جدید وارد سلول میشود و کلید قدیمي سلول های دیگر را بررسي مي کند. hood Robin :در بین دو کلید کلیدی که بزرگترین تغییر مكان را دارد در سلول نگه داشته کلید دیگر سلولهای دیگر را بررسي میكند. مي شود و
درهم سازی آدرس دهی درهم سازي دوگانه باز فرمول کلي HD (k,i) = (g(k) + ih(k)) mod m k مقدار کلید h(k) و g(k) توابع درهم ساز ساده k نشان دهنده تعداد تكرار تولید آدرس برای کلید i ركورد هاي سرريز در آدرس دورتري از آدرس خانگي قرار دارند. هنگام ايجاد برخورد تابع در هم سازي ديگري روي كليد عمل ميكند. مشكالت: محلي بودن را نقض ميکند تولید آدرسهای یكسان و تكراری در دنباله های ادرس.
S. M. Vahidipour UoK درهم سازی آدرس دهی باز درهم سازي دامنه محدود به منظور استفاده از روش دامنه محدود روند زیر برای بدست آوردن آدرس کلید K در فضایي با =m p n مكان اجرا مي شود. عدد اول و 1 n. P به ازای هر کلید k دو عدد a,b را محاسبه کنید: a= k mod m, b = k mod (m-2) واضح است که روابط 0 a m-1 0 b m-2, برقرار مي شود. مجموعه S را یك مجموعه دامنه محدود ) n GF(Pمينامند. هر چند جملهای از محدوده( GF(P n را با n عدد ضریب ان نشان میدهند. =a. ( a 1-n, a 2-n,..., a 0 ) P لذا یك عدد Nرقمي در مبنای P نشان دهنده یك چند جمله ای در محدوده ) N GF(Pاست. اعداد a وb درمبنای p بر اساس محدودهی ) نشان دهندهی دو چندجملهای به نامهای (X) g k و (X) h GF(p n k مي- باشند. a= ( a n-1, a n-2,..., a 0 ) P b= ( b n-1, b n-2,..., b 0 ) P g k (X)= a n-1 X n-1 + a n-2 X n-2 + + a 0 h k (X)= b n-1 X n-1 + b n-2 X n-2 + + b 0
شماره دنباله آدرس ها که نشان دهنده ی چندمین آدرس تولیدی است را نیز در مبنای p (x) f i در فضای ) n GF(p تولید مي شود. نمایش داده و چندجمله ای i= ( i n-1, i n-2,..., i 0 ) P S. M. Vahidipour UoK درهم سازی آدرس دهی باز درهم سازي دامنه محدود f i (X)= i n-1 X n-1 + i n-2 X n-2 + + i 0 (X) GF(p n λ و با در نظر گرفتن f به عنوان چند جمله ای ثابت در فضای ) n GF(pرابطه زیر حال بر اساس قوانین حاکم بر ) نشان دهنده تابع در هم ساز جدید است. H f (k,i) = (g k (X) + f λ (X) f i (X) h k (X)) mod t(x) (k,i) H f چندجمله ای از فضای ) n GF(p مي باشد که ضرایب آن نشان دهنده عددی است در مبنای p که همان آدرس تولید شده تابع درهمساز است. t(x) چندجملهای تجزیه ناپذیر در مبنای p مانند
ذخيره كردن بيشتر از يك ركورد در يك آدرس: باكت ها گاهي ذخیرهسازی گروهي از رکوردها در بلوكها در واقع چند رکورد از آدرس مشترك دارند. بهتر از ذخیره سازی تك تك آنها است. برای جستو یك رکورد کل باکت در حافظه قرار ميشوند. رکوردهای و مي گیرد موجود در باکت جستجو حالت سرریز در باکت وجود دارد اما احتمال وقوع آن بسیار کمتر است.
حذف فایل پیچیده تر از اضافه کردن آن است زیرا: محل رکورد حذف شده نباید مانع جستجو های بعدی شود. امكان استفاده از فضای آزاد شده باید وجود داشته باشد. راه حل: استفاده از عالئم ویژه حذف ركورد Adams Jones ###### Smith
سرريز فزاينده زنجيره ای رکورد های مترادف در یك لیست پیوندی قرار ميگیرند. یعني هر آدرس خانگي حاوی عددی است که محل رکورد بعدی که در این آدرس خانگي قرار دارد مشخص ميکند. آدرس خانگي آدرس واقعي داده آدرس مترادف بعدی طول جستجو 20 20 Adams 22 1 21 21 Bates 23 1 20 22 Cole 25 2 21 23 Dean -1 2 20 24 Evans -1 1 24 25 Flint -1 3 در مزيت: هر جستجو فقط متوسط طول جستجو: 1.7 رکوردهایي که دارای کلیدهای مترادف هستند دستیابي مي شوند.
پيوند با ناحيه سرريز تمام رکورد های سرریز را به یك ناحیه سرریز منتقل مي کنیم. مجموعه آدرس های خانگي ناحيه سرريز نام دارد. ناحيه داده اصلي و مجموعه آدرس های سرریز ناحیه سرریز ناحیه داده اصلي آدرس خانگي 20 Adams 0 0 Cole 2 21 Bates 1 1 Dean -1 22 2 Flint -1 23 3 24 Evans -1
جدول های پراكندگی:انديس سازی فایل در هم سازی حاوی هیچ رکوردی نیست و فقط حاوی اشاره گرهایي به رکوردهاست. این فایل مانند یك اندیس است که توسط درهم سازی جستجو ميشود. 20 21 22 23 24 Adams Bates Evans Cole Dean