در این پست حل فروشنده دوره گرد با الگوریتم جغرافیای زیستی BBO در متلب قرار داده شده است. الگوریتم بهینه سازی مبتنی بر جغرافیای زیستی یا همان الگوریتم BBO در سال 2008 توسط Dan Simon در ژورنال IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, VOL. 12, NO. 6, DECEMBER 2008 مطرح شد. در این الگوریتم، از چگونگی انتشار گونه های جانداران در زیستگاه های متعدد الهام گرفته شده است. در ادامه به تشریح حل مسئله فروشنده دوره گرد TSP با الگوریتم Biogeography Based Optimization به اختصار BBO در متلب پرداخته خواهد شد.
برنامهنویس: تیم برنامه نویسی پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.
الگوریتم بهینه سازی مبتنی بر جغرافیای زیستی BBO
الگوریتم BBO یک الگوریتم مبتنی بر جمعیت است و جزو الگوریتم های بهینه سازی و فرا ابتکاری که از چگونگی انتشار گونه های جانداران در زیست گاه های متعدد الهام گرفته شده است. با ارائه مدلی احتمالی برای چگونگی مهاجرت گونه های مختلف در زیستگاه ها، مدل ریاضی استخراج شده است که نهایتا منجر به ایجاد مدل بهینه سازی جدیدی می شود که در الگوریتم بهینه سازی مبتنی بر جغرافیای زیستی استفاده شده است. در ادامه توضیحاتی درباره الگوریتم داده می شود. الگوریتم بهینه سازی مبتنی بر جغرافیای زیستی یا همان الگوریتم BBO در سال 2008 توسط Dan Simon مطرح شد.
در این الگوریتم، از چگونگی انتشار گونه های جانداران در زیستگاه های متعدد الهام گرفته شده است. با ارائه مدلی احتمالی برای چگونگی مهاجرت گونه در زیستگاه ها، مدل ریاضی استخراج شده است که نهایتاً منجر به ایجاد مدل بهینه سازی جدیدی شده است که در BBO استفاده شده است.
الگوریتم جغرافیای زیستی یک روش تکاملی مبتنی بر جمعیت یا population based می باشد که از پدیده مهاجرت حیوانات و پرندگان بین مکان های مختلف الهام گرفته شده است. در حقیقت، جغرافیای زیستی مطالعه نحوه توزیع جغرافیایی گونه های مختلف جانوری می باشد. در این روش جزایری که مکان مناسبی برای زیست باشند دارای شایستگی بالا برای اسکان هستند که از ویژگی های بارندگی، تنوع گیاهی، خاک منطقه، دما و … تبعیت می کنند. در این روش هر زیستگاه دارای نرخ مهاجرت به داخل و نرخ مهاجرت به خارج متفاوت می باشند که فرایند جستجو برای جواب بهینه را کنترل می کنند.
مسئله فروشنده دورگرد TSP
مساله فروشنده دوره گرد Travelling salesman problem یا به اختصار TSP مساله اي است که شرح آن خيلي آسان مي باشد. تعريف آن بدين صورت است که تعداد متناهي شهر با هزينه پيمايش بين هر جفت از آنها داده مي شود و هدف مساله اين است که يک فروشنده دوره گرد تمامي اين شهرها را به گونه اي ملاقات کند که هر يک از اين شهرها را فقط يک بارملاقات کرده و دوباره به شهر آغازين برگردد با اين شرط که با کمترين هزينه پيمايش اين کار را انجام دهد.
به طور کلي هدف پيدا کردن کم هزينه ترين تور براي ملاقات همه شهرها و بازگشت به شهر آغازين حرکت است. مساله فروشنده دوره گرد در شکل ساده و اختصاري با نام TSP شناخته مي شود. شکل 3- 1 يک نمونه جواب از مساله فروشنده دوره گرد که در سال 1591 براي 15 شهر از کشور آمريکا مطرح شد را نشان مي دهد که با روش شاخه وحد حل شد.
سورس کد حل مسئله فروشنده دوره گرد TSP با الگوریتم BBO در متلب
در این قسمت سورس برنامه حل مسئله فروشنده دوره گرد TSP با الگوریتم بهینه سازی مبتنی بر جغرافیای زیستی BBO در متلب آماده شده است این سورس کد شامل 5 فایل می باشد که عبارتند از:
- main.m: فایل اصلی برنامه است و فراخوانی دیگر توابع و مقادیر پارامتر ها و الگوریتم BBOدر داخل این فایل قرار دارد.
- CreateModel.m: برای ایجاد شهرهای فاصله و مختصات هر یک از شهرها از این تابع استفاده می شود.
function model=CreateModel() x=[82 91 12 92 63 9 28 55 96 97 15 98 96 49 12 92 63 9 28 55 96 97 15 98 80 14 42 92 80 96]; y=[12 92 63 9 28 55 96 97 15 98 66 3 85 94 68 76 75 39 66 17 71 3 27 4 9 83 70 32 95 3]; n=numel(x); D=zeros(n,n); for i=1:n-1 for j=i+1:n D(i,j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2); D(j,i)=D(i,j); end end model.n=n; model.x=x; model.y=y; model.D=D; end
- PlotSolution.m: برای رسم مسیر های بین شهرها از این تابع استفاده می شود.
function PlotSolution(tour,model) tour=[tour tour(1)]; plot(model.x(tour),model.y(tour),'k-s',... 'MarkerSize',12,... 'MarkerFaceColor','y',... 'LineWidth',2); end
- TourLength.m: این تابع برای محاسبه طول مسیرهای یک تور یا یک پیمایش کامل شهرها بکار می رود.
function [z sol]=MyCost(s,model) d=model.d; [~, tour]=sort(s); sol.tour=tour; n=numel(tour); tour=[tour tour(1)]; L=0; for i=1:n L=L+d(tour(i),tour(i+1)); end sol.L=L; z=L; end
- RouletteWheelSelection.m: این تابع برای انتخاب احتمال مهاجرت با استفاده از چرخه رولت استفاده می شود.
برای دریافت سورس کامل محصول لطفا آن را خریداری کنید.
تصاویر خروجی حل فروشنده دوره گرد با الگوریتم BBO
ویدئوی معرفی
درباره محصول
سورس کد حل فروشنده دوره گرد با الگوریتم جغرافیای زیستی BBO در متلب عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در نرم افزار متلب نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.
مباحث مرتبط با الگوریتم BBO
مباحث مرتبط با حل مسئله فروشنده دوره گرد
تاریخ انتشار: | 6 فروردین 1399 |
---|---|
تاریخ بروزرسانی: | 15 مرداد 1400 |
حجم فایل: | 3 کیلوبایت |
فرمت فایل | m. |
هماهنگی با: | متلب 2017 و بالاتر |
سفارش تدریس: | توضیحات تکمیلی |
تاکنون 332 نفر این محصول را تهیه کرده اند و 1 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 49,000 تومان
تاریخ انتشار: | 6 فروردین 1399 |
---|---|
تاریخ بروزرسانی: | 15 مرداد 1400 |
حجم فایل: | 3 کیلوبایت |
فرمت فایل | m. |
هماهنگی با: | متلب 2017 و بالاتر |
سفارش تدریس: | توضیحات تکمیلی |
1 بازخورد (مشاهده نظرات)
قیمت: 49,000 تومان
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.