
سورس کد الگوریتم تکاملی تفاضلی برای حل مسئله فروشنده دوره گرد TSP در متلب
سورس کد الگوریتم تکاملی تفاضلی برای TSP یا حل مسئله فروشنده دوره گرد عنوان موضوعی است که در این پست به آن پرداخته شده است. الگوریتم تکاملی تفاضلی (Differential Eevolution Algorithm) یا الگوریتم DE یک الگوریتم بهینه سازی است و مشابه اساس الگوی الگوریتم ژنتیک کار می کند. این الگوریتم یک الگوریتم تکاملی است که اولین بار در سال 1995 توسط Rainer Storn و Kenneth Price معرفی شد.
الگوریتم DE توانایی خوبی در بهینه سازی توابع غیرخطی مشتق ناپذیر دارد که به عنوان روشی قدرتمند و سریع برای مسائل بهینه سازی در فضاهای پیوسته معرفی شده است. در ادامه توضیحات مختصری در رابطه با الگوریتم تکاملی تفاضلی و مسئله فروشنده دوره گرد ارائه می شود.
الگوریتم تکاملی تفاضلی Differential Eevolution Algorithm
الگوریتم DE جهت غلبه بر عیب اصلی الگوریتم ژنتیک، یعنی نبود جستجوی محلی دراین الگوریتم ارائه شده است، تفاوت اصلی بین الگوریتم های ژنتیک و الگوریتم DE در عملگر انتخاب Selection Operators است. در عملگر انتخاب الگوریتم GA ،شانس انتخاب یک جواب به عنوان یکی از والدین وابسته به مقدار شایستگی آن می باشد، اما در الگوریتم DE همه جواب ها دارای شانس مساوی جهت انتخاب شدن می باشند.
یعنی شانس انتخاب شدن، وابسته به مقدار شایستگی آنها نمی باشد، پس از این که یک جواب جدید با استفاده از یک عملگر جهش mutation و عملگر crossover تولید شد، جواب جدید با مقدار قبلی مقایسه می شود و در صورت بهتر بودن جایگزین می گردد.
در الگوریتم تکاملی تفاضلی بر خلاف دیگر الگورتیم ها که اول عملگر crossover و سپس عملگر mutation انجام می شود به گونه ای که ابتدا عملگر جهش اعمال شده و سپس عملگر crossover اعمال می شود تا بدین وسیله نسل جدید ایجاد گردد. برای اعمال عملگر mutation از توزیع خاصی استفاده نمی شود بلکه طول گام جهش برابر با مقدار از فاصله میان اعضای فعلی تعیین می شود.
برای درک الگوریتم تکاملی تفاضلی توضیح کامل این الگوریتم را می توانید در همین سایت از مقاله ای کامل تحت عنوان الگوریتم تکاملی تفاضلی Differential Eevolution Algorithm مطالعه فرمایید.
مسئله فروشنده دورگرد TSP
مساله فروشنده دوره گرد Travelling salesman problem یا به اختصار TSP مساله اي است که شرح آن خيلي آسان مي باشد. تعريف آن بدين صورت است که تعداد متناهي شهر با هزينه پيمايش بين هر جفت از آنها داده مي شود و هدف مساله اين است که يک فروشنده دوره گرد تمامي اين شهرها را به گونه اي ملاقات کند که هر يک از اين شهرها را فقط يک بارملاقات کرده و دوباره به شهر آغازين برگردد با اين شرط که با کمترين هزينه پيمايش اين کار را انجام دهد.
به طور کلي هدف پيدا کردن کم هزينه ترين تور براي ملاقات همه شهرها و بازگشت به شهر آغازين حرکت است. مساله فروشنده دوره گرد در شکل ساده و اختصاري با نام TSP شناخته مي شود. شکل زیر يک نمونه جواب از مساله فروشنده دوره گرد که در سال 1591 براي 15 شهر از کشور آمريکا مطرح شد را نشان مي دهد که با روش شاخه و حد حل شد.
سور س حل مسئله فروشنده دوره گرد TSP با الگوریتم DE در متلب
در این قسمت سورس برنامه حل مسئله فروشنده دوره گرد TSP با الگوریتم تکاملی تفاضلی DEدر متلب آماده شده است این سورس کد شامل 4 فایل می باشد که عبارتند از:
- DE.m: فایل اصلی برای اجرای الگوریتم می باشد و بقیه فراخوانی ها از این قسمت انجام می شود.
- CreateModel.m: مختصات شهرها و تعداد و فاصله آنها در این تابع تعریف و ایجاد می شود.
- PlotSolution.m: رسم چگونگی اتصال شهرها یا نشان دادن جواب مسئله در این تابع انجام می شود.
- TourLength.m: تابع هزینه یا Cost Function می باشد و عبارت است از طول مسیرهای یک جواب.
قسمتی از سورس کد مربوط به DE.m در اینجا نوشته شده است.
clc; clear; close all; %% Problem Definition model=CreateModel(); % Create Problem Model [email protected](tour) TourLength(tour,model); nVar=model.n; % Number of Decision Variables VarSize=[1 nVar]; % Decision Variables Matrix Size VarMin=-5; % Lower Bound of Decision Variables VarMax= 5; % Upper Bound of Decision Variables %% DE Parameters MaxIt=1000; % Maximum Number of Iterations nPop=100; % Population Size beta_min=0.3; % Lower Bound of Scaling Factor beta_max=0.7; % Upper Bound of Scaling Factor pCR=0.3; % Crossover Probability %% Initialization empty_individual.Position=[]; empty_individual.Cost=[]; BestSol.Cost=inf; pop=repmat(empty_individual,nPop,1); for i=1:nPop pop(i).Position=unifrnd(VarMin,VarMax,VarSize); [~,sol]=sort(pop(i).Position); pop(i).Cost=CostFunction(sol); if pop(i).Cost<BestSol.Cost BestSol=pop(i); end end
تصاویر خروجی الگوریتم تکاملی تفاضلی برای TSP
ویدئوی معرفی محصول
درباره الگوریتم تکاملی تفاضلی برای TSP
سورس کد الگوریتم تکاملی تفاضلی برای حل مسئله فروشنده دوره گرد TSP در متلب عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در نرم افزار Matlab نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید بلافاصله پس از خرید لینک دانلود در دسترس خواهد بود.
تاریخ انتشار: | 15 فروردین 1398 |
---|---|
تاریخ بروزرسانی: | 8 شهریور 1398 |
حجم فایل: | 2.2 کیلوبایت |
فرمت فایل | m. در قالب متلب |
نسخه: | 1.0 |
لایسنس: | ندارد |
هماهنگی با: | Matlab 2009 و بالاتر |
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- دیدگاه های فینگلیش تایید نخواهند شد.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- امتیاز دادن به محصول فقط مخصوص اعضای سایت می باشد.
قیمت 29,000 تومان
سورس برنامه در نرم افزار Matlab نوشته شده و بلافاصله پس از خرید، لینک دانلود محصول در اختیار شما قرار خواهد گرفت.
با خرید این محصول از مزایای زیر بهرهمند میشوید:
- دسترسی به فایل محصول به صورت مادامالعمر
- ۶ ماه پشتیبانی کاملا رایگان و تضمین شده
تاریخ انتشار: | 15 فروردین 1398 |
---|---|
تاریخ بروزرسانی: | 8 شهریور 1398 |
حجم فایل: | 2.2 کیلوبایت |
فرمت فایل | m. در قالب متلب |
نسخه: | 1.0 |
لایسنس: | ندارد |
هماهنگی با: | Matlab 2009 و بالاتر |
قیمت: 29,000 تومان
programstore
نظرات و دیدگاه های خود را با ما در میان بگذارید.