برش بیشینه
از ویکیپدیا، دانشنامهٔ آزاد
محتویات |
تعریف [ویرایش]
- در نظریه گراف، برش، تقسیم رئوس گراف به دو زیرمجموعه جدا از هم می باشد.
- "مجموعه-برش" در یک برش، مجموعه یال هایی است که دو سر آن ها، هر یک، در یک بخش است.
- یالهای "عبور" از یک برش به یال هایی گویند که در مجموعه-برش آن باشند.
- در گراف بی وزن، اندازه یا وزن یک برش، تعداد یالهای عبور برش است. و در گرافهای وزن دار، جمع وزن یالهای عبور است.
- برش بیشینه در یک گراف، برشی است که اندازه آن از تمام برشهای ممکن در گراف بزرگتر است.
- بیان ساده برش بیشینه: برشی که تعداد یالهای عبور آن بیشینه باشد.
- نمونه پیشرفته این مسئله، برش بیشینه وزن دار نامیده می شود. در این مورد، به هر یال یک عدد نسبت داده میشود (وزن یال) و هدف، یافتن برشی است که وزن یالهای عبوری آن بیشینه باشد. توجه شود که وزن یالها در این مساله باید مثبت باشد، چون مقادیر منفی حاصل جمع را تضعیف می کنند.
پیچیدگی الگوریتم [ویرایش]
- به دلیل اینکه مسئله برش بیشینه انپی کامل است، هیچ الگوریتمی از مرتبه چند جمله ای برای برش بیشینه شناخته نشده است. این در حالی است که این مرتبه برای یافتن برش بیشینه در گرافهای سطحی موجود است.
الگوریتمهای تخمین [ویرایش]
- "الگوریتم تخمین (0.5)" تصادفی و ساده ای بری این مسئله وجود دارد: برای هر راس یک سکه در نظر می گیریم تا تصمیم بگیریم که به کدام قسمت آن را اختصاص دهیم. انتظار داریم، نیمی از یال ها، یالهای برش باشند. این الگوریتم می تواند مجددا به صورت تصادفی با تابع احتمال شرطی بیان شود؛ بدین منظور، "الگوریتم تخمین (0.5)" ساده و معینی وجود دارد:
- گراف
داده شده است. با تقسیم دلخواه از
شروع کنید ودر صورت پیشرفت روند حل مسئله،َ یک راس را از یک طرف به طرف دیگر جابجا کنید. تا وقتی که چنین راسی موجود نباشد، این کار را ادامه دهید. این الگوریتم، برش را با حداقل یک عمل در هر گام، جلو می برد، پس تعداد تکرار این عمل، از مرتبه یا پیچیدگی زمانی
است. وقتی که الگوریتم متوقف می شود، حداقل نیمی از یالهای هر راس
، در برش قرار دارد. (در غیر این صورت، برای پیشرفت در حل مسئله باید راس
را به زیر مجموعه دیگر، منتقل کنیم.) بنابراین، اندازه برش حداقل
است. - بهترین الگوریتم برش بیشینه شناخته شده، "الگوریتم تخمین(0.878)" میباشد که توسط ژئومنز و ویلیامسون ارائه شده است. گفتنی است که این بهترین تخمین ممکن برای برش بیشینه است.
بزرگترین زیر گراف دوبخشی [ویرایش]
- برش، گراف را به گراف دوبخشی تبدیل می کند. در نتیجه مسئله یافتن برش بیشینه، معادل مسئله یافتن زیر گراف دو بخشی با بیشترین یال می باشد.
- فرض کنید
گراف اصلی و
زیر گرافی دوبخشی از
است. پس بخش
از
وجود دارد که هر یال در
یک انتها در
و یک انتها در
داشته باشد. وگرنه، برشی در
وجود دارد که "مجموعه-برش" شامل یالهای
می باشد. بنابراین، برشی در
وجود دارد که
، زیر مجموعه "مجموعه-برش"
می باشد. - به طور خلاصه، اگر زیر گراف دو بخشی با
یال وجود داشته باشد، برشی با حداقل
"یال عبوری" وجود دارد؛ و اگر برشی با
یال عبوری وجود داشته باشد، یک زیر گراف دو بخشی با
یال موجود می باشد. پس مسئله پیدا کردن زیر گراف دو بخشی بیشینه، معادل مسئله پیدا کردن برش بیشینه است.
صفحات مربوط [ویرایش]
منابع [ویرایش]
- Trevisan, Luca; Sorkin, Gregory; Sudan, Madhu; Williamson, David (2000), "Gadgets, Approximation, and Linear Programming", Proceedings of the 37th IEEE Symposium on Foundations of Computer Science: 617–626.
- Motwani, Rajeev; Raghavan, Prabhakar (1995), Randomized Algorithms, Cambridge.
- Arora, Sanjeev; Rao, Satish; Vazirani, Umesh (2009), "Expander flows, geometric embeddings and graph partitioning", J. ACM (ACM) 56 (2): 1–37, ISSN 0004-5411
- سایت http://en.wikipedia.org/wiki/Cut_%28graph_theory%29:
- سایت http://en.wikipedia.org/wiki/Max_cut
داده شده است. با تقسیم دلخواه از
شروع کنید ودر صورت پیشرفت روند حل مسئله،َ یک راس را از یک طرف به طرف دیگر جابجا کنید. تا وقتی که چنین راسی موجود نباشد، این کار را ادامه دهید. این الگوریتم، برش را با حداقل یک عمل در هر گام، جلو می برد، پس تعداد تکرار این عمل، از مرتبه یا
است. وقتی که الگوریتم متوقف می شود، حداقل نیمی از یالهای هر راس
، در برش قرار دارد. (در غیر این صورت، برای پیشرفت در حل مسئله باید راس
است.
زیر گرافی دوبخشی از
است. پس بخش
از
یک انتها در
و یک انتها در
داشته باشد. وگرنه، برشی در
وجود دارد که "مجموعه-برش" شامل یالهای
یال وجود داشته باشد، برشی با حداقل