الگوریتم تکاملی

مقدمه

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

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

     امید است مطالعۀ این پایان نامه بتواند  مفهومی ساده و روشن از الگوریتمهای تکاملی را برای شما خوانندۀ محترم به تصویر بکشد و شما را در درک آسان و سریع این نوع الگوریتمها یاری رساند.

1-1– الگوریتم های جستجو

     در علوم کامپیوتر و ریاضیات، یک الگوریتم جستجو، الگوریتمی است که یک مسأله را به عنوان ورودی می‌گیرد و بعد از ارزیابی کردن راه‌حل‌های ممکن، یک راه‌حل برای آن مسأله برمی‌گرداند. هنگامی که مسأله‌ای را حل می‌کنیم معمولاً دنبال آن هستیم که بهترین راه‌ حل و یا به بیان دیگر به یک حلّ بهینه از بین حل‌های ممکن برای مسأله برسیم. به محدوده‌ای که جواب‌های مسأله قابل قبول می‌باشند به طوری که جواب بهینه هم یکی از زیرمجموعه‌های این محدوده است «فضای جستجو» نامیده می‌شود. هر نقطه از محدودۀ فضای جستجو نشان دهندۀ یکی از روش‌های حلّ مسأله می‌باشد. و یا به بیانی ساده‌تر می‌توان گفت: مجموعۀ راه‌حل‌های ممکن برای یک مسأله را فضای جستجو می‌نامند.

مهمترين عامل در حل هر مسأله، جستجو به دنبال پاسخ‌هاي احتمالي مسئله است به طور کلّی الگوریم های  جستجو به سه دسته تقسیم می شود:

  • الگوریتم های جستجوی تحلیلی
  • –         الگوریتم های جستجوی ناآگاهانه (کور)
  • –         الگوریتم های جستجوی آگاهانه (مکاشفه ای)

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

1-1-1- الگوریتم های جستجوی ناآگاهانه

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

     یک الگوریتم جستجوی ناآگاهانه الگوریتمی است که به ماهیّت مسأله کاری ندارد. از این‌رو می‌توانند به طور عمومی طراحی شوند و از همان طراحی برای محدودۀ عظیمی از مسائل استفاده کنند، این امر نیاز به طراحی انتزاعی دارد. از جمله مشکلاتی که این چنین الگوریتم‌هایی دارند این است که اغلب فضای جستجو بسیار بزرگ است و نیازمند زمان زیادی (حتی برای نمونه‌های کوچک) می‌باشد. از این‌رو برای بالا بردن سرعت پردازش غالبا از الگوریتم‌های آگاهانه استفاده می‌کنند

1-1-2- الگوریتم‌های جستجوی آگاهانه

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

1-1-3- الگوریتم مکاشفه ای (هیوریستیک)

      سیستم‌های پیچیدۀ اجتماعی، تعداد زیادی از مسائلِ دارایِ طبیعتِ ترکیباتی را پیش روی ما قرار می‌دهند. مسیر کامیون‌های حمل‌ونقل باید تعیین شود، انبارها یا نقاط فروش محصولات باید جایابی شوند، شبکه‌های ارتباطی باید طراحی شوند، کانتینرها باید بارگیری شوند، رابط‌های رادیویی می‌بایست دارای فرکانس مناسب باشند، مواد اولیه چوب، فلز، شیشه و چرم باید به اندازه‌های لازم بریده شوند؛ از این دست مسائل بی‌شمارند. تئوری پیچیدگی به ما می‌گوید

–  انواع الگوریتم‌های مکاشفه ای  (هیوریستیک )

در حالت کلی سه دسته از الگوریتم‌های هیوریستیک قابل تشخیص است:

1-الگوریتم‌هایی که بر ویژگی‌های ساختاری مسأله و ساختار جواب متمرکز می‌شوند و با استفاده از آنها الگوریتم‌های سازنده یا جستجوی محلی تعریف می‌کنند.

1-1-4- الگوریتم های فرامکاشفه ای

        الگوریتم های فرامکاشفه ای با الهام گرفتن از پدیده طبیعی این امکان را می یابند که فضای جستجوی بسیار بزرگ طیف وسیعی از مسائل بهینه سازی پیچیده را به صورت بسیار هوشمندانه ای مورد کاوش قرار دهند. منظور از هوشمندانه در اینجا آن است که الگوریتم های فرامکاشفه ای کل فضای جستجو را به دلیل بزرگی آن پیمایش نکرده (که به همین دلیل ناکامل و البیته غیر بهینه هستند.) و تنها به پیمایش بخشی از فضا که احتمال وجود یک پاسخ به اندازه کافی خوب در آن بیشتر است اکتفا می کنند.

