چکیده
در این تحقیق ما به بررسی یکی از روشهای بهینهسازی حل مسئله به نامSimulated Annealing میپردازیم. SA در واقع الهام گرفته شده از فرآیند ذوب و دوباره سرد کردن مواد و به همین دلیل به شبیهسازی حرارتی شهرت یافته است. در این تحقیق ادعا نشده است که SA لزوماً بهترین جواب را ارائه میکند. بلکه SA به دنبال یک جواب خوب که میتواند بهینه هم باشد میگردد. SA در حل بسیاری از مسائل بخصوص مسائل Np-Complete کاربرد دارد. در پایان روش حل مسئلهی فروشندهی دوره گرد[1] در SA بطور مختصر آورده شده است.
- مقدمه
سیستمهای پیچیده اجتماعی تعداد زیادی از مسائل دارای طبیعت ترکیباتی[1] را پیش روی ما قرار میدهند. مسیر کامیونهای حمل و نقل باید تعیین شود، انبارها یا نقاط فروش محصولات باید جایابی شوند، شبکههای ارتباطی باید طراحی شوند، کانتینرها باید بارگیری شوند، رابطهای رادیویی میبایست دارای فرکانس مناسب باشند، مواد اولیه چوب، فلز، شیشه و چرم باید به اندازههای لازم بریده شوند؛ از این دست مسائل بیشمارند. تئوری پیچیدگی به ما میگوید که مسائل ترکیباتی اغلب پلینومیال[2] نیستند. این مسائل در اندازههای کاربردی و عملی خود به قدری بزرگ هستند که نمیتوان جواب بهینه آنها را در مدت زمان قابل پذیرش به دست آورد. با این وجود، این مسائل باید حل شوند و بنابراین چارهای نیست که به جوابهای زیر بهینه[3] بسنده نمود به گونهای که دارای کیفیت قابل پذیرش بوده و در مدت زمان قابل پذیرش به دست آیند.
چندین رویکرد برای طراحی جوابهای با کیفیت قابل پذیرش تحت محدودیت زمانی قابل پذیرش پیشنهاد شده است. الگوریتمهایی هستند که میتوانند یافتن جوابهای خوب در فاصله مشخصی از جواب بهینه را تضمین کنند که به آنها الگوریتمهای تقریبی میگویند. الگوریتمهای دیگری نیز هستند که تضمین میدهند با احتمال بالا جواب نزدیک بهینه تولید کنند که به آنها الگوریتمهای احتمالی گفته میشود. جدای از این دو دسته، میتوان الگوریتمهایی را پذیرفت که هیچ تضمینی در ارائه جواب ندارند اما براساس شواهد و سوابق نتایج آنها، به طور متوسط بهترین تقابل کیفیت و زمان حل برای مسئله مورد بررسی را به همراه داشتهاند. به این الگوریتمها، الگوریتمهای هیوریستیک گفته میشود.
هیوریستیکها عبارتند از معیارها، روشها یا اصولی برای تصمیمگیری بین چند گزینه خطمشی و انتخاب اثربخشترین برای دستیابی به اهداف مورد نظر. هیوریستیکها نتیجه برقراری اعتدال بین دو نیاز هستند: نیاز به ساخت معیارهای ساده و در همان زمان توانایی تمایز درست بین انتخابهای خوب و بد. برای بهبود این الگوریتمها از اواسط دهه هفتاد، موج تازهای از رویکردها آغاز گردید. این رویکردها شامل الگوریتمهایی است که صریحاً یا به صورت ضمنی تقابل بین ایجاد تنوع جستجو (وقتی علائمی وجود دارد که جستجو به سمت مناطق بد فضای جستجو میرود) و تشدید جستجو (با این هدف که بهترین جواب در منطقه مورد بررسی را پیدا کند) را مدیریت میکنند. این الگوریتمها متاهیوریستیک نامیده میشوند. از بین این الگوریتمها میتوان به موارد زیر اشاره کرد:
بازپخت شبیهسازی شده[4]
جستجوی ممنوع[5]
الگوریتمهای ژنتیک[6]
شبکههای عصبی مصنوعی[7]
بهینهسازی مورچهای یا الگوریتمهای مورچه[8]
در این تحقیق ما به بررسی بازپخت شبیهسازی شده (شبیهسازی حرارتی) میپردازیم.
2. SA چیست؟
SA مخفف Simulated Annealing به معنای شبیهسازی گداخت یا شبیهسازی حرارتی میباشد که برای آن از عبارات شبیهسازی بازپخت فلزات، شبیهسازی آب دادن فولاد و الگوریتم تبرید نیز استفاده شده است. برخی مسائل بهینهسازی صنعتی در ابعاد واقعی غالباً پیچیده و بزرگ میباشند. بنابراین روشهای حل سنتی و استاندارد، کارایی لازم را نداشته و عموماً مستلزم صرف زمانهای محاسباتی طولانی هستند. خوشبختانه، با پیشرفت فنآوری کامپیوتر و ارتقا قابلیتهای محاسباتی، امروزه استفاده از روشهای ابتکاری و جستجوگرهای هوشمند کاملاً متداول گردیده است. یکی از این روشها SA است. SA شباهت دارد با حرارت دادن جامدات. این ایده ابتدا توسط شخصی که در صنعت نشر فعالیت داشت به نام متروپلیس[9] در سال 1953 بیان شد.[10] وی تشبیه کرد کاغذ را به مادهای که از سرد کردن مواد بعد از حرارت دادن آنها بدست میآید. اگر یک جامد را حرارت دهیم و دمای آن را به نقطه ذوب برسانیم سپس آن را سرد کنیم جزئیات ساختمانی آن به روش و نحوه سرد کردن آن وابسته میشود. اگر آن جامد را به آرامی سرد کنیم کریستالهای بزرگی خواهیم داشت که میتوانند آن طور که ما میخواهیم فرم بگیرند ولی اگر سریع سرد کنیم آنچه که میخواهیم بدست نمیآید.
الگوریتم متروپلیس شبیهسازی شده بود از فرآیند سرد شدن مواد به وسیله کاهش آهسته دمای سیستم (ماده) تا زمانی که به یک حالت ثابت منجمد تبدیل شود. این روش با ایجاد و ارزیابی جوابهای متوالی به صورت گام به گام به سمت جواب بهینه حرکت میکند. برای حرکت، یک همسایگی جدید به صورت تصادفی ایجاد و ارزیابی میشود. در این روش به بررسی نقاط نزدیک نقطه داده شده در فضای جستجو میپردازیم. در صورتی که نقطه جدید، نقطه بهتری باشد (تابع هزینه را کاهش دهد) به عنوان نقطه جدید در فضای جستجو انتخاب میشود و اگر بدتر باشد (تابع هزینه را افزایش دهد) براساس یک تابع احتمالی باز هم انتخاب میشود. به عبارت سادهتر، برای کمینه سازی تابع هزینه، جستجو همیشه در جهت کمتر شدن مقدار تابع هزینه صورت میگیرد، اما این امکان وجود دارد که گاه حرکت در جهت افزایش تابع هزینه باشد. معمولاً برای پذیرفتن نقطه بعدی از معیاری به نام معیار متروپلیس استفاده می شود:
P:احتمال پذیرش نقطه بعدی
C: یک پارامتر کنترلی
تغییر هزینه
پارامتر کنترل در شبیهسازی آب دادن فولاد، همان نقش دما را در پدیده فیزیکی ایفا میکند. ابتدا ذره (که نمایش دهنده نقطه فعلی در فضای جستجو است) با مقدار انرژی بسیار زیادی (که نشان دهنده مقدار بالای پارامتر کنترلی C است) نشان داده شده است. این انرژی زیاد به ذره اجازه فرار از یک کمینه محلی را میدهد. همچنانکه جستجو ادامه مییابد، انرژی ذره کاهش مییابد (C کم میشود) و در نهایت جستجو به کمینه کلی میل خواهد نمود. البته باید توجه داشت که در دمای پایین امکان فرار الگوریتم از کمینه محلی کاهش مییابد، به همین دلیل هر چه انرژی آغازین بالاتر، امکان رسیدن به کمینه کلی هم بیشتر است .[10]
روش بهینه سازی SA به این ترتیب است که با شروع از یک جواب اولیه تصادفی برای متغیرهای تصمیمگیری، جواب جدید در مجاورت جواب قبلی با استفاده از یک ساختار همسایگی مناسب به طور تصادفی تولید میشود. بنابراین یکی از مسائل مهم در SA روش تولبد همسایگی است. برای پیاده سازی الگوریتم شبیه سازی حرارتی به سه عامل اساسی به شرح زیر نیازمندیم :
1. نقطه شروع:
نقطهای در فضای جستجو است که جستجو را از آنجا آغاز میکنیم. این نقطه معمولاً به صورت تصادفی انتخاب می شود .
2. مولد حرکت:
این مولد وظیفه تولید حالات بعدی را بعهده دارد و با توجه به محاسبه هزینه نقطه فعلی و هزینه نقطه بعدی، وضعیت حرکت الگوریتم را مشخص میکند .
3. برنامه سرد کردن[10]:
پارامترهایی که نحوه سرد کردن الگوریتم را مشخص میکنند. بدین ترتیب که دما چند وقت به چند وقت و به چه میزان کاهش یابد و دماهای شروع و پایان چقدر باشند. در سال 1982 کرک پاتریک[11] ایده متروپلیس را برای حل مسائل به کار برد. در سال 1983 کرک پاتریک و تعدادی از همکارانش از SA برای حل مسئله فروشنده دورهگرد یا TSP استفاده کردند.
TSP یکی از مسائل پایه در روشهای بهینهسازی است و عبارت است از کمینهسازی مسافتی که یک فروشنده دورهگرد ، ضمن مسافرت به تعداد معینی شهر باید طی کند. دیدار از هر شهر باید دقیقاً یک بار صورت پذیرد و او باید به شهری که مبداء حرکتش است باز گردد. نتایج شبیه سازی حاکی از موفقیت روش ارائه شده توسط کرک پاتریک در حل TSP بود. از آن پس، شبیه سازی حرارتی در مسائل بهینهسازی گوناگونی به کار رفت و نتایج بسیار موفقیت آمیزی کسب کرد.[8]
روش بهینهسازی SA یک روش عددی با ساختار تصادفی هوشمند است. قابلیت انعطاف در کوچک گرفتن طول گامهای تصادفی در الگوریتمSA مانع از بروز هرگونه ناپایداری و ناهمگرایی در ترکیب با مدل میشود. علاوه بر آن توانایی SA در خروج از بهینههای محلی و همگرایی به سوی بهینهی سراسری از جنبهی نظری و در کاربردهای عملی به اثبات رسیده است. به طور مثال روش SA در بهینهسازی بهرهبرداری کانالهای آبیاری در کشاورزی از الگوریتم ژنتیک مدل بهینهتری را میدهد. بهینهسازی توابع غیرصریح و مسائل Non-Complete با روشهای کلاسیک بهینهسازی دشوار و گاهی غیرممکن است و بایستی از روشهای عددی بهینهسازی استفاده کرد. برای حل مسئله به روش SA ابتدا مدلسازی ریاضی صورت میگیرد.
SA در خیلی از کتابها (انگلیسی) شرح داده شده است. اگر شما میخواهید به دنبال راحتترین تعریف باشید، به شما توصیه میکنیم کتاب (Dowsland, 1995) این کتاب نه تنها بسیار خوب SA را شرح داده بلکه حاوی مراجع معتبر بسیاری برای علاقهمندان میباشد.[5]
[1] combinatorial
[2] polynomial
[3] Sub optimal
[4] Simulated annealing (sa)
[5] Tabu search (ts)
[6] Genetic algorithms (ga)
[7] Neural networks
[8] Ant colony optimization (aco)
[9] metropolis
[10] Cooling schedule
[11] Kirk patrick