دانلود پروژه رایگان حل مسئله کُره با الگوریتم ژنتیک با MATLAB

دانلود پروژه رایگان حل مسئله کُره با الگوریتم ژنتیک با MATLAB

لینک دانلود مستقیم با ویدئوی اجرای پروژه

وب سایت های زیادی یا به فروش این پروژه می پردازند، یا به محض قرار دادن رایگان این پروژه توسط گروه نامیرا، به کپی برداری غیراخلاقی می پردازند. لطفا به تاریخ درج پروژه در وب سایت و وبلاگ های گروه نامیرا دقت بفرمایید.

آخرین اخبار فعالیت های گروه نامیرا در کانال تلگرام: https://telegram.me/nn4enamira

اطلاعاتی راجع به پروژه پیش رو:

مسئله کُره (Sphere) به عنوان یک مسئله پایه ای جهت بررسی کارایی الگوریتم های تکاملی پیوسته در نظر گرفته می شود. این مسئله به صورت عکس 1 در نظر گرفته می شود.

عکس 1

خروجی های برنامه به صورت ذیل است.

عکس 2

عکس 3

الگوریتم ژنتیک چیست؟

در الگوریتم ژنتیک، هر راه حل به صورت رشته ای باینری و اندازه گیری تابع برازش مرتبط، نمایش داده می شود. روند استفاده از الگوریتم ژنتیک در حل مسئله بدین صورت است که ابتدا جمعیتی از کروموزوم ها به صورت تصادفی ایجاد می شود، در مرحله دوم برازش هر کدام از کروموزم ها داخل جمعیت ارزیابی می شود، در مرحله سوم کروموزوم های جدیدی با جفت گیری ایجاد می شوند و در برخی از بیت ها عمل جهش به صورت تصادفی انجام می گیرد، در مرحله چهارم اعضای با برازش کمتر از جمعیت کنونی حذف می شوند، در مرحله پنجم کروموزوم های جدید ارزیابی شده و در جمعیت وارد می شوند، و در نهایت گام های سوم تا پنجم تا زمان همگرایی جمعیت تکرار می شوند که شرط خاتمه نیز می باشد. برازش کل جمیعت با افزایش تعداد افراد برازنده در داخل جمعیت، افزایش می یابد. با این حال، ممکن است تعداد افراد برازنده یا حتی برازنده تر، در زمان t-1 برابر با زمان t باشد. در تکامل، به جای افراد یا اجزا، جمعیت در نظر گرفته می شود. مجموعه ای از کروموزوم ها، جمعیت را تشکیل می دهند. با تاثیر عملگرهای ژنتیکی بر روی هر جمعیت، جمعیت جدیدی با همان تعداد کروموزوم تشکیل می شود. تابع برازش، یک شاخص برای کارایی مستقل در حیطه کار را می دهد. اصطلاحاتی نیز در حیطه تابع برازش یا فیتنس وجود دارد که می توان به پنجره بندی، نورمال سازی خطی اشاره کرد.

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

جهش باعث جستجو در فضاهای دست نخورده مساله می شود و می توان استنباط کرد که مهمترین وظیفه جهش اجتناب از همگرایی به بهینه محلی است. در الگوریتم ژنتیک بعد از اینکه یک عضو در جمعیت جدید به وجود آمد، هر ژن آن در صورتی که دارای احتمال جهش باشد، جهش می بابد.  عملگر وارونگی (Inversion Operator) عملگری است که به دلیل مقبولیت زیستی اش در الگوریتم ژنتیک اولیه مورد استفاده قرار می گیرد. به طور کلی می توان گفت در عملگر وارونگی یکی از کروموزومها در هر زمان انتخاب می شود و سپس دو نقطه به صورت تصادفی انتخاب شده و جای آن دو با هم عوض می شود. استراتژی های مختلفی برای انتخاب افراد از داخل جمعیت، جهت زاد و ولد وجود دارد. عملگر انتخاب از بین کروموزوم های موجود در یک جمعیت، تعدادی کروموزوم را برای تولید مثل انتخاب می کند و کروموزوم های برازنده تر، شانس بیشتری دارند تا برای تولید مثل انتخاب شوند.

پاسخ دهید

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