در این پست سورس کد الگوریتم شبیه ساز حرارتی SA برای حل مسئله فروشنده دوره گرد TSP در متلب قرار داده شده است. این سورس کد با استفاده از ساز و کارهای الگوریتم شبیه ساز حرارتی SA برای حل مسئله فروشنده دوره گرد مورد استفاده قرار گرفته است. این سورس کد به صورت واضح و روان می تواند برای سایر مسائل استفاده گردد فقط بایستی تابع هزینه و مدل آن منطبق بر مسئله باشد. این سورس کد برای دانشجویان و محققان در زمینه الگوریتم های فرا اکتشافی و حل مسائل NP-Hard مفید و سودمند است. در ادامه به تشریح الگوریتم و حل مسئله می پردازیم.
برنامهنویس: تیم برنامه نویسی پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.
الگوریتم شبیه ساز حرارتی SA
الگوریتم شبیهساز حرارتی (Simulated Annealing) (SA) یا تبرید شبیه سازی شده، یک الگوریتم بهینهسازی فرا ابتکاری ساده و اثربخش در حل مسائل بهینهسازی است. منشأ الگوریتم تبرید شبیهسازیشده، کارهای کریک پاتریک و کرنی و همکارانشان در سالهای ۱۹۸۳ و ۱۹۸۵ است.
این تکنیک شامل قرار دادن ماده در دمای بالا و سپس کم کردن تدریجی این دماست. در روش شبیهساز حرارتی (SA)، هر نقطه s در فضای جستجو مشابه یک حالت از یک سیستم فیزیکی است و تابع (E(s که باید کمینه شود، مشابه با انرژی داخلی سیستم در آن حالت است.
در این روش، هدف انتقال سیستم از حالت اولیه دلخواه، به حالتی است که سیستم در آن کمترین انرژی را داشته باشد. برای حل یک مسئله بهینهسازی، الگوریتم SA ابتدا از یک جواب اولیه شروع میکند و سپس در یک حلقه تکرار به جوابهای همسایه حرکت میکند. اگر جواب همسایه بهتر از جواب فعلی باشد، الگوریتم آن را بهعنوان جواب فعلی قرار میدهد (به آن حرکت میکند)، در غیر این صورت، الگوریتم آن جواب را با احتمال exp(-ΔE/T) بهعنوان جواب فعلی میپذیرد.
در این رابطه ΔE تفاوت بین تابع هدف جواب فعلی و جواب همسایه است و T یک پارامتر به نام دما است. در هر دما، چندین تکرار اجرا میشود و سپس دما بهآرامی کاهش داده میشود. در گامهای اولیه دما خیلی بالا قرار داده میشود تا احتمال بیشتری برای پذیرش جوابهای بدتر وجود داشته باشد.
با کاهش تدریجی دما، در گامهای پایانی احتمال کمتری برای پذیرش جوابهای بدتر وجود خواهد داشت و بنابراین الگوریتم به سمت یک جواب خوب همگرا میشود. فلوچارت زیر نحوه اجرای الگوریتم شبیه ساز حرارتی را نشان می دهد.
مسئله فروشنده دورگرد TSP
مساله فروشنده دوره گرد Travelling salesman problem یا به اختصار TSP مساله اي است که شرح آن خيلي آسان مي باشد. تعريف آن بدين صورت است که تعداد متناهي شهر با هزينه پيمايش بين هر جفت از آنها داده مي شود و هدف مساله اين است که يک فروشنده دوره گرد تمامي اين شهرها را به گونه اي ملاقات کند که هر يک از اين شهرها را فقط يک بارملاقات کرده و دوباره به شهر آغازين برگردد با اين شرط که با کمترين هزينه پيمايش اين کار را انجام دهد.
به طور کلي هدف پيدا کردن کم هزينه ترين تور براي ملاقات همه شهرها و بازگشت به شهر آغازين حرکت است. مساله فروشنده دوره گرد در شکل ساده و اختصاري با نام TSP شناخته مي شود. شکل زیر يک نمونه جواب از مساله فروشنده دوره گرد که در سال 1591 براي 15 شهر از کشور آمريکا مطرح شد را نشان مي دهد که با روش شاخه وحد حل شد.
سورس حل مسئله فروشنده دوره گرد TSP با الگوریتم SA در متلب
در این قسمت سورس برنامه حل مسئله فروشنده دوره گرد TSP با الگوریتم شبیه ساز حرارتی SA در متلب آماده شده است این سورس کد شامل 10 فایل می باشد که عبارتند از:
ویدئوی معرفی محصول
درباره این سورس کد
مباحث مرتبط در زمینه حل مسئله فروشنده دوره گرد TSP با الگوریتم های متاهیوریستیک
مباحث پیشنهادی برای شما
تاریخ انتشار: | 2 مرداد 1397 |
---|---|
تاریخ بروزرسانی: | 25 آذر 1397 |
حجم فایل: | 3.8 کیلوبایت |
فرمت فایل | m. |
هماهنگی با: | متلب 2017 و بالاتر |
سفارش تدریس: | توضیحات تکمیلی |
تاکنون 331 نفر این محصول را تهیه کرده اند و 3 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 49,000 تومان
تاریخ انتشار: | 2 مرداد 1397 |
---|---|
تاریخ بروزرسانی: | 25 آذر 1397 |
حجم فایل: | 3.8 کیلوبایت |
فرمت فایل | m. |
هماهنگی با: | متلب 2017 و بالاتر |
سفارش تدریس: | توضیحات تکمیلی |
3 بازخورد (مشاهده نظرات)
قیمت: 49,000 تومان
فاطمه
روش نمایش جواب permutation هست؟
مدیریت و پشتیبانی
سلام
بله نمایش جواب (شهرها) در الگوریتم SA به صورت جایگشتی یا همان permutation هست.
پرسپولیس
من کد الگوریتم رو از چند سایت برداشته بودم ولی نمی دونم چرا اجرا نمی شد ولی بعد دانلود از سایت اجرا شد فقط کاش پولی نبود
سحر
خوب بود مرسی