نقد و بررسی آموزش تئوری و عملی الگوریتم ژنتیک

آموزش های تئوری و عملی الگوریتم ژنتیک

یکی از همراهان فرادرس جناب آقای فرزاد صفدری (دانشجوی کارشناسی ارشد رشته مخابرات)، نقد و بررسی خود را در مورد آموزش الگوریتم بهینه سازی ژنتیک برای ما ارسال نموده اند.

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

در ادامه نگاه آقای فرزاد صفدری را می بینیم که برای انتشار در اختیار متلب سایت قرار گرفته است.

آموزش های تئوری و عملی الگوریتم ژنتیک

یکی از همراهان فرادرس جناب آقای فرزاد صفدری (دانشجوی کارشناسی ارشد رشته مخابرات)، نقد و بررسی خود را در مورد آموزش الگوریتم بهینه سازی ژنتیک برای ما ارسال نموده اند.

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

در ادامه نگاه آقای فرزاد صفدری را می بینیم که برای انتشار در اختیار متلب سایت قرار گرفته است.

 

معرفی آموزش و محتوای آن

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

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

حال می توان از این اصل در فرآیندهای بهینه سازی استفاده نمود و محیط کاری مسئله ای که می خواهیم بهینه سازی در آن انجام دهیم را مشابه طبیعت در نظر بگیریم و هر ورودی مسئله را مشابه یک فرد از جمعیت با ویژگی های مشخص قلمداد کنیم.

در ابتدا ورودی های مسئله باید توسط تابع ارزیابی، ارزیابی و شرایط سنجی شوند و به هرکدام امتیازی داده می شود. چون در اینجا تابع ارزیابی به ما هزینه تحقق هر حالت را می دهد (Cost Function) هرچه امتیاز  نمونه ها کمتر باشد برای ما ایده آل تر است. حال برای بهینه سازی آن دسته از افرادی که دارای شرایط مناسبتری هستند انتخاب شده و سایر اعضای ناکارآمد حذف خواهند شد.

در هر مسئله بهینه سازی احتیاج به یک جمعیت اولیه داریم که به صورت تصادفی و تحت روشهایی مثل چرخ رولت (Roulett-Wheel Selection)، نمونه برداری فراگیر شانسی (Stochastic Universal Sampling) و تعدادی روش دیگر تعیین می شوند.

 در مرحله بعد این اعضا به تولید مثل می پردازند. به عضوهایی که تولید مثل می کنند والد و عضوهای جدیدی که ایجاد می شوند فرزند می گویند. هر والد ویژگی های خود را با والد دیگر به اشتراک می گذارد و نتیجه تولید فرزندی با ویژگی های مشترک از دو والد است. این تولید مثل می تواند باعث به وجود آمدن فرزندی با ویژگی های بسیار خوب و نخبه باشد و یا می تواند باعث تولید فرزندی ضعیف تر به نسبت والدین شود.

به منظور تکراری نبودن و یکنواخت نبودن فرآیند های تولید مثل از عملگر جهش (Mutation) استفاده می شود و این عملگر با اعمال تغییرات تصادفی و کوچک در یک عضو باعث تغییر ویژگی های آن می شود. انتخاب نحوه اعمال جهش بسیار مهم است و اگر میزان اثرگذاری آن کم باشد ممکن است در فرآیند رسیدن به پاسخ بهینه تنوع فرزندان کمتری به وجود آید اما پاسخ سریع تری را داشته باشیم یا بالعکس با اثرگذاری زیاد این عملگر فرزندان با ویژگی های متنوع زیادی داشته باشیم و لی با پاسخ کندتری مواجه شویم.

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

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

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

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

 

نقاط قوت

۱- به نسبت آموزش های الگوریتم ژنتیک دیگری که در فضای اینترنت موجود است کیفیت مطالب بالاتری دارد که علت آن جامع بودن مباحث مطرح شده و همچنین به واسطه تدریس عالی و مسلط دکتر کلامی است که علم‌آموز را نسبت به مراجعه به منابع دیگر بی نیاز می کند.

۲- مقدمه مباحث با وجود اینکه زیر مجموعه علم زیست شناسی است اما به خوبی و در حد نیاز بیان شده است و برای آشنایی علم‌آموز با نحوه عملکرد الگوریتم ژنتیک الزامی است.

۳- بیان نحوه برنامه نویسی در نرم افزار متلب و برنامه نویسی بدون استفاده از پنجره کمکی و رابط گرافیکی GA Tool و با استفاده از نوشتن Function و M-File که بسیار خوب ، کاربردی و کم نظیر بیان شده است.

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

 

نقاط ضعف

۱- مثال های ساده ای که در ابتدای مبحث توسط آقای کلامی در خلال درس ارائه می شد به خوبی باعث افزایش درک مطلب توسط علم آموز می گردید مثل قسمتی که ایشان به بیان تفاوت های ژنتیکی حیوانات می پردازد اما با پیش رفتن مبحث و تخصصی تر شدن مطالب تعداد و ساده سازی این مثال ها کاهش پیدا کرد که طبیعتا روی یادگیری مطالب تاثیر می گذارد.

۲- آموزشی که ارائه می شود در برخی قسمت ها نیاز به برخی پیش زمینه ها دارد که اگر تا حدودی توضیحاتی در این مورد داده شود به کارآیی و کیفیت مجموعه می افزاید. مثلا در قسمت های برنامه نویسی توضیحات بیشتری در ارتباط با نحوه برنامه نویسی داده شود. ممکن است علم‌آموزانی که پیش زمینه قبلی کمی در ارتباط با موضوعات الگوریتم ژنتیک یا برنامه نویسی متلب دارند به مشکل بخورند .

۳- در قسمت هایی که دانشجویان از استاد سوال می کنند صدای ضبط شده کیفیت مطلوبی را ندارد و عملا صدای واضحی شنیده نمی شود . امید است که این مشکل از جانب دست اندرکاران محترم برطرف شود .

۴- نحوه تدریس مدرس از نظر علمی بسیار عالی است اما از دید رسمی و خشک است! اگر این استاد بزرگوار قدری در تدریس خود از چارچوب رسمی خارج شوند و در نحوه بیان خود حس راحتی بیشتری بکارگیرند و یا درخلال مباحث به بیان طنز یا شوخی بپردازند ارتباط نزدیکتری بین استاد و دانشجو ایجاد می شود و درک مباحث پیچیده برای علم‌آموز ساده تر و شیرین تر می شود .

 

پیشنهادات

۱- مطالب ارائه شده در سرفصل ها بسیار جامع هستند و شاید دانستن تعدادی از این سرفصل ها برای علم‌آموز الزامی نباشد. پیشنهاد می شود سرفصل ها به صورت جداگانه (یا چند فصل محدود با هم) هم ارائه شود تا هر علم‌آموز با توجه به نیاز خود آنها را تهیه کند.

۲- اگر در قسمت هایی از آموزش، فیلم ها یا انیمیشن های علمی مرتبط با موضوع استفاده شود دنبال کردن ادامه درس جذاب تر می شود.

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

 

برای مشاهده «مجموعه آموزش های تئوری و عملی الگوریتم ژنتیک» به این لینک مراجعه کنید:

کلیک کنید(+)

 

پاسخی بگذارید

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