برنامه نویسی ژنتیک

دانشنامه عمومی

برنامه نویسی ژنتیک زیر مجموعه ای از رایانش فرگشتی با هدف ایجاد برنامه های قابل اجرا است. در این روش، فضای جستجو مجموعه ای از برنامه ها است. یک برنامه، یک داده ساختار تلقی می شود که می تواند مستقیماً توسط رایانه اجرا شود، یا این که به یک همچین برنامه ای ترجمه شود یا این که توسط یک مفسر تفسیر شود. در این روش پاسخ های مسئله برنامه های رایانه ای هستند که قادر به اجرای مناسب وظیفهٔ از پیش تعریف شده باشند. از مسائل باز در این حوزه می توان به موارد زیر اشاره کرد:
• روش های به کار رفته در تبدیل برنامه ها به کروموزوم مصنوعی و ارزیابی برازش آن در مقایسه با وظیفهٔ از پیش تعریف شده.
• جلوگیری از پدیده باد کردن برنامه ها
• مباحث نظری برنامه نویسی ژنتیک
• ماژولی بودن ( به انگلیسی: Modularity )
• تکامل پایان باز[ ۱]
می توان پیشنهاد آلن تورینگ در دههٔ ۱۹۵۰ را نخستین پیشنهاد ثبت شده برای تکامل برنامه ها دانست. [ ۲] هرچند سی سال طول کشید تا ریچارد فورسیت موفقیت تکامل برنامه های کوچک را که به شکل درخت ارائه شده بودند، نشان دهد. [ ۳] فورسیت از این روش برای دسته بندی شواهد صحنهٔ جرم استفاده کرد.
ایدهٔ برنامه های تکاملی که در زبان لیسپ آغاز شده بود، توسط دانشجویان جان هالند پیگیری شد و هنگامی که نخستین کنفرانس الگوریتم ژنتیک را در پیتسبورگ برگزار کردند، نایکل کرامر برنامه های تکاملی را در دو زبان طراحی شدهٔ ویژه منتشر کرد. [ ۴] در سال ۱۹۸۸ جان کوزا طرح خود را برای اختراع الگوریتم ژنتیک در برنامه نویسی تکاملی به ثبت رساند. [ ۵]
کوزا مطالعات خود را ادامه داد و ۲۰۵ مقاله دربارهٔ «برنامه نویسی ژنتیک» که توسط دیوید گولدبرگ نامگذاری شده بود، [ ۶] منتشر کرد. البته در واقع مجموعهٔ ۴ کتابی او که از سال ۱۹۹۲ همراه ویدئوهای آموزشی منتشر شد، [ ۷] [ ۸] برنامه نویسی ژنتیک را بنیان نهاد.
کوزا در سال ۱۹۹۶ کنفرانس سالانهٔ برنامه نویسی ژنتیک را راه اندازی کرد. [ ۹] در سال ۲۰۰۰ نخستین مجلهٔ اختصاصی آن منتشر شد[ ۱۰] و سه سال بعد، ریک ریولو کارگاه سالانهٔ برنامه نویسی ژنتیک تئوری و عملی را تأسیس کرد. [ ۱۱]
برنامه نویسی ژنتیک برنامه های رایانه ای را که به صورت سنتی با ساختار درختی در حافظه تعریف می شوند، تکامل می دهد. [ ۱۲] می توان درختان را به سادگی در روشی بازگشتی ارزیابی کرد. هر گره درخت یک تابع عملگر دارد و هر گره ترمینال شامل یک عملوند است. به این ترتیب، به سادگی می توان عبارات ریاضی را تکامل داد و ارزیابی کرد. برنامه نویسی ژنتیک علاقه مند به استفاده از برنامه هایی است که به صورت طبیعی دارای ساختار درختی باشند. ( برای نمونه زبان های برنامه نویسی تابعی )
عکس برنامه نویسی ژنتیک
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس