الگوریتم تبرید شبیهسازیشده
الگوریتم تبرید شبیهسازیشده (Simulated Annealing) (SA)، یک الگوریتم بهینهسازی فراابتکاری ساده و اثربخش در حل مسائل بهینهسازی در فضاهای جستجوی بزرگ است. این الگوریتم بیشتر زمانی استفاده میشود که فضای جستجو گسسته باشد (مثلاً همه گشتهایی که از یک مجموعه از شهرها میگذرند). برای مسائلی که پیدا کردن یک پاسخ تقریبی برای بهینه کلی مهمتر از پیدا کردن یک پاسخ دقیق برای بهینه محلی در زمان محدود و مشخصی است، تبرید شبیهسازی شده ممکن است نسبت به باقی روشها مانند گرادیان کاهشی دارای ارجحییت باشد.
تکنیک تبرید تدریجی، به وسیلهٔ متالورژیستها برای رسیدن به حالتی که در آن ماده جامد، به خوبی مرتب و انرژی آن کمینه شده باشد، استفاده میشود. هدف از این کار این است که سایز کریستالها در حالت جامد ماده در حال تبرید به بزرگترین حالت برسد. این تکنیک شامل قرار دادن ماده در دمای بالا و سپس کم کردن تدریجی این دماست. شبیه سازی تبرید رویکردی است که مسئله کمینه سازی یک تابع با تعداد بسیار زیادی متغیر است را به یک مسئله مکانیک آماری کاهش میدهد. بنیان گذاران این الگوریتم برای حل مسائل سخت بهینهسازی، روشی مبتنی بر تکنیک تبرید تدریجی و آرام پیشنهاد نمودند. این محققین برای مدلسازی تبرید یک سیستم به منظور پیدا کردن پاسخ کمینه کلی، از شبیه سازی کامپیوتری استفاده کردند.
میتوان تبرید تدریجی و آرام در این الگوریتم را به عنوان کاهش تدریجی احتمال انتخاب پاسخهای بدتر حین جستجو در فضای پاسخها دانست (انتخاب پاسخهای بدتر یک ویژگی اساسی الگوریتمهای فراابتگاری است و پیدا کردن بهترین پاسخ را ممکن میسازد). شبیه سازی را میتوان به دو صورت حل روابط کینتیکی برای توابع چگالی (مانند کار خاچاتوریان، سمونوفسکایا و وینشتاین در سال ۱۹۷۹ و ۱۹۸۱) یا استفاده از نمونهگیری تصادفی، انجام داد. نمونه گیری تصادفی در سال ۱۹۸۳ توسط کریکپاتریک، گلت و کلی معرفی شد، کرنی در سال ۱۹۸۵ و خاچاتوریان، سمونوفسکایا و وینشتاین در سال ۱۹۸۵ بهطور مستقل این ایده را مطرح کردند. این روش یک اقتباس از الگوریتم متروپولیس-هستینگز است، یک روش مونت کارلو که نمونه حالتهایی را از یک سیستم ترمودینامیک تولید میکند.
مقدمه
در روش شبیهسازی تبریدی (SA)، هر نقطه s در فضای جستجو مشابه یک حالت از یک سیستم فیزیکی است، و تابع (E(s که باید کمینه شود، مشابه با انرژی داخلی سیستم در آن حالت است. در این روش، هدف انتقال سیستم از حالت اولیه دلخواه، به حالتی است که سیستم در آن کمترین انرژی را داشته باشد.
تکرار پایهای
در هر گام، تبرید شبیهسازیشده یک حالت همسایه را در نظر میگیرد و به صورت احتمالی بین جابهجایی به حالت جدید یا ماندن در حالت قبلی تصمیم میگیرد. این احتمالات در نهایت سیستم را به سمت حالتهای با انرژی کمتر هدایت میکنند. معمولاً این مرحله آن قدر تکرار میشود که سیستم به یک حالت معقول برسد، یا اینکه میزان اعمال محاسباتی از یک حد مشخص عبور کند.
همسایههای یک حالت
همسایههای یک حالت (جواب)، حالتهای جدیدی از مسئله هستند که با تغییر در حالت کنونی و با توجه به روشی از پیش تعیین شده ایجاد میشوند. برای مثال در مسئله فروشندهٔ دورهگرد، هر حالت بهطور کلی یک جایگشت خاص از شهرهایی است که باید ملاقات شوند. همسایهٔ یک جواب، جایگشتهایی هستند که با انتخاب یک جفت از شهرهای هم جوار، از کل مجموعه جایگشتها، و جابجا کردن آن دو شهر ایجاد میشوند. عمل تغییر در جواب فعلی و رفتن به جوابهای همسایه «حرکت» (move) خوانده میشود و «حرکت»های متفاوت، همسایههای گوناگون را بدست میدهد.
روشهای ابتکاری ساده مانند تپهنوردی، که با یافتن بهترین همسایه بین همسایههای بهتر از حالت کنونی حرکت میکنند و زمانی متوقف میشوند که به حالتی برسند که هیچ همسایهٔ بهتری برای حالت کنونی نباشد، نمیتوانند تضمین کنند که همیشه به بهترین جواب رسیدهاند و ممکن است خروجی آنها تنها یک حالت بهینهٔ محلی باشد. الگوریتمهای فراابتکاری از همسایههای یک جواب برای جستجو فضای جوابها استفاده میکنند و اگر چه همسایههای بهتر را ترجیح میدهند، همسایهای بدتر را هم رد نمیکنند تا در یک بهینه محلی گرفتار نشوند. نشان داده شدهاست که این الگوریتمها با صرف یک زمان کافی میتوانند بهترین جواب کلی را پیدا کنند.
احتمال پذیرش
احتمال یک انتقال از حالت کنونی مانند
زمانی که
در صورت اولیهٔ تبرید شبیهسازی شده، احتمال
تابع
با این تفاسیر، دما نقش اساسی را در کنترلکردن تغییرات در سیستم با توجه به حساسیت آن نسبت به تغییرات انرژی ایفا میکند. بهطور دقیقتر، در مقادیر بزرگ
زمانبندی تبرید
نام و ایده بنیادین الگوریتم منشأگرفته از ویژگی دما است. این ویژگی در واقع به گونهای کنترل میشود که دما حین شبیهسازی به صورت تدریجی کاهش مییابد. الگوریتم با قرار دادن
دو شکل روبرو نشاندهندهٔ تأثیر زمانبندی تبرید بر کارایی الگوریتم هستند. مسئله بازترتیبی پیکسلهای یک عکس به منظور کمینه کردن انرژی واقعی تصویر است، که باعث میشود رنگهای مشابه به هم نزدیکتر باشند و رنگهای متفاوت در فاصله دورتری از هم قرار بگیرند. دو شکل روبرو از دو زمانبندی سریع و آرام در بدست آمدهاند.
برای هر مسئله با فضای متناهی، احتمال این که الگوریتم تبرید در یک نقطه بهینهٔ سراسری کار خود را تمام کند با افزایش زمان به ۱ میل میکند. اگرچه این نتیجهٔ نظری چندان راهگشا نیست زیرا میزان زمانی که لازم است تا احتمال رسیدن به جواب از حدی معقول بیشتر شود معمولاً بیشتر از زمانی است که برای جستجوی کل فضا لازم است.
ساختار کلی الگوریتم تبرید شبیهسازی شده
برای حل یک مسئلهٔ بهینهسازی، الگوریتم SA ابتدا از یک جواب اولیه شروع میکند و سپس در یک حلقه تکرار به جوابهای همسایه حرکت میکند. اگر جواب همسایه بهتر از جواب فعلی باشد، الگوریتم آن را به عنوان جواب فعلی قرار میدهد (به آن حرکت میکند)، در غیر این صورت، الگوریتم آن جواب را با احتمال exp(-ΔE/T) به عنوان جواب فعلی میپذیرد. در این رابطه ΔE تفاوت بین تابع هدف جواب فعلی و جواب همسایهاست و T یک پارامتر به نام دما است. در هر دما، چندین تکرار اجرا میشود و سپس دما به آرامی کاهش داده میشود. در گامهای اولیه دما خیلی بالا قرار داده میشود تا احتمال بیشتری برای پذیرش جوابهای بدتر وجود داشته باشد. با کاهش تدریجی دما، در گامهای پایانی احتمال کمتری برای پذیرش جوابهای بدتر وجود خواهد داشت و بنابراین الگوریتم به سمت یک جواب خوب همگرا میشود. الگوریتم SAیک الگوریتم غیرمقید میباشد که برای طراحیهای سخت به کار میرود.شبه کد زیر یک پیادهسازی از تبرید شبیهسازی شده را ارائه نشان میدهد. این الگوریتم از حالت
Let s = s0
For k = 0 through kـmax (exclusive):
T ← temperature(k ∕ kـmax)
Pick a random neighbour, snew ← neighbour(s)
If P(E(s), E(sـnew), T) ≥ random(0, 1):
s ← sـnew
Output: the final state s
انتخاب پارمترهای الگوریتم
برای اعمال تبرید شبیهسازیشده به یک مسئله خاص، باید این پارامترها را مشخص کرد: فضای حالت، تابع انرژی
تبرید شبیهسازیشده میتواند مانند یک قدمزدن تصادفی روی یک گراف جستجو مدل شود که راسهای آن تمام حالات ممکن هستند و یالهای آن حرکات کاندید. یک شرط لازم برای تابع
احتمال گذار
برای تحقیق در رفتار تبرید شبیهسازیشده در یک مسئله خاص، توجه به احتمالات گذار که نتیجهٔ انتخابهای اولیه در پیادهسازی هستند، راهگشا خواهد بود. برای هر یال
احتمالات پذیرش
تعیین توابع
در فرمولبندی مسئله توسط کریکپاتریک و همکاران، تابع
تولید کاندیدهای مناسب
در انتخاب تابع
برای مثال در مسئله فروشندهٔ دورهگرد که پیشتر به آن اشاره شد، انتظار میرود جابهجایی از یک شهر به شهر نزدیک آن در یک گشت با انرژی کم، تأثیر نسبتاً کمی روی تغییر انرژی بگذارد، در حالیکه جابهجایی بین دو شهر دلخواه بسیار محتمل تر است که انرژی بیشتری را هزینه کند (منظور از انرژی اینجا همان طول است).
یک بیان دقیقتر از این روش فراابتکاری این است که حالات
اجتناب از موانع
برای انتخاب تابع
به عنوان یک اصل، طراحی یک تولیدکننده کاندید که بتواند این هدف را ارضا کند غیرممکن است. به علاوه معمولاً میتوان کارایی تبرید شبیهسازیشده را با تغییرات ساده در تابع
زمانبندی کاهش دما
توجیه فیزیکی که برای تبرید شبیهسازیشده استفاده میشود، فرض میکند که نرخ سردکردن به اندازهٔ کافی آرام است بهطوریکه توزیع احتمال حالت کنونی همواره نزدیک به تعادل ترمودینامیکی باشد. متاسفانه، زمان سست سازی یا relaxation (زمانی که باید صبر کرد تا تعادل ترمودینامیکی که به دلیل تغییر دما بر هم خوردهاست دوباره برقرار شود) بسیار به شکل تابع انرژی و دمای کنونی وابسته است. در الگوریتم تبرید شبیهسازیشده، زمان سست سازی همچینین به تابع تولیدکننده کاندید هم به شکل پیچیدهای واسبته است. توجه کنید که تمام این پارامترها معمولاً به عنوان توابع پییچده و نه چندان مشخصی برای الگوریتم تعیین میشوند. بنابراین، بهترین نرخ سردسازی (کاهش دما) را نمیتوان پیش از اجرای الگوریتم تعیین کرد و باید به صورت تجربی برای هر مسئلهای بهطور خاص محاسبته شود. الگوریتمهای تبرید شبیهسازیشده تطبقی این مسئله را با ربط دادن زمانبندی سرسازی به فرایند جستجو حل میکنند.
شروعهای دوباره
گاهی اوقات بهتر است تا به یک پاسخی که قبلا پیدا شدهاست و بسیار بهتر بوده برگردیم تا اینکه از همین حالت فعلی حرکتی را انجام دهیم . این رویه را شروع دوباره یا restarting میگویند. برای انجام این کار باید در شبه کد بالا s و e را برابر sbest و ebest قرار دهیم و دوباره الگوریتم را آغاز کنیم. تصمیم برای آغاز مجدد میتواند بر حسب معیارهای مختلفی باشد. یکی از رایجترین روشها شروع مجدد بعد از تعدادی گام مشخص، شروع مجدد به دلیل رد شدن از حداکثر انرژی سیستم، شروع مجدد تصادفی و ... است.
روشهای مرتبط
- الگوریتمهای متروپلیس-هستینگز تعاملی (مونت کارلو ترتیبی)، حرکات تبرید شبیهسازیشده را با مکانیزم بازیافتی تعاملی ترکیب میکند.
- تبرید کوانتومی، از نوسانات کوانتومی به جای نواسانات حرارتی استفاده میکند تا از موانع بلند ولی کوچک عبور کند.
- تونلزنی تصادفی، تلاش میکند بر سختشدن تدریجی که تبرید شبیهسازیشده با آن در خروج از کیمنه محلی حین کاهش دما روبرو است با تونلزدن در موانع غلبه کند.
- جستجوی تابو یا Tabu search، به صورت کاملاً عادی به سمت همسایههای با انرژی کمتر حرکت میکند، اما زمانی که خود را در یک کمینهٔ محلی گرفتار میبیند به سمت بالا حرکت میکند و از گرفتارشدن در یک دور با نگهداشتن یک لیست جلوگیری میکند.
- خانواده الگوریتمهای دوگان-فاز که الگوریتم تبرید شبیهسازیشده هم از آنها است، در واقع یک رویکردی بینابینی به جستجوی کلی و محلی دارند.
- بهینهسازی جستجوی انفعالی بر ترکیب یادگیری ماشین با بهینهسازی تمرکز میکند و برای این کار یک حلقه فیدبک داخلی به منظور تنظیم پارامترهای آزاد یک الگوریتم با توجه به ویژگیهای مسئله، اضافه میکند.
- گرادیان کاهشی تصادفی که تعداد زیادی جستجوی حریصانه را از نقاط تصادفی مختلف شروع میکند.
- الگوریتمهای ژنتیک دستهای از جوابها را به جای تنها یک جواب معرفی میکنند. کاندیدهای جدید برای جواب با جهش یا با بازترکیبی تو جواب از دسته اولیه تولید میشوند. معیارهای احتمالاتی همانند آنچه در تبرید شبیهسازیشده مدنظر بود، به منظور انتخاب کاندیدها برای جهش یا بازترکیبی یا حذف تعدادی از جوابها در دسته مذکور استفاده میشوند.
- بهینهسازی گام به گام، به صورت تدریجی تابع هدف را حین بهینهسازی هموار میکند.
- بهینهسازی کولونی مورچه یا ant colony optimization، تعدادی زیادی مورچه را برای طی کردن فضای جواب و پیداکردن مناطق محلی مناسب استفاده میکند.
- روش آنتروپی متقابل یا cross-entropy، به کمک یک توزیع احتمال پارامتری جوابهای کاندید را تولید میکند. پارامترها با استفاده از کمینهسازی آنتروپی متقابل دوباره مقدار میگیرند تا در مرحله بعد بتوانند نمونههای بهتری تولید کنند.
- جستجوی هارمونی، از موسیقیداناندر فرایند بدیههسازی تقلید میکنند به گونهای که هر موسیقیدان یک نوت موسقی را برای پیدا کردن بهترین هارمونی مینوازد.
- بهینهسازی تصادفی، شامل بسیاری از روشها از جمله تبرید شبیهسازیشده است.
- بهینهسازی ازدحام ذره یا particle swarm optimization، الگوریتمی است که ازدحام ذرات را به منظور یافتن جواب بهینه مدل میکند.
- الگوریتم ریشهٔ زمینی-ریشهٔ هوایی یا runner-root، یک روش فراابتکاری برای حل مسائل تک مدله و چند مدله است که از ریشهٔ هوایی و ریشهٔ زمینی گیاهان در طبیعت الهام گرفتهاست.
- الگوریتم قطرات آب هوشمند یا Intelligent water drops، که رفتار طبیعی قطرات آب را برای بهینهسازی استفاده میکند.
منابع
- ↑ Cerny, V. , A thermodynamical approach to the traveling salesman problem: An efficient simulation algorithm, Journal of Optimization Theory and Applications, Vol. 45, pp. 41–51, 1985
- ↑ Kirkpatrick, S. , Gelatt, C. D. , and Vecchi, M. P. , Optimization by simulated annealing, Science, Vol. 220, pp. 671–680 1983
- ↑ الگوریتمهای بهینهسازی فراابتکاری/تالیف مسعود یقینی، محمد رحیم اخوان کاظمزاده. جهاد دانشگاهی واحد صنعتی امیر کبیر شابک ۹۷۸−۹۶۴−۲۱۰−۰۷۸−۱