در این قسمت قصد داریم آموزش مربوط به یکی از تخصصی ترین مباحث نرم افزار Matlab یعنی آموزش الگوریتم ژنتیک در متلب را معرفی نماییم. همانطور که می دانید، الگوریتم ژنتیک یکی از روش های بسیار پیشرفته در زمینه بهینه سازی مسائل مهندسی بوده و از این روش در بسیاری از مسائل پیچیده که به روش عادی قابل حل نیستند استفاده می گردد.
در مجموعه آموزشی که ملاحظه می فرمایید نحوه استفاده از روش الگوریتم ژنتیک در نرم افزار Matlab به صورت تفصیلی و در قالب مثال و پروژه آموزش داده شده است. این آموزش محصولی از شرکت نرم افزاری مهندس یار بوده و تالیف این مجموعه را سرکار خانم نازیلا امامدوست (کارشناسی ارشد پژوهشگاه مواد و انرژی) بر عهده داشته اند.
الگوریتم ژنتیک چیست ؟
Lamarck دانشمند قرن نوزدهم فرضیه ای ارائه کرده که طبق آن تجربیات یک موجود زنده، در ترکیب ژنتیکی فرزندان آن تاثیر می گذارد. برای مثال موجودی که یاد گرفته از غذای سمی پرهیز کند این ویژگی را بصورت ژنتیکی به فرزندان خود منتقل می کند تا آنها دیگر مجبور به یادگیری این پدیده نباشند. اما شواهد تجربی این نظر را تائید نمی کنند. یعنی تجربیات فردی هیچ تاثیری در ترکیب ژنتیکی فرزندان ندارد.
نظریه دیگری وجود دارد که تاثیر یادگیری را بر تکامل توضیح می دهد. این نظریه که اثر Baldwin نامیده می شود بر مبنای مشاهدات زیر استوار است:
اگر موجودی از طرف محیط متغیری تحت فشار قرار گرفته باشد، افرادی که توانایی یادگیری نحوه برخورد با شرایط را داشته باشند شانس بیشتری برای بقا دارند. موجوداتی که تحت شرایط جدید باقی می مانند جمعیتی با توانائی یادگیری را تشکیل می دهند که فرایندهای تکاملی در آنها سریع تر رخ می دهد و باعث می شود تا نسلی به وجود بیاید که نیازی به یادگیری مواجهه با شرایط جدید را نداشته باشند.
قانون های مهم در الگوریتم ژنتیک:
قانون GA، قانون انتخاب طبیعت بر مبنای قانون بهترین ها است. روش های EA به دو نوع مرتبط به هم ولی مجزا دسته بندی میشوند: Genetic Algorithms
در این روش راه حل یک مسئله بصورت یک bit string نشان داده می شود.
Genetic Programming : این روش به تولید expression trees که در زبانهای برنامه نویسی مثل lisp مورد استفاده هستند می پردازد بدین ترتیب می توان برنامه هائی ساخت که قابل اجرا باشند.
در مورد این روش می توان به نکات زیر اشاره کرد:
1- برای مسائل پیچیده یا مسائلی که دارای فضای جستجو بسیار بزرگی هستند کاربرد زیادی دارد.
2- برای بهینه سازی گسسته کاربرد بسیار زیادی دارد.
3- روش کارآمدی در optimization و Machine learning است.
4- هدف بهینه سازی طراحی در GA، یافتن جواب یا جواب هایی بر روی یک مجموعه از گزینه های ممکن با رعایت قیود مسئله با هدف بهینه کردن معیارهای مساله است.
5- هدف بهینه سازی در یادگیری ماشین، تخمین توابع غیر صریحی از فرضیه هاست.
6- روش جستجوی GA با روش های دیگر مثل شبکه های عصبی تفاوت دارد.
تفاوت روش الگوریتم ژنتیک و شبکه عصبی
در شبکه عصبی روش Gradient descent بصورت هموار از فرضیه ای به فرضیه مشابه دیگری حرکت میکند در حالیکه GA ممکن است بصورت ناگهانی فرضیه والد را با فرزندی جایگزین نماید که تفاوت اساسی با والد آن داشته باشد. از این رو احتمال گیر افتادن GA در مینیمم محلی کاهش می یابد.
چون در هر بار تولید نسل، جمعیت بصورت تصادفی انتخاب می شوند تضمینی وجود ندارد که به جواب بهینه برسد اما لزوما به جواب هایی با تناسب بالا می رسد.
از مزایای GA این است که چون مستقیما با تابع هدف سروکار دارد نیازی به داشتن معادله دقیق نیست (مناسب برای داده هایی که براحتی می توان با curve fitting به معادله تقریبی از رفتار داده ها رسید).
روش حل مسائل با استفاده از روش الگوریتم ژنتیک
روش متداول پیاده سازی الگوریتم ژنتیک بدین ترتیب است که:
مجموعه ای از فرضیه ها که population نامیده میشود تولید و به طور متناوب با فرضیه های جدیدی جایگزین می گردد.
در هر بار تکرارتمامی فرضیه ها با استفاده از یک تابع تناسب یا Fitness مورد ارزیابی قرار داده می شوند. آنگاه تعدادی از بهترین فرضیه ها با استفاده از یک تابع احتمال انتخاب شده و جمعیت جدید را تشکیل می دهند.
تعدادی از این فرضیه های انتخاب شده به همان صورت مورد استفاده واقع شده و مابقی با استفاده از اپراتور های ژنتیکی نظیر Crossover و Mutation برای تولید فرزندان به کار می روند.
دانلود نمونه فیلم های آموزش الگوریتم ژنتیک در متلب
مدت زمان آموزش الگوریتم ژنتیک در متلب 4 ساعت می باشد. در ادامه می توانید ضمن مشاهده آنلاین و دانلود نمونه ای از فیلم آموزشی این محصول، توضیحات بیشتری را در مورد سرفصل های این مجموعه آموزشی و همچنین این روش بهینه سازی ملاحظه فرمایید:
عناوین فیلم آموزش الگوریتم ژنتیک در متلب:
در این مجموعه طی سرفصل های زیر مبحث الگوریتم ژنتیک در متلب آموزش داده شده است:
آشنایی با مدل های تکاملی یا Evolutionary Algorithms
تئوری Lamarck
تئوری Baldwin
آشنایی با الگوریتم ژنتیک و کاربردهای آن
تابع fitness
انتخاب فرضیه ها
اپراتور Crossover
اپراتور mutation
پدیده crowding
حل کننده GA
شروع به کار در نرم افزار متلب
تابع برازندگی
انتخاب گر های ترکیبی
مفهوم غلبه (dominance)
انتخاب بر اساس مفهوم پارتو
مثال ها و پروژه های انجام شده توسط الگوریتم ژنتیک در Matlab
وضعیت کالا: موجود
سلام وقت بخیر
ببخشید با الگوریتم ژنتیک میشه تغییرات پوشش گیاهی رو بررسی کرد؟
بهترین آموزشی بود که تا حالا دیده بودم ممنون از سایت خوبتون