تخفیف نوروزی پی استور

کد تخفیف: PR1404

شامل تمامی آثار
روز
ساعت
دقیقه
ثانیه

با خرید اشتراک ویژه ، با هزینه بسیار کمتر به فایل های پاورپوینت دسترسی داشته باشید!

الگوریتم دسته ماهی های مصنوعی AFSA

الگوریتم دسته ماهی‌ های مصنوعی . تصویری از چند ماهی زیبا به رنگ آبی درج شده است.
الگوریتم دسته ماهی های مصنوعی یا Artificial fish swarm optimization Algorithm به اختصار AFSO در سال 2002 توسط لی و همکارانش مطرح شد که ایده اصلی آن شبیه سازی رفتارهای ماهی مانند ازدحام، شکار، و دنباله روی در جستجوی محلی، برای رسیدن به بهینه عمومی است. این روش بهینه سازی یک الگوریتم جستجوی تصادفی و موازی است. الگوریتم AFSO یک الگوریتم مبتنی بر جمعیت است.

فهرست مطالب

الگوریتم دسته ماهی‌ های مصنوعی

ماهی مصنوعی Artificial Fish یا (AF) مفاهیم خارجی را از طریق بینایی درک می‌کند. X وضعیت فعلی AF است، Visual میدان دید بینایی است و Xv موقعیتی در میدان دید است که ماهی می‌خواهد به آن‌جا برود. اگر وضعیت در موقعیت دیگر (Xv) بهتر از وضعیت فعلی باشد، ماهی یک گام در این جهت حرکت می‌کند و به وضعیت Xnext می‌رود. در غیر این صورت در میدان دید به گشت زنی ادامه می‌دهد. هر چه تعداد گشتزنی AF بیشتر باشد، دانش بیشتری در مورد وضعیت  میدان دید به دست می‌آورد. مطمئناً لازم نیست ماهی کل وضعیت‌های پیچیده یا نامتناهی را بررسی کند و یافتن چند بهینه محلی با کمی عدم قطعیت، به یافتن بهینه عمومی کمک می‌کند.

مفهوم میدان دیدِ ماهی مصنوعی

اگر (X=(x۱  , x2  , …,xn و (Xv=(x1v  ., x2v  , …,  xnv باشد این فرآیند به شکل زیر بیان می‌شود:

فرمول 1 الگوریتم ماهی

که در آن Rand اعداد تصادفی در بازه ۰ و ۱ تولید می‌کند، Step طول گام است.xi  متغیر بهینه سازی، و n  تعداد متغیرها است. مدل AF در الگوریتم دسته ماهی‌ های مصنوعی دو بخش دارد:

  1. متغیرها
  2. توابع

متغیرها: X که موقعیت فعلی AF است، Step  که طول گام حرکت است، Visual  که میدان دید را نشان می‌دهد، try_number  که تعداد تکرار است و δ_s که فاکتور شلوغی است مابین صفر و یک.

توابع: ماهی معمولاً در مکانی می‌ماند که غذای زیادی در آن موجود باشد، پس ما رفتارهای ماهی را بر اساس این ویژگی شبیه سازی می‌کنیم تا بهینه عمومی را پیدا کنیم.

رفتارهای ماهی مصنوعی عبارتند از:

  • AF_Prey
  • AF_Swarm
  • AF_Follow
  • AF_Move

جستجوی طعمه AF_Prey در الگوریتم دسته ماهی‌ های مصنوعی

رفتن به سمت غذا یک رفتار زیستی اصلی است. ماهی غلظت غذا در آب را حس کرده و از طریق دید یا حس مسیر خود را انتخاب می‌کند. فرض کنید Xi وضعیت فعلی ماهی است و ماهی وضعیتXj را در میدان دید خود به صورت تصادفی انتخاب می‌کند. Y غلظت غذا (مقدار تابع هدف) است و هرچه Visual بیشتر باشد، AF بیشینه عمومی را راحت تر پیدا کرده و همگرا می‌شود.

Xj=Xi+Visual.Rand()

اگر در مساله بیشینه سازی Yi<Yj، ماهی یک گام در این جهت جلو می‌رود؛ در غیر این صورت دوباره یک وضعیت Xj  را به صورت تصادفی انتخاب کرده و بررسی می‌کند که شرط حرکت را ارضا می‌کند یا خیر. اگر پس از چندین بار انتخاب شرط ارضا نشد، یک گام به صورت تصادفی حرکت می‌کند.

Xi(t+1)=Xi(t)+Visual.Rand()

حرکت ازدحامی AF_Swarm در الگوریتم دسته ماهی های مصنوعی

ماهی‌ها به صورت گروهی حرکت می‌کنند. این یک نوع عادت زیستی برای تضمین بقای کلونی و اجتناب از خطر است. فرض کنید Xi وضعیت فعلی AF، Xc موقعیت مرکز گروه و nf  تعداد موجودات در همسایگی فعلی dij<Visual، و n  تعداد کل ماهی‌ها است. اگر Yc>Yi و nf/n< δ، یعنی مرکز گروه غذای بیشتری دارد (مقدار تابع شایستگی در آن بیشتر است) و زیاد شلوغ نیست، AF  یک گام به سمت مرکز حرکت می‌کند.

Xi(t+1)=Xi(t)+(Xv-Xit)/(||Xv-Xit ||).StepRand()

در غیر این صورت رفتار شکار اجرا می‌شود. فاکتور شلوغی اندازه دسته‌ها را محدود می‌کند و AFهای بیشتر فقط در نواحی بهینه قرار می‌گیرند. این کار تضمین می‌کند AF در یک محدوده گسترده به سمت بهینه حرکت کند.

دنبال کردن AF_Follow در الگوریتم دسته ماهی های مصنوعی

در فرآیند حرکت دسته ماهی‌ها در الگوریتم دسته ماهی‌ های مصنوعی، وقتی یک یا چند ماهی غذا پیدا می‌کنند، همسایگان به سرعت آن‌ها را دنبال کرده و به غذا می‌رسند. فرض کنید Xi وضعیت فعلی AF است و موقعیت Xj  در همسایگیdij<Visual  را کهYj  بزرگ‌تری دارد، جستجو می‌کند. اگر Yj>Yi  و n_f/n< δ ، یعنی غلظت غذا در موقعیت Xj  بیشتر است (مقدار تابع شایستگی بیشتر است) و اطراف آن زیاد شلوغ نیست، AF  یک گام به سمت Xj  حرکت می‌کند. در غیر این صورت رفتار شکار اجرا می‌شود.

Xi(t+1)=Xi(t)+(Xj-Xit)/(||Xj-Xit ||).StepRand()

حرکت AF_Move در الگوریتم دسته ماهی های مصنوعی

در الگوریتم دسته ماهی‌ های مصنوعی، ماهی به صورت تصادفی در آب حرکت می‌کند؛ در واقع در محدوده بزرگی به دنبال غذا یا ماهی‌های دیگر می‌گردد. در میدان دید یک موقعیت به صورت تصادفی انتخاب می‌کند؛ سپس به سمت این مکان حرکت می‌کند در واقع این حالت پیش فرض AF-_Prey است.

Xi(t+1)=Xi(t)+Visual.Rand()

فلوچارت الگوریتم دسته ماهی‌های مصنوعی

فلوچارت الگوریتم دسته ماهی های مصنوعی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *