<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Mobina Esmaeili</title><link>https://virgool.ir/feed/@esmaeilimobina98</link><description></description><language>fa</language><pubDate>2026-11-12 11:15:10</pubDate><image><url>https://files.virgool.ir/upload/users/2227775/avatar/gHFjJd.jpg</url><title>Mobina Esmaeili</title><link>https://virgool.ir/@esmaeilimobina98</link></image><item><title>الگوریتم تکامل تفاضلی (DE)</title><link>https://virgool.ir/@esmaeilimobina98/الگوریتم-تکامل-تفاضلی-de-aksla5shwyaj</link><description> امروز قراره در مورد یکی از جذاب‌ترین الگوریتم‌های بهینه‌سازی، یعنی الگوریتم تکامل تفاضلی یا همون DE صحبت کنیم.الگوریتم تکامل تفاضلی چیه؟فرض کنید یه گنج مخفی توی یه بیابون بزرگ دفن شده. شما فقط می‌دونید که گنج کجای این بیابون نیست، ولی هیچ ایده‌ای ندارید دقیقا کجاست.اینم عکس تولید شده توسط هوش مصنوعی اینجاست که الگوریتم تکامل تفاضلی به کار میاد! این الگوریتم مثل یه گروه از جستجوگرها عمل می‌کنه. این گروه به طور تصادفی نقاط مختلف بیابون رو می‌گردن و با هوشمندی هر بار بهتر و بهتر می‌شن، تا در نهایت گنج رو پیدا کنن.به زبان ساده، الگوریتم تکامل تفاضلی یه روش ریاضی برای پیدا کردن بهترین جواب به مسائل پیچیده است. این روش توسط دو دانشمند به نام‌های استورن و پرایس معرفی شده ( دستشون درد نکنه ) و برای مسائل غیرخطی و غیرقابل مشتق خیلی خوب جواب میده.چطور کار می‌کنه؟این الگوریتم چهار مرحله داره، این 4 مرحله رو خواهیم دید فقط قبلش یه نگاهی به فلوچارت این مراحل بندازیم:فلوچارت الگوریتم تکامل تفاضلی ( به به آدمو یاد مبانی برنامه نویسی دانشگاه میندازه)1. تشکیل جمعیت اولیهالگوریتم کارش رو با یه جمعیت از جواب‌های تصادفی شروع می‌کنه. این جمعیت شبیه یه دسته جستجوگره که هر کدومشون یه نقطه از بیابون رو برای شروع انتخاب کردن.چگونه؟ هر عضو از جمعیت اولیه به صورت تصادفی با فرمول زیر ساخته می‌شه:در رابطه ی زیر تابع rand(0) عددی تصادفی بین صفر و یک تولید می کند. پارامتر x j max , x j min  به ترتیب نشان دهنده حد پایین و بالا متغیر کنترلی j  می باشد.اینجوری نقاط مختلف فضا به صورت تصادفی پر می‌شه.2. جهشتوی این مرحله، الگوریتم با ترکیب اطلاعات جستجوگرها، مسیرهای جدید و متفاوتی رو امتحان می‌کنه.چجوری؟ برای هر نقطه از جمعیت (که بهش می‌گیم Xi)، سه نقطه تصادفی دیگه از جمعیت انتخاب می‌کنیم: Xr1، Xr2 و Xr3. حالا یک نقطه جدید (بردار جهشی) با فرمول زیر ساخته می‌شه:                               F: ضریب جهش، عددی بین 0 و 1 که شدت تغییرات رو کنترل می‌کنه3. تقاطعاینجا الگوریتم جواب‌های قبلی و جدید رو با هم ترکیب می‌کنه تا به جواب‌های متنوع‌تری برسه.چگونه؟ یک بردار آزمایشی (Ui) ساخته می‌شه که با استفاده از ترکیب جواب فعلی (Xi) و جواب جهشی (Vi) ایجاد می‌شه. برای هر مؤلفه j:CR: ضریب تقاطع، عددی بین 0 و 1 که احتمال انتخاب مؤلفه از بردار جهشی رو تعیین می‌کنه4. انتخابدر نهایت، الگوریتم باید تصمیم بگیره که کدوم جواب به نسل بعد منتقل بشه.چگونه؟ بردار آزمایشی (Ui) با جواب فعلی (Xi) مقایسه می‌شه. هر کدوم که مقدار بهتری برای تابع هدف داشته باشه، انتخاب می‌شه:این کار تضمین می‌کنه که جمعیت به تدریج به سمت بهترین جواب ممکن حرکت کنه.مزایا و معایب الگوریتم DEمزایا:1. انعطاف‌پذیر: لازم نیست مسئله ساده یا قابل مشتق باشه.2. سرعت بالا: معمولا سریع‌تر از روش‌های تکاملی دیگه به جواب می‌رسه.3. سادگی: مفاهیمش ساده و اجرای کدش راحت‌تره.معایب:1. برای مسائل با متغیرهای گسسته (مثل اعداد صحیح) نیاز به تغییراتی داره.2. ممکنه گاهی جواب بهینه محلی رو پیدا کنه و بهینه جهانی رو از دست بده.چرا باید از DE استفاده کنیم؟این الگوریتم وقتی عالیه که: مسئله‌ای دارید که جوابش رو با روش‌های عادی نمی‌تونید پیدا کنید. فضاهای زیادی برای جستجو وجود داره. زمان و منابع زیادی برای امتحان کردن جواب‌های مختلف ندارید.الگوریتم تکامل تفاضلی یه ابزار قدرتمنده که به شما اجازه میده مسائل پیچیده رو به روشی ساده و هوشمند حل کنید. البته باید به محدودیت‌هاش هم دقت کنید، اما با کمی تنظیمات و تغییرات، می‌تونه توی خیلی از مسائل به شما کمک کنه.الگوريتم تكامل تفاضلی پيشرفته (MDE)حالا كه با الگوريتم تكامل تفاضلی (DE) آشنا شديم، بياييد نگاهی بيندازيم به نسخه پيشرفته تر اين الگوريتم، يعني الگوريتم تكامل تفاضلی پيشرفته (MDE). اين نسخه برای برطرف كردن برخی از محدوديت های DE توسعه داده شده و كارايی بيشتری در مسائل پيچيده داره.تفاوت های MDE با DEجهش تطبیقیدر MDE، ضريب جهش F به صورت پويا تغيير می كنه تا الگوريتم در طول زمان عملكرد بهتری داشته باشه. فرمول جهش در MDE به اين صورت تغيير می كنه:که F(t)  ضریبی است که با توجه به نسل t  تغییر می کنه.مديريت بهتر متغيرهای گسسته با استفاده از روش های خاصی مثل گسسته سازی  ( Discretization ) و تنظيمات ديناميك، توانايی بيشتری در كار با متغيرهای گسسته داره.تقاطع پیشرفته چندين استراتژی مختلف برای تقاطع استفاده می شه تا تنوع جمعيت افزايش پيدا كنه. فرمول تقاطع در MDE به اين شكل تغيير پيدا می كنه:كه C R(t) يك ضريب پويا برای تقاطع است كه بر اساس نسل تغيير می كند.مدیریت محدودیت ها در MDE، بردارهايی كه محدوديت های مسئله را نقض می كنند به جای حذف، به سمت نقاط معتبر هدايت می شوند. اين كار با اضافه كردن جريمه به تابع هدف انجام می شه:gk(X) : k محدوديت مقدار landa: ضریب جریمهمزايای MDE نسبت به DEدقت بالاتر در مسائل پيچيده: MDE می تواند جواب های دقيق تری برای مسائل چندبعدی و پيچيده پيدا كنه.سرعت بيشتر در همگرايی: به دليل تنظيمات هوشمندانه پارامترها، سرعت نزديك شدن به جواب بهينه در MDE بيشتره.مديريت بهتر محدوديت ها : اين الگوريتم در مسائل دارای محدوديت های پيچيده بهتر عمل می كنه.انعطاف پذيری بيشتر: توانايی كار با انواع مختلف متغيرها (پيوسته و گسسته) از ويژگی های كليدی MDE است. اگرچه الگوريتم DE خودش يك ابزار قوی و ساده برای حل مسائل بهينه سازی است، اما MDE با بهبودهايی كه ارائه می دهد، در مسائل پيچيده تر و پيشرفته تر عملكرد بهتری دارد. با استفاده از MDE، می توانيد از قابليت های بهينه سازی تكامل تفاضلی در سطحی جديد و قدرتمندتر بهره مند شوین.</description><category>Mobina Esmaeili</category><author>Mobina Esmaeili</author><pubDate>Thu, 26 Dec 2024 22:12:02 +0330</pubDate></item></channel></rss>