帝國競爭算法(imperialist competitive algorithm, ICA )詳解+Java代碼
當(dāng)一個殖民地國家通過同化和革命移動到一個新的位置后,殖民地的代價函數(shù)值可能比帝國主義國家小,也就是說殖民地的勢力更大。此時,交換殖民地和帝國主義國家的位置,即殖民地成為該帝國的帝國主義國家,而原來的帝國主義國家則淪為殖民地。[2]
完成上述步驟后,需要對帝國的權(quán)力進(jìn)行重新計(jì)算。常見的計(jì)算方式是對帝國的權(quán)力和該帝國下的所有殖民地國家的權(quán)力進(jìn)行加權(quán)。當(dāng)然你直接加總也應(yīng)該是可以的,具體還是取決于算法如何進(jìn)行設(shè)計(jì)。
4. 帝國競爭
帝國競爭機(jī)制模擬的是現(xiàn)實(shí)社會中勢力較強(qiáng)的帝國占有并控制勢力較弱帝國的殖民地的過程。首先,需要計(jì)算帝國的總代價函數(shù)值,即勢力大小。帝國主義國家對整個帝國的勢力影響較大,而殖民地國家的影響非常小,因此ICA采用如下公式計(jì)算一個帝國的總代價:
其中, 是第個帝國的帝國主義國家;是第個帝國的總代價;,的大小決定了殖民地國家對整個帝國勢力的影響程度。選擇最弱的帝國中最弱的殖民地作為帝國競爭的對象,勢力越大的帝國越有可能占有該殖民地。[2]
一般的做法是將勢力最弱的那個帝國中最弱的殖民地重新分配給勢力最強(qiáng)的帝國。
5. 帝國消亡
帝國之間的競爭,使勢力大的帝國通過占有其他帝國的殖民地變得越來越強(qiáng)大,而勢力弱的帝國殖民地個數(shù)不斷減少,當(dāng)一個帝國丟失所有的殖民地時,帝國覆滅。隨著帝國的滅亡,最終剩下一個帝國,此時算法終止。[2]
動態(tài)演示
最后可以給大家看看該算法的一個動態(tài)演示過程:
可以看到,隨著迭代的進(jìn)行,大國不斷吞并效果,最終剩下的帝國數(shù)量越來越少。正所謂分久必合嘛。最終剩下的幾個帝國就代表著算法搜索到的比較優(yōu)秀的解了。
代碼
代碼從GitHub上找的,自己修改了一些地方確保能夠運(yùn)行
欲下載本文相關(guān)的完整代碼及算例,在公眾號后臺回復(fù)【ICAJAVA】不包括【】即可。
main函數(shù)寫在了TestICA.java里面。其中代碼是求解數(shù)學(xué)優(yōu)化問題的,其適應(yīng)度函數(shù)計(jì)算可以找到FitnessFunction.java中的getFitnessValue進(jìn)行修改,比如Sphere function、Rastrigin function和Ackley function等。其他的大家就自己慢慢研究啦。
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
10月31日立即下載>> 【限時免費(fèi)下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
-
即日-11.13立即報名>>> 【在線會議】多物理場仿真助跑新能源汽車
-
11月28日立即報名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會議
-
12月19日立即報名>> 【線下會議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
-
即日-12.26火熱報名中>> OFweek2024中國智造CIO在線峰會
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
推薦專題
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市