گردونه رو بچرخون و شانس خودت رو برای گرفتن کد تخفیف امتحان کن!

چرخه رولت
روز
ساعت
دقیقه
ثانیه

با خرید اشتراک ویژه ، با هزینه بسیار کمتر به فایل های پاورپوینت دسترسی داشته باشید!

مقایسه الگوریتم های بهینه سازی در متلب

در این پست سورس کدی برای شما آماده کرده‌‍ایم که به مقایسه و تحلیل الگوریتم‌های بهینه سازی در متلب می‌پردازد. به طور قاطع نمی‌توان گفت برای حل یک مسئله کدام الگوریتم بهینه سازی یا متاهیورستیک مناسب است و فقط با مقایسه نتایج می‌توان ادعا کرد کدام الگوریتم روش بهتری را ارائه می‌کند. در ادامه به مقایسه 12 الگوریتم بهینه سازی می‌پردازیم.

(دیدگاه کاربر 3)
امتیاز 5.00 از 5

برنامه‌نویس: 

هزینه سفارش:

تخفیف ویژه 60 درصدی

قیمت اصلی: ۲۵۹,۰۰۰ تومان بود.قیمت فعلی: ۱۰۳,۶۰۰ تومان.

تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.

در این پست سورس کدی برای شما آماده کرده‌ایم که به مقایسه الگوریتم های بهینه سازی در متلب می‌پردازد. شاید مهم‌ترین سوال و دغدغه اکثر محققان در استفاده از الگوریتم‌های بهینه سازی و مخصوصاً الگوریتم‌های فرا ابتکاری یا Metaheuristic، انتخاب یک الگوریتم مناسب برای حل مسئله است. به طور قاطع نمی‌توان گفت برای حل یک مسئله کدام الگوریتم بهینه سازی یا متاهیورستیک مناسب است و فقط با مقایسه نتایج می‌توان ادعا کرد کدام الگوریتم روش بهتری را ارائه می‌کند. در ادامه به مقایسه ۱۲ الگوریتم بهینه سازی می‌پردازیم.

فرآیند بهینه ­سازی در مقایسه الگوریتم های بهینه سازی در متلب

هدف از الگوریتم‌های بهینه سازی یافتن یک جواب قابل قبول، با توجه به محدودیت‌ و نیاز مسئله است. در تعیین جواب یک مسئله، ممکن است جواب‌های مختلفی برای آن وجود داشته باشد. برای مقایسه جواب‌های یک مسئله و انتخاب جواب بهینه، تابعی به نام تابع هدف یا تابع هزینه که Cost Function نیز نامیده می‌شود، تعریف می‌شود. انتخاب این تابع به ماهیت مسئله وابسته است. به عنوان مثال، زمان یا هزینه از جمله اهداف رایج بهینه‌سازی شبکه‌های حمل و نقل است.

فرآیند بهینه سازی بطور کلی در چهار مرحله فرموله کردن، مدل سازی، بهینه سازی و استقرار مسئله انجام می‌شود که در ادامه به توضیح هر یک از این مراحل پرداخته می‌شود.

فرموله کردن مسئله

در این مرحله، یک مسئله‌­ی تصمیم ­گیری، همراه با یک ساختار کلی از آن تعریف می‌شود. این ساختار کلی ممکن است خیلی دقیق نباشد اما وضعیت کلی مسئله را، که شامل فاکتورهای ورودی و خروجی و اهداف مسئله است، بیان می­‌کند. شفاف­ سازی و ساختاردهی به مسئله، ممکن است برای بسیاری از مسایل بهینه­ سازی، کاری پیچیده باشد.

مدل­ سازی مسئله

در این مرحله یک مدل ریاضی کلی برای مسئله، ساخته می­‌شود. مدل­سازی ممکن است از مدل­‌های مشابه در پیشینه ‌ی موضوع کمک بگیرد. این گام موجب تجزیه مسئله به یک یا چند مدل بهینه‌سازی می­‌گردد.

بهینه­ سازی مسئله

پس از مدل سازی مسئله، روال حل، یک راه ­حل خوب برای مسئله تولید می­‌کند. این راه‌حل ممکن است بهینه یا تقریباً بهینه باشد. نکته‌­ای که باید به آن توجه داشت این است که راه ­حل به دست آمده، راه­ حلی برای مدل طراحی شده است، نه برای مسئله‌­ی واقعی. در هنگام فرموله کردن و مدلسازی ممکن است تغییراتی در مسئله واقعی به وجود آمده و مسئله­‌ی جدید، نسبت به مسئله­‌ی واقعی تفاوت زیادی داشته باشد.