2-4- مراحل یک الگوریتم تکاملی

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

مرحله 1- تولید جمعیت اولیه: در این مرحله، یک جمعیت از کروموزوم ها یا همان پاسخ های مسأله تولید می شود. بدیهی است که قبل از تولید جمعیت اولیه بایستی نحوه نمایش کروموزوم ها، که گویای یک پاسخ برای مسأله مورد بررسی است، تعیین شود. خروجی مرحله اول یک جمعیت از پاسخ هاست.

 مرحله 2- محاسبه برازش جمعیت ورودی: در این مرحله، برازش تک تک کروموزوم های جمعیت تولید شده، با توجه به تابع برازش تعیین شده، محاسبه می شود. خروجی این مرحله، یک جمعیت از پاسخ های ارزیابی شده می باشد.

مرحله3- انتخاب برای تولیدمثل: در این مرحله، آن دسته از اعضاء جمعیت ورودی که برازش بالاتری نسبت به سایر اعضاء دارند، برای تبیین قانون بقاء اصلح داروین، انتخاب می شوند. خروجی این مرحله، جمعیتی از والدین برازنده است.

مرحله4- بازترکیب والدین انتخاب شده: در این مرحله، با توجه به جمعیت والدین برازنده و با استفاده از عملگر بازترکیب، جمعیتی از فرزندان تولید می شوند. اعمال عملگر بازترکیب، با توجه به یک پارامتر با نام احتمال بازترکیب (Pc) انجام می شود. خروجی این مرحله جمعیتی از فرزندان تولید شده می باشد.

مرحله 5- جهش فرزندان تولید شده: در این مرحله، فرزندان جدید مرحله قبل تحت عملگر جهش قرار می گیرند. البته عملگر جهش با یک احتمال بر روی دنباله ژنی فرزندان رخ می دهد. این احتمال با نام احتمال جهش (Pm) شناخته می شود. خروجی این مرحله جمعیتی از فرزندان جهش یافته است.

مرحله6- محاسبه برازش جمعیت فرزندان: در این مرحله، شایستگی فرزندان جهش یافته، با استفاده از تابع برازش، محاسبه می شود. خروجی این مرحله، جمعیت فرزندان ارزیابی شده است.

مرحله 7- انتخاب برای جایگزینی: در این مرحله: با توجه به جمعیت والدین (ورودی مرحله سوم) و جمعیت فرزندان ارزیابی شده (خروجی مرحله ششم) یک جمعیت جدید برای نسل بعد (هر تکرار در این الگوریتم معادل یک نسل است) تولید می شود. بدیهی است که خروجی این مرحله جمعیتی است که در آن بخشی از والدین نسل قبل و تعدادی از فرزندان جدید تولید شده نسل جاری وجود دارند.

مرحله8- بررسی شرط توقف: در این مرحله: درمورد ادامه فرآیند تکاملی الگوریتم تصمیم گیری می شود. درصورت ارضاء شرط توقف، فرآیند تکاملی الگوریتم با رجوع به مرحله 3 ادامه می یابد. در غیر این صورت الگوریتم متوقف شده و بهترین پاسخ در آخرین نسل به عنوان حاصل جستجوی تکاملی در خروجی ارائه می شود.

     راه های گوناگونی که مراحل مختلف مربوط به الگوریتم تکاملی پیاده سازی می شوند، منجر به شکل گیری گونه های متفاوت آن می شود. الگوریتم های تکاملی که در این کتاب مورد بحث و بررسی قرار خواهند گرفت عبارتند از: الگوریتم ژنتیک (GA)، برنامه نویسی ژنتیک (GP)، استراتژی تکامل(ES)، برنامه نویسی تکاملی (EP)، تکامل تفاضلی (DE)، الگوریتم ممتیک (MA)، الگوریتم فرهنگی (CA)، الگوریتم ژنتیک تاگوچی (TGA)، الگوریتم هم تکاملی CoEA، الگوریتم دیپلوئیدی (DEA)، بهینه سازی تولیدمثل غیرجنسی (ARO) و سیستم ایمنی مصنوعی (AIS). (لازم به ذکر است که چهار الگوریتم نخست، یعنی GA،GP،ES،EP، چهار الگوریتم تکاملی پایه هستند).

همان گونه که در این بخش مشاهده شد، فرآیند جستجوی فرامکاشفه ای در الگوریتم های تکاملی تحت تأثیر مولفه های زیر می باشد:

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

در بخش های آتی به تشریح مولفه های فوق خواهیم پرداخت.

