الگوریتم تکاملی تفاضلی (Differential evolution algorithm)
الگوریتم تکاملی تفاضلی (DE) نخستین بار در سال 1995 توسط استورن و پرایس معرفی شد.این دو نشان دادند که این الگوریتم توانایی خوبی در بهینه سازی توابع غیرخطی مشتق ناپذیر دارد که به عنوان روشی قدرتمند و سریع برای مسائل بهینه سازی در فضاهای پیوسته معرفی شده است.
الگوریتم (DE) جهت غلبه بر عیب اصلی الگوریتم ژنتیک، یعنی فقدان جستجوی محلی دراین الگوریتم ارائه شده است، تفاوت اصلی بین الگوریتم های ژنتیکی و الگوریتم (DE)در عملگر انتخاب selection operators می باشد.
در اپراتور انتخاب GA ،شانس انتخاب یک جواب به عنوان یکی از والدین وابسته به مقدار شایستگی آن می باشد،اما در الگوریتم DE همه جواب ها دارای شانس مساوی جهت انتخاب شدن می باشند. یعنی شانس انتخاب شدن آنها وابسته به مقدار شایستگی آنها نمی باشد، پس از این که یک جواب جدید با استفاده از یک اپراتور جهش خود-تنظیم و اپراتور crossover تولید شد،جواب جدید با مقدار قبلی مقایسه می شود و در صورت بهتر بودن جایگزین می گردد.
در این الگوریتم بر خلاف دیگر الگورتیم ها که اول عملگر crossover و سپس عملگر mutation انجام می شود به گونه ای که ابتدا عملگرجهش اعمال شده و سپس عملگر تقاطع اعمال می شود تا بدین وسیله نسل جدید ایجاد گردد.
برای اعمال عملگر mutation از توزیع خاصی استفاده نمی شود بلکه طول گام جهش برابر با مقدار از فاصله میان اعضای فعلی تعیین می شود.
برای تولید جمعیت اولیه معمولا از توزیع یکنواخت استفاده می شود تا اعضای جمعیت کاملا به طور یکسان در فضا پخش شده و در هر مرحله از الگوریتم این اعضا به یکدیگر نزدیک می شوند و این همگرایی منجر به رسیدن به جواب بهینه خواهد شد همچنین باید توجه داشت که تعداد زیاد اعضای جمعیت می تواند کمک مناسبی با یافتن جواب بهینه باشد.
یکی از عوامل مهم در این الگوریتم تعیین مقدار مناسب ضریب مقیاس می باشد، به طوریکه که اگر این ضریب کوچک انتخاب شود ، طول گام ها در عملگر جهش کوچک تر می شود و زمان بیشتری برای جستجو صرف می گردد. همچنین اگر ضریب مقیاس در الگوریتم تکامل تفاضلی بزرگ در نظر گرفته شود باعث می شود این الگوریتم جواب های مناسب رو در نظر نگیرد. پس باید در تعیین این ضریب دقت بسیار زیادی صورت گیرد.
بعد از انجام جهش ، کراس اور انجام می شود، بدین صورت که عددی تصادفی بین صفر و یک تولید شده و اگر عدد تولید شده کمتر از میزان نرخ کراس اور باشد عنصر مورد نظر در آن عضو از جمعیت،از قسمت جهش برداشته می شود در غیر اینصورت عنصر مورد نظر از مقدار اولیه عضو برداشته می شود اینقدر این کار تکرار می شود تا تمامی اعضای یک عضو یا از قسمت جهش خورده یا از مقادیر اولیه خود انتخاب گردند. سپس ماتریسی جدیدی که تولید شده با ماتریس اولیه مقایسه می شود و اگر ماتریس جدید دارای هزینه کمتری باشد جایگزین ماتریس اولیه می شود. این کار برای تمامی اعضای جمعیت انجام می شود.
پاورپوینت :الگوریتم تکاملی تفاضلی (DE) - کد متلب الگوریتم
برچسب :تکامل تفاضلی - www.icasite.info
رمز تمامی فایل های داخل وبلاگ ((password:30viloptimization))