کنکور کامپیوتر
0
ورود | ثبت نام
نظرات
اشتراک
بالا
علاقه‌مندی

اشتراک
 

الگوریتم کرم شب تاب⚡️Firefly Algorithm

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

بهینه‌سازی، مسئله‌ای که به‌احتمال زیاد اسمش را تاکنون شنیده‌اید چرا که نه‌تنها در مطالعات علمی بلکه در فعالیت‌های روزمره ما هم ظاهر می‌شود؛ به‌عنوان مثال، زمانی که شخصی می‌خواهد از یک مکان به مکان دیگر برود و چندین مسیر ممکن دارد، باید تصمیم بگیرد که کدام مسیر را طی کند. این تصمیم می‌تواند با هدف به حداقل رساندن زمان سفر، مصرف سوخت و... باشد مشکلاتی ازاین دست را تنها می‌توان با نگاه کردن به نتیجه هر مورد حل کرد ولی در مسائل واقعی نمی‌توان چنین کاری انجام داد برای همین روش‌های مختلفی برای دیگر مسائل پیشنهاد شده است.

از زمان معرفی الگوریتمالگوریتم چیست به زبان ساده و با مثال های فراوانالگوریتم چیست به زبان ساده و با مثال های فراواندر این مقاله به زبان بسیار ساده و با مثال های متعدد توضیح داده شده که الگوریتم چیست و چه کاربردهایی دارد‌های تکاملی، مطالعات زیادی بر روی الگوریتم‌های اکتشافی انجام شده است. معرفی‌های جدید یکی از زمینه‌های تحقیقاتی پیشرو بوده است. در حال حاضر، بیش از 40 الگوریتم فراابتکاریالگوریتم های فرابتکاری چیست؟ %100 الگوریتم های فراابتکاریالگوریتم های فرابتکاری چیست؟ %100 الگوریتم های فراابتکاریدر این صفحه به طور کامل به بررسی الگوریتم های فراابتکاری پرداخته‌ایم، سپس به مقایسه روش های فراابتکاری و کلاسیک پرداخته‌ایم، بعد از آن الگوریتم های فراابتکاری را برای شما طبقه‌بندی و در نهایت یک چارچوب کلی برای آنان معرفی کرده‌ایم وجود دارد. بیشتر این الگوریتم‌های جدید با تقلید از یک سناریو از طبیعت معرفی می‌شوند؛ به‌عنوان مثال، الگوریتم ژنتیکالگوریتم ژنتیک از 0 تا 100، آموزش الگوریتم ژنتیک در متلبالگوریتم ژنتیک از 0 تا 100، آموزش الگوریتم ژنتیک در متلباین صفحه الگوریتم ژنتیک (Genetic Algorithm) را از 0 تا 100 بررسی کرده، همین طور به پیاده سازی و آموزش الگوریتم ژنتیک در متلب (MATLAB) پرداخته است. از نظریه داروین در مورد بقای بهترین‌ها الهام گرفته شده است. الگوریتم کرم شب تاب از نحوه سیگنال‌دهی کرم شب تاب به یکدیگر با استفاده از نور چشمک‌زن برای جفت‌گیری یا شناسایی شکارچیان الهام گرفته شده است. در این مقاله هدف این است که با الگوریتم کرم شب تاب آشنا شویم.

تصویر کاملی از کرم شب تاب که روی برگی نشسته است

الگوریتم کرم شب تاب چیست؟

تعریف

الگوریتم کرم شب تاب یک الگوریتم بهینه‌ساز فراابتکاری است که از رفتار چشمک‌زن کرم‌های شب تاب الهام گرفته شده است. این الگوریتم یک الگوریتم فراابتکاری کارآمد است که از طبیعت الهام گرفته شده است و مبتنی بر جمعیت است و راه حل خود را بر اساس ویژگی‌های کرم شب تاب استخراج می‌کند. از این الگوریتم می‌توان برای حل مسائل بهینه‌سازی استفاده کرد.

