710 likes | 995 Views
بررسی روشهای خوشه بندی پايگاههای داده بزرگ. فهرست مطالب. بررسی الگوريتم BIRTCH [ZRL96] بررسی الگوريتم CURE [GRS98] بررسی الگوريتم DBCLASD [XEK98] بررسی الگوريتم موازی PFDC [M02] خلاصه و نتايج فهرست منابع. الگوريتم BIRCH. تعاريف پايه در مورد خوشه { Xi } .
E N D
بررسی روشهای خوشه بندی پايگاههای داده بزرگ
فهرست مطالب • بررسی الگوريتم BIRTCH[ZRL96] • بررسی الگوريتم CURE[GRS98] • بررسی الگوريتم DBCLASD [XEK98] • بررسی الگوريتم موازی PFDC[M02] • خلاصه و نتايج • فهرست منابع
ويژگي خوشه بندي (CF) • N داده d بعدي در خوشه {Xi} داده شده است، بردار CF خوشه بصورت سه تايي CF=(N,LS,SS) تعريف مي شود که در آن N تعداد نقاط خوشه، LS جمع خطي N داده و SS مجموع مربعات N داده مي باشد. • قضيه افزايشي CF : فرض کنيد که CF1=(N1,LS1,SS1) و CF2=(N2,LS2,SS2) بردارهاي CF دو خوشه مجزا باشند، در اين صورت بردار CF خوشه اي که از طريق ادغام دو خوشه مجزا شکل مي گيرد به صورت زير تعريف مي شود:
اطلاعات ذخيره شده در مورد هر خوشه در BIRCH • يک خوشه مجموعه اي از نقاط مي باشد اما فقط بردار CF براي آن ذخيره مي شود. • CF کافي نمي باشد زيرا اطلاعات کمتري را ذخيره مي کند. • اما دقيق مي باشد زيرا براي محاسبه مقياسهاي لازم براي خوشه بندي در الگوريتم BIRCH کافي مي باشند.
درخت CF • درخت CF، درخت بالانس شده ارتفاعيي است که دو پارامتر دارد: فاکتور شاخه بندي B و ترشولد T. • هرنود غير برگ شامل بيشترين مدخل هاي B به صورت[CFi,childi]مي باشد که در آن i=1,2,…,Bو childiاشاره گري به I امين نود فرزند مي باشد و CFi، CF زيرخوشه ارائه شده از طريق اين فرزند مي باشد. بنابراين نود غيربرگي که خوشه را نمايش مي دهد، از تمام زيرخوشه هايي که از طريق مدخل هايشان ارائه مي شوند، ساخته مي شود. • نود برگ شامل بيشترين مدخل L مي باشد که هر يک به فرم [CFi]هستند که i=1,2,…,L. در مجموع هر نود برگ دو اشاره گر دارد: prev و next که براي زنجير کردن تمام نودهاي برگ (براي بررسي کاراتر آنها) استفاده مي شود. نود برگ همچنين، خوشهاي ساخته شده از تمام زيرخوشه هاي ارائه شده از طريق مدخل هايشان را نمايش مي دهد. تمام مدخلها در نود برگ بايد ترشولد را در جهت ارزش T (شعاع يا قطر بايد کمتر از T باشد) ارضا کنند. • سايز درخت تابعي از T مي باشد. T بزرگ تر باعث مي شود که درخت کوچک تري داشته باشيم.
درج مدخل Entدر درخت CF • شناسايي برگ مناسب • اصلاح برگ • اصلاح مسير برگ • اصلاح ادغام
خواص فازهای دوم به بعد در الگوريتم BIRCH • سريع: زيرا I/O لازم نمي باشد و خوشه بندي داده ها به مساله خوشه بندي کوچکتر زيرخوشه ها در مداخل برگ کاهش مي يابد. • دقيق: زيرا تعداد زيادي از نقاط دور افتاده حذف مي شوند. • نسبت به ترتيب ورود داده ها داراي حساسيت کمتري مي باشد. زيرا مدخل هاي برگ درخت اوليه ترتيبي مناسب تر براي داده ها شکل مي دهند.
مديريت نقاط دور افتاده • هنگاميکه درخت CF را از طريق درج مجدد مدخل هاي برگ قديمي مجددا مي سازيم، سايز درخت جديد به دو روش کاهش مي يابد: • اول اينکه ارزش ترشولد را افزايش مي دهيم، در نتيجه به هر مدخل برگ اجازه مي دهيم که نقاط بيشتري را جذب کند. • دوم اينکه مدخل برگ قديمي در صورتيکه نقاط داده بسيار کمتري از ميانگين داشته باشد، به عنوان نقطه دورافتاده شناخته مي شود و در ديسک نوشته مي شوند. • نقاط دور افتادهدر ديسک متناوبا بررسي مي شوند تا در صورت امکان در درخت جاري، بدون افزايش سايز درخت، جذب شوند. • . وقتيکه تمام داده ها بررسي مي شوند، نقاط دور افتاده در ديسک بايد بررسي شوند که آيا واقعا نقطه دور افتاده مي باشند يا خير. اگر اين نقاط در اين مرحله جذب نشوند، به احتمال زياد نقطه دور افتاده واقعي بوده و مي توانند پاک شوند.
ويژگيهای الگوريتمBIRCH • در اين روش هزينه I/O خطی است و متناسب با سايز مجموعه داده می باشد. • در اين روش با تنها يک بار بررسي مجموعه داده ها مي توان به نتيجه خوشه بندي نسبتا خوبي دست يافت. به منظور افزايش کيفيت خوشه ها مي توان اين عمل را چندين بار تکرار نمود. • موازي سازي نيز در آن امکانپذير است. • به نويز نيز توجه کرده است. • الگوريتم BIRCH بصورت محلي انجام مي شود. • BIRCH در مورد ناحيه حجيم نقاط، به عنوان يک خوشه واحد رفتار مي کند. نقاط نواحي نامتراکم نيز به عنوان نقاط دورافتاده محسوب شده و به دلخواه حذف مي شوند. • الگوريتم BIRCH مي تواند با هر ميزان حافظه اي کار کند.
نکات مورد توجه در CURE • اين الگوريتم به نقاط دور افتاده و شناسايي خوشه هاي غيرکروي با پهناي زياد توجه کرده است. • در اين الگوريتم با ارئه هر خوشه از طريق چندين نقطه مي توان اشکال غيرکروي (در واقع اشکال دلخواه) را پوشش داد و با کاهش اين نقاط مي توان نقاط دور افتاده را کم کرد. • حافظه مصرفي الگوريتم خطي است و پيچيدگي زماني آن براي داده هاي با ابعاد کم O(n2)است • CURE به منظور مديريت پايگاههاي داده بزرگ از نمونه برداري تصادفي به همراه قسمت بندي استفاده مي کند. • هر نمونه تصادفي از مجموعه داده، ابتدا قسمت بندي مي شود. سپس هر قسمت به طور ناقص خوشه بندي مي شود. در فاز دوم، خوشه هاي ناقص براي دستيابي به خوشه هاي مطلوب مجددا خوشه بندي مي شوند.
الگوريتم CURE • الگوريتم خوشه بندي در ابتدا هر نقطه ورودي را در يک خوشه مجزا قرار مي دهد و در هر قدم نزديکترين زوج خوشه ها را با هم ادغام مي کند. • براي محاسبه فاصله بين يک زوج خوشه، براي هر خوشه، c نقطه ارائه ذخيره مي شود.براي تعيين اين نقاط در ابتدا c نقطه پراکنده در خوشه انتخاب مي شوند و سپس در جهت ميانگين خوشه با ضريب aکاهش مي يابند. فاصله بين دو خوشه، فاصله بين نزديکترين زوج نقاط ارائه آن دو مي باشد. • هدف اين است که c نقطه ارائه، شکل فيزيکي و هندسي خوشه را ايجاد کنند. علاوه بر آن کاهش نقاط پراکنده در جهت مياگين، تاثير نقاط دور افتاده را کم مي کند زيرا نقاط دور افتاده غالبا بسيار دور از مرکز خوشه بوده و کاستن باعث مي شود که نقاط دورافتاده فاصله زيادي با مرکز داشته باشند در حاليکه بقيه نقاط ايطور نيستند. • پارامتر aهمچنين مي تواند براي کنترل شکل خوشه نيز استفاده شود. ارزش کوچکترa ، نقاط پراکنده را خيلي کمتر مي کند و بنابراين براي خوشه هاي باريک مناسب تر است. به عبارت ديگر وقتي aبزرگر شود، نقاط پراکنده به ميانگين نزديکتر شده و خوشه ها فشرده تر مي شوند.
بررسی جزئيات الگوريتم CURE (رويه ادغام خوشه ها)
بررسی جزئيات الگوريتم CURE • پارامترهاي ورودي الگوريتم، مجموعه داده ورودي S، شامل n نقطه d بعدي مي باشد و تعداد خوشه هاي مطلوب، k است. • در مورد تمام خوشه ها، تمام نقاطشان ذخيره مي شود. همچنين براي هر خوشه u، u.mean ميانگين نقاط خوشه را نگه مي دارد و u.rep مجموعه c (نقاط ارائه خوشه) را نگه مي دارد. dist(p,q)، فاصله بين نقاطp وq را بيان مي کند. • در مورد هر خوشه u، u.closest نزديکترين ها به خوشه را نگه مي دارد. • اين الگوريتم از دو ساختار دادهheap وk-d tree استفاده مي کند. براي هر خوشه يک مدخل درheap داريم. مدخل هاي خوشه هاي مختلف u درheap با ترتيب افزايشي نسبت به فاصله u و u.closest مرتب شده است. ساختار داده ديگر k-d tree مي باشد که نقاط ارائه هر خوشه را نگهداري مي کند. اين درخت به منظور ذخيره و بازيابي کرا نقاط داده چندبعدي استفاده مي شود. • در ابتدا نقاط ارائه هر خوشه u (u.rep) شامل تنها نقطه خوشه مي باشد. بنابراين در قدم اول، تمام نقاط داده ورودي در درخت k-d درج مي شوند.در قدم دوم، رويه build_heap با هر نقطه ورودي به عنوان خوشه اي مجزا رفتار مي کند و براي هر خوشه u، u.closest را محاسبه مي کند و سپس هر خوشه را در heap درج مي کند.
بررسی جزئيات الگوريتم CURE • هنگاميکه heap (Q) و درخت (T) مقدار دهي اوليه شوند، در هر تکرار حلقهwhile ، نزديکترين زوج خوشه ها ادغام مي شوند تا زمانيکه تنها k خوشه باقي بماند. مرحله ادغام در حلقه for (مراحل 4-17) ابتدا به طور تکراري c نقطه پراکنده را انتخاب مي کند. در اولين تکرار، دورترين نقاط از ميانگين انتخاب مي شوند. در مراحل بعدي نقاطي که دورترين فاصله را از نقطه انتخاب شده قبلي داشته باشند انتخاب مي شوند. سپس نقاط در مرحله 19 با ضريب aکاهش مي يابند. • با توجه به اينکه نقاط ارائه w تغيير مي کند، بايد فاصله آن را از خوشه هاي ديگر حساب کرده و w.closest را براي آن تنظيم کنيم. (قدمهاي 11 و 12 رويه خوشه) همينطور در مورد خوشه هاي ديگر(x) نيز در Q، x.closest ممکن است تغيير کند و لازم شود x در Q جابجا شود. (بسته به فاصله بين x و x.closest).
پيچيدگي زماني و فضا • پيچيدگي زماني الگوريتم، در بدتريت حالت است. • هنگاميکه ابعاد داده کوچک باشد، پيچيدگي زماني به O(n2) کاهش مي يابد. • نظر به اينکه heap و k-d tree نياز به فضاي خطي دارند، پيچيدگي فضا O(n) است.
بهبود الگوريتم به منظور کار بر روي مجموعه داده بزرگ • استفاده از مکانيزمي به منظور کاهش سايز ورودي : استفاده از نمونه برداري تصادفي • غالبا نمونه هاي تصادفي در حافظه اصلي جاي مي گيرند و بسيار کوچکتر از کل مجموعه داده هستند. • با توجه به اينکه نمونه برداري تصادفي، نقاط دورافتاده را حذف مي کند، کيفيت خوشه بندي را بهبود مي دهد. • بخش بندي به منظور افزايش سرعت: فضاي نمونه ها به p بخش تقسيم مي شود که هر يک داراي سايز n/p مي باشند. سپس هر بخش بطور مجزا، تا زمانيکه تعداد خوشه هاي نهايي در آن به n/(pq) کاهش يابد (q>1)، خوشه بندي مي شود. ادغام خوشه ها در بخش ها، هنگاميکه فاصله بين نزديکترين زوج خوشه بيش از ترشولد خاصي شود متوقف مي شود. سپس فاز دوم خوشه بندي روي n/q خوشه انجام مي شود. • نهايتا بايد نقاط باقيمانده به بخشهاي تعيين شده نسبت داده شوند. به اين منظور، هر داده به خوشه اي که شامل نزديکترين نقاط ارائه به آن است، نسبت داده مي شود. • مديريت نقاط دورافتاده: . ابتدا در نمونه برداري تصادفي، بخش اصلي نقاط دور افتاده حذف مي شوند. سپس خوشه هاييکه خيلي آرام رشد مي کنند شناسايي کرده و حذف مي کنيم. در فاز دوم وقتيکه تعداد خوشه هاي باقيمانده خيلي کم مي شود، خوشه ها بررسي مي شوند و خوشه هاييکه تعداد نقاط کمي دارند حذف مي شوند.
مزايای CUREدر مقايسه با BIRCH وMST • BIRCH نمي تواند خوشه هاي غيرکروي يا با واريانس پهن را شناسايي کند. • MST براي خوشه بندي خوشه هاي با اشکال دلخواه بهتر عمل مي کند اما نسبت به نقاط دورافتاده بسيار حساس است. • CURE خوشه هاي با اشکال دلخواه را مي تواند شناسايي کند و نسبت به نقاط دورافتاده از MST داراي حساسيت کمتري است. • روشهاي نمونه برداري و پارتيشنينگ، روشهاي کارايي براي خوشه بندي اوليه مي باشند. اين روشها سايز ورودي را در مجموعه داده هاي بزرگ، بدون پايين آوردن کيفيت کاهش مي دهند. • زمان اجراي CURE در عمل پايين است. • نمونه برداري و الگوريتم حذف نقاط دورافتاده، براي فيلترکردن نقاط دورافتاده از مجموعه داده، بسيار مناسب مي باشند. • فاز نهايي CURE که برچسب دهي انجام مي دهد، داده هاي مقيم در ديسک را حتي زمانيکه خوشه ها غيرکروي هستند به درستي برچسب مي زند.
الگوريتم خوشه بندي توزيع شده به منظور کاوش در پايگاههاي داده بزرگ فضايي: DBCLASD
نکات مورد توجه درDBCLASD • اين الگوريتم نيز خوشه هاي با اشکال دلخواه را مي تواند شناسايي کند. • به هيچ پارامتر وروديي نياز ندارد. • اين الگوريتم يک الگوريتم افزايشي است. در واقع، تخصيص نقطه به خوشه تنها بر پايه نقاط تاکنون پردازش شده مي باشد و در آن تمام خوشه يا تمام پايگاه داده مورد توجه قرار نمي گيرد. • در اين الگوريتم خوشه اوليه به صورت افزايشي با نقاط همسايه اش افزايش داده مي شود، تا زمانيکه مجموعه فاصله نزديکترين همسايگي در خوشه هنوز شرايط توزيع فاصله مورد انتظار را داشته باشد و شرايط نقض نشود. • روش افزايشي DBCLASD باعث مي شود که اين الگوريتم براي پايگاههاي داده بزرگ مناسب باشد.
تعاريف پايه • نزديکترين همسايه يک نقطه و نزديکترين فاصله همسايه: فرض کنيد q يک نقطه خاص و S مجموعه اي از نقاط باشد، نزديکترين همسايه q در S، NNS(q)، نقطه p در S-{q} است که کمترين فاصله را از q دارد. فاصله q تا نزديکترين همسايه اش در S ، فاصله نزديکترين همسايگي q ناميده مي شود و به صورت NNdistS(q)نمايش داده مي شود. • مجموعه فاصله نزديکترين همسايگي مجموعه نقاط:فرض کنيد که S مجموعه نقاط و ei اجزاء S باشد. مجموعه فاصله نزديکترين همسايگي S، بصورت NNdistSet(S)نمايش داده مي شود و به آن مجموعه فاصله نيز گفته مي شود. و مجموعه اي از تمام ارزشهاي NNdistS(ei)مي باشد.
تعريف خوشه • اگر DB مجموعه اي از نقاط باشد، خوشه C، زيرمجموعه غيرتهيي از DB مي باشد که داراي خصوصيات زير است: • داراي توزيع مورد انتظار با قابليت اطمينان لازم است. • C حداکثر است. هر بسط از C از طريق نقاط همسايگيش، شرط بالا را ندارد. • C پيوسته است. در واقع هر زوج نقطه از خوشه، از طريق مسيري از سلولهاي خوشه اشغالي به يکديگر متصل مي شوند.
محاسبه مساحت خوشه • مساحت مجموعه نقاط S مشخص نمي باشد. بنابراين S را تقريب زده و مساحت آن را محاسب مي کنيم. در ابتدا، شکل تقريب بهتر است تا جايي که ممکن است شبيه به شکل خوشه باشد و علاوه بر آن، تقريب بهتر است که متصل باشد و بصورت يک چندضلعي باشد. • براي تعيين تقريب چند ضلعيها از grid استفاده مي شود. بنابراين انتخاب طول grid مهم است. طول grid براي مجموعه نقاط S برابر با ماکزيمم جزء NNdistSet(S)انتخاب مي شود. • سلول اشغال شده grid سلولي است شامل حداقل يکي از نقاط مجموعه و تقريب S به صورت اجتماع تمام سلولهاي اشغال شده grid تعريف مي شود.
توليد کانديداها • کانديدا، نقطه اي است که هنوز به خوشه جاري تعلق نگرفته است و بايد چک شود که آيا مي تواند عضو آن خوشه باشد يا خير. • مجموعه کانديدهاي خوشه با استفاده از region query ها که از طريق روشهاي دسترسي فضايي (SAM) پشتيباني مي شوند (مانند ) ايجاد مي شوند. region query تمام اشياء پايگاه داده را که ناحيه پرسش مشخصي را به دو بخش تقسيم مي کند برمي گرداند (مثل يک دايره).
تست کانديداها • در روش افزايشي DBCLASD ترتيب تست کانديدها مهم است. • کانديدهاييکه در تست اوليه پذيرفته نمي شوند، کانديدهاي ناموفق ناميده مي شوند. • به منظور کم کردن وابستگي به ترتيب تست: • کانديدهاي ناموفق رد نمي شوند، بلکه دوباره تست مي شوند. • نقاطيکه قبلا به خوشه اي تخصيص داده شده اند، ممکن است بعدا به خوشه ديگري تخصيص داده شوند. • DBCLASD هنگاميکه کانديد توليد شده قبلا به خوشه ديگري نسبت داده شده باشد، دو خوشه را در هم ادغام مي کند. • برای تست کانديدها: ابتدا خوشه جاري از طريق کانديدا افزايش مي يابد. سپس با استفاده از بررسي مي شود که آيا مجموعه فاصله نزديکترين همسايگي خوشه افزوده شده شرط توزيع فاصله مورد انتظار را دارد يا خير.
نکات الگوريتم • 1: تنها بر روي خوشه هاييکه سايزشان حداقل 30 است پاسخگو است. بنابراين خوشه جاري با استفاده از پرسش k نزديکترين همسايه، بدون به سايز 30 گسترش داده مي شود. • 2: ليست پاسخها به ترتيب صعودي فاصله با نقطه p1 ذخيره مي شوند. • 3: هر جزء از ليست پسخ ها که هنوز پردازش نشده است در ليست کانديدها درج مي شود.
رويه های فراخوانی شده در الگوريتم DBCLASD
مزايای DBCLASD • آزمايشات نشان مي دهد که DBCLASD برخلاف الگوريتم هاي پاتيشنينگ رايج (CLARANS)، خوشه هاي با چگالي، شکل و سايز دلخواه را مي تواند شناسايي کند. • و نيازي به پارامترهاي ورودي ندارد. • آزمايشات نشان مي دهد که DBCLASD هنگاميکه داده ها در پايگاههاي داده واقعي دقيقا داراي توزيع يکنواخت نباشند نيز کار مي کند. • در مجموع DBCLASD در فضاهاي با بعد بالا مفيد مي باشد زيرا در چنين فضاهايي ايجاد ارزشهاي مناسب براي پارامترهاي ورودي، بطور دستي ناممکن مي باشد.
مشکلات DBCLASD • فرض بر اين است که نقاط داخل خوشه داراي توزيع يکنواخت مي باشند. • توزيع ها، ناشناخته فرض شده اند و به همين دليل از الگوريتم هاييکه از روشهاي تقريب تصادفي استفاده مي کنند، براي تخمين اين توزيعات استفاده شده است.
خصوصيات خوشه بندی پايگاههاي داده فضايي • کيفيت خوب براي پايگاههاي داده بزرگ، زيرا پايگاههاي داده فضايي غالبا ميليونها شيئفضايي را ذخيره مي کنند. • حداقل وابستگي به پارامترهاي ورودي زيرا تعيين اين پارامترها اغلب مشکل است و از قبل شناخته شده نمي باشند. • کشف خوشه هايي با شکل دلخواه، زيرا اشيائ فضايي مي توانند اشکال بسيار متفاوتي داشته باشند
خوشه بندي بر مبناي چگالي • فرض کنيد که D ، پايگاه داده مورد نظر با نقاطش باشد Dist ، تابع فاصله( در اينجا فاصله اقليدسي ) ، Rad: شعاع همسايگي و MinPts : حداقل ترشولد تعداد نقاط همسايگي باشد. • تعريف 1 : نقطهمستقيما از نقطه، density_reachable است اگر • اين مساله بصورت نشان داده مي شود. همسايگي Rad نقطه q ناميده مي شود.
خوشه بندي بر مبناي چگالي • تعريف 2: ارتباط دوتايي density_linked (که به صورتنمايش داده مي شود،) با در نظر گرفتن اينکه Rad>0 و MinPts>1 باشد، در D به صورت زير تعريف مي شود: • يک ارتباط هم ارزي است. • تعريف 3: فرض کنيد کهکلاسهاي هم ارز در D باشند که با رابطه هم ارزي تعريف شده اند، در اين صورت:
خوشه بندي بر مبناي چگالي • قضيه 1: پايگاه داده D، ارتباطو پارامترهاي خوشه بندي Rad و MinPts داده شده اند، خصوصيت خوشه بندي هر نقطه بصورت زير مي تواند تعيين شود: • بنابراين بايد شعاع همسايگي هر نقطه p در پايگاه داده را محاسبه کنيم.
الگوريتم FDC • اين الگوريتم، از روش خوشه بندي بر مبناي چگالي استفاده کرده است. • FDC خصوصيت خوشه بندي هر نقطه را مطابق با قضيه1 محاسبه مي کند و بدين منظور بازگشتي نمي باشد و نيز از Treed-k که ساختار داده اي ساده اي دارد استفاده مي کند.
مراحل مختلفالگوريتم FDC • در فاز اول k-d Tree با استفاده از نقاط پايگاه داده ساخته مي شود. • سپس براي هر نقطه، شعاع همسايگي تعيين مي شود ( خوشه بندي برگي ). با توجه به تعداد نقاط برگ، براي اينکه پيچيدگي مربعي نداشته باشيم هر برگ به سلولهاي Grid ِ K بعدي پارتيشن مي شود. طول سلولها در هر بعد Rad مي باشد. بنابراين نقاط همسايگي Rad فقط مي توانند در سلولهاي مجاور باشند. • نقاطي که فاصله شان از حدود برگ در بيشترين Rad باشد ممکن است نقاطي در همسايگي Rad خود داشته باشند که در برگهاي ديگر ذخيره شده باشند. بهمين دليل FDC ، k-d tree را در مرحله سوم از پايين به بالا پيمايش مي کند تا در حين ان کار چنين حدودي را در هم ادغام کند( خوشه بندي متقابل ). • حال نقاط حدي وارد مرحله خوشه بندي بعدي مي شوند. بنابراين پس از خوشه بندي متقابل ريشه درخت، خصوصيات خوشه بندي هر نقطه تعيين مي شود. • در طول اجراي الگوريتم يک نقطه ممکن است شناسه هاي خوشه متفاوتي داشته باشد. اين هم ارزي خوشه اي در مرحله بعد حل مي شود بطوريکه هر خوشه و هر نقطه يک شناسه منحصر به فرد داشته باشد.
طراحي الگوريتم موازي • در پردازش ترتيبي محدوديت حافظه و زمان پاسخ وجود دارد. براي رفع اين دومشکل از الگوريتمهاي مواز ي استفاده مي شود. بمنظور بهبود زمان اجرا، speedup خوب بايد داشته باشته باشيم. • SpeedupP ، خارج قست زمان اجراي الگوريتم ترتيبي به زمان اجراي الگوريتم موازي با P پردازنده مي باشد. • دو نکته اصلي در طراحي اين الگوريتم: • چطور مي توان نقاط را به روشي هوشمند و با ساختار داده فضايي موازي، بين پردازنده ها توزيع کرد. بديهي ترين راه براي اين مساله، استفاده از k-d Tree موازي مي باشد. • چطور خوشه ها را به طور موازي و با حداقل ارتباط ممکن مي توان با هم ادغام کرد.
ساختار داده Treek-d • Treek-d ، درخت جستجوي دودويي چندبعدي، براي ذخيره مجموعه محدود S، شامل نقاط فضاي جستجوي k بعدي مي باشد. • اين درخت فضا را به طور بازگشتي تقسيم مي کند: به اين ترتيب که فضاي اصلي را با hyperplane هاي عمودي به دو بخش جديد تقسيم مي کند که در دو فرزند نود جاري ذخيره مي شوند. در واقع، hyperplane جاري، بعد d را از نقطه کليدي نود فضا تقسيم مي کند. در مورد k-d Tree هاي قابل تطبيق، اين نقطه کليدي، نقطه مياني مي باشد. تمام نقاط کوچکتر از ميانگين، به فرزند چپ نود جاري تعلق مي گيرند و بقيه به فرزند راست. نود مياني در هر کدام از دو فرزند مي تواند ذخيره شود. بهتر است که تعداد نقاط فرزندان با هم برابر باشد. غالبا بعدي که مي شکند در تمام نودهاي سطح اول يکسان است. سپس فرزندان نودي که در بعد d شکسته شد، در بعد (d+1)mod k مي شکنند. در نتيجه اين شکستن ها، زيرفضاهاي منظمي خواهيم داشت که نقاطذخيره شده در آنها به يکديگر نزديک مي باشند. • Treek-d نهايي داراي عمقمي باشد. ( ريشه در سطح صفر قرار دارد.)
Guard k-d Tree • در Guard k-d Tree هر نود علاوه بر ذخيره نقاطش، نقاطي را که در بافري به پهناي Rad2* حول آن قرار دارد را نيز ذخيره مي کند. • هر برگ مي تواند بطور مستقل عمل کند و مرحله خوشه بندي متقابل که در FDC مطرح بود، اينجا لازم نمي باشد. در اين روش به منظور افزايش کارايي، مصرف حافظه بالا مي رود. • هر نود، يک بافر را نيز ذخيره مي کند، بنابراين تمام نقاط لازم، قابل دسترسي مي باشند. • نقاط متعلق به يک زيرفضا از يک نود، نقاط باکت ناميده مي شوند. و نقاط متعلق به بافر احاطه کننده آن نقاط بافر ناميده مي شوند. • نقاطي از زيرفضا که فاصله آنها از حدود زيرفضا، حداکثر 2*Rad باشد، نقاط حدي ناميده مي شوند. اگر فاصله نقطه حدي از حدود زيرفضا حداکثر Rad باشد، نقطه حدي اوليه ناميده مي شود و در غيراين صورت، نقطه حدي ثانويه ناميده مي شود.
طرح هاي موازي Treek-d • طرح بر مبناي مرتب سازي اوليه • طرح بر مبناي مرتب سازي ساده • طرح بر مبناي ميانه آزمايشات نشان مي دهد که اگر N/P بزرگ باشد، (N: سايز ورودي و P: تعداد پرازنده ها) طرح هاي فوق، بهترين کارايي را خواهند داشت.
طرح بر مبناي مرتب سازي اوليه • ساخت Treek-d بر مبناي مرتب سازي انجام مي شود. • به اين منظور، ، آرايه ورودي با مجموعه نقاط S را به منظور دستيابي به k آرايه در ريشه درخت، k-1 بار دو برابر مي کنيم. • به منظور ساخت درخت بطور موازي، آرايه ها را در پردازنده ها توزيع مي کنيم. اين آرايه ها از طريق الگوريتم مرتب سازي موازي، مرتب مي شوند و توزيع آنها، مجددا بالانس مي شود. • هنگام شکستن نود، نيمي از پردازنده ها، فرزند چپ را پردازش خواهند کرد و نيم ديگر، فرزند راست را و به همين دليل، در شروع کار تعداد پردازنده ها بايد تواني از 2 باشد. • به علت تقسيم گروه پردازنده ها، نقاطي که متعلق به نود فرزند هيچ گروهي نباشند، بايد دوباره توزيع شوند. • ارتباط بين پردازنده ها به اين صورت انجام مي شود: براي شکستن بعد جاري لازم نيست بر روي نقاط باکت کاري انجام شود. زيرا آنها قبلا در پردازنده هاي صحيح ذخيره شده اند. اما براي تمام بعدهاي ديگر، هر پردازنده بايد، آرايه نقاط مرتب شده مربوطه را به منظور تعيين اينکه يک نقطه به کدام فرزند تعلق دارد، پيمايش کند. سپس نقاط، به گروه پردازنده هايشان منتقل شده و توزيع مي شوند.
طرح بر مبناي مرتب سازي اوليه • در سطح ، تعداد نقاط برابر با تعداد پردازنده ها مي باشد. بنابراين هر پردازنده در آن سطح، يک نود دارد و زيردرختش را مي سازد. اين نود، ريشه ترتيبي پردازنده ناميده مي شود. • ساخت ترتيبي نيز مانند ساخت موازي انجام مي شود. در هنگام شکستن گره، الگوريتم تعيين مي کند که نقاط باکت نود به کدام جهت ميانه تعلق دارند. در واقع مشخص مي کند که نقطه متعلق به کدام فرزند گره جاري مي باشد. هر نقطه در نود فرزند مناسبش توزيع مي شود. بنابراين نود جاري و فرزندانش در يک پردازنده ذخيره مي شوند. بنابراين، ارتباط با پردازنده هاي ديگر نداريم. • غالبا ساخت درخت، هنگاميکه شرايط ساخت هيچ فرزندي وجود نداشته باشد، متوقف مي شود. • به منظور شکستن يک نود؛ نقاط قديم و جديد بافر بايد تعيين شوند. • براي هر فرزند بايد چک شود که آيا هنوز متعلق به بافرش مي باشد، سپس نقاط بافر در نود فرزند مربوطه شان ذخيره مي شود. در سطوح بالايي ، اين مرحله به طور موازي انجام مي شود اما در مورد ، به صورت ترتيبي انجام مي شود.
طرح بر مبناي مرتب سازي ساده • در اين طرح به طور همزمان P ، k-d Tree ترتيبي ساخته مي شود. براي ساخت درخت، هر پردازنده حداکثر نقطه در حافظه اش فراخواني مي کند. سپس تمام نقاط در يک بعد، با الگوريتم مرتب سازي موازي، مرتب مي شوند. و فراخواني دوباره بالانس مي شود. • در واقع طرح به P باکت ريشه مجزا شامل تعداد نقاط برابر تقسيم مي شوند و هر پردازنده يک باکت ريشه خواهد داشت. • پردازنده هاييکه باکت هاي ريشه شان، داراي حدود باکت ريشه مشترک است، بايد نقاط حدودشان را معاوضه کنند. • براي انجام کار بر مبناي مرتب سازي، هر پردازنده بطور محلي k-1 آرايه مرتب ديگر توليد مي کند(براي هر بعد يکي).