برنامه ریزی ژنتیک (Genetic Programming)

نوشته شده توسط:عباس موسی وند | ۰ دیدگاه

برنامه ریزی ژنتیک (Genetic Programming)
برنامه ریزی ژنتیک

برنامه ریزی ژنتیک

برنامه ریزی ژنتیک که برای اولین بار توسط کوزا ارائـه شـد، جزو روشهای الگوریتم گردشی محسوب میشود.

مبنای تمامی ایـن روشها بر اساس نظریه تکاملی داروین استوار است.

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

برنامه ریزی ژنتیک از روشهای جدید بین روشهای الگوریتم گردشی میباشد که بـه دلیـل دارا بودن دقت کافی، به عنوان یک روش کاربردی مطرح میشـود.

از برنامه ریزی ژنتیک به طور وسیعی در کاربرد هوش مـصنوعی در حـل مسائل مهندسی استفاده شده است.

 

برنامه ریزی ژنتیک (Genetic Programming)

 

ازبرنامه ریزی ژنتیک به طور موفقیت امیزی میتوان در شرایط زیـر بهـره جـست:


1) هرگاه تشخیص ارتباط داخلی میان متغیرهای وابـسته بـسیار پیچیـده باشد 
2) یافتن اندازه و یا شکل متغیر نهایی بسیار پیچیده است 
3) حل تحلیلی مسئله به روشهای ریاضـی متـداول غیـر ممکـن و یـا بـسیار پیچیده بوده ولی حصول جوابهای تقریبی کفایت میکند 
4) اصلاحات جزئـی و متـداول اجرایـی بـر روی نتـایج بـه راحتـی قابـل لحـاظ و اندازهگیری میباشد 
5) حجم بالای دادههای ورودی نیازمند به ازمون و طبقـهبنـدی (ماننـد زنجیـره ‪ DNA در مباحـث زیـست مولکـولی، دادههای ماهوارهای و یـا دادههـای مربـوط بـه امـور مـالی و بـانکی)

برنامه ریزی ژنتیک

برنامه ریزی ژنتیکبرنامه ریزی ژنتیک جدیدترین شیوه از بین روش ‌های الگوریتم گردشی می ‌باشد که به دلیل دارا بودن دقت کافی، به عنوان یک روش کاربردی مطرح می ‌شود.

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

این روش شامل یک معادله ارتباط دهنـده بـین متغیـرهـای ورودی و خروجی بوده، لذا قادر به انتخاب خودکار متغیرهـای مناسـب الگو و حذف متغیرهای غیر مرتبط است که این امر سبب کاهش ابعاد متغیرهای ورودی خواهد شد.

انتخاب ورودی هـای مناسـب، یکـی از مهمترین مواردی است که بایستی در این روش مورد توجه قرار گیرد.

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

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

برنامه ریزی ژنتیکفرایند گام به گام برنامه ریزی ژنتیک به صورت مراحل زیـر اسـت:


1) یک جمعیت اولیه از توابع مرکب نشان دهنده الگوهای پیشبینی، بـه صورت تصادفی در نظر گرفته می شود (ایجاد کروموزومها)
2) معرفی جمعیت اولیه (کروموزومها) به رایانه و ارزیابی هـر یـک از افـراد(ژن) جمعیت مذکور با استفاده از توابع برازش (شناسایی موثرترین افـراد در ماهیت پدیده)
3) انتخـاب ژنهـای مـوثر بـه منظـور تکثیـر، جهـش، جفت گیری و تولید مثل افراد جدید با صفات اصلاح شـده (فرزنـدان)
4) اعمال فرایند توسعهای تکراری بر روی فرزندان در هر تولیـد گـام چهارم به تعداد معین و یا تا حصول بهترین پاسـخ تکـرار خواهـد شـد


برنامه ریزی ژنتیک
شکل 1 - فلوچارت برنامه ریزی ژنتیک


به عنوان نمونه کاربرد برنامه ریزی ژنتیک در مدل ‌سازی معادله درجه دوم در شکل های 2 تا 3 نشان داده شده است. فرض کنیم ‪ a،b و ‪ c سه متغیر ورودی مربوط به معادله درجه دوم باشند. ساختار درختی برنامه ساده در شکل 2 نشان داده شده است .


برنامه ریزی ژنتیک
شکل ۲: ساختار درختی برنامه

با توجه به مراحل چهار گانه فرایندبرنامه ریزی ژنتیک که در بخش قبل مورد بررسی قرار گرفت، روند حل برنامه نشان داده شده در شکل 1 به صورت زیر خواهد بود:

ایجاد کروموز ‌ها از جمعیت اولیه: یک جمعیت از درخت ‌های مبین برنامه به صورت اولیه تشکیل داده و فرایند ژنتیک بر روی این درختان عمل می ‌شود تا افراد جامعه با کمک دنباله پایان ‌ها (‪ )T و دنباله توابع (‪ )F تولید شوند.

بر این اساس برای شکل 1 می ‌توان نوشت: 

دنباله پایان ‌ها: 

دنباله توابع : 


به منظور تولید یک جمعیت تصادفی بایستی به نحوی اقدام به گزینش تصادفی از مجموعه ‪ T ∪ F نمود تا تمامی شاخ ‌ها به پایان ‌ها منتهی شوند.

از درون برنامه اخیر اقدام به انتخاب دو ژن تصادفی (والد) گردیده و سپس زیر درخت ‌های حاصل شده از دو والد تعویض میگردند و بدین ترتیب یک برنامه جدید نظیر انچه در شکل 3 دیده می شود بدست می ‌اید.

مطابق شکل 4 در مرحله جهش یک زیر درخت به طور تصادفی با یک زیر درخت دیگر جابجا می ‌شود.

این مرحله به معنی اجرای مجدد برنامه است و این امر در صورتی انجام می ‌پذیرد که معیار های برازش، صحت برنامه را تایید نمایند.


ابزار Toollboxبرنامه ریزی ژنتیک (Sara-Silva) در MATLAB براحتی امکان مدل سازی با استفاده ازبرنامه ریزی ژنتیک را فراهم می اورد.


برنامه ریزی ژنتیک
شکل 3- عملیات تلاقی با والدین مختلف در برنامه ریزی ژنتیک
برنامه ریزی ژنتیک
شکل ۴: عملیات جهش در برنامه ریزی ژنتیک

  1. هیچ نظری تا کنون برای این مطلب ارسال نشده است، اولین نفر باشید...

    نوشتن دیدگاه