فیلم جامع آموزش فارسی الگوریتم ژنتیک در متلب MATLAB

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

 

ساختار الگوريتم‏هاي ژنتيكي

به طور كلي, الگوريتم‏هاي ژنتيكي از اجزاء زير تشكيل مي‏شوند:

كروموزوم Chromosome

در الگوريتم‏هاي ژنتيكي, هر كروموزوم نشان دهنده يك نقطه در فضاي جستجو و يك راه‏ حل ممكن براي مسئله مورد نظر است. خود كروموزوم‏ها (راه حل‏ها) از تعداد ثابتي ژن (متغير) تشكيل مي‏شوند. براي نمايش كروموزوم‏ها, معمولاً از كدگذاري‏هاي دودويي (رشته‏ هاي بيتي) استفاده مي‏شود.

جمعيت Population

مجموعه‏اي از كروموزوم‏ها يك جمعيت را تشكيل مي‏دهند. با تاثير عملگرهاي ژنتيكي  بر روي هر جمعيت, جمعيت جديدي با همان تعداد كروموزوم تشكيل مي‏شود.

تابع برازندگي Fitness Function

به منظور حل هر مسئله با استفاده از الگوريتم‏هاي ژنتيكي, ابتدا بايد يك تابع برازندگي براي آن مسئله ابداع شود. براي هر كروموزوم, اين تابع عددي غير منفي را برمي‏گرداند كه نشان دهنده شايستگي يا توانايي فردي آن كروموزوم است.

عملگرهاي الگوریتم  ژنتيك

در الگوريتم‏هاي ژنتيكي, در طي مرحله توليد مثل Reproduction ازعملگرهاي ژنتيكي استفاده مي‏شود. با تاثير اين عملگرها بر روي يك جمعيت, نسل Generation بعدي آن جمعيت توليد مي‏شود. عملگرهاي انتخاب Selection , آميزش Crossover  و جهش Mutation معمولاً بيشترين كاربرد را در الگوريتم‏هاي ژنتيكي دارند.

عملگر انتخاب  (Selection ):

اين عملگر از بين كروموزوم‏هاي موجود در يك جمعيت, تعدادي كروموزوم را براي  توليد مثل انتخاب مي‏كند. كروموزوم‏هاي برازنده ‏تر شانس بيشتري دارند تا براي توليد مثل انتخاب شوند.

روش های انتخاب :

Elitist Selection (انتخاب نخبگان)

مناسب‌ترین عضو هر اجتماع انتخاب می‌شود. با توجه به مقدار شایستگی که از تابع ارزیاب دریافت کرده است.

نمونه ‏برداري به روش چرخ رولت

در اين روش, به هر فرد قطعه ‏اي از يك چرخ رولت مدور اختصاص داده مي‏شود. اندازه اين قطعه متناسب با برازندگي آن فرد است. چرخ N بار چرخانده مي‏شود كه N تعداد افراد در جمعيت است. در هر چرخش, فرد زير نشانگر چرخ انتخاب مي‏شود و در مخزن والدين نسل بعد قرار مي‏گيرد. اين روش مي‏تواند به صورت زير پياده‏ سازي شود:

  • نرخ انتظار كل افراد جمعيت را جمع كنيد و حاصل آن را T بناميد.
  • مراحل زير را N بار تكرار كنيد:

يك عدد تصادفي r بين 0 و T  انتخاب كنيد.

در ميان افراد جمعيت بگرديد و نرخ‏هاي انتظار( مقدار شایستگی) آنها را با هم جمع كنيد تا اين كه مجموع بزرگتر يا مساوي r شود. فردي كه نرخ انتظارش باعث بيشتر شدن جمع از اين حد مي‏شود, به عنوان فرد برگزيده انتخاب مي‏شود.

 

roulette selection in GA

Tournament Selection (انتخاب تورنومنت) :

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

عملگر آميزش (Crossover ):

در جریان عمل تلفیق  به صورت اتفاقی بخشهایی از کروموزوم ها با یکدیگر تعویض می شوند. این موضوع باعث می شود که فرزندان ترکیبی از خصوصیات والدین خود را به همراه داشته باشند و دقیقاً مشابه یکی از والدین نباشند.

هدف تولید فرزند جدید می باشد  به این امید که خصوصیات خوب دو موجود در فرزندشان جمع شده و یک موجود بهتری را تولید کند.

روش کار به صورت زیر است:

بصورت تصادفی یک نقطه از کروموزوم را انتخاب می کنیم

ژن های مابعد آن نقطه از کروموزوم ها را جابجا می کنیم

تلفیق تک نقطه ای (Single Point Crossover)

اگر  عملیات تلفیق را در یک نقطه انجام دهیم به آن تلفیق تک نقطه ای می گویند.

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

 

cross over in GA MATLAB

 

در شکل بالا کروموزومهاي 1 و2 در نقش والدين هستند. و حاصل توليد مثل آنها در رشته هائي بنام Offspring ذخيره شده است.دقت شود که علامت  “|” مربوط به نقطه شروع توليد مثل مي باشد و در رشته هاي Offspring اعدادي که بعد از نقطه شروع توليد مثل قرار مي گيرند مربوط به کروموزومهاي مربوط به خود مي باشند. بطوريکه اعداد بعد از نقطه شروع مربوط به Offspring1  مربوط به اعداد بعد از نقطه شروع مربوط به کروموزوم 1 و اعداد بعد از نقطه شروع توليد مثل مربوط به Offspring2 مربوط به اعداد بعد از نقطه شروع توليد مثل مربوط به کروموزوم 2 مي باشند

