۵:
Determine EggNumber i
۶:
For each Cuckoo i ϵ [۱… N]
۷:
for j=1 to EggNumber i
۸:
Lay an Egg in ELR and compute its fitness value
۹:
if f (EggPsition) < f (Habitat i) Then Habitat i = EggPosition
۱۰:
Update ELR based on Equation (5-3)
۱۱:
For each Cuckoo i ϵ [۱… N]
۱۲:
Apply Equation (5-2)
۱۳:
until stopping criterion is met
شکل ۵-۱: شبه کد الگوریتم MCOA
۵-۲ الگوریتم پیشنهادی MMCOA جهت بهینهسازی در محیطهای پویا
در بخش پیش الگوریتم پیشنهادی MCOA تشریح شد که یک الگوریتم بهینهسازی در محیطهای پیوسته است. هدف نهایی، طراحی یک الگوریتم پیشنهادی برای بهینهسازی در محیطهای پویا بر اساس الگوریتم پایه MCOA میباشد. با توجه به خواص خاص محیطهای پویا و وجود چالشهای مختلف در آن، باید مکانیزم هایی به الگوریتمهای پایه افزوده گردد تا توانایی داشتن کارآیی قابل قبول در بهینهسازی مسائل پویا وجود داشته باشد. محیطهای پویای مورد نظر در این پایان نامه، محیطهایی هستند که در آنها تعدادی قله وجود دارند و تغییرات در محیط در بازههای زمانی گسسته اعمال میگردند. همچنین تغییرات در موقعیت، پهنا و ارتفاع قلهها ایجاد می شود. بنابراین پس از تغییر در محیط امکان تبدیل هر قله به بهینه سراسری وجود دارد. در نهایت میتوان به این نتیجه رسید که تمام قلهها یک بهینه بالقوه بوده و الگوریتم باید برای کارآیی بیشتر، آنها را تحت نظر داشته و بتواند ردیابی کند. از طرفی یافتن هر چه سریعتر قلهها تا قبل از تغییرات بعدی محیطی از دیگر چالشهای در پیش روی این گونه محیطهاست. برای رویارویی با این چالشها در این جا سعی شده تا از یک الگوریتم چند دستهای، مکانیزم ایجاد دستهی آزاد موقع همگراشدن دستهها، مکانیزم انحصار و نیز مکانیزم افزایش تنوع و به روز رسانی حافظه بهره گرفته شود. در انتها نیز از یک مکانیزم غیرفعالسازی برای کارآیی بهتر الگوریتم در یافتن بهینه(ها) تا قبل از تغییرات بعدی، استفاده شده است.
الگوریتم MMCOA یک الگوریتم چند-دستهای طراحی شده برای بهینهسازی در محیطهای پویا است که هر یک از دستههای آن یک دسته از فاختهها بوده و با بهره گرفتن از روند MCOA عمل می کنند. در ابتدای کار، تنها یک دسته در فضای مسئله وجود دارد. پس از اینکه این دسته همگرا شد، دستهی دیگری در فضای مسئله بوجود می آید و شروع به کار می کند. در واقع هنگامی که دستهی تازه بوجود آمده به سمت یک قله همگرا شد و آن را پوشش داد، دستهی جدید دیگری بوجود می آید. این روند تا جایی که تمام قلهها تحت پوشش قرار بگیرند ادامه داشته و در نهایت تمام قلهها تحت پوشش دستهها قرار میگیرند. در این بین تنها یک دسته به صورت آزاد در فضای مسئله به جستجوی قلهی پوشش نیافتهی دیگری می پردازد.
۵-۲-۱ بررسی همگرایی دستهها
برای تعیین همگرایی یک دسته، فاصلهی اقلیدسی تمام فاختههای یک دسته از یکدیگر محاسبه شده و در صورتیکه فاصلهی دورترین فاختههای دسته کوچکتر از مقدار پارامتر rconv (که بر اساس آزمایشات برابر ۱۰ است) باشد، یعنی دسته همگرا گردیده است. فاصلهی اقلیدسی از رابطه زیر به دست می آید:
فرم در حال بارگذاری ...