الگوريتم تكامل تفاضلي
الگوريتم تكامل تفاضلي DE نخستين بار در سال 1995توسط استورن و پرايس [37] معرفي شد. اين الگوريتم در نخستين مسابقه بهينه سازي IEEE مقام اول را كسب كرد. استورن و پرايس در كار بعدي خود [38] با استفاده از توابع محك بسيار متنوعي عملكرد الگوريتم خود را با تعدادي از مشهورترين روشهاي بهينه سازي مقايسه كردند. نتايج آزمايشهاي آنها نشان دهنده ي برتري الگوريتم DE بود. از آن زمان تاكنون، اين الگوريتم موضوع بسياري از مقالات علمي در ادبيات الگوريتمهاي تكاملي بوده است. به عنوان مثال، برگي و ديگران [39] با كنترل فشار انتخاب DE را از نظر سرعت همگرايي بهبود دادند.
آزمايشهاي آنها بر روي توابع دييانگ نشان دهنده ي برتري روش آنها در برابر دو نسخه معروف DE يعني DE/rand/1/bin و DE/best/2/bin بود. سلمان و همکاران [40] با استفاده از استراتژي خود تطبيقي [41] الگوريتم DE را از نظر دقت همگرايي بهبود دادند.
کيان و ديگران [42] ضمن تطبيق پارامتر جهش در هر نسل، از روش رتبه بندي مبتني بر پرتو و مرتب سازي تفاوت ازدحام براي انتخاب بازماندگان استفاده كردند.
گانگ و ديگران [43] براي افزايش سرعت همگرايي DE از مدل طراحي متعامد و استراتژي خودتطبيقي استفاده كردند. تورديك [44 ] آزمايشهايي را بر روي مدلهاي تطبيقي نسخه هاي مختلف الگوريتم DE انجام داد. او با استفاده از سه تابع محك، خصوصيات اين الگوريتم ها را با ساير الگوريتمهاي بهينه سازي مقايسه كرد. همچنين ، زاهاريه [45] اثر عملگرهاي مختلف بازتركيبي را بررفتار الگوريتم DE مورد بررسي قرار داد.
مهمترين ويژگيهاي DE سرعت بالا، سادگي و قدرتمند بودن آن است. اين روش تنها با تنظيم سه پارامتر شروع به كار ميكند. پارامتر CR (احتمال انجام بازتركيب )، پارامتر NP (اندازه جمعيت) و پارامتر F (وزن جهش) است كه در تفاضل دو بردار ضرب مي شود و به بردار سوم اضافه مي شود. به گفته استورن و پرايس، پارامتر F معمولا بين 0 تا 2 تنظيم مي شود. اين الگوريتم، ابتدا جمعيتي به اندازه NP با مقادير تصادفي در محدوده مقادير مسئله مربوطه ايجاد مي كند.
جهش
در اين مرحله 3 بردار به صورت تصادفي و دو به دو متفاوت انتخاب مي شوند. بردار جهش يافته به شكل زير براي هر بردار درون جمعيت ايجاد مي شود.
استورن و پرايس دو عملگر متفاوت براي جهش معرفي كرده اند. عملگري كه در فرمول بالا معرفي شد، مربوط به طرح اول مي باشد. آنها همچنين طرحي ديگر را براي عملگر جهش ارائه دادن كه در فرمول پايين آمده است. اين طرح با استفاده از بهترين بردار، درجه حريصانه بودن حركت الگوريتم به سمت بهينه را افزايش مي دهد. معمولا اين طرح براي مسائلي كه يافتن بهينه عمومي آنها ساده است، براي افزايش سرعت همگرايي بسيار مناسب است.
بازتركيب
در مرحله بازتركيب هر يك از مؤلفه هاي اين بردار جهش يافته با احتمال CR به بردار كانديدها منتقل مي شوند و در غير اين صورت، مؤلفه ي معادل در بردار اصلي جايگزين مي شود.
در معادله بالا rand(j) j امين فراخواني تابع تصادفي است كه عددي ميان صفر و يك توليد مي كند. البته براي تضمين اينكه حداقل يك مؤلفه به بردار آزمايشي منتقل مي شود، يك مؤلفه بصورت اتفاقي و بدون در نظر گرفتن CR از بردار جهش يافته به بردار آزمايشي منتقل مي شود. براي اين كار، براي هر بردار كانديدا ، يك مؤلفه به صورت تصادفي و با استفاده از تابع randb() براي انتقال به نسل بعدي انتخاب مي شود.
انتخاب
به منظور انتخاب بازماندگان از روش حريصانه استفاده مي شود و هر بردار با بردار كانديداي مربوطه مقايسه مي شود، هركدام كه شايستگي بيشتري داشته باشد به نسل بعدي منتقل مي شود.
نمادسازي DE
الگوريتم DE نسخه هاي گوناگوني دارد كه به وسيله نمادسازي زير مشخص ميشوند. بسته به كاربرد، ميتوان از هريك از ايssن نسخه ها براي بهينه سازي استفاده كرد. مرور كاملي بر توانايي هاي اين نسخه ها در بهينه سازي توابع مختلف در [46] موجود است.
نمادسازي DE به صورت مقابل ميباشد:
DE/x/y/z
x بردار جهش يافته مي باشد، كه مي تواند تصادفي يا براساس شايستگي انتخاب شود. براي اين نماد، دو گزينه Rand و best پيش بيني شده اند. در صورت انتخاب گزينه best ، همواره بهترين بردار عضو جمعيت براي انجام جهش انتخاب مي شو و در صورت انتخاب rand براي هر جهش يك بردار به صورت تصادفي انتخاب ميشود. Y تعداد بردارهاي تفاضل مورد استفاده است. Z نوع بازتركيب مورد استفاده است. در نسخه هايي كه معرفي شد و نتايج خود را با آن مقايسه خواهيم كرد، X تصادفي و y برابر 1 و z دوجمله اي (bin) مي باشد. بنابراين، نسخه معرفي شده در اين بخش DE/rand/1/bin و نسخه معروف و موفق ديگر اين روش، DE/best/2/bin مي باشد كه نتايج خوبي داشته است. عملگر جهش در الگوريتم DE عملا جستجوي محلي را انجام مي دهد. براي اعمال جستجوي عمومي، استورن و پرايس عملگر بازتركيبي را به شكلي تعريف كرده اند كه تنوع را در بردار فرزند تضمين مي كند. رويكرد استورن و پرايس در عين سادگي نتايج بسيار خوبي در بر دارد. الگوريتم DE با اضافه كردن تفاضل دو بردار تصادفي به برداري ديگر به سرعت به سمت بهينه حركت مي كند. در عين حال، استورن و پرايس براي فرار از بهينه محلي نيز راه حلي انديشيده اند و آن روش ، انتخاب بازماندگان از طريق مقايسه هر بردار با بردار جهش يافته متناظر آن است. به اين ترتيب، الگوريتم در عين فراموش نكردن بردارهاي شايسته درون جمعيت، در دام همگرايي زودرس و بهينه محلي نمي افتد.
.
.
کدهای اماده الگوریتم تکامل تفاضلی به همراه یک فیلم آموزشی فارسی از این الگوریتم توسط گروه ایران متلب آماده شده است که شما می توانید تقاضای این کد و فیلم آموزش فارسی را از برای ما ارسال کنید.
بعد از واریز هزینه کدها آماده متلب MATLAB ، الگوریتم تکامل تفاضلی به همراه یک فیلم آموزشی فارسی برای شما ارسال و می توانید آنها را دانلود کنید و در پروژه یا پایان نامه خود استفاده کنید.
خواستم تشکر کنم
فیلم و کد خیلی مفید بودن
سر جلسه دفاع پایان نامم کم نمیارم خوب فهمیدم
مرسی از زحماتتون
خوب بود
مرسی
من میخوام بهینه سازی تعداد دیزل ژنراتور با الگوریتم تکامل تفاضلی انجام بدم. این کد برام مفیده؟
بله این کد متلب به هر نوع مسئله بهینه سازی قابل استفاده است.
شما کافی است تابع هزینه را درست تعریف کنید.
فیلم آموزشی کامله؟
ما حداکثر تلاشمون را کردیم که یک فیلم آموزشی خوب ارائه بدهیم
و نظر خریدارن قبلی نشان داده که فیلم کاملیه
خواستم از زحماتتون تشکر کنم. فیلم آموزشی مفیدی بود.
یه سوال داشتم
تمامی مراحل الگوریتم توضیح داده شده؟
من برای پایان نامم میخوام.
بله هم الگوریتم تکامل تفاضلی و هم کد متلب توضیح جامعی داده شده است.
در فیلم گفتیم که چگونه در کاربردهای مختلف استفاده بشود.
سلام
من تا حالا کد نویسی کار نکردم رشته ام علوم پزشکیه. میتونم از این فیلم استفاده کنم؟ برای پایان نامم احتیاج به این الگوریتم دارم.
سلام
این محصول به شما این الگوریتم را آموزش می دهد و نحوه کدنویسی را یاد میگیرد.
شما باید بتونید تابع هزینه مربوط به پایان نامتون را خودتون کدش بنویسید.
چه طور می توانم این کد و فیلم آموزشی را تهیه کنم؟!
با ایمیل ما در تماس باشید
eeiranmatlab
——-
gmail.com
سلام. متنی که ارائه کردید از چه منبعی هست؟
بخاطر فیلم و کد صحیح و قابل فهمتون هم ممنون.
سلام
مثل اینکه لینک این مطلب فیر فعال شده لطفا مجددا این لینک رو فعال بفرمایید
با تشکر
سلام
بر روی لینک داخل صفحه کلیک بفرمایید و برای دریافت آموزش و کدهای متلب ثبت سفارش انجام دهید.
سلام، وقت بخیر
میخوام مسئله رو با دو تابع هدف و 8 متغیر طراحی که مقید هستند و قیدها نامساوی هستند رو بهینه سازی کنم. آیا میتونم از این محصول استفاده کنم یا به کد خاصی از de برای حل این مسئله بخصوص نیاز هست؟
سلام
شما می توانید برای هر مسیله بهینه سازی از الگوریتم های هوشمند استفاده کنید فقط باید بدانید که این الگوریتم ها علامه دهر نیستند
یعنی
توانایی پیداکردن پارمترهای بهینه خیلی زیاد را ندارند یا به عبارت دیگر فضای جستجو پارامترهای بهینه نباید خیلی وسیع باشد و تا جایی که بتوانید برخی از پارامترها را کاهش دهید و معین کنید.