ورود ثبت‌نام راهنما درباره‌ی کاهو
پرسش‌ها برچسب‌ها کاربر‌ها سوال بپرسید!

آمار پرسش:

  • پرسیده شده: 2015-01-26 04:43:56 -0500
  • مشاهده شده: 380 بار
  • بروز شده: 2015-02-02 09:03:07 -0500

پرسش‌های مشابه:

دنباله ی درجات گراف

گراف در دوره ی تابستانی

یال های گراف کامل 6 راسی و مثلث ها

یال های گراف کامل 7راسی و مثلث

گراف دو بخشی تک رنگ در گراف کامل 16 راسی

شبکه $n\times n$ پایدار

پیدا کردن گراف دوبخشی کامل یکرنگ

حداکثر تعداد یال‌های گراف بدون مثلث

آشپزباشی:‌ مرتب کردن پشته با برعکس کردن یک دنباله متوالی از ابتدای آن

تعداد مثلث های پوشاننده

نکاتی در مورد نوشتن پاسخ:

در این قسمت می‌تونی به یک پرسش پاسخ بدی. اگه می‌خوای در مورد پرسش بحث و اظهار نظر کنی از قسمت «ثبت نظر» استفاده کن.
پاسخت رو دقیق و کامل بنویس، از عکس استفاده کن و اگه لازمه به منابع (کتاب یا سایت) ارجاع بده.
اگه پرسش یا پاسخ‌ها مفید هستند حتما بهشون رای بده تا پرسش‌ها و پاسخ‌های خوب مشخص بشن.

استفاده از ویرایشگر:

توی قسمت پیش‌نمایش می‌تونی ببینی متنی که نوشتی چجوری روی سایت دیده میشه.
خیلی مهم: برای اینکه به خط بعد بری باید دوتا Enter بزنی.
می‌تونی از تگ‌های معمولی و ساده‌ی html هم استفاده کنی.
با دکمه‌هایی که بالای ویرایش‌گر قرار دارند کلی کار می‌شه کرد. از عکس‌گذاشتن بگیر تا لیست شماره‌دار. حتما امتحان‌شون کن.

علائم ریاضی:

برای نوشتن علائم ریاضی می‌تونی از Mathjax استفاده کنی. راهنمای Mathjax رو از سایت math.stackexchange بخون.
برای نوشتن عبارت ریاضی وسط جمله، اون عبارت رو بین دوتا $ قرار بده.
برای نوشتن عبارت ریاضی تو یه خط جدید اون رو بین دوتا $$ قرار بده.

مجموعه‌ی‎k-آلوده‌ی ماکسیمم/بیشینه تعداد راس به طوری که حداکثر k یال آلوده(!) شوند.

8

زیرمجموعه‌ی ‎W‎ از رئوس گراف ‎G‎ را یک مجموعه‌ی «‎k-آلوده»‎ می‌گوییم اگر و فقط اگر حداکثر ‎k‎ یال از گراف ‎G‎ را آلوده کند. یک یال زمانی آلوده می‌شود که حداقل یکی از دو رأس انتهاییش در مجموعه‌ی ‎W‎ قرار گیرد. در این مسئله ما می‌خواهیم الگوریتمی برای یافتن مجموعه‌ی‎ k-آلوده‌ی ماکسیمم (که تعداد رئوسش بیشینه باشد) پیدا کنیم.

برای این کار الگوریتم حریصانه‌ای پیشنهاد شده است که به این صورت عمل می‌کند:

ابتدا رأس با درجه‌ی مینیمم را انتخاب می‌کند و آن را در مجموعه‌ی ‎W‎ قرار می‌دهد. سپس در هر مرحله رئوس ‎W‎ و یال‌های متصل به آن‌ها را از گراف ‎G‎ حذف می‌کند و رأس با درجه‌ی مینیمم از گراف باقی‌مانده را به ‎W‎ اضافه می‌کند. این کار را تا زمانی ادامه می‌دهد که مجموعه‌ی ‎‎‎-k ،‎W‎آلوده بماند. بدیهی است اگر با اضافه شدن رأس ‎v‎، مجموعه‌ی ‎W‎ دیگر ‎k-آلوده نبود، الگوریتم ‎W−v‎ را به عنوان جواب اعلام می‌کند.

اکنون اگر مجموعه‌ی ‎‎k-آلوده‌ی ماکسیمم را با ‎OPT‎ و خروجی الگوریتم حریصانه را با ‎U‎ نشان دهیم،
ثابت کنید ‎|U|≥⌊1/2×|OPT|⌋‎. یعنی الگوریتم حریصانه خیلی هم بد عمل نمی‌کند.

منبع : دوره تابستانی اللمپیاد کامپیوتر - دوره 16- آزمون اول تئوری نهایی

