資源簡介
人工蜂群算法中有三類蜂群,在尋找蜜源過程中相互轉化,最終尋得最優解。
代碼片段和文件信息
##人工蜂群算法實例
##尋找函數f(x)=x*sin(x)*cos(2*x)-2*x*sin(3*x);的最大值
import?random
import?math
import?copy
#蜜源數量
miyuan_num=10
#迭代次數
iter_num=300
#搜尋范圍
x_max=20
x_min=0
#限制次數
limit=10
miyuanjihe=list()#蜜源集合
employbees=list()#雇傭蜂群
onlookerbees=list()#觀察蜂群
best=list()#記錄每次迭代中的最優值
scoutbee={‘pos‘:[]‘fitness‘:0‘staytime‘:0}#一只偵察蜂
bestmiyuan={‘pos‘:[]‘fitness‘:0‘staytime‘:0}#最優蜜源
#定義計算適應度函數
def?calculateFitness(pos):
????return?pos*math.sin(pos)*math.cos(2*pos)-2*pos*math.sin(3*pos)
#雇傭蜂搜索周邊并更新蜜源位置
def?EmploybeeRefreshMiyuan():
????global?miyuanjihe
????global?employbees
????global?miyuan_num
????for?j?in?range(miyuan_num):
????????while(True):
????????????k=random.randint(09)
????????????if?k?!=j:
????????????????break
????????employbees[j][‘pos‘]=miyuanjihe[j]
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4486??2018-12-05?16:40??abcDemo.py
-----------?---------??----------?-----??----
?????????????????4486????????????????????1
- 上一篇:螢火蟲算法FA.zip
- 下一篇:python開發的計算器
評論
共有 條評論