2-5- روش های نمایش کروموزوم

     همان گونه که ذکر شد، هر موجود در الگوریتم تکاملی بیانگر یک راه حل کاندید برای مسأله بهینه سازی است. ویژگی های موجودات توسط کروموزوم آنها نشان داده می شود. این ویژگی ها مربوط به متغیرها در مسائل بهینه سازی می باشند. هر متغیری که نیاز به بهینه شدن دارد به عنوان یک ژن مشخص می شود. یک ژن، کوچک ترین واحد اطلاعات است. یکی از مهم ترین مراحل در طراحی یک الگوریتم تکاملی، یافتن روش نمایش مناسب برای راه حل های کاندید می باشد (کروموزوم). کارآیی و پیچیدگی الگوریتم جستجو به روش نمایش کروموزوم بسیار وابسته است.الگوریتم های تکاملی مختلف از نمایش های گوناگونی استفاده می کنند. در بیشتر الگوریتم های تکاملی، راه حل ها به صورت برداری از یک نوع داده خاص نمایش داده می شوند (برنامه نویسی ژنتیک یک استثناء می باشد زیرا که موجودات در آن به شکل درخت نمایش داده می شوند).

     مدل نمایش سنتی برای الگوریتم های تکاملی، بردار دودویی با طول ثابت است. با داشتن فضای جستجوی، هر موجود دارای متغیر می باشد که هر متغیر به صورت رشته بیتی کد شده است. برای متغیرهایی با مقادیر اسمی، هر مقدار اسمی را می توان به صورت بردار بیتی -n بعدی کد نمود به صورتی که تعداد کل مقادیر اسمی گسسته برای آن متغیر است.

     برای حل مسائل بهینه سازی با متغیرهای پیوسته، روش نمایش دیگری لازم است که نمایش مبتنی بر اعداد حقیقی نامیده می شود. در این روش هر بیت در کروموزوم های جمعیت تکاملی با یک عدد حقیقی مقداردهی می شود.

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

     نمایش درختی، روش نمایش مشهور دیگری است که بایستی به آن اشاره نماییم. در این روش هر کدام از اعضاء جمعیت در الگوریتم تکاملی به شکل یک درخت نمایش داده می شوند. از این روش معمولاً برای تکامل برنامه ها و یا روابط ریاضی بهره گرفته می شود. در برنامه نویسی ژنتیک از این روش نمایش استفاده می شود.

2-6-  جمعیت اولیه

     الگوریتم های تکاملی مبتنی بر جمعیت هستند. هر الگوریتم تکاملی، جمعیتی از راه حل های کاندید را نگهداری می کند. اولین مرحله در الگوریتم برای حل مسائل بهینه سازی، تولید یک جمعیت اولیه است. روش استاندارد برای تولید جمعیت اولیه، نسبت دادن مقدار تصادفی از دامنه مجاز، به هر یک از ژن های هر کدام از کروموزوم ها است. این روش با نام مقداردهی اولیه تصادفی شناخته می شود. هدف از مقداردهی تصادفی این است که جمعیت اولیه را به صورت یکنواخت از کل فضای جستجو بدست آورده باشیم. در صورتی که ناحیه ای از فضای جستجو در جمعیت اولیه پوشش داده نشود، امکان غفلت از ان قسمت ها در فرآیند جستجو وجود دارد. روش دیگر مقداردهی جمعیت اولیه در الگوریتم های تکاملی، روش مقداردهی اولیه هوشمندانه است. در این روش، براساس اطلاعات موجود از فضای جستجوی مسأله، کروموزوم های اولیه به گونه ای تولید می شوند که برازندگی آنها در بدو تولد بالا باشد. به عبارت دیگر، در این روش سعی بر آن است که از آغاز فرآیند جستجوی الگوریتم تکاملی بر روی بخش های مهم و ارزشمند فضای جستجو تمرکز نموده و شانس یافتن پاسخ های به اندازه کافی خوب را افزایش دهیم.

    اندازه جمعیت اولیه یکی از پارامترهای مهم الگوریتم های تکاملی است. بایستی توجه شود که این اندازه ممکن است ثابت و یا متغیر باشد. به عنوان مثال در الگوریتم های ژنتیک این اندازه ثابت است در حالی که در سیستم ایمنی مصنوعی اندازه مزبور پویا است.

     جمعیت اولیه، در میزان پیچیدگی محاسباتی و قابلیت های پویش و انتفاع الگوریتم های تکاملی اثرگذار است. افزایش این پارامتر سبب تقویت هر دو قابلیت پویش و انتفاع می شود. به عبارت دیگر هر چقدر که یک الگوریتم تکاملی توان پویشی دارد، با افزایش اندازه جمعیتش، آن توان پویشی تقویت می شود. به همین ترتیب هر چقدر که الگوریتم توان انتفاعی داشته باشد با افزایش اندازه جمعیتش توان مزبور تقویت خواهد شد. دلیل این مدعا آن است که با افزایش اندازه جمعیت، شانس انجام عملگرهای تولیدمثل که معمولاً ترکیبی از دو قابلیت پویش و انتفاع را در خود دارند، افزایش می یابد. در هر حال، هر چقدر که تعداد موجودات بیشتر شود، میزان پیچیدگی محاسباتی هر نسل افزایش می یابد. از طرف دیگر، هنگامی که جمعیت تکاملی کوچک باشد، قسمت کوچکی از فضای جستجوتوسط الگوریتم کنکاش می شود. در این حالت، با وجود اینکه پیچیدگی زمانی هر نسل پایین است، الگوریتم تکاملی معمولاً نیاز به نسل های بیشتری برای رسیدن به همگرایی دارد (در مقایسه با زمانی که اندازه جمعیت در الگوریتم بزرگ است)

