مفاهیم و تعاریف پایه
مفاهیم و تعاریف پایه

مفاهیم و تعاریف پایه

الگوریتم تکاملی چیست؟

ایده مشترک اساسی در پشت همه ی تکنیکهای تکاملی یکسان است: با توجه به جمعیتی از اعضا، فشار محیطی باعث انتخاب طبیعی (بقای بهترینها[1]) میشود و در نتیجه برازش جمعیت در حال افزایش است. دیدن چنین فرآیندی به عنوان بهینهسازی آسان است. با توجه به اینکه یک تابع هدف[2] باید حداکثر شود، می‌توانیم به‌طور تصادفی مجموعه‌ای از راه‌حل‌های کاندید ایجاد کنیم و از تابع هدف به‌عنوان معیار برازش انتزاعی[3] استفاده کنیم (هر چه بالاتر، بهتر). بر اساس این برازش، برخی از نامزدهای بهتر برای کاشت نسل بعدی با اعمال نوترکیبی و/یا جهش انتخاب می‌شوند. نوترکیب برای دو نامزد منتخب، به اصطلاح والدین، اعمال می‌شود و منجر به یک یا دو نامزد جدید، فرزندان می‌شود. جهش برای یک نامزد اعمال می‌شود و منجر به یک نامزد جدید می‌شود. اعمال نوترکیبی و جهش منجر به مجموعه‌ای از نامزدهای جدید، یعنی فرزندان می‌شود. این فرزندان بر اساس برازش خود با نامزدهای قدیمی برای جایگاهی در نسل بعدی رقابت می‌کنند. این فرآیند را می‌توان تا زمانی که راه‌حلی پیدا شود یا به محدودیت زمانی تعیین شده قبلی برسد، تکرار شود. اجازه دهید توجه داشته باشیم که بسیاری از اجزای چنین فرآیند تکاملی تصادفی[4] هستند.

  

 به عقیده داروین، نوظهوری[5] گونه‌های جدید، سازگار با محیط خود، نتیجه تعامل بین بقای برازشترین مکانیسم[6] و تغییرات غیرجهت‌دار[7] است. عملگرهای تغییرات باید تصادفی باشند، انتخابی که بر اساس آن قطعات اطلاعات در طول نوترکیب رد و بدل می‌شود و همچنین تغییرات در یک راه‌حل کاندید در طول جهش، تصادفی هستند. از طرف دیگر، عملگرهای انتخاب می‌توانند قطعی یا تصادفی باشند. در مورد دوم، اعضا برازش شانس بیشتری برای انتخاب شدن نسبت به اعضا با برازش کمتر[8] دارند، اما معمولاً حتی اعضا ضعیف نیز شانس این را دارند که والدین شوند یا زنده بمانند. طرح کلی یک الگوریتم تکاملی را می‌توان به صورت زیر ارائه کرد.

Initialize population with random

    individuals (candidate solutions)

Evaluate (compute fitness of) all

    individuals

WHILE not stop DO

    Select genitors from parent population

    Create offspring using

        variation operators on genitors

    Evaluate newborn offspring

    Replace some parents by some offspring

OD

توجه داشته باشیم که این طرح در دسته الگوریتم‌های تولید و آزمایش قرار می‌گیرد که به نام الگوریتم‌های آزمون و خطا نیز شناخته می‌شود. تابع برازش نشان دهنده یک تخمین اکتشافی از کیفیت راه حل است و فرآیند جستجو توسط عملگرهای تغییر (بازترکیب و جهش ایجاد راه‌حل‌های نامزد جدید) و عملگرهای انتخاب هدایت می‌شود. الگوریتم‌های تکاملی (EAs) در خانواده روش‌های تولید-آزمایش با مبتنی بودن جمعیت، یعنی پردازش مجموعه کاملی از راه‌حل‌های کاندید و با استفاده از ترکیب مجدد برای ترکیب اطلاعات دو راه‌حل کاندید، متمایز می‌شوند.

«گویش‌های» محاسبات تکاملی مذکور از خطوط کلی بالا پیروی می‌کنند و تنها در جزئیات فنی متفاوت هستند.



[1] Survival of the Fittest

[2] Objective Function

[3] Abstract Fitness Measure

[4] Stochastic

[5] Emergence

[6] Fittest Mechanism

[7] Undirected Variations

[8] Less Fit

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد