Abstract
Analyzing Web graphs has applications in determining page ranks, fighting Web spam, detecting communities and mirror sites, and more. This study is however hampered by the necessity of storing a major part of huge graphs in the external memory which prevents efficient random access to edge (hyperlink) lists. A number of algorithms involving compression techniques have thus been presented, to represent Web graphs succinctly, but also providing random access. Those techniques are usually based on differential encodings of the adjacency lists, finding repeating nodes or node regions in the successive lists, more general grammar-based transformations or 2-dimensional representations of the binary matrix of the graph. In this paper we present three Web graph compression algorithms. The first can be seen as engineering of the Boldi and Vigna (2004) method. We extend the notion of similarity between link lists and use a more compact encoding of residuals. The algorithm works on blocks of varying size (in the number of input lists) and sacrifices access time for better compression ratio, achieving more succinct graph representation than other algorithms reported in the literature. The second algorithm works on blocks of the same size in the number of input lists. Its key mechanism is merging the block into a single ordered list. This method achieves much more attractive space–time tradeoffs. Finally, we present an algorithm for bidirectional neighbor query support, which offers compression ratios better than those known from the literature
چکیده
تجزیه و تحلیل گرافهای وب، برنامههای کاربردی در تعیین رتبه صفحه، مبارزه با هرزنامه وب، تشخیص جوامع و سایتهای آینه، و بیشتر را دارند. این مطالعه مانع ضرورت ذخیرهسازی بخش عمدهای از گرافهای بزرگ در حافظه خارجی می شود و از دسترسی تصادفی کارآمد به لیستهای لبه (لینک) جلوگیری میکند. تعدادی از الگوریتمهای مربوط به تکنیکهای فشردهسازی برای نشان دادن گرافهای وب فشرده، اما با ارائه دسترسی تصادفی، ارائه شدهاند. این تکنیکها معمولاً بر اساس کدگذاری دیفرانسیلی از لیستهای مجاورت، یافتن گرههای تکراری یا مناطق گره در لیستهای متوالی، به طور کلیتر گرامر مبتنی بر تبدیلات یا بازنمایی 2 بعدی از ماتریس دودویی گراف هستند. در این مقاله سه الگوریتم فشرده سازی گراف وب ارائه میشود. اولی میتواند به عنوان مهندسی روشهای Boldi و Vigna (2004) دیده شود. مفهوم شباهت بین لیستهای لینک را توسعه میدهیم و از رمزگذاری فشردهتر باقیماندهها استفاده میکنیم. الگوریتم بر روی بلوکهایی با اندازههای مختلف (در تعداد لیست ورودی) و فدا کردن زمان دسترسی برای نسبت تراکم بهتر، دستیابی به بازنمایی گراف فشردهتر از الگوریتمهای دیگر گزارش شده در متون کار میکند. الگوریتم دوم بر روی بلوکهایی از همان اندازه در تعداد لیستهای ورودی کار میکند. مکانیسم کلیدی آن ادغام بلوک به یک لیست مرتب واحد است. این روش به مصالحه فضا-زمان بسیار جذابتر دست مییابد. در نهایت، یک الگوریتم برای حمایت پرس و جوی همسایه دو طرفه ارائه میشود که نسبت فشرده سازی بهتری از الگوریتمهای شناخته شده از متون را ارائه میدهد.
1-مقدمه
توسعه ساختارهای داده فشرده (به عنوان مثال شاخصهای متن، دیکشنریها و درختان) یکی از حوزههای تحقیقاتی فعال الگوریتمی در سالهای گذشته بوده است. ساختار داده فشرده رابط را با همتای کلاسیک آن (غیر فشرده) به اشتراک میگذارد، اما در فضای بسیار کوچکتر از طریق فشردهسازی دادهها نشان داده شده است. پرسوجوها برای ساختارهای داده فشرده معمولاً (در عمل، اگر چه همیشه در شرایط پیچیدگی نیست) از استفاده از ساختارهای غیر فشرده کندتر است، از این رو انگیزه اصلی در استفاده از آنها اجازه دادن به مقابله با مجموعه دادههای بزرگ در حافظه اصلی میباشد...