الگوریتم کرم شب تاب یک سری ویژگی‌هایی دارد که باید به آنها توجه کرد:

تاریخچه الگوریتم کرم شب تاب

تصویر Xin-She Yang ، معرف الگوریتم کرم شب تاب

الگوریتم کرم شب تاب اولین بار در سال 2007 توسط Xin-She Yang در دانشگاه کمبریج معرفی شد.

گام‌های الگوریتم کرم شب تاب

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

الگوریتم کرم شب تاب به ابزاری مهم برای حل سخت‌ترین مسائل بهینه‌سازی در تقریباً تمام زمینه‌های بهینه‌سازی و همچنین مسائل مهندسی تبدیل شده است. مراحل انجام این الگوریتم به شرح زیر است:

شبه کد الگوریتم کرم شب تاب

Problem Definition: Objective function f(x)  #تابع هدف                               
Randomly generate an initial population of n fireflies  #تولید جمعیت اولیه از کرم‌های شب‌تاب   
Fitness calculation of each firefly  #ارزیابی میزان شایستگی هر کرم شب‌تاب                               
while termination condition do
	for i=1:N do	
		(all fireflies)		
		for j=1:N do		
			(all n fireflies)			
			if (fitness (yi) > fitness (yj)) then  #کرم شب‌تاب j به سمت کرم شب‌تاب i حرکت می‌کند.                  
                    
				yi is brighter than yj			
			move yj firefly towards yi firefly			      
		end		       
			#مقدار پارامتر جذابیت بر اساس فاصله محاسبه و آپدیت می‌شود.
			vary attractiveness with distance r between the fireflies      
		end		
	end	
#کرم‌های شب‌تاب بر اساس میزان شایستگی مرتب می‌شوند و بهترین جواب مشخص می‌شود.
sort the fireflies and find the global best
end

کاربردهای الگوریتم کرم شب تاب

از الگوریتم کرم شب تاب برای مسائل مختلف بهینه‌سازی مانند انتخاب ویژگی، پردازش تصویرپردازش تصویر دیجیتال چیست؟ چه انواعی دارد؟ چه مراحلی را شامل می‌شود؟ پردازش تصویر دیجیتال چیست؟ چه انواعی دارد؟ چه مراحلی را شامل می‌شود؟ پردازش تصویر یکی از فیلدهای پرطرفدار مرتبط با گرافیک کامپیوتر، بینایی کامپیوتر، هوش مصنوعی، یادگیری ماشین، و الگوریتم‌ها و محاسبات است که ارتباط تنگاتنگی میان تمام آنهاست. در نتیجه در این صفحه علاوه بر معرفی این فیلد، نقشه راهی نیز برای علاقه‌مندان این حوزه ارائه کرده‌ایم. و خوشه‌بندی استفاده شده است. در اینجا چند مورد استفاده از الگوریتم کرم شب تاب آورده شده است:

پیاده‌سازی الگوریتم کرم شب تاب در پایتون

در نمونه کد ساده زیر الگوریتم کرم شب تاب برای پیداکردن نقطه بهینه سراسری به زبان پایتونزبان برنامه نویسی پایتون چیست؟ – نحوه شروع و دلایل محبوبیتزبان برنامه نویسی پایتون چیست؟ – نحوه شروع و دلایل محبوبیتزبان برنامه نویسی پایتون (Python) چیست؟ این مقاله عالی به بررسی دلایل محبوبیت پایتون، موارد استفاده از پایتون و نحوه شروع به برنامه نویسی پایتون پرداخته پیاده‌سازی شده است:

قبل از استفاده از کد باید کتابخانه الگوریتم کرم شب تاب را نصب کنید:

pip install FireflyAlgorithm

کلاس مربوط به الگوریتم کرم شب تاب:

import numpy as np
from numpy.random import default_rng

