الگوریتم تبرید شبیه‌سازی شده

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

الگوریتم تبرید شبیه‌سازی شده (Simulated Annealing) (SA)، یک الگوریتم بهینه‌سازی فراابتکاری ساده و اثربخش در حل مسائل بهینه‌سازی است. منشأ الگوریتم تبرید شبیه‌سازی شده، کارهای کریک پاتریک و کرنی و همکارانشان در سال‌های ۱۹۸۳ و ۱۹۸۵ است [۱] و [۲]. کریک پاتریک و همکارانش، متخصصانی در زمینهٔ فیزیک آماری بودند. آنها برای حل مسائل سخت بهینه‌سازی، روشی مبتنی بر تکنیک تبرید تدریجی پیشنهاد نمودند. تکنیک تبرید تدریجی، به وسیلهٔ متالورژیست‌ها برای رسیدن به حالتی که در آن ماده جامد، به خوبی مرتب و انرژی آن کمینه شده باشد، استفاده می‌شود. این تکنیک شامل قرار دادن ماده در دمای بالا و سپس کم کردن تدریجی این دماست.

نمودار جریان الگوریتم تبرید شبیه‌سازی شده

مقدمه[ویرایش]

در روش شبیه سازی تبریدی (SA)، هر نقطه s در فضای جستجو مشابه یک حالت از یک سیستم فیزیکی است، و تابع (E(s که باید کمینه شود، مشابه با انرژی داخلی سیستم در آن حالت است. در این روش، هدف انتقال سیستم از حالت اولیه دلخواه، به حالتی است که سیستم در آن کمترین انرژی را داشته باشد.

ساختار کلی الگوریتم تبرید شبیه‌سازی شده[ویرایش]

برای حل یک مسئلهٔ بهینه‌سازی، الگوریتم SA ابتدا از یک جواب اولیه شروع می‌کند و سپس در یک حلقه تکرار به جواب‌های همسایه حرکت می‌کند. اگر جواب همسایه بهتر از جواب فعلی باشد، الگوریتم آن را به عنوان جواب فعلی قرار می‌دهد (به آن حرکت می‌کند)، در غیر این صورت، الگوریتم آن جواب را با احتمال exp(-ΔE/T) به عنوان جواب فعلی می‌پذیرد. در این رابطه ΔE تفاوت بین تابع هدف جواب فعلی و جواب همسایه‌است و T یک پارامتر به نام دما است. در هر دما، چندین تکرار اجر می‌شود و سپس دما به آرامی کاهش داده می‌شود. در گام‌های اولیه دما خیلی بالا قرار داده می‌شود تا احتمال بیشتری برای پذیرش جواب‌های بدتر وجود داشته باشد. با کاهش تدریجی دما، در گام‌های پایانی احتمال کمتری برای پذیرش جواب‌های بدتر وجود خواهد داشت و بنابراین الگوریتم به سمت یک جواب خوب همگرا می‌شود.الگوریتم SAیک الگوریتم غیرمقید می باشد که برای طراحی های سخت به کار می رود [۳]

تکرار در حلقه داخلی الگوریتم[ویرایش]

در هر مرحله، الگوریتم تبرید شبیه‌سازی شده، چند حالت را در همسایگی حالت کنونی s در نظر می‌گیرد، و به طور احتمالی تصمیم می‌گیرد که سیستم را از حالت s منتقل کند یا در همین حالت باقی بماند. این احتمالات در نهایت سیستم را به حالت با انرژی کمتر میل می‌دهد.

همسایه‌های یک جواب[ویرایش]

همسایه‌های یک حالت (جواب)، حالت‌های جدیدی از مسئله هستند که با تغییر در حالت کنونی و با توجه به روشی از پیش تعیین شده ایجاد می‌شوند. برای مثال در مسئله فروشنده‌ی دوره‌گرد، هر حالت به طور کلی یک جایگشت خاص از شهرهایی است که باید ملاقات شوند. همسایه‌ی یک جواب، جایگشت‌هایی هستند که با انتخاب یک جفت از شهرهای هم جوار، از کل مجموعه جایگشت‌ها، و جابجا کردن آن دو شهر ایجاد می‌شوند. عمل تغییر در جواب فعلی و رفتن به جواب‌های همسایه "حرکت" (move) خوانده می‌شود و "حرکت"های متفاوت، همسایه‌های گوناگون را بدست می‌دهد.

منابع[ویرایش]

  1. Kirkpatrick, S. , Gelatt, C. D. , and Vecchi, M. P. , Optimization by simulated annealing, Science, Vol. ۲۲۰, pp. ۶۷۱–۶۸۰ ۱۹۸۳
  2. Cerny, V. , A thermodynamical approach to the traveling salesman problem: An efficient simulation algorithm, Journal of Optimization Theory and Applications, Vol. ۴۵, pp. ۴۱–۵۱, ۱۹۸۵
  3. الگوریتم‌های بهینه‌سازی فراابتکاری/تالیف مسعود یقینی، محمد رحیم اخوان کاظم زاده. جهاد دانشگاهی واحد صنعتی امیر کبیر ISBN ۹۷۸-۹۶۴-۲۱۰-۰۷۸-۱