فهرست مطالب
مقدمه

فصل اول
1-1- الگوریتم های جستجو
1-1-1- الگوریتم های جستجوی ناآگاهانه
1-1-2- الگوریتم‌های جستجوی آگاهانه
تقسیم بندی الگوریتم های آگاهانه
1-1-3- الگوریتم مکاشفه ای (هیوریستیک)
انواع الگوریتمهای مکاشفه ای (هیوریستیک )
1-1-4- الگوریتم های فرامکاشفه ای
1-2- الگوریتم های جستجودر یک نگاه

فصل دوم
2-1- تکامل طبیعی (قانون انتخاب طبیعی داروین)
2-2- رابطه تکامل طبیعی با روش‌های هوش مصنوعی
2-3- مفاهیم پایه
2-4- مراحل یک الگوریتم تکاملی
2-5- روش های نمایش کروموزوم
2-6- جمعیت اولیه

فصل سوم
3-1- الگوریتم های تکاملی پایه
3-2- الگوریتم ژنتیک (GA)
3-2-1- مكانيزم الگوريتم ژنتيك
3-2-2- عملگرهاي الگوريتم ژنتيك
3-2-3- چرخه الگوريتم ژنتیکی
3-2-4 شبه کد و توضیح آن
3-2-5- طرح كلي يك الگوريتم ژنتیک
3-2-6- چارت الگوریتم ژنتیک
3-2-7- تابع هدف
3-2-8- روشهای کد کردن
کدینگ باینری
3-2-7- کدینگ جایگشتی
کد گذاری مقدار
کدینگ درخت
3-2-9- نمایش رشته‌ها
متغیرهای پیوسته
متغیرهای گسسته
3-2-10-انواع روش‌های تشکیل رشته
روش سری
روش محاطی
3-2-11- باز گرداندن رشته‌ها به مجموعه متغيرها
3-2-12- تعداد بيت‌هاي متناظر با هر متغير
جمعيت
ايجادجمعيت اوليه
اندازه جمعيت
3-2-13- محاسبه برازندگي (تابع ارزش)
3-2-14- انواع روشهای انتخاب
انتخاب چرخ رولت
انتخاب حالت پایدار
انتخاب نخبه گرایی
انتخاب رقابتی
انتخاب قطع سر
انتخاب قطعی بریندل
انتخاب جایگزینی نسلی اصلاح شده
انتخاب مسابقه
انتخاب مسابقه تصادفی
3-2-15- انواع روشهای ترکیب
جابه‌جایی دودوئی
جابه‌جایي حقيقي
ترکیب تک‌ نقطه‌ای
ترکیب دو نقطه‌ای
ترکیب n نقطه‌ای
ترکیب یکنواخت
ترکیب حسابی
3-2-16-احتمال تركيب
3-2-17- تحليل مكانيزم جابجایي
3-2-18- جهش
جهش حقیقی
وارونه سازی بیت
تغییر ترتیب قرارگیری
وارون سازی
3-2-19- محک اختتام اجرای الگوریتم ژنتیک
3-2-20- انواع الگوریتم‌های ژنتیکی
الگوریتم ژنتیکی سری
الگوریتم ژنتیکی موازی
3-2-21- مقایسه الگوریتم ژنتیک با سیستم‌های طبیعی
3-2-22- نقاط قوّت الگوریتم‌های ژنتیک
3-2-23- مزایای الگوریتم ژنتیک
3-2-24- محدودیت‌های GAها
3-2-25- استراتژی برخورد با محدودیت‌ها
استراتژی اصلاح عملگرهای ژنتیک
استراتژی رَدّی
استراتژی اصلاحی
استراتژی جریمه‌ای
3-2-26- بهبود الگوریتم ژنتیک
3-2-27- کاربردهای الگوریتم‌های ژنتیک
3-3- الگوریتم برنامه نویسی ژنتیک(GP)
3-3-1- برنامه نویسی ژنتیک
3-3-2- خصوصیات مهم برنامه نویسی ژنتیک
3-3-3- شبه کد برنامه نویسی ژنتیک
3-3-4- نمایش مبتنی بر درخت
3-3-5- جمعیت اولیه
3-3-6- تابع برازش
3-3-7- عملگرهای بازترکیب
3-3-8- عملگرهای جهش
3-3-9- عملگرهای اصلاح معماری
3-4- استراتژی تکامل(Evolution Strategy)
3-4-1- کاربردهای استراتژی تکامل
3-4-2- خصوصیات مهم استراتژی تکامل
3-4-3- شبه کد الگوریتم استراتژی تکامل
3-5- برنامه نویسی تکاملی (EP)
3-5-1- کاربردهای الگوریتم برنامه نویسی تکاملی
3-5-2- خصوصیات مهم برنامه نویسی تکاملی
3-5-3- شبه کد برنامه نویسی تکاملی

