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

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

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

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

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

بایگانی

(Bin packing)

*تعدادی شئ با اندازه‌های بین ۰ و ۱ داریم می‌خواهیم آنها را در کمترین تعداد سطل با اندازه یک جا بدهیم.

این مسأله را نمی‌توان در زمان چندجمله‌ای بهینه حل کرد، اما می‌خواهیم نسخه‌ی دیگری از آن را بسازیم که در زمان چندجمله‌ای قابل حل است و از آن برای تقریب زدن مسأله اصلی استفاده کنیم.

*تعدادی شئ با اندازه‌های بین e(اپسیلون) و ۱ داریم که حداکثر K اندازه مختلف دارند و می‌خواهیم آنها را در کمترین تعداد سطل با اندازه یک جا بدهیم.

این مسأله را می‌توان در زمان چندجمله‌ای به صورت بهینه حل کرد. راه حل بهینه برای حل کردن آن امتحان کردن همه‌ی حالت‌های ممکن است.

شرطی که روی حداقل اندازه‌ی اشیا گذاشتیم باعث محدود شدن حداکثر تعداد اشیای هر سطل می‌شود:

تعداد حالت‌های مختلف هر سطل را به صورت زیر حساب می‌کنیم:

تعداد حالت‌های R سطل متفاوت را هم به صورت زیر حساب می‌کنیم:

پس تعداد کل حالت‌های مسأله چندجمله‌ای شد. دقت کنید که توان (R) به اپسیلون وابسته است و n اندازه مسأله ورودی است.

*حالا می‌خواهیم مسأله‌ی اصلی را تنها با شرط اضافه وزن اشیا بیشتر مساوی اپسیلون را با کمک این مسأله حل کنیم. برای این کار باید تعداد وزن‌های متمایز اشیا حداکثر K شود.

راه حل ۱ که خوب نیست: وزن اشیا را بر p/K تقسیم می‌کنیم که p ماکسیمم وزن اشیا است. با این کار وزن اشیا از بازه‌ی ۰ تا p به بازه‌ی ۰ تا K می‌رود. حداکثر تقریبی که این کار در وزن اشیا ایجاد می‌کند p/K است. (چون جزء اعشاری بین ۰ و ۱ است.) این مقدار تقریب مورد نظر ما در مسأله نیست و متاسفانه به p هم بستگی پیدا می‌کند.

راه حل ۲: در روش قبل ما تعداد وزن‌هایی که داریم احتمالا خیلی از K کمتر خواهد بود (چون در صورتی که همه‌ی وزن‌ها اعداد متوالی باشند K می‌شود). به همین دلیل مسأله را به چند زیرمسأله از مسأله‌ی حالت خاص که می‌توانیم آن را حل کنیم تبدیل می‌کنیم. این کار را طوری انجام می‌دهیم که شرط قبلی حفظ شود یعنی در هر دسته حداکثر K اندازه متمایز داشته باشیم.

حداکثر تعداد زیرمسأله‌های ساخته شده Q است (که در زیر مقدار آن آمده است). حالا K را طوری تعیین می‌کنیم ضریب تقریب مجموع وزن اشیا در جواب بهینه و این جواب حداکثر به اندازه اپسیلون فرق داشته باشد.

* حل مسأله اصلی

ما هنوز از یکی از اطلاعاتی که از مسأله داریم استفاده نکرده‌ایم. اگر اشیا وزن بیشتر مساوی ۰.۵ داشته باشند، می‌توانیم جواب بهینه آن را در زمان خطی به دست بیاوریم. چون در هر سطل حداکثر یک شئ قرار می‌گیرد. اگر اشیا وزن کمتر از ۰.۵ داشته باشند، آنها را حریصانه در جعبه‌ها می‌چینیم و به الگوریتم با ضریب تقریب ۱+۲*اپسیلون می‌رسیم.

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

ثابت می‌کنیم اضافه کردن اشیای با وزن کمتر مساوی اپسیلون ضریب تقریب الگوریتم قبل را به هم نمی‌زند.

۰ نظر موافقین ۰ مخالفین ۰ ۰۵ فروردين ۹۳ ، ۱۴:۳۴
سپیده آقاملائی

وزیرانی:

۱- مقدمه: پوشش رأسی، کران پایین برای جواب بهینه، تطابق بیشینه، دوگان LP و قضیه مینیمم-ماکسیمم، تبدیل مسأله‌های دیگر به پوشش رأسی

۲- الگوریتم‌های ترکیبیاتی-پوشش مجموعه‌ای: الگوریتم حریصانه، کران تطبیق‌پذیر و ضریب تقریب H(n)، مثال tight برای ضریب تقریب، تکنیک لایه‌ای: حل مسأله‌های دیگر با پوشش مجموعه‌ای، بهبود ضریب تقریب با پیدا کردن کران بهتر (تطبیق پذیر)، هرس فضای نمونه و پیشامد برای بهبود ضریب تقریب (تطبیق پذیر)

