افراز گراف

از ویکی‌پدیا، دانشنامهٔ آزاد

در ریاضیات، مسئله افراز گراف بر روی داده‌هایی در قالب گراف (G=(V,E با V راس و E یال تعریف می‌شود به‌طوری‌که افراز گراف به مؤلفه‌های کوچکتری با ویژگی‌های خاص ممکن باشد. برای مثال، یک تقسیم‌بندی k-بخشی مجموعه رئوس را به k مؤلفه کوچکتر تقسیم می‌کند. افراز خوب به افرازی گفته می‌شود که تعداد یال‌های بین مؤلفه‌های مجزا از هم کم باشد. افراز یکریخت به نوعی از مسئله افراز گراف گفته می‌شود که تقسیم گراف به به مؤلفه‌ها به صورتی است که مؤلفه‌ها تقریباً هم اندازه باشند و اتصالات کمی بین مؤلفه‌های متفاوت وجود داشته باشد. مهم‌ترین کاربردهای افراز گراف در محاسبات علمی، تقسیم‌بندی قسمت‌های مختلف طراحی مدارهای VLSI و مدیریت زمانبندی کارها در سیستم‌های چندپردازنده‌ای، می‌باشد.[۱] اخیراً، استفاده از افراز یکریخت، به دلیل کاربردهای آن در خوشه بندی و یافتن گروه‌ها در شبکه‌های اجتماعی، شبکه‌های زیستی و شبکه‌های بیماری شناختی افزایش یافته‌است.[۲]

پیچیدگی مسئله[ویرایش]

معمولاً مسئله افراز گراف در رده مسائل NP-سخت قرار می‌گیرد. راه حل این مسائل به صورت کلی از طریق روش‌های مکاشفه‌ای و تقریبی‌حاصل می‌شود.[۲][۳] اما نشان داده می‌شود که افراز یک ریخت گراف یا افراز متعادل گراف به صورت NP-کامل می‌باشد که در ضریب متناهی از زمان قابل محاسبه است.[۱] حتی برای گراف‌هایی که نظیر درخت‌ها و شبکه‌ها که در رده خاصی قرار می‌گیرند هیچ الگوریتم تقریبی مستدلی وجود ندارد،[۴] مگر آن که P=NP باشد. شبکه‌ها از آنجهت که گراف‌هایی که از شبیه‌سازی روش اجزا محدود به دست می‌آیند را مدل می‌کند، می‌تواند یک مورد جالب در این زمینه باشد. زمانی که علاوه بر آنکه تعداد یال‌های بین مؤلفه‌ها تقریب زده شده‌است بلکه اندازه مؤلفه‌ها نیز تقریبی است، می‌توان نشان داد که هیچ الگوریتم کاملاً چندجمله‌ای مستدلی برای این گراف‌ها وجود ندارد.[۴]

مسئله[ویرایش]

فرض کنید گرافی به صورت (G=(V,E دارید که V، مجموعه‌ای با n راس و E مجموعه یال هاست. برای یک مسئله افراز متعادل با زوج مرتب (k,V)، هدف افراز G به k مؤلفه با حداکثر سایز (v)(n/k) با مینیمم تعداد یال‌های مشترک بین این مؤلفه هاست.[۱] یا این که برای G و K>1 داده شده V را به K بخش …,K1,k2 تقسیم کنید به‌طوری‌که بخش‌ها از هم مجزا باشند و دارای اندازه‌های مساوی بوده به علاوه این که تعداد یال‌هایی که نقاط انتهایی آن‌ها در دو بخش متفاوت قرار دارد کمینه شود. در مورد این مسائل به شکلی مشابه مسئله شیوه افزایش منابع بحث می‌شود. توسعه‌ای از این مسئله در مسئله ابرگراف‌ها مطرح می‌شود که در آن یک یال می‌تواند به بیش از دو راس متصل باشد. یک ابریال قابل برش نیست، اگر همه رأس‌ها در یک افراز باشند، در مقابل دقیقاً یک بار بریده می‌شود، اگر یکی از این رأس‌ها در یک افراز دیگر قرار بگیرد، مستقل از تعداد راس‌هایی که در افراز دیگر قرار گرفته‌اند. از ابراگراف‌ها در خودکارسازی طراحی‌های الکترونیکی استفاده می‌شود.

تحلیل[ویرایش]

برای یک مسئله افراز متعادل (k,1+ԑ)، به دنبال یافتن یک افراز با کمترین هزینه هستیم که گراف G را به k مؤلفه که هر کدام حداکثر دارای ((۱+ԑ)(n/(k) راس باشد هستیم. هزینه این الگوریتم تقریبی را با هزینه مسئله برش (k,1) مقایسه می‌کنیم که در آن هر کدام از k مؤلفه باید دقیقاً تعداد راس برابر با (n/k) داشته باشند به عبارتی این مسئله، مسئله محدود تری نسبت به مسئله قبلی می‌باشد. بنابراین داریم که،


در حال حاضر می داینم که برش (۲٬۱) که کوچکترین مسئله دوبخشی می‌باشداز نوع NP-کامل است.[۵] سپس به بررسی مسئله ۳-افرازی که در آن n=3k است و پیچیدگی زمانی آن چندجمله‌ای است، می‌پردازیم.[۱] حال اگر فرض کنیم یک الگوریتم تخمینی متناهی برای مسئله افراز (k,1) داریم، یا نمونه ۳-بخشی با استفاده از افراز (k,1) بر گراف G قابل حل است یا این مسئله قابل حل نخواهد بود. حال اگر نمونه ۳-بخشی قابل حل باشد، مسئله افراز (k,1) نیز در گراف G بدون جدا کردن هیچ یالی، قابل حل است؛ در غیراینصورت اگر نمونه ۳-بخشی قابل حل نباشد، بهینه‌ترین افراز (k,1) بر روی G حداقل یک یال را برش می‌دهد. یک الگوریتم تخمینی با ضریب تخمین متناهی باید قادر به تشخیص این دو مورد از یکدیگر باشد، به این ترتیب می‌تواند مسئله ۳-بخشی که با فرض P=NP در تناقض است را حل کند؛ بنابراین مشهود است که مسئله افراز (k,1)، الگوریتم تخمین با زمان چندجمله‌ای و تخمین متناهی ندارد، مگر اینکه P=NP.[۱] تئوری جداسازی گراف مسطح تأکید می‌کند که هر گراف مسطح با n راس را می‌توان با حذف (O(√n راس به بخش‌های مساوی، تقسیم کرد. این نوع تقسیم‌بندی، با افرازی که در مورد آن توضیح داده شد، یکی نیستند، زیرا در این نوع تقسیم‌بندی، افرازها از راسها تشکیل شده‌اند نه یال‌ها. به هرحال نتیجه یکسان به دست آمده نشان می‌دهد هر گراف مسطح با درجه متناهی تعدادی برش متعادل با پیچیدگی (O(√n یال دارد.

روش‌های افراز گراف[ویرایش]

از آنجایی که افراز گراف جزو مسائل سخت است، راه حل‌های عملی آن از روش‌های مکاشفه‌ای به دست آمده‌اند. دو گروه گسترده از این روش‌ها وجود دارد: محلی و سراسری. از جمله این روش‌های شناخته شده محلی الگوریتم Kernighan–Lin و الگوریتم‌های Fiduccia-Mattheyses می‌باشند که از ابتدایی‌ترین استراتژی‌های مؤثر برای‌های جستجوی محلی با برش‌های ۲-تایی بودند. عمده‌ترین مشکل این الگوریتم‌ها، مقداردهی اولیه دلخواه برای رئوس افرازها بود که بر کیفیت راه حل نهایی تأثیر می‌گذاشت. روش‌های سراسری بر ویژگی‌های کل گراف بستگی دارد و به مقداردهی دلخواه اولیه افرازها بستگی ندارد. رایج‌ترین نمونه آن، افراز طیفی است که افراز در آن از طیفی از ماتریس‌های مجاورت به دست می‌آید.

روش‌های چندمرحله‌ای[ویرایش]

الگوریتم افراز چندمرحله‌ای در یک یا چند مرحله انجام می‌شود. هر مرحله اندازه گراف را با از بین بردن رأس‌ها و یالها کاهش می‌دهد، گراف‌های کوچکتر را افراز می‌کند، نهایتاً به عقب برمیگردد و بخش‌های گراف اصلی را تصحیح و بازسازی می‌کند.[۶] طیف گسترده‌ای از روش‌های تصحیح و افراز را می‌توان در شمای کلی روش چند مرحله‌ای قرار داد. در بسیاری از موارد، این روش می‌تواند سرعت اجرای بالا و نتایج با کیفیت بالا را هم‌زمان به دست دهد. یکی از مثال‌هایی که در آن از این روش به صورت گسترده استفاده می‌شود، METIS[۷] که یک افرازکننده گرافاست و hMETIS معادل آن برای ابرگراف هاست.[۸]

افراز طیفی و دو بخشی کردن طیف گونه[ویرایش]

گرافی با ماتریس مجاورت A داده شده‌است، که Aij نشاندهنده یال بین i و j، و ماتریس درجه D، که یک ماتریس قطری است، و در آن هر اندیس قطری در سطر i، نشان دهنده درجه راس iام است. لاپلاس ماتریس L، به صورت L=D-A تعریف می‌شود. حال، ضریب برش برای گراف (G=(V,E، به معنای تقسیم کردن رأس‌ها به دو زیرگراف U و W می‌باشد که در آن هزینه برش (U,W)/(|U|/|W|) کمینه باشد. در این سناریو، دومین مقدار ویژه کوچک(L(λ، یک حد پایین برای هزینه(c) بهینه ضریب برش است که در آن c>λ/n. بردار ویژه (V) منتاظر با مقدار ویژه λ، گراف را تنها به دو بخش بر اساس اندیس منتاظر در آرایه یالها، دوبخشی می‌کند. تقسیم به تعداد بخش‌های بزرگتر با استفاده از تکرار روش دوبخشی به دست می‌آید، اما همیشه نتایج مورد انتظار و قابل قبولی را نمی‌دهد. مثال‌های توضیح داده شده در شکل ۱و ۲ نحوه انجام روش دوبخشی طیف گونه را توضیح می‌دهد.

شکل ۱. گراف)G(5,4 از منظر دو بخشی شدن طیفی مورد تحلیل قرار گرفته‌است. ترکیب خطی دو کمترین بردار ویژه به این انجامید که بردار ترانهاده [۱ ۱ ۱ ۱] دارای مقدار ویژه ۰ شود که بردار Fiedler که با قرمز نشان داده شده‌است گراف را به دو قسمت تقسیم کرده‌است.
شکل ۲. گراف (G=(۵٬۵ نشان داده شده‌است که بردار Fiedler که به صورت قرمز نشان داده شده‌است گراف را به دو قسمت تقسیم می‌کند مجموعه یال {۱٬۲,۳} که در فضای برداری مثبت و مجموعه یال {۴٬۵} در فضای برداری منفی

زمانی که تعداد گروه‌هایی که باید افراز شوند یا اندازه افرازها، معلوم نیست، افراز با کمترین برش، ناموفق است. برای مثال بهینه‌سازی اندازه برش برای گروه‌های آزاد، همه رأس‌ها را در یک گروه قرار می‌دهد. به علاوه، امکان دارد اندازه برش برای کمینه‌سازی اشتباه باشد، از آن جهت که برای داشتن یک افراز و تقسیم‌بندی مطلوب، تنها شرط کمترین یال میان گروه‌ها کفایت نمی‌کند. این توضیحات، انگیزه را برای استفاده از پیمانگی (Q)[۹] به منزله یک استاندارد برای بهینه‌سازی افراز متعادل، را ایجاد می‌کند. مثال‌های توضیح داده شده در شکل ۳، ۲ نمونه که یکی از آن‌ها از ضریب برش و دیگری از پیمانگی به عنوان استاندارد استفاده می‌کنند، را توضیح داده است. به هر حال، اخیراً اثبات شده‌است که روش پیمانگی مشکل محدودیت تفکیک‌پذیری دارد که موجب می‌شود، هنگام استفاده آن در گروه‌های کوچک، نتایج غیرقابل اعتمادی تولید کند. در این زمینه، روش surprise،[۱۰] به عنوان روشی جدید برای ارزیابی کیفیت روش‌های محاسبه‌کننده افراز، پیشنهاد شده‌است.

شکل ۳. گراف وزن دار G الف) می‌تواند طوری افزار شود تا Q را بیشینه شود. ب) تا نرخ برش کمینه شود. در این تصویر می‌بینیم که الف افراز متعادل بهتری است که اهمیت پیمانگی در مسائل افراز گراف را روشن می‌کند

سایر روش‌های افراز گراف[ویرایش]

مدل‌های چرخشی به منظور خوشه بندی داده‌های چند متغیره، که در آن‌ها همگونی‌ها موجب ایجاد قدرت چسبندگی بین آن‌ها می‌شود، مورد استفاده قرار می‌گیرد.[۱۱] ویژگی‌های پیکربندی روش‌های چرخشی، به صورت مستقیم می‌تواند به گروه‌هایی که قبلاً توضیح دادیم، تعبیر شود. به این ترتیب، گراف‌ها افراز می‌شوند تا دورهامیلتونی (H) را در گراف افراز شده به حداقل برسانند. دور هامیلتونی با نسبت دادن جایزه و مجازات به افرازهای پیش رو به دست می‌آید:

- به یالهای بین رأس‌های یک گروه جایزه می‌دهد.

- نبود یال بین رأس‌ها را در یک گروه را مجازت می‌کند.

- یالهای بین رأس‌های گروه‌های متفاوت را مجازات می‌کند.

- نبود یال بین رأس‌ها در گروه‌های متفاوت را جایزه می‌دهد.

به علاوه، خوشه بندی طیفی مبتنی بر PCA هسته‌ای، از یک چارچوب مبتنی بر کمترین مربعات بردار، بهره می‌برد و به این ترتیب امکان تصویر مدخل‌های داده را به هسته PCA، که ویژگی‌هایی همچون واریانس بالا را داراست، فراهم می‌کند؛ بنابراین یک جداسازی در سطح بالا را بین گروه‌های تصویر شده پیاده می‌کند.[۱۲] برخی دیگر از روش‌ها، افراز گراف‌ها را به مانند یک بهینه‌سازی چندضابطه‌ای بیان می‌کنند. این دسته از مسائل بهینه‌سازی را می‌توان با استفاده از روش‌های محلی که در چارچوب علمی بیان می‌شوند، حل کرد. در این مسائل هر راس می‌تواند افراز خود را خود انتخاب کند.[۱۳]

ابرازهای نرم‌افزاری[ویرایش]

بسته‌های نرم‌افزاری متنوعی وجود دارند که الگوریتم‌های شرح داده شده را پیاده‌سازی کرده اندیکی از اولین بسته‌های نرم‌افزاری در دسترس قرار داده شده Chaco نامیده می‌شود.[۱۴] می‌باشد که متعلق به Hendrickson و Leland می‌باشد. همانند بیشتر بسته‌های نرم‌افزاری در دسترس عموم، Chaco تکنیک‌های چند متغیره که در بالا ذکر شده‌است الگوریتم‌های جستجوی محلی پایه را پیاده‌سازی کرده‌است. علاوه بر آن این بسته‌ها تکنیک‌های افراز طیفی را نیز پیاده‌سازی کرده‌اند.Metris،[۷] نیز از خانواده ابزارهای افراز گراف می‌باشد که توسط Karypis و Kumar توسعه داده شده‌است. kMetis بر روی سرعت افزار متمرکز شده‌است و hMetis[۸] که یک افراز گر ابرگراف می‌باشد بر روی تساوی افرازها تمرکز دارد. PaToH[۱۵] نیز در افراز ابر گراف‌ها به صورت گسترده کاربرد دارد که افرازهایی با کیفیت بالا تولید می‌کند. ParMetis[۷] یک پیاده‌سازی موازی از الگوریتم‌های افراز گراف مربوط به Metis است. Scotch[۱۶] نیز یک چارچوب برای افراز گراف است که توسط Pellegrini توسعه داده شده‌است. این بسته از روش‌های دو بخشی‌سازی بازگشتی چند متغیره از هر دو نوع تکنیک‌های موازی و پشت سر هم حمایت می‌کند. Jostle[۱۷] نیز یک افراز گر موازی یا پشت سر هم برای گراف فراهم می‌کند که توسط Chris Walshaw توسعه داده شده‌است. نسخه تجاری این افراز گر با نام NetWorks شناخته شده‌است. اگر مدلی از شبکه ارتباطی به در دسترس باشد آنگاه Jostle و Scotch می‌توانند از این مدل را به عنوان ورودی فرایند افراز گراف مورد استفاده قرار دهند. Party[۱۸] از نیز مجموعه مفیدی از الگوریتم‌ها به همراه الگوریتم‌های Bubble/shape-optimized را پیاده‌سازی می‌کند. بسته نرم‌افزاری DibaP نیز[۱۹] and its MPI-parallel variant PDibaP[۲۰] توسط Meyerhenke چارچوب Bubble را به کمک انتشار پیاده‌سازی کرده‌است.DibaP همچنین از تکنیک‌های مبتنی بر AMGen حل مسائل سیستم‌های خطی استفاده می‌کند. Sanders و Schulz نیز یک بسته نرم‌افزاری افراز گراف به نام KaHIP[۲۱] را پیاده‌سازی کرده‌اند.

لیست چارچوب‌های رایگان متن باز:

نام گواهی توضیحات مختصر
Chaco GPL بسته نرم‌افزاری که تکنیک‌های طیفی و چند متغیره را پیاده‌سازی کرده‌است.
DiBaP * افراز گراف بر پایه تکنیک‌های چند متغیرهُ جبر چند شبکه‌ای و انتشار مبتنی بر گراف
Jostle * تکنیک‌های افراز چند سطحی و انتشار مبتنی بر گراف
KaHIP GPL تکنیک‌های موازی و مرحله به مرجحله فرا-اکتشافی که محدودیت‌های متعادل بودن را تضمین می‌کند.
kMetis Apache ۲٫۰ بسته افراز گراف مبتنی بر تکنیک‌های چند متغیره و جستجوهای k تایی محلی
Mondriaan LGPL افرازکننده ماتریس برای افراز ماتریس‌های تنک مستطیلی
PaToH BSD افراز چند مرحله‌ای ابر گراف
Parkway * افراز چند مرحله‌ای ابرگراف به صورت موازی
Scotch CeCILL-C پیده‌سازی دو بخشی‌سازی بازگشتی چند متغیره به همراه روش‌های انتشاری، روش‌های موازی و روش‌های پشت سر هم
Zoltan BSD افراز ابرگراف

منابع[ویرایش]

  1. ۱٫۰ ۱٫۱ ۱٫۲ ۱٫۳ ۱٫۴ Andreev, Konstantin and Räcke, Harald, (2004). "Balanced Graph Partitioning". Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures. Barcelona, Spain: 120–124. doi:10.1145/1007912.1007931. ISBN 1-58113-840-7.{{cite journal}}: نگهداری CS1: نقطه‌گذاری اضافه (link) نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  2. ۲٫۰ ۲٫۱ Sachin B. Patkar and H. Narayanan (2003). "An Efficient Practical Heuristic For Good Ratio-Cut Partitioning". VLSI Design, International Conference on: 64. doi:10.1109/ICVD.2003.1183116.
  3. Feldmann, Andreas Emil and Foschini, Luca (2012). "Balanced Partitions of Trees and Applications". Proceedings of the 29th International Symposium on Theoretical Aspects of Computer Science. Paris, France: 100–111.{{cite journal}}: نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  4. ۴٫۰ ۴٫۱ Feldmann, Andreas Emil (2012). "Fast Balanced Partitioning is Hard, Even on Grids and Trees". Proceedings of the 37th International Symposium on Mathematical Foundations of Computer Science. Bratislava, Slovakia.
  5. Garey, Michael R. and Johnson, David S. (1979). Computers and intractability: A guide to the theory of NP-completeness. W. H. Freeman & Co. ISBN 0-7167-1044-7.{{cite book}}: نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  6. Hendrickson, B. and Leland, R. (1995). A multilevel algorithm for partitioning graphs. Proceedings of the 1995 ACM/IEEE conference on Supercomputing. ACM. p. 28.{{cite conference}}: نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  7. ۷٫۰ ۷٫۱ ۷٫۲ Karypis, G. and Kumar, V. (1999). "A fast and high quality multilevel scheme for partitioning irregular graphs". SIAM Journal on Scientific Computing. 20 (1): 359. doi:10.1137/S1064827595287997.{{cite journal}}: نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  8. ۸٫۰ ۸٫۱ Karypis, G. and Aggarwal, R. and Kumar, V. and Shekhar, S. (1997). "Multilevel hypergraph partitioning: application in VLSI domain". Proceedings of the 34th annual Design Automation Conference. pp. 526–529.{{cite conference}}: نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  9. Newman, M. E. J. (2006). "Modularity and community structure in networks". PNAS. 103 (23): 8577–8696. doi:10.1073/pnas.0601602103. PMC 1482622. PMID 16723398.
  10. Rodrigo Aldecoa and Ignacio Marín (2011). "Deciphering network community structure by Surprise". PLoS ONE. 6 (9): e24195. doi:10.1371/journal.pone.0024195. PMID 21909420.
  11. Reichardt, Jörg and Bornholdt, Stefan (2006). "Statistical mechanics of community detection". Phys. Rev. E. 74 (1): 016110. doi:10.1103/PhysRevE.74.016110. {{cite journal}}: Unknown parameter |month= ignored (help)نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  12. Carlos Alzate and Johan A.K. Suykens (2010). "Multiway Spectral Clustering with Out-of-Sample Extensions through Weighted Kernel PCA". IEEE Transactions on Pattern Analysis and Machine Intelligence. IEEE Computer Society. 32 (2): 335–347. doi:10.1109/TPAMI.2008.292. ISSN 0162-8828. PMID 20075462.
  13. Kurve, Griffin, Kesidis (2011) "A graph partitioning game for distributed simulation of networks" Proceedings of the 2011 International Workshop on Modeling, Analysis, and Control of Complex Networks: 9 -16
  14. Bruce Hendrickson. "Chaco: Software for Partitioning Graphs". {{cite journal}}: Cite journal requires |journal= (help)
  15. Ü. Catalyürek and C. Aykanat (2011). PaToH: Partitioning Tool for Hypergraphs.
  16. C. Chevalier and F. Pellegrini (2008). "PT-Scotch: A Tool for Efficient Parallel Graph Ordering". Parallel Computing. 34 (6): 318–331.
  17. C. Walshaw and M. Cross (2000). "Mesh Partitioning: A Multilevel Balancing and Refinement Algorithm". Journal on Scientific Computing. 22 (1): 63–80.
  18. R. Diekmann, R. Preis, F. Schlimbach and C. Walshaw (2000). "Shape-optimized Mesh Partitioning and Load Balancing for Parallel Adaptive FEM". Parallel Computing. 26 (12): 1555–1581.{{cite journal}}: نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  19. H. Meyerhenke and B. Monien and T. Sauerwald (2008). "A New Diffusion-Based Multilevel Algorithm for Computing Graph Partitions". Journal of Parallel Computing and Distributed Computing. 69 (9): 750–761.
  20. H. Meyerhenke (2013). "Shape Optimizing Load Balancing for MPI-Parallel Adaptive Numerical Simulations.". 10th DIMACS Implementation Challenge on Graph Partitioning and Graph Clustering. pp. 67–82.
  21. P. Sanders and C. Schulz (2011). "Engineering Multilevel Graph Partitioning Algorithms". Proceeings of the 19th European Symposium on Algorithms (ESA). Vol. 6942. pp. 469–480.

پیوند به بیرون[ویرایش]

کتاب‌شناسی[ویرایش]