روش ادغام دو نقطه ای Two-point CrossOver :

در این روش دو مکان را به صورت تصادفی انتخاب کرده و مقادیر بین این دو نقطه را جابجا می کنیم.

single point cross over in GA MATLAB

تلفیق نقطه ای (Multipoint Crossover) :

می توانیم این عملیات را در چند نقطه انجام دهیم ، که به آن بازترکیبی چند نقطه ای می گویند

تلفیق جامع (Uniform Crossover) :

اگر تمام نقاط کروموزوم را بعنوان نقاط بازترکیبی انتخاب کنیم به آن بازترکیبی جامع می گوئیم.  مثال)

kpoint point cross over in GA MATLAB

عملگر جهش (Mutation ):

پس از اتمام عمل آميزش, عملگر جهش بر روي كروموزوم‏ها اثر داده مي‏شود. اين عملگر يك ژن از يك كروموزوم را به طور تصادفي انتخاب نموده و سپس محتواي آن ژن را تغيير مي‏دهد. اگر ژن از جنس اعداد دودويي باشد, آن را به وارونش تبديل مي‏كند و چنانچه متعلق به يك مجموعه باشد, مقدار يا عنصر ديگري از آن مجموعه را به جاي آن ژن قرار مي‏دهد. در شكل زیر چگونگي جهش يافتن پنجمين ژن يك كروموزوم نشان داده شده است.

پس از اتمام عمل جهش, كروموزوم‏هاي توليد شده به عنوان نسل جديد شناخته شده و براي دور بعد اجراي الگوريتم ارسال مي‏شوند.

mutation in GA MATLAB

 

قبل از اين كه يك الگوريتم ژنتيكي بتواند اجرا شود, ابتدا بايد كدگذاري (يا نمايش) مناسبي براي مسئله مورد نظر پيدا شود. معمولي ترين شيوه نمايش کروموزومها در الگوريتم ژنتيک به شکل رشته هاي دودويي است. هر متغير تصميم گيري به صورت دودويي در آمده و سپس با کنار هم قرار گرفتن اين متغيرها کروموزوم ايجاد مي­شود . گرچه اين روش گسترده ترين شيوه کدگذاري است اما شيوه هاي ديگري مثل نمايش با اعداد حقيقي در حال گسترش هستند. همچنين يك تابع برازندگي نيز بايد ابداع شود تا به هر راه‏ حل كدگذاري شده ارزشي را نسبت دهد. در طي اجرا, والدين براي توليد مثل انتخاب مي‏شوند و با استفاده از عملگرهاي آميزش و جهش با هم تركيب مي‏شوند تا فرزندان جديدي توليد كنند. اين فرآيند چندين بار تكرار مي‏شود تا نسل بعدي جمعيت توليد شود. سپس اين جمعيت بررسي مي‏شود و در صورتي كه ضوابط همگرايي رآورده شوند, فرآيند فوق خاتمه مي‏ يابد.

 

پیش نیاز : 

در ادامه آموزش الگوریتم های بهینه سازی ، فیلم آموزشی الگوریتم ژنتیک برای دانش پذیران گرامی تهیه شده است. پیش نیاز این فیلم آموزشی، آموزش بهینه سازی می باشد. لذا به دانش پذیران گرامی توصیه می شود ابتدا فیلم آموزشی بهینه سازی را مشاهده کنند و سپس فیلم آموزشی الگوریتم ژنتیک را ببینند. 

.

.

مدت زمان      : 104 دقیقه

حجم فایل ها : 154 مگابایت

.

.

نتیجه سالها تجربه :

این فیلم آموزشی نتیجه سالها کدنویسی و کار با الگوریتم ژنتیک در پروژه های مختلف می باشد و هزینه ای که شما برای تهیه آن می پردازید در برابر سالها تجربه ای که صرف تهیه این فیلم آموزشی شده بسیار ناچیز است. 

.

 

لینک دریافت

 

 

تصویرهایی از محیط این فیلم آموزشی :

slide of class university genetic algorithm

 

slide of class university genetic algorithm2

 

slide of class university genetic algorithm3

 

slide of class university genetic algorithm4

 

slide of class university genetic algorithm 6


گنجینه فیلم های آموزشی فارسی الگوریتم های بهینه سازی تکاملی-هوش مصنوعی

ردیفعنوانمدت زمانلینک
1فیلم آموزش فارسی الگوریتم تکامل گرامری Grammatical Evolution35 دقیقهلینک دریافت (کلیک کنید)
2فیلم آموزشی فارسی الگوریتم بازی تکاملی Evolutionary Game Algorithm35 دقیقهلینک دریافت (کلیک کنید)
3فیلم آموزش فارسی الگوریتم جستجوی فاخته cuckoo search100 دقیقهلینک دریافت (کلیک کنید)
4فیلم آموزش فارسی بررسی قیود در مسائل بهینه سازی مقید34 دقیقهلینک دریافت (کلیک کنید)
5فیلم آموزش فارسی الگوریتم دسته ماهی مصنوعی30 دقیقهلینک دریافت (کلیک کنید)
6فیلم آموزش فارسی الگوریتم کلونی زنبور عسل65 دقیقهلینک دریافت (کلیک کنید)
7فیلم آموزش فارسی بهینه سازی مبتنی بر جغرافیای زیستی30 دقیقهلینک دریافت (کلیک کنید)
8فیلم آموزش فارسی الگوریتم ژنتیک در متلب190 دقیقهلینک دریافت (کلیک کنید)

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

نشانی ایمیل شما منتشر نخواهد شد.