۳- الگوریتم‌های ترکیبیاتی-فروشنده دوره‌گرد و درخت اشتاینر: تبدیل یک مساله به مساله دیگر با حفظ ضریب تقریب، متریک کوتاهترین مسیر و بستار متریک، تقریب ناپذیری، جایگزین کردن دو یال با یک یال در گراف کامل متریک، ترکیب دو راه حل مسأله برای رسیدن به ضریب تقریب بهتر

۴- الگوریتم‌های ترکیبیاتی- چندبرش و k-برش، تبدیل مسأله خواستار هزینه مینیمم و مسأله خواستار اعضای بهینه، تغییر هزینه با حذف و اضافه کردن عضو (تطبیق پذیر)، مثال tight دارای اپسیلون، درخت گومری-هو، خلاصه کردن مسأله با حفظ هزینه

۵- الگوریتم‌های ترکیبیاتی-k-مرکز: هرس پارامتری،‌ توانی از گراف (ماتریس مجاورت)

*۶- پوشش رأسی با فیدبک: جمعی بودن هزینه، مدل کردن با رشته دودویی، تکنیک لایه‌ای برای هزینه جمعی، حالت‌بندی و انتخاب بهینه برای قسمتی از مسأله

*۷- کوتاهترین ابررشته: پیدا کردن کران برای مجموع خطا در محاسبه ضریب تقریب، تبدیل به مسأله‌ی با ضریب تقریب بهتر با تغییر هزینه، تقریب قسمت‌های مختلف مسأله

۸- کوله‌پشتی: شمای تقریبی، الگوریتم شبه چندجمله‌ای، رندکردن بیتی، برنامه نویسی پویا برای به دست آوردن جواب بهینه مسأله رند شده، وجود شمای تقریبی چندجمله‌ای کامل و np-سخت بودن قوی، رند کردن برای رسیدن به مقدار لازم برای رسیدن به تقریب داده شده

۹- سطل‌بندی: شمای تقریبی مجانبی، حل مسأله برای جوابهای بهینه کوچک و رند کردن مسأله‌های بزرگ به کوچک، استفاده از الگوریتم‌های تقریبی برای حالت‌های کوچک

*۱۰- کوتاهترین برنامه: کران پائین دوتایی (ترکیبی)، هزینه پارامتری و جستجوی دودویی برای به دست آوردن پارامتر بهینه، ثابت فرض کردن یک پارامتر، شمای تقریبی چندجمله‌ای

*۱۱- فروشنده دوره‌گرد اقلیدسی: به دست آوردن جواب دانه درشت به صورت تصادفی، جعبه محیطی، تقسیم صفحه با شیفت دادن تصادفی مجموعه خطوط، درخت چهارتایی، توری سلسله مراتبی

۱۲- الگوریتم‌های بر مبنای LP-دوگان LP، قضیه دوگان ضعیف، شرایط بهینه بودن جواب، روابط مینیمم و ماکسیمم، integer programming، رند کردن LP، شمای اولیه-ثانویه، روش dual fitting، فاصله صحیح بودن یک تبدیل LP (نسبت صحیح بودن)، پیشگوی جداکننده

۰ نظر موافقین ۰ مخالفین ۰ ۰۳ فروردين ۹۳ ، ۰۹:۲۲
سپیده آقاملائی

مرجع: http://en.wikipedia.org/wiki/Summation

۰ نظر موافقین ۰ مخالفین ۰ ۰۲ فروردين ۹۳ ، ۱۷:۲۳
سپیده آقاملائی

چون مطمئنم نمیشه این سوال رو حل کرد حلش رو میذارم!

۰ نظر موافقین ۰ مخالفین ۰ ۲۷ اسفند ۹۲ ، ۲۰:۴۶
سپیده آقاملائی

http://courses.csail.mit.edu/6.849/fall10/lectures/

۰ نظر موافقین ۰ مخالفین ۰ ۲۷ اسفند ۹۲ ، ۱۸:۳۴
سپیده آقاملائی

http://www.cs.umd.edu/~hajiagha/AGT10/AGT14.html

۰ نظر موافقین ۰ مخالفین ۰ ۲۷ اسفند ۹۲ ، ۱۸:۳۳
سپیده آقاملائی

من همین الآن دیدم این درس هم جزو درس‌های ما هست. فقط امیدوارم ترم بعد هم ارائه شود.

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۲ ، ۱۷:۱۲
سپیده آقاملائی

اگر Y یک الگوریتم (a,b)-تقریبی برای X باشد یعنی

X <= Y <= a.X+b

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۲ ، ۱۶:۲۵
سپیده آقاملائی

http://groups.csail.mit.edu/tds/seminars/s10/Onak-consttime-slides.pdf

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۲ ، ۱۶:۲۳
سپیده آقاملائی

http://groups.csail.mit.edu/tds/seminars/s10/tds-seminars-s10.html

۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۲ ، ۱۶:۱۷
سپیده آقاملائی