استقرار مسئله

راه ­حل به دست آمده توسط تصمیم گیرنده بررسی می­‌شود و در صورتی که قابل قبول باشد، مورد استفاده قرار می­‌گیرد و در صورتی که راه­حل قابل قبول نباشد، مدل یا الگوریتم بهینه­ سازی باید توسعه داده شده و فرایند بهینه­ سازی تکرار گردد.

مقایسه الگوریتم ها

در سورس کدی که در متلب برای شما آماده شده است به مقایسه ۱۲ الگوریتم بهینه سازی و نتایج حاصل از آنها پرداخته شده است. این الگوریتم‌ها مبتنی بر جمعیت یا population based بوده که با الهام گیری از طبیعت و محیط پیرامون ما اقدام به حل مسئله می‌کنند. این الگوریتم‌ها عبارتند از:

  • الگوریتم ژنتیک GA
  • الگوریتم ازدحام ذرات PSO
  • الگوریتم کلونی مورچگان ACO
  • الگوریتم زنبور عسل مصنوعی BEE
  • الگوریتم استراتژی تکاملی انطباق ماتریس کوواریانس CMA-ES
  • الگوریتم تفاضل تکاملی DE
  • الگوریتم کرم شب تاب FA
  • الگوریتم جهش قورباغه SFLA
  • الگوریتم رقابت استعماری ICA
  • الگوریتم گرگ خاکستری GWO
  • الگوریتم وال یا نهنگ WOA
  • الگوریتم شمع و پروانه MFO

برای مقایسه عملکرد الگوریتم‌های فوق از ۲۳ تابع تست یا تابع محک استفاده کرده‌ایم. توابع زیادی برای تست عملکرد الگوریتم‌های بهینه سازی وجود دارد که در اینجا ما به این ۲۳ تابع اکتفا کرده‌ایم. همچنین لازم به ذکر است که برای اجرای الگوریتم بهینه سازی روی مسئله مورد نظر تابع هزینه یا Cost Function آن تغییر خواهد کرد و بقیه الگوریتم دست نخورده باقی می‌ماند.

قسمتی از سورس کد

clc
close all
clear

addpath('GA');
addpath('PSO');
addpath('ACO');
addpath('BEE');
addpath('CMA-ES');
addpath('DE');
addpath('FA');
addpath('GWO');
addpath('ICA');
addpath('SFLA');
addpath('WOA');
addpath('MFO');

SearchAgents_no=30; % Number of search agents
Function_name='F5'; % Name of the test function that can be from F1 to F23 
Max_iteration=1000; % Maximum numbef of iterations

% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
Positions=initialization(SearchAgents_no,dim,ub,lb);

[Best_SolGA,GA_cg_curve]=GA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolPSO,PSO_cg_curve]=PSO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolACO,ACO_cg_curve]=ACO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolBEE,BEE_cg_curve]=BEE(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_Solcmaes,cmaes_cg_curve]=cmaes(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolDE,DE_cg_curve]=DE(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolFA,FA_cg_curve]=FA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolICA,ICA_cg_curve]=ICA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolSFLA,SFLA_cg_curve]=SFLA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_scoreGWO,Best_posGWO,GWO_cg_curve]=GWO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_scoreWOA,Best_posWOA,WOA_cg_curve]=WOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_scoreMFO,Best_posMFO,MFO_cg_curve]=MFO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);


%Draw objective space
semilogy(GA_cg_curve,'Color','[0 0 0]','LineWidth',2)
hold on;
semilogy(PSO_cg_curve,'Color','[0 0 1]','LineWidth',2)
semilogy(ACO_cg_curve,'Color','[0 1 0]','LineWidth',2)
semilogy(BEE_cg_curve,'Color','[0 1 1]','LineWidth',2)
semilogy(cmaes_cg_curve,'Color','[1 0 0]','LineWidth',2)
semilogy(DE_cg_curve,'Color','[1 0 1]','LineWidth',2)
semilogy(FA_cg_curve,'Color','[1 1 0]','LineWidth',2)
semilogy(ICA_cg_curve,'--','Color','[0 0 1]','LineWidth',2)
semilogy(SFLA_cg_curve,'--','Color','[0 1 0]','LineWidth',2)
semilogy(GWO_cg_curve,'--','Color','[0 1 1]','LineWidth',2)
semilogy(WOA_cg_curve,'--','Color','[1 0 0]','LineWidth',2)
semilogy(MFO_cg_curve,'--','Color','[1 0 1]','LineWidth',2)


xlabel('Iteration');
ylabel('Best score obtained so far');

