رفتن به مطلب

توضیحات الگوریتم تکاملی فاخته به همراه کد


ارسال های توصیه شده

3-1 جزئیات الگوریتم بهینه سازی فاخته

 

این الگوریتم یکی از جدید ترین و قوی ترین روش های بهینه سازی تکاملی می باشد که تا کنون معرفی شده است. الگوریتم فاخته الهام گرفته از روش زندگی پرنده ای به نام فاخته است که در سال 2009 توسط شین او یانگ و دب ساوش، توسعه یافته است. الگوریتم فاخته بر اساس زندگی گونه ای از فاخته است. این الگوریتم توسط پرواز levy به جای پیاده روی ایزوتروپیک ساده توسعه یافته است. الگوریتم فاخته بعد ها در سال 2011 توسط رامین رجبیون به طور کامل با جزییات بیشتر مورد بررسی قرار گرفت.

در شكل 1 فلوچارت الگوريتم بهينه سازي فاخته رسم شده است. همانند ساير الگوريتمهاي تكاملي ، الگوریتم بهینه سازی فاخته هم با يك جمعيت اوليه كار خود را شروع ميكند. جمعيتي که متشكل از فاخته هاست. اين جمعيت از فاخته ها تعدادي تخم دارند كه آنها را در لانه تعدادي پرنده ي ميزبان خواهند گذاشت. تعدادي از اين تخم ها كه شباهت بيشتري به تخم هاي پرنده ميزبان دارند شانس بيشتري براي رشد و تبديل شدن به فاخته بالغ خواهند داشت. ساير تخم ها توسط پرنده ميزبان شناسايي شده و از بين مي روند. ميزان تخم هاي رشد كرده ، مناسب بودن لانه هاي آن منطقه را نشان مي دهند. هرچه تخمهاي بيشتري در يك ناحيه قادر به زيست باشند و نجات يابند به همان اندازه سود (تمايل) بيشتري به آن منطقه اختصاص مي يابد. بنابراين موقعيتي كه در آن بيشترين تعداد تخم ها نجات يابند پارامتري خواهد بود كه الگوریتم فاخته قصد بهينه سازي آن را دارد .

فاخته ها براي بيشينه كردن نجات تخم هاي خود به دنبال بهترين منطقه مي گردند. پس از آنكه جوجه ها از تخم درآمدند و به فاخته بالغ تبديل شدند، جوامع و گروه هايي تشكيل مي دهند. هر گروه منطقه سكونت خود را براي زيست دارد. بهترين منطقه سكونت تمام گروه ها مقصد بعدي فاخته ها در ساير گروه ها خواهد بود. تمام گروه ها به سمت بهترين منطقه موجود فعلي مهاجرت مي كنند. هر گروه در منطقه­اي نزديك بهترين موقعيت فعلي ساكن مي شود. با در نظر گرفتن تعداد تخمي كه هر فاخته خواهد گذاشت و همچنين فاصله فاخته ها از منطقه بهينه فعلي براي سكونت تعدادي شعاع تخم گذاري محاسبه شده و شكل ميگيرد . سپس فاخته ها شروع به تخم گذاري تصادفي در لانه هايي داخل شعاع تخم گذاري خود مي كنند. اين فرآیند تا رسيدن به بهترين محل براي تخم گذاري (منطقه با بيشترين سود) ادامه مي يابد. اين محل بهينه جايي است كه بيشترين تعداد فاخته ها در آن گرد مي آيند .

 

4ax4ymc726cso4sd4xdu.jpg

 

3-2 تولید محل های سکونت اولیه فاخته ها

 

براي حل يك مساله بهينه سازي لازم است تا مقادير متغيرهاي مساله به فرم يك آرايه شكل گيرند. در GA و PSO اين آرايه ها با نام هاي "كروموزوم" و "موقعيت ذرات" مشخص مي شوند. ولي در الگوريتم بهينه سازي فاخته اين آرايه habitat يا "محل سكونت" نام دارند . در يك مساله بهينه سازي N بعدي يك habitat يك آرايه 1*Nخواهد بود كه موقعيت فعلي زندگي فاخته ها را نشان مي دهد. اين آرايه به شكل زير تعريف مي :شود :

Habitat = [x1,x2,…,xN]

ميزان مناسب بودن (يا مقدار سود) در habitat فعلي با ارزيابي تابع سود (fp) در habitat به دست مي آيد. بنابراين

Profit = fp(habitat) = fp(x1,x2,…,xN)

همانطور كه ديده مي شود الگوریتم تکاملی فاخته الگوريتمي است كه تابع سود را ماكزيمم ميكند. براي استفاده از الگوریتم فاخته براي حل مسايل كمينه سازي كافي است يك علامت منفي در تابع هزينه ضرب كنيم . براي شروع الگوريتم بهينه سازي يك ماتريس habitat به اندازه Npop*N توليد ميشود. سپس براي هر كدام از اين habitatها تعدادي تصادفي تخم تخصيص مي يابد. در طبيعت هر فاخته بين5 تا 20 تخم مي گذارد. اين اعداد به عنوان حد بالا و پايين تخصيص تخم به هر فاخته در تكرارهاي مختلف استفاده مي شود. ديگر عادت هر فاخته حقيقي اين است كه آنها در يك دامنه مشخص تخم هاي خود را مي گذارند كه با آن حداكثر دامنه تخمگذاري (ELR) گفته مي .شود در يك مساله بهينه سازي هر متغير داراي حد بالا varhi و حد پايين varlow است که هر ELR با استفاده از اين حدود قابل تعريف خواهد بود. ELR متناسب است با تعداد كل تخم ها، تعداد تخم هاي فعلي فاخته و همچنين حد بالا و پايين متغيرهاي مساله .

