2020智能優(yōu)化算法:麻雀搜索算法
1.算法原理
建立麻雀搜索算法的數(shù)學(xué)模型牛曹,主要規(guī)則如下所述:
- 發(fā)現(xiàn)者通常擁有較高的能源儲備并且在整個種群中負(fù)責(zé)搜索到具有豐富食物的區(qū)域搪搏,為所有的加入者提供覓食的區(qū)域和方向契讲。在模型建立中能量儲備的高低取決于麻雀個體所對應(yīng)的適應(yīng)度值(Fitness Value)的好壞身诺。
- 一旦麻雀發(fā)現(xiàn)了捕食者米碰,個體開始發(fā)出鳴叫作為報警信號锈拨。當(dāng)報警值大于安全值時敛腌,發(fā)現(xiàn)者會將加入者帶到其它安全區(qū)域進(jìn)行覓食祭饭。
- 發(fā)現(xiàn)者和加入者的身份是動態(tài)變化的瓮床。只要能夠?qū)ふ业礁玫氖澄飦碓错镂瑁恐宦槿付伎梢猿蔀榘l(fā)現(xiàn)者产镐,但是發(fā)現(xiàn)者和加入者所占整個種群數(shù)量的比重是不變的。也就是說踢步,有一只麻雀變成發(fā)現(xiàn)者必然有另一只麻雀變成加入者癣亚。
- 加入者的能量越低,它們在整個種群中所處的覓食位置就越差获印。一些饑腸轆轆的加入者更有可能飛往其它地方覓食逃糟,以獲得更多的能量。
- 在覓食過程中蓬豁,加入者總是能夠搜索到提供最好食物的發(fā)現(xiàn)者绰咽,然后從最好的食物中獲取食物或者在該發(fā)現(xiàn)者周圍覓食。與此同時地粪,一些加入者為了增加自己的捕食率可能會不斷地監(jiān)控發(fā)現(xiàn)者進(jìn)而去爭奪食物資源取募。
- 當(dāng)意識到危險時,群體邊緣的麻雀會迅速向安全區(qū)域移動蟆技,以獲得更好的位置玩敏,位于種群中間的麻雀則會隨機(jī)走動,以靠近其它麻雀质礼。
在模擬實驗中旺聚,我們需要使用虛擬麻雀進(jìn)行食物的尋找,由n只麻雀組成的種群可表示為如下形式:
其中眶蕉, 表示待優(yōu)化問題變量的維數(shù)砰粹,
則是麻雀的數(shù)量。那么造挽,所有麻雀的適應(yīng)度值可以表示為如下形式:
其中碱璃,f 表示適應(yīng)度值。
在 SSA 中饭入,具有較好適應(yīng)度值的發(fā)現(xiàn)者在搜索過程中會優(yōu)先獲取食物嵌器。此外,因為發(fā)現(xiàn)者負(fù)責(zé)為整個麻雀種群尋找食物并為所有加入者提供覓食的方向谐丢。因此爽航,發(fā)現(xiàn)者可以獲得比加入者更大的覓食搜索范圍。根據(jù)規(guī)則(1)和規(guī)則(2)乾忱,在每次迭代的過程中讥珍,發(fā)現(xiàn)者的位置更新描述如下:
其中, 代表當(dāng)前迭代數(shù)饭耳,
串述。
是一個常數(shù)执解,表示最大的迭代次數(shù)寞肖。表示第
個麻雀在第
維中的位置信息纲酗。
是一個隨機(jī)數(shù)。
和
分別表示預(yù)警值和安全值新蟆。
是服從正態(tài)分布的隨機(jī)數(shù)觅赊。
表示一個
的矩陣,其中該矩陣內(nèi)每個元素全部為 1琼稻。
當(dāng) 時吮螺,這意味著此時的覓食環(huán)境周圍沒有捕食者,發(fā)現(xiàn)者可以執(zhí)行廣泛的搜索操作帕翻。如果
鸠补,這表示種群中的一些麻雀已經(jīng)發(fā)現(xiàn)了捕食者,并向種群中其它麻雀發(fā)出了警報嘀掸,此時所有麻雀都需要迅速飛到其它安全的地方進(jìn)行覓食紫岩。
對于加入者,它們需要執(zhí)行規(guī)則(3)和規(guī)則(4)睬塌。如前面所描述泉蝌,在覓食過程中,一些加入者會時刻監(jiān)視著發(fā)現(xiàn)者揩晴。一旦它們察覺到發(fā)現(xiàn)者已經(jīng)找到了更好的食物勋陪,它們會立即離開現(xiàn)在的位置去爭奪食物。如果它們贏了硫兰,它們可以立即獲得該發(fā)現(xiàn)者的食物诅愚,否則需要繼續(xù)執(zhí)行規(guī)則(4)。加入者的位置更新描述如下:
其中劫映,是目前發(fā)現(xiàn)者所占據(jù)的最優(yōu)位置呻粹,
則表示當(dāng)前全局最差的位置。
表示一個
的矩陣苏研,其中每個元素隨機(jī)賦值為 1 或-1等浊,并且
。當(dāng)i >n/2 時摹蘑,這表明筹燕,適應(yīng)度值較低的第 i 個加入者沒有獲得食物,處于十分饑餓的狀態(tài)衅鹿,此時需要飛往其它地方覓食撒踪,以獲得更多的能量。
在模擬實驗中大渤,我們假設(shè)這些意識到危險的麻雀占總數(shù)量的 10% 到 20%制妄。這些麻雀的初始位置是在種群中隨機(jī)產(chǎn)生的。根據(jù)規(guī)則(5)泵三,其數(shù)學(xué)表達(dá)式可以表示為如下形式:
其中耕捞,其中 是當(dāng)前的全局最優(yōu)位置衔掸。
作為步長控制參數(shù),是服從均值為 0俺抽,方差為 1 的正態(tài)分布的隨機(jī)數(shù)敞映。
是一個隨機(jī)數(shù),fi則是當(dāng)前麻雀個體的適應(yīng)度值磷斧。
和
分別是當(dāng)前全局最佳和最差的適應(yīng)度值振愿。
的常數(shù),以避免分母出現(xiàn)零弛饭。
為簡單起見冕末,當(dāng) 表示此時的麻雀正處于種群的邊緣,極其容易受到捕食者的攻擊侣颂。
表示這個位置的麻雀是種群中最好的位置也是十分安全的栓霜。
時,這表明處于種群中間的麻雀意識到了危險横蜒,需要靠近其它的麻雀以此盡量減少它們被捕食的風(fēng)險胳蛮。
表示麻雀移動的方向同時也是步長控制參數(shù)。
算法流程
Step1: 初始化種群丛晌,迭代次數(shù)仅炊,初始化捕食者和加入者比列。
Step2:計算適應(yīng)度值澎蛛,并排序抚垄。
Step3:利用式(3)更新捕食者位置。
Step4:利用式(4)更新加入者位置谋逻。
Step5:利用式(5)更新警戒者位置呆馁。
Step6:計算適應(yīng)度值并更新麻雀位置。
Step7:是否滿足停止條件毁兆,滿足則退出浙滤,輸出結(jié)果,否則气堕,重復(fù)執(zhí)行Step2-6纺腊;
2.算法結(jié)果
3.參考文獻(xiàn)
[1] Xue J , Shen B . A novel swarm intelligence optimization approach: sparrow search algorithm[J]. Systems ence & Control Engineering An Open Access Journal, 2020, 8(1):22-34.
4.Matlab代碼
麻雀搜索算法
https://mianbaoduo.com/o/bread/aJybk5w=
改進(jìn)算法:
1.基于反向策略的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqUl54=
2.基于Tent混沌映射的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqVk5Y=
3.基于Logistic混沌映射的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqVk5c=
4.基于Circle混沌映射的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqVk5g=
5.基于Piecewise混沌映射的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqVk5k=
6.基于Chebyshev混沌映射的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqVk5o=
7.基于Sine混沌映射的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqWk50=
8.基于Singer混沌映射的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqWk54=
9.基于迭代混沌映射的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqWk58=
10.基于Sinusoidal混沌映射的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqWlJY=
11.基于隨機(jī)游走改進(jìn)的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZuXmJc=
12.基于螢火蟲改進(jìn)的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZuZmJk=
13.基于精英反向策略的麻雀搜索算法1
https://mianbaoduo.com/o/bread/mbd-aZycl5Y=
14.基于levy飛行改進(jìn)的麻雀搜索算法
https://mianbaoduo.com/o/bread/mbd-aZqZlZg=
15.基于自適應(yīng)t分布的麻雀算法
https://mianbaoduo.com/o/bread/YZWVlp5v
改進(jìn)麻雀文獻(xiàn)復(fù)現(xiàn)代碼:
1.混沌麻雀。
參考文獻(xiàn):[1]呂鑫,慕曉冬,張鈞,王震.混沌麻雀搜索優(yōu)化算法[J/OL].北京航空航天大學(xué)學(xué)報:1-10[2020-11-16].https://doi.org/10.13700/j.bh.1001-5965.2020.0298.
https://mianbaoduo.com/o/bread/aZ2alZc=
2.融合柯西變異和反向?qū)W習(xí)的改進(jìn)麻雀算法
[1]毛清華,張強(qiáng).融合柯西變異和反向?qū)W習(xí)的改進(jìn)麻雀算法[J/OL].計算機(jī)科學(xué)與探索:1-12[2020-12-16].http://kns.cnki.net/kcms/detail/11.5602.tp.20201203.1601.006.html.
https://mianbaoduo.com/o/bread/YZWYlZlp
3. 混合正弦余弦算法和Lévy飛行的麻雀算法(ISSA)
[1]毛清華,張強(qiáng),毛承成,柏嘉旋.混合正弦余弦算法和Lévy飛行的麻雀算法[J/OL].山西大學(xué)學(xué)報(自然科學(xué)版):1-6[2021-04-09].https://doi.org/10.13451/j.sxu.ns.2020135.
4.基于 Sobol 序列和縱橫交叉策略的麻雀搜索算法(SSASC)
[1]段玉先,劉昌云.基于 Sobol 序列和縱橫交叉策略的麻雀搜索算法[J/OL].計算機(jī)應(yīng)用. https://kns.cnki.net/kcms/detail/51.1307.TP.20210525.1453.002.html
5.Python代碼
https://mianbaoduo.com/o/bread/mbd-aZuTk50=
改進(jìn)算法:
基于Sinusoidal混沌映射的麻雀搜索算法 python 代碼 https://mianbaoduo.com/o/bread/aZ6am5k=
基于迭代混沌映射的麻雀搜索算法 python 代碼 https://mianbaoduo.com/o/bread/aZ6am5Y=
基于Singer混沌映射的麻雀搜索算法 python 代碼 https://mianbaoduo.com/o/bread/aZ6amp4=
基于Sine混沌映射的麻雀搜索算法 python代碼 https://mianbaoduo.com/o/bread/aZ6amp0=
基于Piecewise混沌映射的麻雀搜索算法 python代碼 https://mianbaoduo.com/o/bread/aZ6ampo=
基于Logistic混沌映射的麻雀搜索算法 python 代碼 https://mianbaoduo.com/o/bread/aZ6ampc=
基于Circle混沌映射的麻雀搜索算法 python 代碼 https://mianbaoduo.com/o/bread/aZ6amZ8=
基于Chebyshev混沌映射的麻雀搜索算法 python代碼 https://mianbaoduo.com/o/bread/aZ6amZ4=
基于Tent混沌映射的麻雀搜索算法 python代碼 https://mianbaoduo.com/o/bread/aZ6amZs=
基于反向策略的麻雀搜索算法 python代碼 https://mianbaoduo.com/o/bread/aZ6bmp0=
基于精英反向策略的麻雀搜索算法1 python代碼 https://mianbaoduo.com/o/bread/aZ6bmp4=
基于精英反向策略的麻雀搜索算法2 python 代碼 https://mianbaoduo.com/o/bread/aZ6bm5c=
基于螢火蟲改進(jìn)的麻雀搜索算法 python代碼 https://mianbaoduo.com/o/bread/aZ6bm5g=
基于levy飛行改進(jìn)的麻雀搜索算法 python 代碼 https://mianbaoduo.com/o/bread/aZ6bm5o=
基于隨機(jī)游走改進(jìn)的麻雀搜索算法
https://mianbaoduo.com/o/bread/YZaXmpxs
基于自適應(yīng)t分布的麻雀搜索算法
https://mianbaoduo.com/o/bread/YZWVm5ls
改進(jìn)麻雀文獻(xiàn)復(fù)現(xiàn)代碼:
1.混沌麻雀茎芭。
參考文獻(xiàn):[1]呂鑫,慕曉冬,張鈞,王震.混沌麻雀搜索優(yōu)化算法[J/OL].北京航空航天大學(xué)學(xué)報:1-10[2020-11-16].https://doi.org/10.13700/j.bh.1001-5965.2020.0298.
2.混合正弦余弦算法和Lévy飛行的麻雀算法(ISSA)
[1]毛清華,張強(qiáng),毛承成,柏嘉旋.混合正弦余弦算法和Lévy飛行的麻雀算法[J/OL].山西大學(xué)學(xué)報(自然科學(xué)版):1-6[2021-04-09].https://doi.org/10.13451/j.sxu.ns.2020135.