Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

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

‫از ویکی‌پدیا‪ ،‬دانشنامٔه آزاد‬

‫الگوریتم تبرید شبیه‌سازی‌شده (‪ ،)SA( )Simulated Annealing‬یک الگوریتم بهینه‌سازی فراابتکاری ساده و‬
‫اثربخش در حل مسائل بهینه‌سازی در فضاهای جستجوی بزرگ است‪ .‬این الگوریتم بیشتر زمانی استفاده می‌شود که فضای‬
‫جستجو گسسته باشد (مثلًا همه گشت‌هایی که از یک مجموعه از شهرها میگذرند)‪ .‬برای مسائلی که پیدا کردن یک پاسخ‬
‫تقریبی برای بهینه کلی مهمتر از پیدا کردن یک پاسخ دقیق برای بهینه محلی در زمان محدود و مشخصی است‪ ،‬تبرید‬
‫شبیه‌سازی شده ممکن است نسبت به باقی روش‌ها مانند گرادیان کاهشی دارای ارجحییت باشد‪.‬‬

‫تکنیک تبرید تدریجی‪ ،‬به وسیلٔه متالورژیست‌ها برای رسیدن به حالتی که در آن ماده جامد‪ ،‬به خوبی مرتب و انرژی آن‬
‫کمینه شده باشد‪ ،‬استفاده می‌شود‪ .‬هدف از این کار این است که سایز کریستا ل‌ها در حالت جامد ماده در حال تبرید به‬
‫بزرگترین حالت برسد‪ .‬این تکنیک شامل قرار دادن ماده در دمای بالا و سپس کم کردن تدریجی این دماست‪ .‬شبیه سازی‬
‫تبرید رویکردی است که مسئله کمینه سازی یک تابع با تعداد بسیار زیادی متغیر است را به یک مسئله مکانیک آماری کاهش‬
‫می‌دهد‪ .‬بنیان گذاران این الگوریتم برای حل مسائل سخت بهینه‌سازی‪ ،‬روشی مبتنی بر تکنیک تبرید تدریجی و آرام‬
‫پیشنهاد نمودند‪ .‬این محققین برای مدلسازی تبرید یک سیستم به منظور پیدا کردن پاسخ کمینه کلی‪ ،‬از شبیه سازی‬
‫کامپیوتری استفاده کردند‪]۲[]۱[.‬‬

‫می‌توان تبرید تدریجی و آرام در این الگوریتم را به عنوان کاهش تدریجی احتمال انتخاب پاسخ‌های بدتر حین جستجو در‬
‫فضای پاسخ‌ها دانست (انتخاب پاسخ‌های بدتر یک ویژگی اساسی الگوریتم‌های فراابتگاری است و پیدا کردن بهترین پاسخ‬
‫را ممکن می‌سازد)‪ .‬شبیه سازی را می‌توان به دو صورت حل روابط کینتیکی برای توابع چگالی (مانند کار خاچاتوریان‪،‬‬
‫سمونوفسکایا و وینشتاین در سال ‪ ۱۹۷۹‬و ‪ )۱۹۸۱‬یا استفاده از نمونه‌گیری تصادفی‪ ،‬انجام داد‪ .‬نمونه گیری تصادفی در سال‬
‫‪ ۱۹۸۳‬توسط کریک‌پاتریک‪ ،‬گلت و کلی معرفی شد[‪ ‌،]۲‬کرنی در سال ‪ ۱۹۸۵‬و خاچاتوریان‪ ،‬سمونوفسکایا و وینشتاین در سال‬
‫‪ ۱۹۸۵‬به‌طور مستقل این ایده را مطرح کردند‪ .‬این روش یک اقتباس از الگوریتم متروپولیس‪-‬هستینگز است‪ ،‬یک روش‬
‫مونت کارلو که نمونه حالت‌هایی را از یک سیستم ترمودینامیک تولید می‌کند‪.‬‬

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

‫تکرار پایه‌ای‬

‫در هر گام‪ ،‬تبرید شبیه‌سازی‌شده یک حالت همسایه را در نظر می‌گیرد و به صورت احتمالی بین جابه‌جایی به حالت جدید‬
‫یا ماندن در حالت قبلی تصمیم می‌گیرد‪ .‬این احتمالات در نهایت سیستم را به سمت حالت‌های با انرژی کمتر هدایت‬
‫می‌کنند‪ .‬معمولًا این مرحله آن قدر تکرار می‌شود که سیستم به یک حالت معقول برسد‪ ،‬یا اینکه میزان اعمال محاسباتی از‬
‫یک حد مشخص عبور کند‪.‬‬

‫همسایه‌های یک حالت‬

‫همسایه‌های یک حالت (جواب)‪ ،‬حالت‌های جدیدی از مسئله هستند که با تغییر در حالت کنونی و با توجه به روشی از پیش‬
‫تعیین شده ایجاد می‌شوند‪ .‬برای مثال در مسئله فروشندٔه دوره‌گرد‪ ،‬هر حالت به‌طور کلی یک جایگشت خاص از شهرهایی‬
‫است که باید ملاقات شوند‪ .‬همسایٔه یک جواب‪ ،‬جایگشت‌هایی هستند که با انتخاب یک جفت از شهرهای هم جوار‪ ،‬از کل‬
‫مجموعه جایگشت‌ها‪ ،‬و جابجا کردن آن دو شهر ایجاد می‌شوند‪ .‬عمل تغییر در جواب فعلی و رفتن به جواب‌های همسایه‬
‫«حرکت» (‪ )move‬خوانده می‌شود و «حرکت»‌های متفاوت‪ ،‬همسایه‌های گوناگون را بدست می‌دهد‪.‬‬
‫روش‌های ابتکاری ساده مانند‬
‫تپه‌نوردی‪ ،‬که با یافتن بهترین همسایه‬
‫بین همسایه‌های بهتر از حالت کنونی‬
‫حرکت می‌کنند و زمانی متوقف‬
‫می‌شوند که به حالتی برسند که هیچ‬
‫همسایٔه بهتری برای حالت کنونی‬
‫نباشد‪ ،‬نمی‌توانند تضمین کنند که‬
‫همیشه به بهترین جواب رسیده‌اند و‬
‫تبرید شبیه‌سازی‌شده در حال جستجوی پاسخ بیشینه‪ .‬هدف این است که به بالاترین نقطه‬ ‫ممکن است خروجی آن‌ها تنها یک‬
‫برسیم‪ .‬در این مسئله نمیتوان از یک الگوریتم تپه‌نوردی ساده استفاده کرد زیرا تعداد زیادی‬ ‫حالت بهینٔه محلی باشد‪ .‬الگوریتم‌های‬
‫بیشینه محلی وجود دارد‪ .‬با استفاده از کاهش تدریجی دما در الگوریتم تبرید شبیه‌سازی‌شده‬ ‫فراابتکاری از همسایه‌های یک جواب‬
‫پاسخ سراسری بیشینه یافت می‌شود‪.‬‬ ‫برای جستجو فضای جواب‌ها استفاده‬
‫می‌کنند و اگر چه همسایه‌های بهتر را‬
‫ترجیح می‌دهند‪ ،‬همسایه‌ای بدتر را هم‬
‫رد نمی‌کنند تا در یک بهینه محلی گرفتار نشوند‪ .‬نشان‌ داده شده‌است که این الگوریتم‌ها با صرف یک زمان کافی می‌توانند‬
‫بهترین جواب کلی را پیدا کنند‪.‬‬

‫احتمال پذیرش‬

‫با یک تابع احتمال پذیرش مثل‬ ‫به یک حالت کاندید جدید مانند‬ ‫احتمال یک انتقال از حالت کنونی مانند‬

‫است‬ ‫و‬ ‫مشخص می‌شود که در آن‬

‫نشان‌دهنده دمای متغیر‌ با زمان سیستم است)‪ .‬حالات با انرژی‬ ‫روی فضای حالت نشان‌دهنده انرژی و‬ ‫(تابع‬

‫است‪ .‬این‬ ‫کوچکتر از‬ ‫باید مثبت باشد حتی زمانی که‬ ‫کمتر بهتر از حالات با انرژی بالاتر هستند‪ .‬تابع احتمال‬
‫ویژگی تضمین می‌کند که الگوریتم در یک پاسخ محلی بدتر از پاسخ سراسری بهینه گرفتار نشود‪.‬‬

‫) یا اینکه به یک عدد‬ ‫کوچیکتر از‬ ‫یا باید به صفر میل کند (‬ ‫به صفر میل می‌کند‌‌‪ ،‬احتمال‬ ‫زمانی که‬

‫‪ ،‬سیستم به مرور به سمت نقطه با کمینه‬ ‫)‪ .‬برای مقادیر به اندازه کافی کوچک از‬ ‫کوچکتر از‬ ‫مثبت میل کند (‬

‫مسئله به یک‬ ‫انرژی حرکت می‌کند و به سمت نقاط با انرژی بیشتر حرکت نخواهد کرد‪ .‬با قرار دادن‬
‫الگوریتم حریصانه تقلیل پیدا می‌کند که تنها به سمت نقاط با انرژی کمتر حرکاتش را انجام می‌دهد‪.‬‬

‫باشد برابر ‪۱‬‬ ‫کوچکتر از‬ ‫زمانی که‬ ‫در صورت اولیٔه تبرید شبیه‌سازی شده‪ ،‬احتمال‬
‫می‌شود‪ ،‬که به این معنی است که رویه همیشه مستقل از دما به سمت نقاط پایین‌تر حرکت می‌کند‪ .‬بسیاری از صورت‬
‫بندی‌ها و پیاده‌سازی‌های تبرید شبیه‌سازی‌شده همچنان این شرط را به عنوان بخشی از تعریف روش در نظر می‌گیرند‌‪ ،‬اگر‬
‫چه این شرط برای کارکردن روش الزامی نیست‪.‬‬

‫همواره به گونه‌ای انتخاب می‌شود که احتمال پذیرش یک حرکت زمانی که تفاوت بین دو حالت کمتر است‬ ‫تابع‬
‫کاهش یابد‪ ،‬به‌طور مثال حرکات کوچک رو به بالا محتمل‌تر از حرکاتبزرگ هستند‪ .‬در هر حال‪ ،‬در صورتی که شروط قبلی‬
‫برقرار باشند‪ ،‬این شرط به‌طور اکید الزامی نیست‪.‬‬
‫با این تفاسیر‪ ،‬دما نقش اساسی را در کنترل‌کردن تغییرات در سیستم با توجه به حساسیت آن نسبت به تغییرات انرژی ایفا‬

‫‪ ،‬تغییرات در حالت سیستم نسبت به تغییرات بزرگتری در سیستم حساس‬ ‫می‌کند‪ .‬به‌طور دقیق‌تر‪ ،‬در مقادیر بزرگ‬
‫است تا زمانی که دما کوچکتر است‪.‬‬

‫زمان‌بندی تبرید‬

‫نام و ایده بنیادین الگوریتم منشأ‌گرفته از ویژگی دما است‪ .‬این ویژگی در واقع به گونه‌ای‬
‫کنترل می‌شود که دما حین شبیه‌سازی به صورت تدریجی کاهش می‌یابد‪ .‬الگوریتم با قرار‬

‫شروع می‌شود (در واقع دما در ابتدا یک مقدار بزرگ را اختیار‬ ‫دادن‬
‫سریع‬ ‫می‌کند) و در هر گام طبق یک زمان‌بندی از پیش‌تعیین‌شده کاهش می‌یابد‪ .‬در تعیین این‬
‫زمان‌بندی باید توجه داشت که با اتمام‌ منابع مورد استفاده مانند تعداد محاسبات‪ ،‬زمان انجام‬
‫عملیات‌ها هم تمام شود‪ .‬برای انجام این کار انتظار می‌رود در ابتدا الگوریتم در فضای بزرگی‬
‫از پاسخ‌ها و بی‌توجه به تابع انرژی به دنبال جواب بگردد‪ .‬سپس به سمت مناطق با انرژی کمتر پرش کند و این منطقه به‬
‫مرور کوچک و کوچکتر شود تا زمانی که سیستم دقیقا به پایین‌ترین نقطه سراسری برسد‪.‬‬

‫دو شکل روبرو نشان‌دهندٔه تأثیر زمان‌بندی تبرید بر کارایی الگوریتم هستند‪ .‬مسئله بازترتیبی‬
‫پیکسل‌های یک عکس به منظور کمینه کردن انرژی واقعی تصویر است‪ ،‬که باعث می‌شود‬
‫رنگ‌های مشابه به هم نزدیک‌تر باشند و رنگ‌های متفاوت در فاصله دورتری از هم قرار بگیرند‪.‬‬
‫دو شکل روبرو از دو زمان‌بندی سریع و آرام در بدست آمده‌اند‪.‬‬

‫برای هر مسئله با فضای متناهی‪ ،‬احتمال این که الگوریتم تبرید در یک نقطه بهینٔه سراسری‬
‫کار خود را تمام کند با افزایش زمان به ‪ ۱‬میل می‌کند‪ .‬اگرچه این نتیجٔه نظری چندان راهگشا‬
‫نیست زیرا میزان زمانی که لازم است تا احتمال رسیدن به جواب از حدی معقول بیشتر شود‬
‫آرام‬
‫معمولًا بیشتر از زمانی است که برای جستجوی کل فضا لازم است‪.‬‬

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


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

‫یا کمتر از آن متوقف می‌شود‪ .‬در این روند‪ ،‬صدا‬ ‫یا رسیدن به حالتی با انرژی‬ ‫حداکثر گام‌ها‌‪،‬‬

‫یک‬ ‫یک همسایه رندوم حالت فعلی را انتخاب می‌کند‪ .‬تابع‬ ‫کردن تابع‬

‫به صورت یکنواخت انتخاب می‌کند‪ .‬زمان‌بندی تبرید با صدا کردن تابع‬ ‫عدد را در بازه‬

‫تعریف می‌شود‪ ،‬که در هر مرحله دمای سیستم را بر حسب‌‌زمان به دست می‌دهد‪.‬‬

‫‪Let s = s0‬‬
‫‪max (exclusive):‬ـ‪For k = 0 through k‬‬
‫← ‪T‬‬
‫‪temperature(k‬‬ ‫∕‬
‫)‪max‬ـ‪k‬‬
‫‪Pick a random‬‬
‫← ‪neighbour, snew‬‬
‫)‪neighbour(s‬‬
‫‪If P(E(s),‬‬
‫‪new),‬ـ‪E(s‬‬ ‫)‪T‬‬ ‫≥‬
‫‪random(0, 1):‬‬
‫‪new‬ـ‪s ← s‬‬
‫‪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‬‬
‫‪ .۳‬الگوریتم‌های بهینه‌سازی فراابتکاری‪/‬تالیف مسعود یقینی‪ ،‬محمد رحیم اخوان کاظم‌زاده‪ .‬جهاد دانشگاهی واحد صنعتی‬
‫امیر کبیر شابک ‪‎۹۷۸−۹۶۴−۲۱۰−۰۷۸−۱‬‬

‫برگرفته از «‪&oldid=33717888‬الگوریتم_تبرید_شبیه‌سازی‌شده=‪»https://fa.wikipedia.org/w/index.php?title‬‬

You might also like