مهدی فراهانی
مهدی فراهانی
خواندن ۲ دقیقه·۵ ماه پیش

RFO



بسم الله الرحمن الرحیم
مقدمه:

برای به دست آوردن پاسخ یک مسئله به چند روش میتوان عمل کرد.

۱- روش قطعی

۲- روش های ابتکاری و فرا ابتکاری (روش تقریبی)

اگر مسئله ی ما داده ها و ابعاد بزرگی داشته باشند روش قطعی به دلیل زمان بر بودن آن مناسب نیست و بهتر است از روش های ابتکاری استفاده کرد که سرعت تولید جواب را بالا میبرند. اما در روش های ابتکاری تضمینی برای اینکه جواب به دست آمده بهترین جواب ممکن باشد وجود ندارد.

* در روش های ابتکاری یک الگوریتم ابتکاری برای مسئله ی خاص پاسخگو خواهد بود.

* الگوریتم های فرا ابتکاری وابسته به مسئله نیستند و با ارائه ی یک راه حل عمومی با سرعت و دقت معقولی به جواب می رسند.

* الگوریتم های ابتکاری در بهینه های محلی گرفتار می شوند اما الگوریتم های فرا ابتکاری خیر

* الگوریتم‌های فرا ابتکاری به چهار دسته تقسیم می‌شوند

مبتنی بر یک جواب و مبتنی بر جمعیت

الهام گرفته شده از طبیعت و بدون الهام از طبیعت

با حافظه و بدون حافظه

قطعی و احتمالی

* الگوریتم‌های فرا ابتکاری فاقد حافظه از اطلاعات به دست آمده در حین جستجو استفاده نمی‌کنند

* الگوریتم‌های فرا ابتکاری قطعی مسئله را با استفاده از تصمیمات قطعی حل می‌کنند اما الگوریتم‌های فرا ابتکاری احتمالی بر اساس قوانین احتمالی در حین جستجو مسئله را حل می‌کنند


الگوریتم روباه قرمز یک الگوریتم فرا ابتکاری مبتنی بر جمعیت و الهام گرفته از طبیعت و با حافظه و احتمالی است

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


الگوریتم بهینه‌سازی روباه سرخ (RFO) از دو مرحله‌ی اصلی تشکیل شده است:

* جستجوی جهانی: به دنبال غذا در کل فضای موجود و یافتن بهترین موقعیت(یک مقایسه سریع بین مکان های مختلف برای یافتن بهترین روباه)

* جستجوی محلی: دقت محاسبات را افزایش می‌دهیم(هر روباه به طور جداگانه در اطرف خود کار میکند) (حمله و فریب شکار)

همچنین برای تولید مثل و گسترش گله در حین فرار از دست شکارچیان فرایند خاص خود را طی می کند.

* در الگوریتم ژنتیک همه کروموزوم ها احتمال حضور دارند اما در RFO روباه های ضعیف کنار گذاشته می شوند.


ما با توجه به مقاله اصلی در این لینک پایین، این مقاله رو به فارسی توضیح دادیم و با زبان پایتون، پیاده سازی کردیم که علاقمندان می‌توانند در لینک زیر، از آن استفاده نمایند.

مقاله اصلی:

https://www.sciencedirect.com/science/article/abs/pii/S0957417420308599

توضیحات فارسی:

https://drive.google.com/file/d/1mh2FIR01-lD2iA3e15aIGZP908HtwEsS/view?usp=sharing

ریپازیتوری گیتهاب:

https://github.com/mohammadrezaBorjian/RedFox-optimization-algorithm


برای ارتباط با ما می‌توانید از طریق لینک‌های زیر با ما در ارتباط باشید.

مهدی فراهانی:
https://www.linkedin.com/in/mahdifarahani/

محمدرضا برجیان:

https://www.linkedin.com/in/mohammadreza-borjian/

الگوریتم ژنتیکزبان پایتون
فعلا دارم دنبال خودم می‌گردم...
شاید از این پست‌ها خوشتان بیاید