موضوع مقاله: الگوریتم تبرید شبیه‌سازی‌شده | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # الگوریتم تبرید شبیه‌سازی‌شده | مقدمه: این الگوریتم بیشتر زمانی استفاده می‌شود که فضای جستجو گسسته باشد (مثلاً همه گشت‌هایی که از یک مجموعه از شهرها میگذرند). | ## بخش 1: الگوریتم تبرید شبیه‌سازی‌شده | برای مسائلی که پیدا کردن یک پاسخ تقریبی برای بهینه کلی مهمتر از پیدا کردن یک پاسخ دقیق برای بهینه محلی در زمان محدود و مشخصی است، تبرید شبیه‌سازی شده ممکن است نسبت به باقی روش‌ها مانند گرادیان کاهشی دارای ارجحییت باشد. تکنیک تبرید تدریجی، به وسیلهٔ متالورژیست‌ها برای رسیدن به حالتی که در آن ماده جامد، به خوبی مرتب و انرژی آن کمینه شده باشد، استفاده می‌شود. هدف از این کار این است که سایز کریستال‌ها در حالت جامد ماده در حال تبرید به بزرگترین حالت برسد. شبیه سازی تبرید رویکردی است که مسئله کمینه سازی یک تابع با تعداد بسیار زیادی متغیر است را به یک مسئله مکانیک آماری کاهش می‌دهد. بنیان گذاران این الگوریتم برای حل مسائل سخت بهینه‌سازی، روشی مبتنی بر تکنیک تبرید تدریجی و آرام پیشنهاد نمودند. این محققین برای مدلسازی تبرید یک سیستم به منظور پیدا کردن پاسخ کمینه کلی، از شبیه سازی کامپیوتری استفاده کردند.Cerny, V. 671–680 1983 می‌توان تبرید تدریجی و آرام در این الگوریتم را به عنوان کاهش تدریجی احتمال انتخاب پاسخ‌های بدتر حین جستجو در فضای پاسخ‌ها دانست (انتخاب پاسخ‌های بدتر یک ویژگی اساسی الگوریتم‌های فراابتگاری است و پیدا کردن بهترین پاسخ را ممکن می‌سازد). شبیه سازی را می‌توان به دو صورت حل روابط کینتیکی برای توابع چگالی (مانند کار خاچاتوریان، سمونوفسکایا و وینشتاین در سال ۱۹۷۹ و ۱۹۸۱) یا استفاده از نمونه‌گیری تصادفی، انجام داد. نمونه گیری تصادفی در سال ۱۹۸۳ توسط کریک‌پاتریک، گلت و کلی معرفی شد،‌ کرنی در سال ۱۹۸۵ و خاچاتوریان، سمونوفسکایا و وینشتاین در سال ۱۹۸۵ به‌طور مستقل این ایده را مطرح کردند. این روش یک اقتباس از الگوریتم متروپولیس-هستینگز است، یک روش مونت کارلو که نمونه حالت‌هایی را از یک سیستم ترمودینامیک تولید می‌کند. مقدمه در روش شبیه‌سازی تبریدی (SA)، هر نقطه s در فضای جستجو مشابه یک حالت از یک سیستم فیزیکی است، و تابع (E(s که باید کمینه شود، مشابه با انرژی داخلی سیستم در آن حالت است. در این روش، هدف انتقال سیستم از حالت اولیه دلخواه، به حالتی است که سیستم در آن کمترین انرژی را داشته باشد. تکرار پایه‌ای در هر گام، تبرید شبیه‌سازی‌شده یک حالت همسایه را در نظر می‌گیرد و به صورت احتمالی بین جابه‌جایی به حالت جدید یا ماندن در حالت قبلی تصمیم می‌گیرد. معمولاً این مرحله آن قدر تکرار می‌شود که سیستم به یک حالت معقول برسد، یا اینکه میزان اعمال محاسباتی از یک حد مشخص عبور کند. همسایه‌های یک حالت همسایه‌های یک حالت (جواب)، حالت‌های جدیدی از مسئله هستند که با تغییر در حالت کنونی و با توجه به روشی از پیش تعیین شده ایجاد می‌شوند. برای مثال در مسئله فروشندهٔ دوره‌گرد، هر حالت به‌طور کلی یک جایگشت خاص از شهرهایی است که باید ملاقات شوند. همسایهٔ یک جواب، جایگشت‌هایی هستند که با انتخاب یک جفت از شهرهای هم جوار، از کل مجموعه جایگشت‌ها، و جابجا کردن آن دو شهر ایجاد می‌شوند. عمل تغییر در جواب فعلی و رفتن به جواب‌های همسایه «حرکت» (move) خوانده می‌شود و «حرکت»‌های متفاوت، همسایه‌های گوناگون را بدست می‌دهد. در این مسئله نمیتوان از یک الگوریتم تپه‌نوردی ساده استفاده کرد زیرا تعداد زیادی بیشینه محلی وجود دارد. با استفاده از کاهش تدریجی دما در الگوریتم تبرید شبیه‌سازی‌شده پاسخ سراسری بیشینه یافت می‌شود. روش‌های ابتکاری ساده مانند تپه‌نوردی، که با یافتن بهترین همسایه بین همسایه‌های بهتر از حالت کنونی حرکت می‌کنند و زمانی متوقف می‌شوند که به حالتی برسند که هیچ همسایهٔ بهتری برای حالت کنونی نباشد، نمی‌توانند تضمین کنند که همیشه به بهترین جواب رسیده‌اند و ممکن است خروجی آن‌ها تنها یک حالت بهینهٔ محلی باشد. الگوریتم‌های فراابتکاری از همسایه‌های یک جواب برای جستجو فضای جواب‌ها استفاده می‌کنند و اگر چه همسایه‌های بهتر را ترجیح می‌دهند، همسایه‌ای بدتر را هم رد نمی‌کنند تا در یک بهینه محلی گرفتار نشوند. نشان‌ داده شده‌است که این الگوریتم‌ها با صرف یک زمان کافی می‌توانند بهترین جواب کلی را پیدا کنند. احتمال پذیرش احتمال یک انتقال از حالت کنونی مانند به یک حالت کاندید جدید مانند با یک تابع احتمال پذیرش مثل مشخص می‌شود که در آن و است (تابع روی فضای حالت نشان‌دهنده انرژی و نشان‌دهنده دمای متغیر‌‌ با زمان سیستم است). این ویژگی تضمین می‌کند که الگوریتم در یک پاسخ محلی بدتر از پاسخ سراسری بهینه گرفتار نشود. زمانی که به صفر میل می‌کند‌‌‌‌، احتمال یا باید به صفر میل کند ( کوچیکتر از ) یا اینکه به یک عدد مثبت میل کند ( کوچکتر از ). برای مقادیر به اندازه کافی کوچک از ، سیستم به مرور به سمت نقطه با کمینه انرژی حرکت می‌کند و به سمت نقاط با انرژی بیشتر حرکت نخواهد کرد. با قرار دادن مسئله به یک الگوریتم حریصانه تقلیل پیدا می‌کند که تنها به سمت نقاط با انرژی کمتر حرکاتش را انجام می‌دهد. در صورت اولیهٔ تبرید شبیه‌سازی شده، احتمال زمانی که کوچکتر از باشد برابر ۱ می‌شود، که به این معنی است که رویه همیشه مستقل از دما به سمت نقاط پایین‌تر حرکت می‌کند. بسیاری از صورت بندی‌ها و پیاده‌سازی‌های تبرید شبیه‌سازی‌شده همچنان این شرط را به عنوان بخشی از تعریف روش در نظر می‌گیرند‌، اگر چه این شرط برای کارکردن روش الزامی نیست. تابع همواره به گونه‌ای انتخاب می‌شود که احتمال پذیرش یک حرکت زمانی که تفاوت بین دو حالت کمتر است کاهش یابد، به‌طور مثال حرکات کوچک رو به بالا محتمل‌تر از حرکاتبزرگ هستند. | ## بخش 2: الگوریتم تبرید شبیه‌سازی‌شده | با این تفاسیر، دما نقش اساسی را در کنترل‌کردن تغییرات در سیستم با توجه به حساسیت آن نسبت به تغییرات انرژی ایفا می‌کند. این ویژگی در واقع به گونه‌ای کنترل می‌شود که دما حین شبیه‌سازی به صورت تدریجی کاهش می‌یابد. الگوریتم با قرار دادن شروع می‌شود (در واقع دما در ابتدا یک مقدار بزرگ را اختیار می‌کند) و در هر گام طبق یک زمان‌بندی از پیش‌تعیین‌شده کاهش می‌یابد. برای انجام این کار انتظار می‌رود در ابتدا الگوریتم در فضای بزرگی از پاسخ‌ها و بی‌توجه به تابع انرژی به دنبال جواب بگردد. مسئله بازترتیبی پیکسل‌های یک عکس به منظور کمینه کردن انرژی واقعی تصویر است، که باعث می‌شود رنگ‌های مشابه به هم نزدیک‌تر باشند و رنگ‌های متفاوت در فاصله دورتری از هم قرار بگیرند. برای هر مسئله با فضای متناهی، احتمال این که الگوریتم تبرید در یک نقطه بهینهٔ سراسری کار خود را تمام کند با افزایش زمان به ۱ میل می‌کند. اگرچه این نتیجهٔ نظری چندان راهگشا نیست زیرا میزان زمانی که لازم است تا احتمال رسیدن به جواب از حدی معقول بیشتر شود معمولاً بیشتر از زمانی است که برای جستجوی کل فضا لازم است. ساختار کلی الگوریتم تبرید شبیه‌سازی شده 243x243px|قاب|نمودار جریان الگوریتم تبرید شبیه‌سازی شده.برای حل یک مسئلهٔ بهینه‌سازی، الگوریتم SA ابتدا از یک جواب اولیه شروع می‌کند و سپس در یک حلقه تکرار به جواب‌های همسایه حرکت می‌کند. اگر جواب همسایه بهتر از جواب فعلی باشد، الگوریتم آن را به عنوان جواب فعلی قرار می‌دهد (به آن حرکت می‌کند)، در غیر این صورت، الگوریتم آن جواب را با احتمال exp(-ΔE/T) به عنوان جواب فعلی می‌پذیرد. در این رابطه ΔE تفاوت بین تابع هدف جواب فعلی و جواب همسایه‌است و T یک پارامتر به نام دما است. در گام‌های اولیه دما خیلی بالا قرار داده می‌شود تا احتمال بیشتری برای پذیرش جواب‌های بدتر وجود داشته باشد. با کاهش تدریجی دما، در گام‌های پایانی احتمال کمتری برای پذیرش جواب‌های بدتر وجود خواهد داشت و بنابراین الگوریتم به سمت یک جواب خوب همگرا می‌شود. الگوریتم SAیک الگوریتم غیرمقید می‌باشد که برای طراحی‌های سخت به کار می‌رود.الگوریتم‌های بهینه‌سازی فراابتکاری/تالیف مسعود یقینی، محمد رحیم اخوان کاظم‌زاده. جهاد دانشگاهی واحد صنعتی امیر کبیر شبه کد زیر یک پیاده‌سازی از تبرید شبیه‌سازی شده را ارائه نشان می‌دهد. این الگوریتم از حالت شروع می‌کند و تا رسیدن به حداکثر گام‌ها‌، یا رسیدن به حالتی با انرژی یا کمتر از آن متوقف می‌شود. زمان‌بندی تبرید با صدا کردن تابع تعریف می‌شود، که در هر مرحله دمای سیستم را بر حسب ‌‌‌زمان به دست می‌دهد. متاسفانه، هیچ روشی برای انتخاب پارامترهای مناسب برای تمام مسائل وجود ندارد و برای هر مسئله باید به‌طور خاص بهترین پارامترها را یافت. تبرید شبیه‌سازی‌شده می‌تواند مانند یک قدم‌زدن تصادفی روی یک گراف جستجو مدل شود که راس‌های آن تمام حالات ممکن هستند و یال‌های آن حرکات کاندید. یک شرط لازم برای تابع این است که باید یک مسیر نسبتا کوتاه را از حالت اولیه به هر حالت دیگری را که می‌تواند بهینهٔ سراسری باشد فراهم کند. در مسئله فروشندهٔ دوره‌گرد اندازه‌ٔ فضای حالت دارای برای ۲۰ شهر برابر۲۴۳۲۹۰۲۰۰۸۱۷۶۶۴۰۰۰۰ است، ولی تابع همسایه که دو شهر نزدیک را همسایه می‌گیرد می‌تواند در حداکثر ۱۹۰ گام به بهینه سراسری برسد. احتمال گذار برای تحقیق در رفتار تبرید شبیه‌سازی‌شده در یک مسئله خاص، توجه به احتمالات گذار که نتیجهٔ انتخاب‌های اولیه در پیاده‌سازی هستند، راهگشا خواهد بود. برای هر یال در گراف جستجو، احتمال گذار برابر احتمال آن است که الگوریتم به حالت برود زمانی که حالت کنونی است. این احتمال به دمای کنونی که توسط تابع تعیین می‌شود، به ترتیبی که توسط تعیین می‌شود و به تابع احتمال پذیرش بستگی دارد. (دقت کنید که احتمال گذار تنها نیست زیرا همسایه‌های کاندید در این روش تک تک بررسی می‌شوند.) احتمالات پذیرش تعیین توابع ، و شامل کمی فزون‌کاری است. در عمل تابع برای بسیاری از مسائل یکسان انتخاب می‌شود و دو تابع دیگر با توجه به مسئله تعیین می‌شوند. در فرمول‌بندی مسئله توسط کریک‌پاتریک و همکاران، تابع زمانی که کوچکتر از باشد برابر ۱ و در غیر این صورت برابر تعریف می‌شود. در واقع این فرمول‌بندی مطابق الگوریتم متروپلیس-هستینگز است زمانی که و توزیع استفاده شده در متروپلیس-هستنیگز متقارن است. با این حال، این احتمال پذیرش اکثرا در تبرید ‌شبیه‌سازی‌شده استفاده می‌شود، حتی زمانی که تابع متقارن نباشد یا حتی زمانی که احتمالاتی نباشد. در نتیجه، احتملالات گذار در الگوریتم تبرید‌ شبیه‌سازی‌شده مطابق گذارهای سیستم فیزیکی مذکور نیستند و در توزیع حالات در بلند مدت در یک دمای ثابت ملزم به شباهت به یک توزیع تعادل ترمودینامیکیروی حالات سیستم فیزیکی در هیچ دمایی نیست. در هر حال، بیشتر صورت‌های تبرید شبیه‌سازی‌شده همان صورت اولیه را انتخاب می‌کنند که احتمالا بارها پیاده‌سازی شده‌است. تولید کاندیدهای مناسب در انتخاب تابع باید این را در نظر گرفت که پس از تعداد معقولی تکرار الگوریتم، انتظار می‌رود حالت سیستم، انرژی به مراتب کمتری از حالت ابتدایی داشته باشد. | ## بخش 3: الگوریتم تبرید شبیه‌سازی‌شده | بنابراین به عنوان یک قانون کلی باید تولیدکننده کاندیدها یا همان را به سمت کاندیدی حرکت داد که انرژی حالت جدید ، شبیه به انرژی حالت کنونی باشد. این روش فراابتکاری (که اساس الگوریتم متروپولیس-هستینگز هم هست) معمولاً حرکات بسیار خوب و حرکات بسیار بد را حذف میکند. البته بیشتر حرکات بد ممکن هستند تا حرکات خوب و این نشان می‌دهد که الگوریتم تقریباً کارا عمل می‌کند. برای مثال در مسئله فروشندهٔ دوره‌گرد که پیش‌تر به آن اشاره شد، انتظار می‌رود جابه‌جایی از یک شهر به شهر نزدیک آن در یک گشت با انرژی کم، تأثیر نسبتاً کمی روی تغییر انرژی بگذارد، در حالیکه جابه‌جایی بین دو شهر دلخواه بسیار محتمل تر است که انرژی بیشتری را هزینه کند (منظور از انرژی اینجا همان طول است). یک بیان دقیق‌تر از این روش فراابتکاری این است که حالات که برای آن‌ها بزرگ است را انتخاب کند. بنابراین، در مثال فروشندهٔ دوره‌گرد، می‌توان از ی استفاده کرد که احتمال انتخاب دو شهر برای جابه‌جایی با افزایش فاصله آن‌ها کاهش یابد. اجتناب از موانع برای انتخاب تابع علاوه بر ملاحظات قبلی باید تلاش کرد تا تعداد کمینه‌های محلی عمیق (حالاتی که به میزان زیادی از همسایه‌هایشان انرژی کمتری دارند) را کاهش داد. چنین نقاطی می‌توانند الگوریتم تبرید‌ شبیه‌سازی‌شده را با احتمال بالایی (تقریبا متناسب با کل تعداد حالات در یک همسایگی) و برای زمان زیادی (تقریبا نمایی بر حسب تفاوت انرژی با همسایه‌ها در همسایگی) به دام بیاندازند. به عنوان یک اصل، طراحی یک تولیدکننده‌ کاندید که بتواند این هدف را ارضا کند غیرممکن است. به علاوه معمولاً میتوان کارایی تبرید ‌شبیه‌سازی‌شده را با تغییرات ساده در تابع به میزان زیادی افزایش داد. زمان‌بندی کاهش دما توجیه فیزیکی که برای تبرید شبیه‌سازی‌شده استفاده می‌شود، فرض می‌کند که نرخ سردکردن به اندازهٔ کافی آرام است به‌طوری‌که توزیع احتمال حالت کنونی همواره نزدیک به تعادل ترمودینامیکی باشد. متاسفانه، زمان سست سازی یا relaxation (زمانی که باید صبر کرد تا تعادل ترمودینامیکی که به دلیل تغییر دما بر هم خورده‌است دوباره برقرار شود) بسیار به شکل تابع انرژی و دمای کنونی وابسته است. در الگوریتم تبرید شبیه‌سازی‌شده، زمان سست سازی همچینین به تابع تولید‌کننده‌ کاندید هم به شکل پیچیده‌ای واسبته است. توجه کنید که تمام این پارامترها معمولاً به عنوان توابع پییچده و نه چندان مشخصی برای الگوریتم تعیین می‌شوند. بنابراین، بهترین نرخ سردسازی (کاهش دما)‌ را نمی‌توان پیش از اجرای الگوریتم تعیین کرد و باید به صورت تجربی برای هر مسئله‌ای به‌طور خاص محاسبته شود. الگوریتم‌های تبرید‌ شبیه‌سازی‌شده تطبقی این مسئله را با ربط دادن زمان‌بندی سرسازی به فرایند جستجو حل می‌کنند. شروع‌های دوباره گاهی اوقات بهتر است تا به یک پاسخی که قبلا پیدا شده‌است و بسیار بهتر بوده برگردیم تا اینکه از همین حالت فعلی حرکتی را انجام دهیم . یکی از رایج‌ترین روش‌ها شروع مجدد بعد از تعدادی گام مشخص، شروع مجدد به دلیل رد شدن از حداکثر انرژی سیستم، شروع مجدد تصادفی و ... روش‌های مرتبط الگوریتم‌های متروپلیس-هستینگز تعاملی (مونت کارلو ترتیبی)، حرکات تبرید شبیه‌سازی‌شده را با مکانیزم بازیافتی تعاملی ترکیب می‌کند. تبرید کوانتومی، از نوسانات کوانتومی به جای نواسانات حرارتی استفاده می‌کند تا از موانع بلند ولی کوچک عبور کند. تونل‌زنی تصادفی، تلاش می‌کند بر سخت‌شدن تدریجی که تبرید شبیه‌سازی‌شده با آن در خروج از کیمنه محلی حین کاهش دما روبرو است با تونل‌زدن در موانع غلبه کند. جستجوی تابو یا Tabu search، به صورت کاملاً عادی به سمت همسایه‌های با انرژی کمتر حرکت می‌کند، اما زمانی که خود را در یک کمینهٔ محلی گرفتار می‌بیند به سمت بالا حرکت می‌کند و از گرفتارشدن در یک دور با نگه‌داشتن یک لیست جلوگیری می‌کند. خانواده الگوریتم‌های دوگان-فاز که الگوریتم تبرید شبیه‌سازی‌شده هم از آن‌ها است، در واقع یک رویکردی بینابینی به جستجوی کلی و محلی دارند. بهینه‌سازی جستجوی انفعالی بر ترکیب یادگیری ماشین با بهینه‌سازی تمرکز می‌کند و برای این کار یک حلقه فیدبک داخلی به منظور تنظیم پارامترهای آزاد یک الگوریتم با توجه به ویژگی‌های مسئله، اضافه می‌کند. گرادیان کاهشی تصادفی که تعداد زیادی جستجوی حریصانه را از نقاط تصادفی مختلف شروع میکند. کاندید‌های جدید برای جواب با جهش یا با بازترکیبی تو جواب از دسته اولیه تولید می‌شوند. معیارهای احتمالاتی همانند آنچه در تبرید شبیه‌سازی‌شده مدنظر بود، به منظور انتخاب کاندیدها برای جهش یا بازترکیبی یا حذف تعدادی از جواب‌ها در دسته مذکور استفاده می‌شوند. پارامترها با استفاده از کمینه‌سازی آنتروپی متقابل دوباره مقدار می‌گیرند تا در مرحله بعد بتوانند نمونه‌های بهتری تولید کنند. جستجوی هارمونی، از موسیقی‌داناندر فرایند بدیهه‌سازی تقلید می‌کنند به گونه‌ای که هر موسیقیدان یک نوت موسقی را برای پیدا کردن بهترین هارمونی می‌نوازد. | ## جمع‌بندی | الگوریتم ریشهٔ زمینی-ریشهٔ هوایی یا runner-root، یک روش فراابتکاری برای حل مسائل تک مدله و چند مدله است که از ریشه‌ٔ هوایی و ریشهٔ زمینی گیاهان در طبیعت الهام گرفته‌است.