ترکیبیات-الگوریتم حریصانه گراف دوره-تابستانی دوره۱۶
2015-01-26 04:43:56 -0500
سیدپارسا 279 ● 2 ● 2 ● 10
پاک‌کردن   ویرایش سوال
نظرات

+1 زیباست

2015-01-26 06:34:16 -0500 چشمک

سلام میدونستید انجمن علمی نخبگان دانشگاه صنعتی شریف مسابقه تخصصی مهارت سنجی برنامه نویسی و داده کاوی گذاشته است آدرس سایتش www.fanavard.com

2015-08-06 07:43:45 -0500 امیر شکری

سلام میگم یک سر به سایت www.fanavard.ir بزنید. مسابقات برنامه نویسی شون شروع شده. گواهی رسمی از طرف دانشگاه شریف می ده. 50 تا سکه هم جایزشه

2016-10-27 07:50:00 -0500 امیر شکری

1 پاسخ

5

الگوریتم صورت سوال رو انقدر پیش میبریم تا رئوس گراف تمام بشه. (یعنی شرط $k$-آلوده نبودن را برمیداریم.) $U_i$ رو تعریف میکنیم $i$ ـمین راسی که طی الگوریتم انتخاب میشه. $A_i$ رو هم تعریف میکنیم تعداد یال هایی که رئوس $U_1, U_2, ..., U_i$ آلوده میکنن.
همچنین یکی از مجموعه های $k$-آلوده ی ماکسیمم رو $O$ مینامیم و $O_i$ رو تعریف میکنیم $i$ـمین راس داخل $O$ وقتی که رئوس $O$ رو بر حسب درجات بصورت نانزولی مرتب کرده باشیم.
اگه $S$ مجموعه ای از رئوس گراف باشه, $f(S)$ رو تعریف میکنیم مجموعه یال هایی که هر دو راس انتهاییش داخل $S$ هستن.

فرض کنیم الان در مرحله ی $i$ ـم هستیم و راس $v$ رو الگوریتم گفته شده به مجموعه $U$ اضافه میکنه. چون درجه ی الان راس $v$ یعنی تعداد یال هایی که یک سرشون راس $v$ هست و سر دیگرشون توی $U$ نیست, به اندازه ی درجه ی الان راس $v$ در گراف به تعداد یال های آلوده اضافه میشه.
از طرف دیگه, چون هر بار راسی که درجه ی الانش مینیمم هست رو انتخاب میکنیم, درجه الان $v$ حداکثر برابر $d_{O_i}$ ـه. (چون تا الان حداکثر $i-1$ تا راس از گراف حذف شدن. پس درجه ی الان راس $v$ که کوچیکتر-مساوی درجه ی اصلی راس $v$ هست, حداکثر از درجه ی $i-1$ راس دیگه بزرگتره که در بدترین حالت که همشون عضو $O$ باشن, درجه ی الان $v$ برابر درجه ی $O_i$ میشه.)

حالا یکسری $fact$ و بعدش نتیجه گیری! :

۰)تعداد یال هایی که $O$ آلوده میکنه برابره با $\sum_{u \in O}^{}{d_u} - f(O)$

۱)از طرفی واضحه که $\sum_{u \in O}^{}{d_u} \ge 2f(O)$

۲)از نکات واضح دیگه اینه که $\sum_{u \in O}^{}{d_u} \ge 2\sum_{1\le i \le \frac{|O|}2 }d_{O_i}$
پس در نتیجه داریم : $A_{\frac{|O|}{2}} \le\sum_{1\le i \le \frac{|O|}2 }d_{O_i} \le\frac{\sum_{u \in O}^{}{d_u} } 2 \le \sum_{u \in O}^{}{d_u} -f(O) \le k$
پس $\frac{|O|}{2}$ تا عضو اول $U$ حداکثر $k$ یال آلوده میکنند پس خروجی این الگوریتم حداقل اون تعداد راس داره! $^_^$

2015-02-02 06:27:21 -0500
محمد مهدی 1955 ● 5 ● 12 ● 40
پاک‌کردن   ویرایش پاسخ
نظرات

+1 ممنون! :)

2015-02-02 12:56:20 -0500 سیدپارسا

پاسخ شما

فقط در صورتی که پاسخی برای این پرسش دارید، آن را اینجا بنویسید و برای بحث کردن از قسمت «ثبت‌ نظر» استفاده کنید. شما می‌توانید قبل از وارد شدن به سایت پاسخ خود را بنویسید. این پاسخ ذخیره می‌شود و زمانی که شما وارد سایت شدید یا ثبت‌نام کردید منتشر می‌شود.

پیش‌نمایش:

کلیه‌ی حقوق این سایت متعلق به کمیته‌ی ملی المپیاد کامپیوتر است.