فصل چهارم
4-1- دیگر الگوریتم های تکاملی
4-2- الگوریتم های ممتیک
4-2-1- مثالهایی از مم
4-2-2- شباهت های بین ژن و مم
4-2-3- تفاوت بین ژن و مم
4-2-4- دلایل بهره مندی از مفهوم مم در کنار ژن
4-2-5- کاربرد الگوریتم ممتیک
4-2-6- خصوصیات مهم الگوریتم ممتیک
4-2-7- شبه کد الگوریتم ممتیک
4-3- الگوریتم های فرهنگی
4-3-1- کاربرد الگوریتم های فرهنگی
4-3-2- خصوصیات مهم الگوریتم فرهنگی
4-3-3- پروتکل ارتباطی
4-3-4- شبه کد الگوریتم فرهنگی
4-4- الگوریتم تکامل تفاضلی (DE)
4-4-1- کاربردهای تکامل تفاضلی
4-4-2-خصوصیات مهم تکامل تفاضلی
4-4-3- شبه کد الگوریتم تکامل تفاضلی
4-5- الگوریتم های هم تکاملی
4-5-1- انواع الگوریتم های هم تکاملی
4-5-2- هم تکاملی رقابتی
4-5-3- نمونه گیری برازش
4-5-4- ارزیابی برازش نسبی
4-5-5- کاربرد هم تکاملی رقابتی
4-5-6- شبه کد الگوریتم هم تکاملی رقابتی
4-5-7- هم تکاملی همکاری
4-5-8- کاربرد هم تکاملی همکاری
4-6- الگوریتم تکاملی دیپلوئیدی
4-6-1- مراحل تعریف الگوریتم دیپلوئیدی
4-6-2- تفاوت الگوریتم های تکاملی دیپلوئیدی را با الگوریتم های تکاملی پایه
4-6-3- کاربرد الگوریتم های ژنتیک دیپلوئیدی
4-6-4- شبه کد الگوریتم تکاملی دیپلوئیدی
4-7- بهینه سازی تولیدمثل غیرجنسی
4-7-1- خصوصیات مهم بهینه سازی تولیدمثل غیرجنسی
4-7-2- شبه کد الگوریتم بهینه سازی تولید مثل غیر جنسی
4-8- سیستم ایمنی مصنوعی
4-8-1- کاربرد سیستم ایمنی مصنوعی
4-8-2- خصوصیات مهم سیستم ایمنی مصنوعی
3-8-3- شبه کد سیستم ایمنی مصنوعی
4-9- الگوریتم ژنتیک تاگوچی
4- 9-1- شبه کد الگوریتم تاگوچی

مقاله فوق دارای صفحه مشخصات، فصل بندی شده، فهرست مطالب، فهرست اشکال و 129 صفحه متن با رعایت کامل صفحه بندی می باشد. همچنین فونت های کار شده برای متن مقاله B Nazanin(14) و برای تیترهای داخل مقاله B Titr می باشند.

قیمت این مقاله 11500 تومان می باشد، جهت پرداخت و دریافت مقاله روی تصویر زیر کلیک کنید.

دانلود مقاله

همچنین ببینید گوگل کروم

نوشته شده در 12 خرداد 1400