دانلود رایگان کد متلب نسخه دوم الگوریتم ژنتیک با مرتب سازی نا مغلوب یا NSGA-II
مسائل بهینه سازی از نظر تعداد توابع هدف و معیارهای بهینه سازی، به دو نوع تقسیم پذیر هستند: (۱) مسائل بهینه سازی تک هدفه و (۲) مسائل بهینه سازی چند هدفه. در مسائل بهینه سازی تک هدفه، هدف از حل مسأله بهبود یک شاخص عملکرد (Performance Index) یگانه است که مقدار کمینه یا بیشینه آن، کیفیت پاسخ به دست آمده را به طور کامل منعکس می کند. اما در برخی موارد، نمی توان صرفا با اتکا به یک شاخص، یک پاسخ فرضی برای مسأله بهینه سازی را امتیازدهی نمود. در این نوع مسائل، ناگزیریم که چندین تابع هدف یا شاخص عملکرد را تعریف نماییم و به طور همزمان، مقدار همه آن ها را بهینه کنیم.
بهینه سازی چند هدفه، یکی از زمینه های بسیار فعال و پرکاربرد تحقیقاتی در میان مباحث بهینه سازی است. غالبا بهینه سازی چند هدفه (یا Multi-objective Optimization) به نام های بهینه سازی چند معیاره (یا Multi-criteria Optimization) و بهینه سازی برداری (یا Vector Optimization) نیز شناخته می شود. تا کنون، روش های متعددی برای حل مسائل بهینه سازی چند هدفه معرفی شده اند که از میان آن ها، روش های بهینه سازی هوشمند (الگوریتم های تکاملی) جایگاه ویژه ای دارند. زیرا اغلب، بر خلاف روشهای کلاسیک در ریاضیات کاربردی، مسائل بهینه سازی چندهدفه را به همان شکل که هستند، مورد حل قرار می دهند و از تبدیلات هندسی و مشابه آن استفاده نمی کنند. البته اخیرا روش های بهینه سازی هوشمندی نیز ارائه شده اند که از ایده های موجود در ریاضیات کاربردی (مانند تجزیه چبیشف یا Tchebycheff Decomposition) بهره می برند. از میان الگوریتم های تکاملی و هوشمند که برای حل مسائل بهینه سازی چند هدفه ارائه شده اند، می توان به موارد زیر اشاره نمود:
- الگوریتم ژنتیک چند هدفه یا Multi-objective Genetic Algorithm (به اختصار MOGA)
- الگوریتم ژنتیک با ارزیابی برداری یا Vector Evaluated Genetic Algorithm (به اختصار VEGA)
- الگوریتم ژنتیک مبتنی بر نیچینگ (همسایگی) پارتو یا Niched Pareto Genetic Algorithm (به اختصار NPGA)
- الگوریتم ژنتیک با مرتب سازی نا مغلوب یا Non-dominated Sorting Genetic Algorithm (به اختصار NSGA) و نسخه دوم آن NSGA-II
- الگوریتم ژنتیک میکرو یا Micro Genetic Algorithm (به اختصار μGA) و نسخه دوم آن μGA2
- بهینه سازی ازدحام ذرات چند هدفه یا Multi-objective Particle Swarm Optimization (به اختصار MOPSO)
- استراتژی تکاملی با آرشیو پارتو یا Pareto Archived Evolution Strategy (به اختصار PAES)
- الگوریتم انتخاب مبتنی بر الگوی پارتو یا Pareto Envelope-based Selection Algorithm (به اختصار PESA) و نسخه دوم آن PESA-II
- الگوریتم تکاملی مبتنی بر شدت پارتو یا Pareto Strength Evolutionary Algorithm (به اختصار PSEA) و نسخه دوم آن PSEA
- الگوریتم تکاملی چند هدفه مبتنی بر تجزیه یا Multi-objective Evolutionary Algorithm based on Decomposition (به اختصار MOEA/D)
در این پست قصد داریم برنامه آماده متلب برای پیاده سازی نسخه دوم الگوریتم ژنتیک با مرتب سازی نا مغلوب یا NSGA-II را به حضور مخاطبین محترم متلب سایت ارائه نماییم. الگوریتم NSGA-II یکی از پرکاربردترین و قدرتمندترین الگوریتم های موجود برای حل مسائل بهینه سازی چند هدفه است و کارایی آن در حل مسائل مختلف، به اثبات رسیده است. لازم به ذکر است، گروه برنامه نویسان متلب سایت قصد دارد در آینده، کدهای متلب مربوط به الگوریتم های بهینه سازی چند هدفه را در متلب سایت منتشر نماید.
برای آموزش عمیق مباحث تئوری و عملی بهینه سازی چند هدفه،
بسته طلایی فیلم های آموزشی بهینه سازی چند هدفه را به شما پیشنهاد می کنیم.
برای کسب اطلاعات بیشتر بر روی این لینک (+) کلیک کنید.
برای دریافت برنامه و مشاهده اطلاعات تکمیلی، بر روی لینک ادامه مطلب کلیک نمایید.
مسائل بهینه سازی از نظر تعداد توابع هدف و معیارهای بهینه سازی، به دو نوع تقسیم پذیر هستند: (۱) مسائل بهینه سازی تک هدفه و (۲) مسائل بهینه سازی چند هدفه. در مسائل بهینه سازی تک هدفه، هدف از حل مسأله بهبود یک شاخص عملکرد (Performance Index) یگانه است که مقدار کمینه یا بیشینه آن، کیفیت پاسخ به دست آمده را به طور کامل منعکس می کند. اما در برخی موارد، نمی توان صرفا با اتکا به یک شاخص، یک پاسخ فرضی برای مسأله بهینه سازی را امتیازدهی نمود. در این نوع مسائل، ناگزیریم که چندین تابع هدف یا شاخص عملکرد را تعریف نماییم و به طور همزمان، مقدار همه آن ها را بهینه کنیم.
بهینه سازی چند هدفه، یکی از زمینه های بسیار فعال و پرکاربرد تحقیقاتی در میان مباحث بهینه سازی است. غالبا بهینه سازی چند هدفه (یا Multi-objective Optimization) به نام های بهینه سازی چند معیاره (یا Multi-criteria Optimization) و بهینه سازی برداری (یا Vector Optimization) نیز شناخته می شود. تا کنون، روش های متعددی برای حل مسائل بهینه سازی چند هدفه معرفی شده اند که از میان آن ها، روش های بهینه سازی هوشمند (الگوریتم های تکاملی) جایگاه ویژه ای دارند. زیرا اغلب، بر خلاف روشهای کلاسیک در ریاضیات کاربردی، مسائل بهینه سازی چندهدفه را به همان شکل که هستند، مورد حل قرار می دهند و از تبدیلات هندسی و مشابه آن استفاده نمی کنند. البته اخیرا روش های بهینه سازی هوشمندی نیز ارائه شده اند که از ایده های موجود در ریاضیات کاربردی (مانند تجزیه چبیشف یا Tchebycheff Decomposition) بهره می برند. از میان الگوریتم های تکاملی و هوشمند که برای حل مسائل بهینه سازی چند هدفه ارائه شده اند، می توان به موارد زیر اشاره نمود:
- الگوریتم ژنتیک چند هدفه یا Multi-objective Genetic Algorithm (به اختصار MOGA)
- الگوریتم ژنتیک با ارزیابی برداری یا Vector Evaluated Genetic Algorithm (به اختصار VEGA)
- الگوریتم ژنتیک مبتنی بر نیچینگ (همسایگی) پارتو یا Niched Pareto Genetic Algorithm (به اختصار NPGA)
- الگوریتم ژنتیک با مرتب سازی نا مغلوب یا Non-dominated Sorting Genetic Algorithm (به اختصار NSGA) و نسخه دوم آن NSGA-II
- الگوریتم ژنتیک میکرو یا Micro Genetic Algorithm (به اختصار μGA) و نسخه دوم آن μGA2
- بهینه سازی ازدحام ذرات چند هدفه یا Multi-objective Particle Swarm Optimization (به اختصار MOPSO)
- استراتژی تکاملی با آرشیو پارتو یا Pareto Archived Evolution Strategy (به اختصار PAES)
- الگوریتم انتخاب مبتنی بر الگوی پارتو یا Pareto Envelope-based Selection Algorithm (به اختصار PESA) و نسخه دوم آن PESA-II
- الگوریتم تکاملی مبتنی بر شدت پارتو یا Pareto Strength Evolutionary Algorithm (به اختصار PSEA) و نسخه دوم آن PSEA
- الگوریتم تکاملی چند هدفه مبتنی بر تجزیه یا Multi-objective Evolutionary Algorithm based on Decomposition (به اختصار MOEA/D)
در این پست قصد داریم برنامه آماده متلب برای پیاده سازی نسخه دوم الگوریتم ژنتیک با مرتب سازی نا مغلوب یا NSGA-II را به حضور مخاطبین محترم متلب سایت ارائه نماییم. الگوریتم NSGA-II یکی از پرکاربردترین و قدرتمندترین الگوریتم های موجود برای حل مسائل بهینه سازی چند هدفه است و کارایی آن در حل مسائل مختلف، به اثبات رسیده است. لازم به ذکر است، گروه برنامه نویسان متلب سایت قصد دارد در آینده، کدهای متلب مربوط به الگوریتم های بهینه سازی چند هدفه را در متلب سایت منتشر نماید.
اسرینیباس و دِب در سال ۱۹۹۵ روش بهینه سازی NSGA را برای حل مسائل بهینه سازی چند هدفه معرفی نمودند. نکات برجسته ای که در مورد این روش بهینه سازی وجود دارند، عبارتند از:
- جوابی که هیچ جواب دیگری، به طور قطع بهتر از آن نباشد، دارای امتیاز بیشتری است. جواب ها بر اساس این که چند جواب بهتر از آن ها وجود داشته باشند، رتبه بندی و مرتب می شوند.
- شایستگی (برازندگی) برای جواب ها بر حسب رتبه آن ها و عدم غلبه سایر جواب ها، اختصاص می یابد.
- از شیوه اشتراک برازندگی (Fitness Sharing) برای جواب های نزدیک استفاده می شود تا به این ترتیب پراکندگی جواب ها به نحو مطلوبی تنظیم شود و جواب های به طور یکنواخت در فضای جستجو پخش شوند.
با توجه به حساسیت نسبتا زیادی که نحوه عملکرد و کیفیت جواب های الگوریتم NSGA به پارامترهای اشتراک برازندگی و سایر پارامترها دارند، نسخه دوم الگوریتم NSGA با نام NSGA-II توسط دِب و همکارانش در سال ۲۰۰۰ معرفی گردید. ویژگی های عمده این الگوریتم عبارتند از:
- تعریف فاصله تراکمی (Crowding Distance) به عنوان ویژگی جایگزین برای شیوه هایی مانند اشتراک برازندگی
- استفاده از عملگر انتخاب تورنومنت دو-دویی
- ذخیره و آرشیو کردن جواب های نامغلوب که در مراحل قبلی الگوریتم به دست آمده اند (نخبه گرایی)
در الگوریتم NSGA-II از میان جواب های هر نسل، تعدادی از آن ها با استفاده از روش انتخاب تورنمنت دو-دویی انتخاب می شوند. در روش انتخاب دو-دویی، دو جواب به تصادف از میان جمعیت انتخاب می شوند و سپس میان این دو جواب، مقایسه ای انجام می شود و هر کدام که بهتر باشد، نهایتا انتخاب می شود. معیارهای انتخاب در الگوریتم NSGA-II در درجه اول، رتبه جواب و در درجه دوم فاصله تراکمی مربوط به جواب است. هر چه قدر رتبه جواب کمتر باشد و دارای فاصله تراکمی بیشتری باشد، مطلوب تر است.
با تکرار عملگر انتخاب دو-دویی بر روی جمعیت هر نسل، مجموعه ای از افراد آن نسل برای شرکت در تقاطع (Crossover) و جهش (Mutation) انتخاب می شوند. بر روی بخشی از مجموعه افراد انتخاب شده، عمل تقاطع و بر روی بقیه، عمل جهش انجام می شود و جمعیتی از فرزندان و جهش یافتگان ایجاد می شود. در ادامه، این جمعیت با جمعیت اصلی ادغام می شود. اعضای جمعیت تازه تشکیل یافته، ابتدا برحسب رتبه و به صورت صعودی مرتب می شوند. اعضایی از جمعیت که دارای رتبه یکسانی هستند، بر حسب فاصله تراکمی و به صورت نزولی مرتب می شوند. حال اعضای جمعیت در درجه اول بر حسب رتبه، و در درجه دوم بر حسب فاصله تراکمی مرتب سازی شده اند. برابر با تعداد افراد جمعیت اصلی، اعضایی از بالای فهرست مرتب شده انتخاب می شوند و بقیه اعضای جمعیت دور ریخته می شوند. اعضای انتخاب شده جمعیت نسل بعدی را تشکیل می دهند. و چرخه مذکور در این بخش، تا محقق شدن شرایط خاتمه، تکرار می شود.
جواب های نا مغلوب به دست آمده از حل مسأله بهینه سازی چندهدفه، غالبا به نام جبهه پارتو شناخته می شوند. هیچ کدام از جواب های جبهه پارتو، بر دیگری ارجحیت ندارند و بسته به شرایط، می توان هر کدام را به عنوان یک تصمیم بهینه در نظر گرفت.
برای آموزش عمیق مباحث تئوری و عملی بهینه سازی چند هدفه،
بسته طلایی فیلم های آموزشی بهینه سازی چند هدفه را به شما پیشنهاد می کنیم.
برای کسب اطلاعات بیشتر بر روی این لینک (+) کلیک کنید.
لینک دانلود کد متلب NSGA-II در ادامه آمده است. این کدها توسط مهندس سید مصطفی کلامی هریس (دانشجوی دکترای مهندسی برق-کنترل، دانشگاه صنعتی خواجه نصیرالدین طوسی) پیاده سازی شده اند.
لینک دانلود کد متلب نسخه دوم الگوریتم ژنتیک با مرتب سازی نا مغلوب یا NSGA-II
در یکی از پست های پیشین متلب سایت، مخزن بهینه سازی تکاملی یا EMOO (در این لینک) را معرفی نمودیم. مخزن بهینه سازی تکاملی چند هدفه یا EMOO Repository سایتی است که به همت پرفسور کارلوس کوئلو کوئلو (Carlos A. Coello Coello) راه اندازی شده است و مجموعه ای از معتبرترین منابع در مورد بهینه سازی چند هدفه با استفاده از الگوریتم های تکاملی را ارائه می نماید. نشانی سایت اینترنتی EMOO در ادامه آمده است:
http://delta.cs.cinvestav.mx/~ccoello/EMOO
نشانی بخش نرم افزاری این سایت، که حاوی برنامه های آماده مختلفی برای پیاده سازی الگوریتم های بهینه سازی چندهدفه است، در ادامه آمده است:
http://delta.cs.cinvestav.mx/~ccoello/EMOO/EMOOsoftware.html
دو مورد از کدهایی که توسط مهندس کلامی پیاده سازی شده اند، از طریق بخش نرم افزاری مخزن بهینه سازی تکاملی یا EMOO قابل دانلود می باشند. این کدهای آماده، مربوط به پیاده سازی الگوریتم های MOPSO و NSGA-II در محیط متلب می باشند.
مطالب پیشنهادی
مجموعه: الگوریتم ژنتیک, بهینه سازی, بهینه سازی چند هدفه, کدهای آماده برچسب ها: microGA, MOEAD, MOGA, MOPSO, NPGA, NSGA, NSGA-II, NSGA2, PAES, PESA, SPEA, VEGA, الگوریتم ژنتیک, الگوریتم ژنتیک با مرتب سازی نا مغلوب, الگوریتم ژنتیک چند هدفه, بهینه سازی برداری, بهینه سازی تکاملی چند هدفه, بهینه سازی چند معیاره, بهینه سازی چند هدفه, بهینه سازی چند هدفه در متلب, پارتو, دانلود کد آماده, نسخه دوم الگوریتم ژنتیک با مرتب سازی نا مغلوب
سلام
اگر امکانش راجع به الگوریتم زنبور عسل bee algorithm (اگر امکانش بود چند هدفه )مطالبی در سایت بگذارید.
چون سایت مربور به الگوریتم زنبورمشکل داره و نمیتونم کدها و مقالات مربوطه را بگیرم.
باسپاس
در پاسخ ali:
با سلام؛
در آینده نه چندان دور، فیلم های آموزشی جامعی در خصوص تئوری و برنامه نویسی انواع نسخه های الگوریتم زنبورها ارائه خواهیم کرد.
موفق باشید.
سلام
اگر امکانش راجع به الگوریتم زنبور عسل bee algorithm و همچنین جفت گیری زنبور عسل فیلم های اموزشی ذر سایت بگذارید(اگر امکانش بود چند هدفه )
باسپاس
با سلام،
از پیشنهاد شما متشکریم. در مورد الگوریتم زنبور ها فیلم آموزشی موجود می باشد برای دریافت اطلاعات در مورد این فیلم آموزشی کد MVRBA9107 را جستجو نمایید. الگوریتم های دیگر نیز به مرور به موارد آموزشی افزوده خواهند شد.
موفق باشید
با سلام و تشکر. پسورد فایل چیست؟ با https://www.matlabsite.com ارور می دهد
در پاسخ به فرزانه و دوستانی که از لینک های رایگان استفاده می کنند:
با سلام،
پسورد فایل ها، matlabsite.com، بدون www و با حروف کوچک است.
موفق و پیروز باشید.
سلام.کد های متلب که برای nsga نوشته اید برای چه تابع هدفی میباشد؟ ایا این الگوریتم کارا هست؟
در پاسخ به محمدرضا:
با سلام،
شما می توانید با مراجعه به لینک زیر، تمام سرفصل های تدریس شده در این آموزش را مطالعه نمایید:
فرادرس جامع الگوریتم ژنتیک چند هدفه NSGA-II در متلب
شاد و پیروز باشید.