class FireflyAlgorithm:
    def __init__(self, pop_size=20, alpha=1.0, betamin=1.0, gamma=0.01, seed=None):
        self.pop_size = pop_size
        self.alpha = alpha
        self.betamin = betamin
        self.gamma = gamma
        self.rng = default_rng(seed)

    def run(self, function, dim, lb, ub, max_evals):
        fireflies = self.rng.uniform(lb, ub, (self.pop_size, dim))
        intensity = np.apply_along_axis(function, 1, fireflies)
        best = np.min(intensity)

        evaluations = self.pop_size
        new_alpha = self.alpha
        search_range = ub - lb

        while evaluations <= max_evals:
            new_alpha *= 0.97
            for i in range(self.pop_size):
                for j in range(self.pop_size):
                    if intensity[i] >= intensity[j]:
                        r = np.sum(np.square(fireflies[i] - fireflies[j]), axis=-1)
                        beta = self.betamin * np.exp(-self.gamma * r)
                        steps = new_alpha * (self.rng.random(dim) - 0.5) * search_range
                        fireflies[i] += beta * (fireflies[j] - fireflies[i]) + steps
                        fireflies[i] = np.clip(fireflies[i], lb, ub)
                        intensity[i] = function(fireflies[i])
                        evaluations += 1
                        best = min(intensity[i], best)
        return best

برای اجرای کد، پارامترهای لازم را باید تعیین کنیم از جمله:

قطعه کد زیر یک نمونه اجرا با استفاده از تابع بهینه‌ساز sphere در فضای دوبعدی است:

import numpy as np
from fireflyalgorithm import FireflyAlgorithm

def sphere(x):
    return np.sum(x ** 2)

FA = FireflyAlgorithm()
best = FA.run(function=sphere, dim=2, lb=-5, ub=5, max_evals=10000)

print(best)

مزایا و معایب الگوریتم کرم شب تاب

مزایا:

معایب:

الگوریتم کرم شب تاب تغییریافته

الگوریتم کرم شب تاب برای بهبود عملکرد آن با روش‌های مختلفی اصلاح شده است. در اینجا چند نمونه از الگوریتم‌های اصلاح شده کرم شب تاب آورده شده است:

جمع‌بندی

در این مقاله با یک الگوریتم فراابتکاری به‌نام الگوریتم کرم شب تاب آشنا شدیم. ابتدا مراحل اجرای الگوریتم کرم شب تاب را بررسی کردیم و یک نمونه کد ساده از این الگوریتم را مشاهده کردیم و در نهایت، موارد استفاده از الگوریتم کرم شب تاب و مزایا و معایب این الگوریتم را مورد بحث قرار دادیم.

الگوریتم کرم شب تاب در کجا استفاده می‌شود؟

روشنایی یا شدت نور یک کرم شب تاب با مقدار تابع هدف یک مسئله مشخص تعیین می‌شود. در حوزه‌های مختلفی این الگوریتم استفاده می‌شود از جمله: مسائل بهینه‌سازی، مسائل شبکه و مسائل پردازش تصویر.

منظور از الگوریتم کرم شب تاب برای استخراج ویژگی چیست؟

الگوریتم کرم شب تاب بر اساس اصل هدایت نور کمتر از شدت نور ساطع شده توسط کرم شب تاب در طبیعت کار می‌کند. الگوریتم می‌تواند به‌صورت تطبیقی ​​بهترین زیرمجموعه ویژگی‌ها را انتخاب کند و دقت طبقه‌بندی را بهبود بخشد.

آیا الگوریتم کرم شب تاب یک الگوریتم فراابتکاری مدرن است؟

بله، الگوریتم کرم شب تاب یک الگوریتم فراابتکاری قدرتمند و کارآمد است که عملکرد مؤثری را در حل مسائل بهینه‌سازی مهندسی نشان داده است. این الگوریتم رفتار چشمک‌زن کرم شب تاب را تقلید می‌کند و راه حل‌ها را به‌صورت تصادفی تولید می‌کند و آنها را به‌عنوان کرم شب تاب در نظر می‌گیرد.

امتیازدهی4.75 1 1 1 1 1 1 1 1 1 14.75 امتیاز (2 رای)
اشتراک
بارگذاری نظرات
تلگرام اینستاگرام