2022-03-18 08:42:13
الگوریتم ژنتیک
یکی از جالب ترین مباحث بین رشته ای ارتباط بین پردازش کامپیوتری و علم ژنتیکه.
توی الگوریتم ژنتیک برای پیدا کردن جواب مساله از مفاهیم متناظر در ژنتیک و فرگشت استفاده میشه.
رشته ی DNA مولکولیه که اطلاعات ژنتیکی رو در خودش نگه میداره. 4 نوع باز آلی (A,T,C,G) وجود داره که اطلاعات موجود در DNA رو با ترکیب و تعداد گوناگون خودش رمز گزاری میکنه (مثل حروف الفبا که کلمات رو میسازن).
این مولکول برای انتقال صفات به نسل بعدی همانند سازی میکنه؛ اما گاهی توی این همانند سازی اشتباه کوچکی رخ میده و «جهش» بوجود میاد (جهش هدفی نداره و کاملا تصادفیه).
ممکنه این جهش با محیط سازگارتر، ناسازگارتر، و یا خنثی باشه.
همچنین مکانیزم دیگه ای در تولید مثل وجود داره (Crossover) که باعث میشه ژن های دو موجود به روش های مختلفی زاده ها رو بوجود بیاره و زاده ها از تنوع ژنتیکی بیشتری برخوردار بشن.
جانداری که دارای ژن هایی (بخشی از DNA) هست که با محیط سازگار تره؛ طی نسل های متمادی شانس بیشتری برای تولید مثل داره و افراد بیشتری از جمعیت رو تشکیل میده. (انتخاب طبیعی)
توی الگوریتم های پیشین، ما یک فضای نمونه داشتیم و با گام های کوچکی به سمت پاسخ حرکت میکردیم تا به تقریب مورد نظرمون از جواب برسیم.
اما در روش الگوریتم ژنتیک داده ها به صورت رمزگزاری شده هستن و در گروهی از داده ها (فضای نمونه) به صورت تصادفی تولید مثل میکنن (در اینجا جهش به معنای تغییر مقدار جواب ماست). پس در واقع اینجا بجای گرادیان از احتمال استفاده میکنیم.
همچنین پاسخ های مطلوب تر میتونن با هم ترکیب بشن و انواع جدیدی از پاسخ ها رو بوجود بیارن.
اگر مقدار جدید به مقدار مطلوب نزدیک تر باشه اون جواب احتمال تولید مثل بیشتری داره و اگر از مقدار مطلوب دور بشه شانس کمتری برای تولید مثل پیدا میکنه.
حالا اصلا چرا این الگو؟ توی خیلی از الگوریتم ها فضای ما نامنظمه و نمیتونیم به سمت جواب حرکت کنیم، بلکه باید قدم های تصادفی برداریم و دور یا نزدیک شدنمون رو نسبت به جواب بسنجیم.
#ژنتیک #کامپیوتر
@meteorjournal
1.5K viewsShahab, 05:42