به طور کلی نمودار ذیل، مراحل اجرای الگوریتم ژنتیکی را نمایش میدهد:

ga-shams

حال با توجه به نمودار گردش کار، مراحل کار الگوریتم را به این شکل بیان می‌کنیم:

1. با توجه به نوع مسئله و ساختار پاسخ‌های قابل قبول برای آن، ساختار کروموزومها را مشخص می‌سازیم. معمولاً یک راه‌حل مسئله، به صورت لیستی از متغیرهای مسئله نشان داده می‌شود که در اینجا نیز می‌توان آن را به صورت یک آرایه عددی نمایش داد.

2. تابع ارزیابی (Fitness function) مناسبی جهت ارزیابی کروموزومها (پاسخ‌ها) طراحی می‌کنیم. این مرحله اهمیت بسیار زیادی دارد، چرا که اگر نتوان تابعی مناسب جهت ارزیابی کروموزومهای تولید شده در نسلهای مختلف طراحی نمود، به هیچ وجه نمی‌توان مسئله مور نظر را با استفاده از الگوریتم ژنتیک حل کرد.

3. مقادیر پارامترهای اولیه الگوریتم را با توجه به صورت مسئله تعیین می‌کنیم. مهمترین پارامترهای مورد استفاده عبارتند از، اندازه جمعیت اولیه (N)، احتمالات مربوط به انتخاب (P­S)، ترکیب (PC)، جهش (PM)، ابقاء (PR) و همگرایی (PCN)، نوع انتخاب و نوع عملگرهای ترکیب و جهش.

4. یک جمعیت تصادفی با N کروموزوم تولید می‌شود. N اندازه جمعیت یا تعداد اعضای نسل آغازین بوده و هر کروموزوم نماینده یک جواب برای مساله است.

5. با استفاده از تابع ارزیابی، کیفیت تمام کروموزومهای این نسل را محاسبه و ذخیره می‌نماییم.

6. با توجه به مقدار کمیت درصد انتخاب (P­S)، جفت کروموزومهایی را به عنوان والدها انتخاب می‌کنیم. روند انتخاب والدها با استفاده از مقادیر ذخیره شده تابع ارزیابی انجام می‌گیرد.

7. هر جفت از والدها، با توجه به مقدار احتمال ترکیب (PC)، با یکدیگر ترکیب شده و یک یا دو کروموزوم فرزند تولید می‌کنند.

8. هر کروموزوم فرزند، با توجه به مقدار احتمال جهش (PM)، جهش می‌یابد.

9. با توجه مقدار احتمال ابقاء (PR)، تعدادی از فرزندان برای جایگزین شدن در نسل جدید انتخاب شده و مابقی نسل جدید از کروموزومهای نسل قبلی انتخاب می‌گردند، سپس نسل جدید به جای نسل قبلی در برنامه جایگزین می‌شود.

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

Print this pageEmail this to someoneShare on Google+Share on FacebookShare on LinkedInTweet about this on TwitterShare on RedditShare on TumblrShare on StumbleUponPin on Pinterest