پیاده سازی الگوریتم ژنتیک واقعی در متلب

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

 

الگوریتم ژنتیک

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

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

نحوه کار الگوریتم

در آغاز الگوریتم، تعدادي از افراد به‌عنوان جمعیت اولیه و معمولاً به‌صورت تصادفی ساخته‌شده و معیاري از کیفیت به نام تابع هدف یا برازندگی براي تک  تک آن ها ارزیابی می شود. اگر شرط رسیدن به جواب برقرار نباشد (به جواب بهینه نرسیده باشیم)، نسل بعدي با انتخاب والدین بر اساس میزان برازندگی آن ها تولید می شود. در هر نسل، بهترین هاي آن نسل انتخاب می شوند و پس از زادوولد، مجموعه جدیدي از فرزندان را تولید می کنند.

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

الگوریتم زمانی پایان خواهد یافت که بهبودي بر روي جواب ها صورت نگیرد و یا اینکه تعداد مشخصی نسل تولید شود. مراحل کلی یک الگوریتم ژنتیک می تواند به‌صورت شکل زیرباشد.

صورت کلی یک الگوریتم ژنتیک

صورت کلی یک الگوریتم ژنتیک

تعریف‌ها

الف) ژن: مقدار کد شده هر متغیر را ژن گویند.

ب)کروموزوم: به رشته یا دنباله اي از ژن ها که به‌عنوان شکل کد شده یک جواب ممکن (مناسب یا نامناسب) از مسئله موردنظر به کار می رود کروموزوم گویند.

ج) جمعیت: در هر مرحله تکرار از الگوریتم ژنتیکی تعدادي مشخص از کروموزوم ها مورد ارزیابی قرار می گیرد. به مجموعه این کروموزوم ها جمعیت می گویند.

د) عدد برازندگی: مناسب بودن یا نبودن را با معیاري که باهدف(مورد بهینه‌سازی) رابطه دارد می‌سنجند.

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

و) عملگر جهش: این عملگر روي یک دنباله منفرد عمل می کند به‌این‌ترتیب که با احتمال کوچکی به نام احتمال جهش هر ژن از کروموزوم ها را تغییر می دهد.

ز) کروموزوم فرزند: به دنباله اي که پس از عمل جابه جایی و عمل جهش به دست می آید کروموزوم فرزند می گویند.

ح) جایگذاري: پس‌ازآنکه فرزندان جدید، با استفاده از جمعیت قدیمی ساخته شدند و میزان شایستگی آن‌ها نیز تعیین گردید، می بایست یک نسل جدید از میان فرزندان و والدین موجود انتخاب شوند.
ط) عملگر انتخاب: براي ایجاد افراد نسل جدید، از عملگر انتخاب استفاده می‌شود. اولین قدم در این راه تعیین شایستگی تک‌تک افراد جمعیت هست.

ي) مرحله تولید: به هر بار تولید یک جمعیت جدید یک مرحله تولید گویند.

 

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

برای دانلود سورس کد کامل الگوریتم ژنتیک واقعی محصول را خریداری کنید به محض خرید لینک دانلود در دسترس خواهد بود.

 

ویدئوی معرفی محصول

درباره محصول

سورس کد الگوریتم ژنتیک واقعی در Matlab 2014b نوشته و اجرا شده است این سورس کد توسط تیم پشتیبانی پی استور تست و اجرا شده است. کیفیت محصول توسط پی استور تضمین می شود و محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری فرمایید به محض خرید لینک دانلود در دسترس خواهد بود.

 

22,000 تومان

1 دیدگاه برای پیاده سازی الگوریتم ژنتیک واقعی یا پیوسته در متلب

  1. امتیاز 5 از 5

    سینا ابراهیمی

    ممنون از سایت خوبتون. من چطور می تونم این الگوریتم رو تو مسئله تعیین تعداد بهینه توربین ها استفاده کنم؟

    • programstore

      با سلام
      در استفاده از الگوریتم ژننیک برای مسائل بهینه سازی 2 مسئله مهم است.
      1- نگاشت مسئله
      2-تعیین تابع تناسب
      در نگاشت مسئله باید ابتدا مسئله بصورت یک کروموزوم کد گذاری شود. چگونگی انجام این کار توسط شما باید ایجا بشه تابع Create Model در این سورس کد نحوه تبدیل مسئله به کروموزوم رو نشون میده. در تعیین تابع تناسب نیز باید مشخص کنید جوابی که مثلا یک کروموزوم میده با کروموزم دیگه چه ارزشی داره یا نحوه مقایسه دو جواب با تابع تناسب که CostFun هست انجام میشه.
      بقیه کدها همون کدهای ژنتیک هستن و برای هر مسئله ای یکسان هست.

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

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

اطلاعات فروشنده