تالار گفتمان مانشت

نسخه‌ی کامل: تابع دما در الگوریتم simulated annealing
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
من می خواستم برای یک مساله ای الگوریتم simulated anneling را پیاده سازی کنم اما نمی دونم تابع دما رو چجوری تعریف کنم؟
می دونم که باید نزولی باشه اما نمی دونم دقیقا چی باشه

احیانا نمی شه خود تابع دمایی که تو فیزیک هست رو گذاشت؟ (همونی که تو درسهای معادلات دیفرانسل ممکنه بهش برخورده باشید)
یا اساسا تابع خوش دستی برای این کار هست؟


لطفا هر نوع نظری که فکر می کنه بهم کمک کنه رو بهم بگید برای پایان نامه م لازم دارم
سلام وقت بخیر

همون طوری که اشاره داشتین، تعریف دما یا همون متغیر T در الگوریتم SA به صورت زیر است:

T(k): schedule of ‘‘annealing’’ the ‘‘temperature’’ T in annealing-time steps k

در الگوریتم استاندارد SA یا همون Boltzmann Annealing که از توزیع Boltzmann استفاده شده، طبق رفرنس زیر :

S. Geman and D. Geman, Stochastic relaxation, Gibbs distribution and the Bayesian
restoration in images, IEEE Trans. Patt. Anal. Mac. Int. 6 (6), 721-741 (1984).

اثبات شده که اگر تابع دما رشدی کندتر از مقدار زیر داشته باشد، الگوریتم SA می تواند به نقطه بهینه سراسری دست پیدا کنه :

[tex]T(k)=\frac{T_0}{Lnk}[/tex]

لازم به ذکره که در نسخه سریع الگوریتم SA یا همون Fast Annealing بر خلاف الگوریتم پایه، از توزیع کوشی استفاده شده و در پی اون دما به صورت زیر کم می شود:

[tex]T(k)=\frac{T_0}{k}[/tex]

میشه یک مقدار [tex]\epsilon[/tex] هم برای جلوگیری از خطای تقسیم در مخرج اضافه کرد.

برای مطالعه بیشتر نیز می تونید به فایلی که اینجا گذاشتم مراجعه کنید


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


امیدوارم مفید باشه توضیحات
موفق باشید Smile
سلام خیلی خوب بود ممنون از توضیحاتتون
سلام
تابعی که دوستمون معرفی کردند احتمالا بهتره ولی شکل الگوریتم پایه به صورت پیوست هست که در کتاب معروف راسل اومده.
[attachment=19906]
منظور از خط آخر اینه که یک عدد تصادفی بین ۰ تا ۱ تولید کنید اگر حاصل از [tex]_e\frac{\bigtriangleup E}{T}[/tex] کمتر بود انتساب انجام بشه وگرنه انجام نشه.
باز بستگی به مسئله تون داره ولی من خیلی وقت پیش از این تابع استفاده کردم و دقیق خاطرم نیست اما فکر می کنم برای برخی توابع بنچمارک چندمتغیره نتایج خوبی رو با همین تابع پایه داشتم.
(18 اردیبهشت 1395 10:09 ب.ظ)davood_2016 نوشته شده توسط: [ -> ]سلام
تابعی که دوستمون معرفی کردند احتمالا بهتره ولی شکل الگوریتم پایه به صورت پیوست هست که در کتاب معروف راسل اومده.

منظور از خط آخر اینه که یک عدد تصادفی بین ۰ تا ۱ تولید کنید اگر حاصل از [tex]_e\frac{\bigtriangleup E}{T}[/tex] کمتر بود انتساب انجام بشه وگرنه انجام نشه.
باز بستگی به مسئله تون داره ولی من خیلی وقت پیش از این تابع استفاده کردم و دقیق خاطرم نیست اما فکر می کنم برای برخی توابع بنچمارک چندمتغیره نتایج خوبی رو با همین تابع پایه داشتم.
سلام کتاب راسل را خوانده ام و منظورم تابع تصمیم گیری نبود منظورم تابع دما بود که چی بذاریم
(19 اردیبهشت 1395 05:38 ق.ظ)fatemeh69 نوشته شده توسط: [ -> ]
(18 اردیبهشت 1395 10:09 ب.ظ)davood_2016 نوشته شده توسط: [ -> ]سلام
تابعی که دوستمون معرفی کردند احتمالا بهتره ولی شکل الگوریتم پایه به صورت پیوست هست که در کتاب معروف راسل اومده.

منظور از خط آخر اینه که یک عدد تصادفی بین ۰ تا ۱ تولید کنید اگر حاصل از [tex]_e\frac{\bigtriangleup E}{T}[/tex] کمتر بود انتساب انجام بشه وگرنه انجام نشه.
باز بستگی به مسئله تون داره ولی من خیلی وقت پیش از این تابع استفاده کردم و دقیق خاطرم نیست اما فکر می کنم برای برخی توابع بنچمارک چندمتغیره نتایج خوبی رو با همین تابع پایه داشتم.
سلام کتاب راسل را خوانده ام و منظورم تابع تصمیم گیری نبود منظورم تابع دما بود که چی بذاریم

بله ببخشید. درست میگید.
(19 اردیبهشت 1395 08:27 ب.ظ)davood_2016 نوشته شده توسط: [ -> ]بله ببخشید. درست میگید.

خواهش می کنم
لینک مرجع