الگوریتم امروز

وبلاگ تخصصی الگوریتم

الگوریتم امروز

وبلاگ تخصصی الگوریتم

وبلاگ علمی و مخصوص مباحث الگوریتمی است.
نظر خصوصی نگذارید چون جواب نمی‌دهم نظر عمومی بگذارید بدون نام هم که باشد همانجا جواب می‌دهم.

بایگانی

تمرینهای فصل 1 کتاب

يكشنبه, ۱۳ بهمن ۱۳۹۲، ۰۱:۰۸ ب.ظ

1- یک الگوریتم تقریبی با ضریب 1/2 بدهید که سوال زیر را حل کند:

زیرگراف بدون دور: یک گراف جهت دار G داده شده است، بزرگترین مجموعه یال از یالهای آن را بردارید که زیرگراف حاصل بدون دور باشد.

راهنمایی: راسها را دلخواه شماره گذاری کنید و مجموعه ی بزرگتر از بین یالهای از شماره کمتر به بیشتر و یالهای از شماره بیشتر به کمتر را بردارید. از چه شمایی برای کران بالای جواب بهینه استفاده می کنید؟

حل: حتما دور ندارد چون فقط از راسهای باشماره کوچک به بزرگ یا بزرگ به کوچک یال داریم. (هر کدام بیشتر بود).

چیزی که باید ثابت کنیم:

1/2OPT<=ALG

1/2*OPT <= max(deg_>, deg_<)

OPT <= 2*max(deg_>,deg_<)

OPT <= |E|=deg_>+deg_< <= 2*max(deg_>,deg_<)

2- یک الگوریتم با ضریب تقریب 2 بدهید که این مساله را حل کند: یک تطابق ماکسیمال با کمترین تعداد اعضا روی یک گراف بدون جهت به دست بیاورد.

راهنمایی: از این حقیقت استفاده کنید که هر تطابق ماکسیمالی حداقل به اندازه ی نصف تطابق بیشینه یال دارد.

حل:

یک تطابق از گراف می دهیم: یالها را به تطابق اضافه می کنیم تا وقتی که دیگر نتوانیم یال اضافه کنیم. (وقتی که یالی نماند که یک سر آن قبلا در یالهای دیگر انتخاب نشده باشد).

تعداد یالهای این تطابق کمتر از تعداد یالهای تطابق بیشینه و بیشتر از نصف تعداد یالهای تطابق بیشینه است.

تعداد یالهای تطابق ماکسیمال با کمترین اعضا (جواب بهینه) حداقل به اندازه ی نصف تطابق بیشینه است. (طبق راهنمایی)
این دو نامساوی را بنویسیم خود به خود به جواب می رسیم:
1/2*|MM| <= OPT ==> |MM| <= 2*opt
ALG = |M| <= |MM|
==> ALG=|M| <= 2*OPT
3- الگوریتم تقریبی با ضریب 2 زیر را در نظر بگیرید که تعداد اعضای پوشش راسی را حساب می کند. یک درخت پیمایش عمقی (dfs) روی گراف G پیدا کنید و مجموعه ی S از همه ی راسهای غیر برگ این درخت را برگردانید. نشان دهید S یک پوشش راسی از G است و 
|S| <= 2.OPT
راهنمایی: نشان دهید که G یک تطابق با اندازه ی |S| دارد.
حل:
اول راهنمایی را ثابت می کنیم: عمقهای زوج و فرد را به صورت دو بخش گراف دوبخشی در نظر می گیریم. (تطابق). باید ثابت کنیم بین این دو بخش حداقل |S| یال هست. به ازای هر راس میانی حداقل یک راس میانی دیگر یا یک برگ در بخش دیگر وجود دارد.
از راهنمایی نتیجه می گیریم هر کدام از بخشهای گراف حداقل |S| راس دارند که چون بین آنها یال نیست یک پوشش راسی هستند. اگر دو سر این یالها را به عنوان جواب برگردانیم حداکثر دوبرابر جواب بهینه خواهد بود.

موافقین ۰ مخالفین ۱ ۹۲/۱۱/۱۳
سپیده آقاملائی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی