A. 智能優化演算法:人工蜂群演算法
@[toc]
摘要:人工蜂群演算法(artificial bee colony,ABC)是由土耳其學者Karaboga 於 2005 年提出,它是模擬蜜蜂的采蜜行為來解決生活中一些多維和多模的優化問題,它最初應用於數值優化問題,自提出以來受到了眾多學者極大的關注,並廣泛應用到神經網路、數據挖掘、工程應用、圖像識別等多個領域。
在 ABC 演算法里,用蜜源的位置來表示解,用蜜源的花粉數量表示解的適應值。所有的蜜蜂劃分為僱傭蜂、跟隨蜂、探索蜂三組。僱傭蜂和跟隨蜂各占蜂群總數的一半。僱傭蜂負責最初的尋找蜜源並采蜜分享信息,跟隨蜂負責呆在蜂巢里根據僱傭蜂提供的信息去采蜜,探索蜂在原有蜜源被拋棄後負責隨機尋找新的蜜源來替換原有的蜜源。與其他群智能演算法一樣,ABC 演算法是迭代的。對蜂群和蜜源的初始化後,反復執行三個過程,即僱傭蜂、跟隨蜂、探索蜂階段,來尋找問題的最優解。每個階段描述如下:
對 ABC 演算法的參數進行初始化,這些參數有蜜源數 、蜜源確定被拋棄的次數 、迭代終止次數。在標准 ABC 演算法里,蜜源的數目 與僱傭蜂數相等,也與跟隨蜂數相等。產生某個蜜源的公式為:
其中: 代表第 個蜜源 的第 維度值, 取值於 , 取值於 ; 和 分別代表第 維的最小值和最大值。初始化蜜源就是對每個蜜源的所有維度通過以上公式賦一個在取值范圍內的隨機值,從而隨機生成 個最初蜜源。
在僱傭蜂階段,僱傭蜂用以下公式來尋找新蜜源:
其中: 代表鄰域蜜源, 取值於 ,且 不等於 ; 是取值在[-1,1]的隨機數,通過式(2)得到新蜜源後,利用貪婪演算法,比較新舊蜜源適應值,選擇優者。
僱傭蜂階段結束,跟隨蜂階段開始。在該階段,僱傭蜂在舞蹈區分享蜜源信息。跟隨蜂分析這些信息,採用輪盤賭策略來選擇蜜源跟蹤開采,以保證適應值更高的蜜源開採的概率更大。跟隨蜂開采過程與僱傭蜂一樣,利用式(2)找尋新蜜源,並留下更優適應者。
蜜源擁有參數 ,當蜜源更新被保留時, 為 0;反之, 加 1。從而 能統計出一個蜜源沒有被更新的次數。
如果一個蜜源經過多次開采沒被更新,也就是 值過高,超過了預定閾值 ,那麼需拋棄這個蜜源,啟動探索蜂階段。這體現了 ABC 里自組織的負反饋和波動屬性 。在該階段里,探索蜂利用式(3)隨機尋找新的蜜源來代替被拋棄蜜源。
人工蜂群演算法流程
step1.初始化演算法參數,生成蜜蜂初始位置
step2.僱傭蜂計算適應度值,比較並保存最優值
step3.跟隨蜂選擇僱傭蜂更新蜜源位置,計算適應度值,保存最佳值
step4.若有偵察蜂出現,則重新生成初始位置並執行更新選優,否則繼續執行step5
step5.若迭代次數小於預設的迭代次數,則轉到step2;否則輸出最優解
[1]何堯,劉建華,楊榮華.人工蜂群演算法研究綜述[J].計算機應用研究,2018,35(05):1281-1286.
https://mianbaoo.com/o/bread/aJWVkps=
https://mianbaoo.com/o/bread/YZWalJxr
B. 關於神經網路,蟻群演算法和遺傳演算法
神經網路並行性和自適應性很強,應用領域很廣,在任何非線性問題中都可以應用,如控制、信息、預測等各領域都能應用。
蟻群演算法最開始應用於TSP問題,獲得了成功,後來又廣泛應用於各類組合優化問題。但是該演算法理論基礎較薄弱,演算法收斂性都沒有得到證明,很多參數的設定也僅靠經驗,實際效果也一般,使用中也常常早熟。
遺傳演算法是比較成熟的演算法,它的全局尋優能力很強,能夠很快地趨近較優解。主要應用於解決組合優化的NP問題。
這三種演算法可以相互融合,例如GA可以優化神經網路初始權值,防止神經網路訓練陷入局部極小且加快收斂速度。蟻群演算法也可用於訓練神經網路,但一定要使用優化後的蟻群演算法,如最大-最小蟻群演算法和帶精英策略。
C. 多目標優化演算法有哪些
主要內容包括:多目標進化演算法、多目標粒子群演算法、其他多目標智能優化演算法、人工神經網路優化、交通與物流系統優化、多目標生產調度和電力系統優化及其他。
D. 什麼是智能優化演算法
群體智能優化演算法是一類基於概率的隨機搜索進化演算法,各個演算法之間存在結構、研究內容、計算方法等具有較大的相似性。因此,群體智能優化演算法可以建立一個基本的理論框架模式:
Step1:設置參數,初始化種群;
Step2:生成一組解,計算其適應值;
Step3:由個體最有適應著,通過比較得到群體最優適應值;
Step4:判斷終止條件示否滿足?如果滿足,結束迭代;否則,轉向Step2;
各個群體智能演算法之間最大不同在於演算法更新規則上,有基於模擬群居生物運動步長更新的(如PSO,AFSA與SFLA),也有根據某種演算法機理設置更新規則(如ACO)。
(4)群智能優化演算法和人工神經網路擴展閱讀
優化演算法有很多,經典演算法包括:有線性規劃,動態規劃等;改進型局部搜索演算法包括爬山法,最速下降法等,模擬退火、遺傳演算法以及禁忌搜索稱作指導性搜索法。而神經網路,混沌搜索則屬於系統動態演化方法。
優化思想裡面經常提到鄰域函數,它的作用是指出如何由當前解得到一個(組)新解。其具體實現方式要根據具體問題分析來定。
E. 智能計算/計算智能、仿生演算法、啟發式演算法的區別與關系
我一個個講好了,
1)啟發式演算法:一個基於直觀或經驗構造的演算法,在可接受的花費(指計算時間和空間)下給出待解決組合優化問題每一個實例的一個可行解,該可行解與最優解的偏離程度不一定事先可以預計。意思就是說,啟發式演算法是根據經驗或者某些規則來解決問題,它求得的問題的解不一定是最優解,很有可能是近似解。這個解與最優解近似到什麼程度,不能確定。相對於啟發式演算法,最優化演算法或者精確演算法(比如說分支定界法、動態規劃法等則能求得最優解)。元啟發式演算法是啟發式演算法中比較通用的一種高級一點的演算法,主要有遺傳演算法、禁忌搜索演算法、模擬退火演算法、蟻群演算法、粒子群演算法、變鄰域搜索演算法、人工神經網路、人工免疫演算法、差分進化演算法等。這些演算法可以在合理的計算資源條件下給出較高質量的解。
2)仿生演算法:是一類模擬自然生物進化或者群體社會行為的隨機搜索方法的統稱。由於這些演算法求解時不依賴於梯度信息,故其應用范圍較廣,特別適用於傳統方法難以解決的大規模復雜優化問題。主要有:遺傳演算法、人工神經網路、蟻群演算法、蛙跳演算法、粒子群優化演算法等。這些演算法均是模仿生物進化、神經網路系統、螞蟻尋路、鳥群覓食等生物行為。故叫仿生演算法。
3)智能計算:也成為計算智能,包括遺傳演算法、模擬退火演算法、禁忌搜索演算法、進化演算法、蟻群演算法、人工魚群演算法,粒子群演算法、混合智能演算法、免疫演算法、神經網路、機器學習、生物計算、DNA計算、量子計算、模糊邏輯、模式識別、知識發現、數據挖掘等。智能計算是以數據為基礎,通過訓練建立聯系,然後進行問題求解。
所以說,你接觸的很多演算法,既是仿生演算法,又是啟發式演算法,又是智能演算法,這都對。分類方法不同而已。
這次樓主不要再老花了哈!
F. 請問智能優化演算法以及神經網路能不能用數學理論進行證明
智能優化演算法多達十幾種,你說的是哪一種?而且你光說演算法證明,這個演算法本來就不存在證明,所謂的證明就是對演算法收斂性的證明。就拿最普遍的遺傳演算法來說吧,這個的證明通常是用馬氏鏈來描述,Holland本人則是通過模式方式來證明,但是證明過程被大家所 不認同。因為這種啟發式隨機搜索演算法只能用概率來描述他的行為,那麼一個依概率存在的東西,找到最優也是依概率的,所以所有的智能演算法至今沒有任何一個人說他的演算法收斂性證明是嚴謹的,是經得起推敲的。所以演算法的證明通常書上不說,要麼就是簡要說一下,因為本身意義不大,實際應用中,演算法的參數都是要反復調整的。至於神經網路,你要證明神經網路的什麼?BP的學習也不需要證明啊