در این بخش سورس کد الگوریتم جستجوی فاخته CS در پایتون Python قرار گرفته شده است. این سورس کد به زبان پایتون Python برای الگوریتم بهینه سازی فاخته Cuckoo Search Optimization Algorithm به اختصار CS نوشته شده است. این سورس کد بر اساس ساز و کار الگوریتم CS مسائل بهینه سازی را حل می کند. این الگوریتم، از زندگی خانوادهای از پرندگان به نام فاخته Cuckoo الهام گرفته شده است.
الگوریتم بهینه سازی فاخته براساس شیوه زندگی بهینه و ویژگیهای جالب این گونه، نظیر تخمگذاری و تولید مثل آنها ساخته شده است. ویژگی شاخص این الگوریتم، شبیهسازی مفهوم بقا، مهاجرت برای یافتن منابع غذایی و انتخاب محیط بهینه برای زندگی است. جمعیت الگوریتم بهینه سازی فاخته را فاختههای بالغ و تخمهای فاخته تشکیل میدهند. در ادامه مختصری از الگوریتم برای درک کد الگوریتم در پایتون بیان می شود.
برنامهنویس: تیم برنامه نویسی پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.
الگوریتم جستجوی فاخته CS
الگوریتم جستجوی فاخته یک روش بهینه سازی سراسری براساس رفتار فاخته ها توسط Yang & Deb در سال 2009 ارائه شده است. الگوریتم بهینه سازی فاخته براساس شیوه زندگی بهینه و ویژگیهای جالب این گونه، نظیر تخمگذاری و تولید مثل آنها ساخته شده است. ویژگی شاخص این الگوریتم، شبیهسازی مفهوم بقا، مهاجرت برای یافتن منابع غذایی و انتخاب محیط بهینه برای زندگی است.
جمعیت الگوریتم بهینه سازی فاخته را فاختههای بالغ و تخمهای فاخته تشکیل میدهند. الگوریتم اصلی جستجوی فاخته CS بر اساس ایده های زیر است:
- چگونه فاخته ها تخم های خود را در لانه های میزبان می گذارند.
- چگونه در صورت عدم شناسایی و تخریب، تخم ها توسط میزبان به جوجه تبدیل می شوند.
- چگونه می توان از الگوریتم جستجو براساس چنین طرحی برای یافتن بهینه سراسری یک تابع استفاده کرد.
در ابتدا، فاخته ماده لانهای برای مراقبت از تخمهایش پیدا میکند. سپس یکی از تخمهای موجود در لانه پرنده میزبان را با یکی از تخمهای خود جا به جا میکند و با تخم پرنده میزبان از آن منطقه فرار میکند. فاخته ماده لانههای مختلفی را زیر نظر قرار میدهد تا گونهای از پرندگان را پیدا کند که رنگ و الگوی تخمهای گذاشته شده توسط آنها شباهت زیادی به تخمهای خودش داشته باشد.
این گونه فاختهها به گونه ای تکامل یافته اند که یاد میگیرند از رنگ و الگوهای تخم های چند گونه میزبان انتخاب شده، تقلید کنند. تخمهایی بگذارند که رنگ و الگوی تخمهای میزبان را با دقت بالایی همانندسازی کنند. با این حال، بسیاری از پرندگان میزبان نیز یاد میگیرند تا تخمهای فاخته را از تخمهای خود تشخیص دهند. در چنین حالتی، یا تخمهای فاخته از لانه بیرون انداخته میشوند یا اینکه پرنده میزبان لانه خود را رها میکند و مجددا در مکان دیگری اقدام به لانهسازی میکنند.
الگوریتم جستجوی فاخته CS در پایتون
در این قسمت سورس کد الگوریتم جستجوی فاخته CS در پایتون آماده شده است این سورس کد شامل 2 فایل می باشد که عبارتند از:
- benchmarks.py: این فایل شامل 23 تابع هزینه یا Fitness از توابع benchmark می باشد و در اکثر مقالات علمی از این توابع محک برای ارزیابی الگوریتم ها استفاده می کنند.
- CS.py: فایل اصلی برای اجرای الگوریتم جستجوی فاخته CS در پایتون می باشد که فراخوانی ها از طریق این فایل انجام و اجرا خواهد شد.
قسمت هایی از سورس کد توابع محک
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 های مختلفی را همراه با امکان آپدیتشان نصب می کند.
درباره الگوریتم جستجوی فاخته CS در پایتون
سورس کد الگوریتم جستجوی فاخته CS در پایتون Python عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در پایتون و با IDE اسپایدر (Spyder (Python 3.8 نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.
پاورپوینت های مرتبط با الگوریتم جستجوی فاخته CS
سورس کدهای آماده الگوریتم های مشابه در پایتون
تاریخ انتشار: | 9 دی 1399 |
---|---|
تاریخ بروزرسانی: | 20 خرداد 1400 |
حجم فایل: | 7.25 کیلوبایت |
فرمت فایل | py. در قالب پایتون |
نسخه: | 1.0 |
هماهنگی با: | (Spyder (Python 3.8 و بالاتر |
تاکنون 296 نفر این محصول را تهیه کرده اند و 4 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 49,000 تومان
تاریخ انتشار: | 9 دی 1399 |
---|---|
تاریخ بروزرسانی: | 20 خرداد 1400 |
حجم فایل: | 7.25 کیلوبایت |
فرمت فایل | py. در قالب پایتون |
نسخه: | 1.0 |
هماهنگی با: | (Spyder (Python 3.8 و بالاتر |
4 بازخورد (مشاهده نظرات)
قیمت: 49,000 تومان
حسین
مساله ای که الگوریتم در حال حل آن است کجا تعریف شده و می شود؟
مدیریت و پشتیبانی
سلام و وقت بخیر
در سورس کد الگوریتم مسئله ها توابع benchmark هستند. به عنوان مثال هدف کمینه کردن تابع Sphere در سورس کد هست. حالا در تابع costfun ما این توابع رو تعریف کردیم و از داخل فایل اصلی داریم در واقع اون رو حل می کنیم.
کسرا
درست شد مرسی
کسرا
فایلش خرابه:/ چرا اکسترکت نمیشه!؟؟؟
فاطمه اسماعیلی
لطفاً از نرم افزار Winrar 2019 یا بالاتر استفاده نمایید.
چنانچه هنوز موفق به اکسترکت فایل نشدید از یک نرم افزار مدیریت دانلود استفاده کرده و مجدداً فایل رو دانلود بفرمایید.
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.