بنابراين ELR به صورت رابطه (1) محاسبه می گردد .

r19xas80sv5kazzw49k.jpg

 

3-3- روش فاخته ها برای تخم گذاری

همانطور که در شکل 2 آمده است ، هر فاخته به صورت تصادفي تخم هايي را در لانه پرندگان ميزبان كه در ELR خود قرار دارد، مي گذارد .وقتي تمام فاخته ها تخم هاي خود را گذاشتند برخي از تخم ها كه كمتر شبيه تخم هاي پرنده ميزبان هستند شناسايي شده و از لانه بيرون انداخته مي شوند بنا براين بعد از هر تخم گذاري p% از تمام تخم ها (معمولا %10) كه مقدار تابع سود آنها كمتر است نابود مي شوند. بقيه جوجه ها در لانه هاي ميزبان تغديه شده و رشد مي كنند.

 

6gwjynnjg6u8dqo12xh.jpg

 

نكته جالب ديگر در مورد جوجه فاخته ها اين است كه فقط يك تخم در هر لانه امكان رشد دارد. چرا كه وقتي جوجه هاي فاخته از تخم درمي آيند تخم هاي خود پرنده ميزبان را از لانه بيرون مي اندازند و اگر جوجه هاي پرنده ميزبان زودتر از تخم خارج شده باشند جوجه فاخته بيشترين مقدار غذا را كه پرنده ميزبان مي آورد می خورد و پس از چند روز جوجه هاي خود پرنده ميزبان از گرسنگي مي ميرند و فقط جوجه فاخته زنده مي ماند.

 

3-4- مهاجرت فاخته ها

وقتي جوجه فاخته ها رشد كردند و بالغ شدند مدتي در محيط ها و گروه هاي خودشان زندگي مي كنند ولي وقتي زمان تخم گذاري نزديك مي شود به habitatهاي بهتر كه در آنجا شانس زنده ماندن تخم ها بيشتر است مهاجرت مي كنند. پس از تشكيل گروه هاي فاخته در مناطق مختلف زيست (فضاي جستجوي مساله) گروه داراي بهترين موقعيت به عنوان نقطه هدف براي ساير فاخته ها جهت مهاجرت انتخاب مي شود. هنگامي كه فاخته هاي بالغ در نقاط محيط زيست زندگي ميكنند تشخيص اينكه هر فاخته به كدام گروه تعلق دارد كار سختي است. براي حل اين مشكل، گروه بندي فاخته ها توسط روش كلاسبندي K-means انجام مي شود ( k بين1 تا 3 5 معمولا كفايت ميكند ). حال كه گروه هاي فاخته تشكيل شدند سود ميانگين گروه محاسبه مي شود تا بهينگي نسبي محل زيست آن گروه به دست آيد. سپس گروهي كه داراي بيشترين مقدار متوسط سود (بهينگي) باشد، به عنوان گروه هدف انتخاب شده و گروه هاي ديگر به سمت آن مهاجرت مي كنند .

هنگام مهاجرت به سمت نقطه هدف فاخته ها تمام مسير را به سمت محل هدف طي نمي كنند. آنها فقط قسمتي از مسير را طي كرده و در آن مسير هم انحرافي دارند. اين نحوه حركت را در شكل 3 به وضوح مشاهده مي شود. همانطور كه از شكل معلوم است هر فاخته فقط λ% از كل مسير را به سمت هدف ايده آل فعلي طي ميكند و يك انحراف φ راديان نيز دارد. اين دو پارامتر به فاخته ها كمك مي كند تا محيط بيشتري را جستجو كنند. λ عددي تصادفي بين 1و 0 است و φ عددي بين π/6 و π/6 - مي باشد. وقتي تمام فاخته ها به سمت نقطه هدف مهاجرت كردند و نقاط سكونت جديد هركدام مشخص شد، هر فاخته صاحب تعدادي تخم مي شود. با توجه به تعداد تخم هر فاخته يك ELR براي آن مشخص مي شود و سپس تخم گذاري شروع مي گردد . فرمول عملگر مهاجرت در الگوريتم بهينه سازي فاخته به صورت رابطه (2) است:

xsovio1jw4v2b09xx6kt.jpg

 

F پارامتري است كه باعث انحراف ميشود

 

8s72w9bake3d13ezaru.jpg

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 4
لینک به دیدگاه
  • 1 سال بعد...
سلام .خسته نباشید . فابل cuckoo_search رو دانلود کردم منتها مشکل داره. امکان ارسال فایل به ایمیل من وجود داره؟

 

سلام دوست عزیز

چه مشکلی داره؟

  • Like 1
لینک به دیدگاه
  • 1 ماه بعد...
سلام، ببخشید مزاحم شدم. من چری الگوریتم فاتحه رو دانلود کنم

 

سلام. خوش اومدین :a030:

فایل پیوست شده در انتهای پست رو دانلود کنید :w16:

  • Like 1
لینک به دیدگاه
×
×
  • اضافه کردن...