grid on
legend('GA','PSO','ACO','BEE','CMA-ES','DE','FA','ICA','SFLA','GWO','WOA','MFO','Location','bestoutside')

تصاویر خروجی

مقایسه الگوریتم های بهینه سازی

 

مقایسه الگوریتم های بهینه سازیدرباره سورس کد مقایسه الگوریتم های بهینه سازی

سورس کد مقایسه الگوریتم های بهینه سازی در متلب در محیط Matlab 2017b نوشته و اجرا شده است. این سورس کد توسط تیم پشتیبانی پی استور تست و اجرا شده است. کیفیت اثر توسط پی استور تضمین می‌شود و دارای نشان تضمین کیفیت پی استور می‌باشد. برای دانلود اثر مذکور آن را خریداری فرمایید به محض خرید لینک دانلود در دسترس خواهد بود.

معرفی و نحوه اجرا

ویدئوی نحوه اجرا

مشخصات تکمیلی سورس کد

نام اثر: مقایسه الگوریتم های بهینه سازی در متلب
نوع اثر: سورس کد
برنامه‌نویس: تیم برنامه‌نویسی پی‌استور
زبان برنامه نویسی: Matlab
ویژگی: قابل دانلود و ویرایش

راهنمای خرید و ثبت سفارش

تصویر مراحل خرید از پی استور

اگر در مورد این اثر یا نحوه تهیه آن سوالی دارید؟
  • با شماره تلفن واحد مخاطبین 44225175 (پیش شماره 041) تماس بگیرید. – تمام ساعات اداری
  • با ما مکاتبه ایمیلی داشته باشید (این لینک). – تمام ساعات

برنامه‌نویس:  تیم برنامه‌نویسی پی‌استور

متشکل از اساتید و فارغ التحصیلان رشته‌های فنی - مهندسی

تیم برنامه نویسی پی استور یکی از اولین گروه‌های تشکیل شده در مجموعه آموزشی پی استور می‌باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته‌های فنی و مهندسی تشکیل شده که در زمینه‌های مختلف برنامه‌نویسی و تهیه سورس کد فعال هستند.

نظرات

3 نظر|5.00 (میانگین امتیاز کاربران)

  1. آواتار علی

    علی

    سلام و خسته نباشید
    ممنون بابت مطالب مفیدی که قرار می‌دهید
    سوالی داشتم؛ برای الگوریتم‌های بهینه سازی که بیان شده فرمول‌های ریاضی ارائه دادند. چگونه این فرمول‌های ریاضی رو بدست می‌اورند؟

    • آواتار مدیریت و پشتیبانی

      مدیریت و پشتیبانی

      سلام و وقت بخیر
      اکثر کارهایی که ما در پیرامون خود می بینیم به طور نظام مند و تکراری در حال انجام هستند مانند کوچ پرندگان، شکار حیوانات، پدیده های طبیعی و غیره. بر همین اساس می توان یک سیستم منظم را فرموله کرد. در ریاضیات، فیزیک و زیست شناسی و دیگر علوم الگوهایی که از قبل کشف و اثبات شده اند که توسط افراد صاحب نظر انجام شده است. به عنوان نمونه تعیین فاصله بین دو نقطه در محیط دوبعدی توسط رابطه فیثاغورث می تواند انجام شود و این فرمول توسط آقای فیثاغورث اثبات شده است. حالا با فرمول های اثبات شده علوم دیگر می توان رفتارهای طبیعی موجودات و اجرام و غیره را شبیه سازی کرد. حالا چطور؟ این همان چیزی هست که یک نفر یا یک تیم سال ها مطالعه و تحقیق می کنه تا این الگوبرداری رو به شکل ریاضی بیان کنه.

  2. آواتار مجید

    مجید

    باسلام
    لطفا مرجع اصلی این مقاله را لطف میکنید ؟

    سپاس

    • آواتار مدیریت و پشتیبانی

      مدیریت و پشتیبانی

      سلام
      مجید عزیز این محصول پیاده سازی مقاله نیست. ما چند الگوریتم بهینه سازی مهم رو کنار هم گذاشتیم و با ۲۳ تابع محک آنها را باهم مقایسه کردیم. از خود این محصول میشه مقاله نوشت.

  3. آواتار مدیریت و پشتیبانی

    مدیریت و پشتیبانی

    نظرات و پیشنهادات خود را با ما در میان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شناسه اثر: 7082 دسته‌بندی موضوعی: برچسب ,

هزینه سفارش:

تخفیف ویژه 60 درصدی

قیمت اصلی: ۲۵۹,۰۰۰ تومان بود.قیمت فعلی: ۱۰۳,۶۰۰ تومان.