شنبه 1 اردیبهشت 1397 | Saturday 21 st of April 2018 صفحه اصلی گروه الکترونیکی کامپیوتر
3-2-گام های مقدماتی در اجرای برنامه نویسی ژنتیکی

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

  1. مجموعۀ پایانه ها چه عناصری هستند؟
  2. مجموعه توابع چه می باشد؟
  3. اندازه گیری سودمندی برچه اساسی خواهد بود؟
  4. چه پارامتر هایی برای کنترل اجرایGP  استفاده شود؟
  5. شرط خاتمه چه خواهد بود؟ و چه چیزی به عنوان خروجی انتخاب خواهد شد؟

3-2-1- گام اول : مجموعۀ پایانه ها

اگر چه به طور عموم  گفته می شود که برنامه نویسی ژنتیکی، برنامه های کامپیوتری ایجاد می کند، اما نوعاً، این الگوریتم ها برای ایجاد برنامه های کامپیوتری، شبیه برنامه های یک زبان برنامه نویسی که معمولاً توسط انسان برای توسعۀ نرم افزار به کار می رود، استفاده نمی شود. و در حقیقت  جایگزینی برای ایجاد برنامه هایی خواهد بود که از نظر تعداد پایانه ها، تعداد توابع و ... محدود تر می باشند مانند فرمول ها و یا عبارات جبری.

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

1. ورودی های برنامه : که به صورتx,y نامگذاری می شوند.

2. توابع بدون ارگومان: به عنوان مثال تابع ran که هر بار که استفاده می شود مقدار متفاوتی بر می گرداند.

3. مقادیر ثابت: که می توانند از قبل مشخص شده باشند.

 جدول 4-1- یک سری از این مجموعه پایانه ها را مشخص می کند:

                                                                      جدول3-1- مجموعهپایانه

مجموعه پایانه

نمونه

 

نوع مجموعه

x.y

 

متغیر

3,0.45

 

مقادیر ثابت

RAND()

 

توابع بدون ارگومان

3-2-2-گام دوم : مجموعه توابع

مجموعه توابعی که در برنامه نویسی ژنتیکی استفاده می شود، متناسب با مسألۀ مورد نظر می باشد.در جدول زیر یک سری از توابعی که در حل بعضی مسائل به کار می رود، نشان داده شده است.

                                                                      جدول 3-2-  مجموعه توابع

 

مجموعه توابع

نمونه

 

نوع مجموعه

+،-،*،/

 

حسابی

Sin,cos,EXP

 

ریاضی

AND,OR,NOT

 

منطقی

If-then-else

 

وضعیت

این مجموعه توابع باید چند ویژگی داشته باشند که با مثال انها را بیان می کنیم:

  • سازگاری نوع: به عنوان مثال، یک تابعif اغلب 3 ارگومان دارد: ارگومان تست که یک مقدار منطقی خواهد بود، ارگومانی که در صورت درست بودن تست ان مقدار را برگرداند و ارگومانی که در صورت اشتباه بودن تست انرا برگرداند. در نتیجه عملگر if  نمی تواند در قسمت تست از یک عملگر حسابی استفاده کند چون نتیجه ای که بر می گرداند یک عدد خواهد بود نه یک مقدار منطقی.
  • امنیت ارزیابی: به عنوان مثال اعمالی چون تقسیم بر صفر می تواند امنیت ارزیابی را زیر سوال ببرد. در اینگونه موارد می توان از توابع خود سیستمی که روی ان برنامۀ GPنوشته می شود استفاده کرد تا از اینگونه خطاها جلوگیری شود.
  • بسندگی: بسندگی به این معنی است که یک نمونه جواب مسئله  در الگوریتم را بتوان به راحتی با مجموعه توابع و پایانه ها بیان کرد. برای مثال مجموعۀ:

(3-1)

{}

        یک چنین ویژگی را داراست. چون هر مسئله ای که از توابع منطقی استنتاج شده باشد را می توان با ان پیاده سازی کرد[6].

3-2-3- گام سوم : تابع سودمندی

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

و این در حالی است که ما در دیگر الگوریتم های تکاملی در یک مرحله کروموزوم را ارزیابی می کنیم. این یک فرق اساسی بین برنامه نویسی ژنتیکی و دیگر الگوریتم های تکاملی می باشد.

3-2-4- گام چهارم : پارامتر های برنامه نویسی ژنتیکی

چهارمین گام مقدماتی تعیین یک سری پارامترهای کنترلی برای اجرا می باشد. مهمترین پارامتر کنترلی، اندازۀ جمعیت می باشد. دیگر پارامتر های کنترلی شامل: احتمال انجام عملگر های الگوریتم ژنتیک روی جمعیت، ماکزیمم سایز برنامه های ایجاد شده و همچنین یک سری جزئیات دیگر در اجرا می باشد. در بسیاری موارد، محدودیت اصلی در اندازۀ جمعیت، زمان طولانی که برای پردازش و ارزیابی ان نیاز است می باشد، نه فضای ذخیره سازی کروموزوم ها. به طور نرمال، اندازۀ جمعیت باید حداقل 500 تا باشد، برنامه نویسان اغلب تعداد بیشتر از این هم در نظر می گیرند.

اغلب تعداد تکرار ها محدود است بین 10 تا 50 ، چون بیشترین جستجوهای موثر معمولاً در تکرار های اولیه انجام می شود. و اگر راه حل پیدا نشد، در نتیجه به نظر نمی رسد که در یک زمان معقول پیدا شود[6].

3-2-5-گام پنجم : شرایط خاتمه و خروجی برنامه

شرایط خاتمه می تواند رسیدن تکرار های GPبه ماکزیمم مقدار در نظر گرفته شده باشد. یا پیدا شدن نمونه حلی که شرایط منظور را داشته باشد.

خروجی برنامه با توجه به مسأله مورد بررسی می تواند یک عبارت جبری، یک معادله یا یک مدار منطقی با یک خروجی باشد. 

Compatability by:
آخرین به روز رسانی سایت: سه شنبه, 22 اسفند 1391 - 00:26