در این بخش سورس کد الگوریتم کرم شب تاب FA در پایتون Python قرار گرفته شده است. این سورس کد به زبان پایتون Python برای الگوریتم بهینه سازی کرم شب تاب Firefly Algorithm کد نویسی شده است. الگوریتم کرم شب تاب اولین بار توسط Xin-She Yang در اواخر سال 2007 ساخته شد. FA یک الگوریتم فرا اکتشافی مبتنی بر جمعیت است و براساس الگوهای چشمک زن و رفتار کرم شب تاب ساخته شده است. برای دو کرم شب تاب چشمک زن، یکی با روشنایی کمتر به سمت دیگری با روشنایی بیشتر حرکت می کند. در ادامه مختصری از الگوریتم برای درک کد الگوریتم در پایتون بیان می شود.
برنامهنویس: تیم برنامه نویسی پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.
الگوریتم کرم شب تاب FA
الگوریتم بهینه سازی کرم شتاب Firefly Algorithm Optimization، و یا به اختصار الگوریتم کرم شتاب Firefly Algorithm، از رفتارکرم شتاب های طبیعی که در مجموعه ها بزرگ در کنار هم زندگی می کنند الهام گرفته شده است و یکی از الگوریتم های بسیار کارآمد در حل مسائل بهینه سازی ترکیبی است. الگوریتم های دیگری نیز بر اساس الگوریتم کرم شتاب ها ساخته شده اند که همگی سیستم های چند عاملی Multi Agent هستند و عامل ها کرم های شتاب های مصنوعی یا به اختصار کرم شتاب هایی هستند که مشابه با کرم های شتاب واقعی رفتار می کنند.
الگوریتم کرم شتاب ، یک مثال بارز از هوش جمعی هستند که در آن عامل هایی که قابلیت چندان بالایی ندارند، در کنار هم و با همکاری یکدیگر می توانند نتایج بسیار خوبی به دست بیاورند. از این دسته الگوریتم ها می توان به الگوریتم های کلونی مورچگان، زنبور عسل، پرندگان و … اشاره کرد.
الگوریتم کرم شب تاب FA در پایتون
در این قسمت سورس کد الگوریتم کرم شب تاب FA در پایتون Python آماده شده است این سورس کد شامل 2 فایل می باشد که عبارتند از:
- benchmarks.py: این فایل شامل 23 تابع هزینه یا Fitness از توابع benchmark می باشد و در اکثر مقالات علمی از این توابع محک برای ارزیابی الگوریتم ها استفاده می کنند.
- FA.py: فایل اصلی برای اجرای الگوریتم کرم شب تاب FA در پایتون می باشد که فراخوانی ها از طریق این فایل انجام و اجرا خواهد شد.
قسمت هایی از سورس کد توابع محک
import numpy import math # define the function blocks def prod( it ): p= 1 for n in it: p *= n return p def Ufun(x,a,k,m): y=k*((x-a)**m)*(x>a)+k*((-x-a)**m)*(x<(-a)); return y def F1(x): s=numpy.sum(x**2); return s def F2(x): o=sum(abs(x))+prod(abs(x)); return o; def F3(x): dim=len(x)+1; o=0; for i in range(1,dim): o=o+(numpy.sum(x[0:i]))**2; return o; def F4(x): o=max(abs(x)); return o; def F5(x): dim=len(x); o=numpy.sum(100*(x[1:dim]-(x[0:dim-1]**2))**2+(x[0:dim-1]-1)**2); return o; def F6(x): o=numpy.sum(abs((x+.5))**2); return o; def F7(x): dim=len(x); w=[i for i in range(len(x))] for i in range(0,dim): w[i]=i+1; o=numpy.sum(w*(x**4))+numpy.random.uniform(0,1); return o; def F8(x): o=sum(-x*(numpy.sin(numpy.sqrt(abs(x))))); return o; def F9(x): dim=len(x); o=numpy.sum(x**2-10*numpy.cos(2*math.pi*x))+10*dim; return o; def F10(x): dim=len(x); o=-20*numpy.exp(-.2*numpy.sqrt(numpy.sum(x**2)/dim))-numpy.exp(numpy.sum(numpy.cos(2*math.pi*x))/dim)+20+numpy.exp(1); return o; def F11(x): dim=len(x); w=[i for i in range(len(x))] w=[i+1 for i in w]; o=numpy.sum(x**2)/4000-prod(numpy.cos(x/numpy.sqrt(w)))+1; return o; def F12(x): dim=len(x); o=(math.pi/dim)*(10*((numpy.sin(math.pi*(1+(x[0]+1)/4)))**2)+numpy.sum((((x[1:dim-1]+1)/4)**2)*(1+10*((numpy.sin(math.pi*(1+(x[1:dim-1]+1)/4))))**2))+((x[dim-1]+1)/4)**2)+numpy.sum(Ufun(x,10,100,4)); return o; def F13(x): dim=len(x); o=.1*((numpy.sin(3*math.pi*x[1]))**2+sum((x[0:dim-2]-1)**2*(1+(numpy.sin(3*math.pi*x[1:dim-1]))**2))+ ((x[dim-1]-1)**2)*(1+(numpy.sin(2*math.pi*x[dim-1]))**2))+numpy.sum(Ufun(x,5,100,4)); return o; def F14(x): aS=[[-32,-16,0,16,32,-32,-16,0,16,32,-32,-16,0,16,32,-32,-16,0,16,32,-32,-16,0,16,32],[-32,-32,-32,-32,-32,-16,-16,-16,-16,-16,0,0,0,0,0,16,16,16,16,16,32,32,32,32,32]]; aS=numpy.asarray(aS); bS = numpy.zeros(25) v=numpy.matrix(x) for i in range(0,25): H=v-aS[:,i]; bS[i]=numpy.sum((numpy.power(H,6))); w=[i for i in range(25)] for i in range(0,24): w[i]=i+1; o=((1./500)+numpy.sum(1./(w+bS)))**(-1); return o; def F15(L): aK=[.1957,.1947,.1735,.16,.0844,.0627,.0456,.0342,.0323,.0235,.0246]; bK=[.25,.5,1,2,4,6,8,10,12,14,16]; aK=numpy.asarray(aK); bK=numpy.asarray(bK); bK = 1/bK; fit=numpy.sum((aK-((L[0]*(bK**2+L[1]*bK))/(bK**2+L[2]*bK+L[3])))**2); return fit def F16(L): o=4*(L[0]**2)-2.1*(L[0]**4)+(L[0]**6)/3+L[0]*L[1]-4*(L[1]**2)+4*(L[1]**4); return o def F17(L): o=(L[1]-(L[0]**2)*5.1/(4*(numpy.pi**2))+5/numpy.pi*L[0]-6)**2+10*(1-1/(8*numpy.pi))*numpy.cos(L[0])+10; return o def F18(L): o=(1+(L[0]+L[1]+1)**2*(19-14*L[0]+3*(L[0]**2)-14*L[1]+6*L[0]*L[1]+3*L[1]**2))*(30+(2*L[0]-3*L[1])**2*(18-32*L[0]+12*(L[0]**2)+48*L[1]-36*L[0]*L[1]+27*(L[1]**2))); return o # map the inputs to the function blocks def F19(L): aH=[[3,10,30],[.1,10,35],[3,10,30],[.1,10,35]]; aH=numpy.asarray(aH); cH=[1,1.2,3,3.2]; cH=numpy.asarray(cH); pH=[[.3689,.117,.2673],[.4699,.4387,.747],[.1091,.8732,.5547],[.03815,.5743,.8828]]; pH=numpy.asarray(pH); o=0; for i in range(0,4): o=o-cH[i]*numpy.exp(-(numpy.sum(aH[i,:]*((L-pH[i,:])**2)))); return o def F20(L): aH=[[10,3,17,3.5,1.7,8],[.05,10,17,.1,8,14],[3,3.5,1.7,10,17,8],[17,8,.05,10,.1,14]]; aH=numpy.asarray(aH); cH=[1,1.2,3,3.2]; cH=numpy.asarray(cH); pH=[[.1312,.1696,.5569,.0124,.8283,.5886],[.2329,.4135,.8307,.3736,.1004,.9991],[.2348,.1415,.3522,.2883,.3047,.6650],[.4047,.8828,.8732,.5743,.1091,.0381]]; pH=numpy.asarray(pH); o=0; for i in range(0,4): o=o-cH[i]*numpy.exp(-(numpy.sum(aH[i,:]*((L-pH[i,:])**2)))); return o def F21(L): aSH=[[4,4,4,4],[1,1,1,1],[8,8,8,8],[6,6,6,6],[3,7,3,7],[2,9,2,9],[5,5,3,3],[8,1,8,1],[6,2,6,2],[7,3.6,7,3.6]]; cSH=[.1,.2,.2,.4,.4,.6,.3,.7,.5,.5]; aSH=numpy.asarray(aSH); cSH=numpy.asarray(cSH); fit=0; for i in range(0,4): v=numpy.matrix(L-aSH[i,:]) fit=fit-((v)*(v.T)+cSH[i])**(-1); o=fit.item(0); return o def F22(L): aSH=[[4,4,4,4],[1,1,1,1],[8,8,8,8],[6,6,6,6],[3,7,3,7],[2,9,2,9],[5,5,3,3],[8,1,8,1],[6,2,6,2],[7,3.6,7,3.6]]; cSH=[.1,.2,.2,.4,.4,.6,.3,.7,.5,.5]; aSH=numpy.asarray(aSH); cSH=numpy.asarray(cSH); fit=0; for i in range(0,6): v=numpy.matrix(L-aSH[i,:]) fit=fit-((v)*(v.T)+cSH[i])**(-1); o=fit.item(0); return o def F23(L): aSH=[[4,4,4,4],[1,1,1,1],[8,8,8,8],[6,6,6,6],[3,7,3,7],[2,9,2,9],[5,5,3,3],[8,1,8,1],[6,2,6,2],[7,3.6,7,3.6]]; cSH=[.1,.2,.2,.4,.4,.6,.3,.7,.5,.5]; aSH=numpy.asarray(aSH); cSH=numpy.asarray(cSH); fit=0; for i in range(0,9): v=numpy.matrix(L-aSH[i,:]) fit=fit-((v)*(v.T)+cSH[i])**(-1); o=fit.item(0); return o
ویدیو معرفی محصول
*** توجه ***
قبل از اجرای سورس کد الگوریتم در محیط پایتون حتماً از نصب پکیج های مورد استفاده در این سورس کد در Python خود مطمئن شوید پکیج های استفاده شده در این سورس کد numpy و matplotlib می باشد که اولی پکیج مربوط به استفاده از آرایه ها و ماتریس ها در پایتون و دومی مربوط به عملیات های نموداری و Plot گرفتن می باشد. پیشنهاد ما نصب اسپایدر (Spyder (Python 3.7 می باشد که هم پایتون و پکیج های مختلف و هم IDE های مختلفی را همراه با امکان آپدیتشان نصب می کند.
درباره الگوریتم کرم شب تاب در پایتون
الگوریتم کرم شب تاب FA در پایتون Python عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در پایتون و با IDE اسپایدر (Spyder (Python 3.8 نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.
مباحث مرتبط با الگوریتم کرم شب تاب FA
سورس کدهای آماده الگوریتم های مشابه در پایتون
تاریخ انتشار: | 19 دی 1399 |
---|---|
تاریخ بروزرسانی: | 26 تیر 1400 |
حجم فایل: | 7.22 کیلوبایت |
فرمت فایل | py. در قالب پایتون |
نسخه: | 1.0 |
هماهنگی با: | (Spyder (Python 3.8 و بالاتر |
تاکنون 369 نفر این محصول را تهیه کرده اند و 3 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 49,000 تومان
تاریخ انتشار: | 19 دی 1399 |
---|---|
تاریخ بروزرسانی: | 26 تیر 1400 |
حجم فایل: | 7.22 کیلوبایت |
فرمت فایل | py. در قالب پایتون |
نسخه: | 1.0 |
هماهنگی با: | (Spyder (Python 3.8 و بالاتر |
3 بازخورد (مشاهده نظرات)
قیمت: 49,000 تومان
قاسمی
سلام. قبل از خرید میخواستم درمورد این الگوریتم مطالعه ای داشته باشم. مقاله مرتبط دارید؟
فاطمه اسماعیلی
سلام. بله میتونید مقاله زیر رو مطالعه بفرمایید.
https://programstore.ir/?p=5124
f
سلام . وقت بخیر. توضیحات پیاده سازی الگوریتم و توابع توی مجموعه هست ؟ یا صرفا فقط کد ؟
مدیریت و پشتیبانی
با سلام
این محصول فقط سورس کد می باشد.
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.