帝國競爭算法(imperialist competitive algorithm, ICA )詳解+Java代碼
算法解析
其實和群體進化類算法還是非常像的,只不過把個體的概念換成了國家而已。我們一步步來看。
1. 初始化
ICA的個體是國家,相當于遺傳算法中的染色體,對于一個N維的優(yōu)化問題,國家可以表示成如下形式:
國家的勢力大小通過代價函數(shù)來衡量:
國家的勢力和代價函數(shù)值成反比,即代價函數(shù)值越小,國家勢力越大。初始帝國的產(chǎn)生分為以下幾個步驟:
STEP 1:首先,隨機產(chǎn)生個國家,從中選出勢力較大的前個國家作為帝國主義國家,剩下的個國家作為殖民地。
STEP 2:其次,根據(jù)帝國主義國家的勢力大小劃分殖民地。每個帝國的殖民地個數(shù)按照式(1)~(3)計算:
其中,是第個帝國主義國家的代價函數(shù)值。是它的標準化代價。是它的標準化勢力大小。 是第個帝國的初始殖民地個數(shù)。最后,對于每個帝國主義國家,從個殖民地中隨機選擇相應的個數(shù)分配給它,最終形成初始的個帝國。[2]
不過這里解釋一下,一個國家其實可以看成一個解的表示,與遺傳中染色體類似。國家的勢力通常由該國家所表示的解的好壞決定的。一般可以采用隨機或者貪心的方式生成初始國家,然后計算目標函數(shù),計算勢力,再劃分帝國主義國家和殖民地國即可。
2. 殖民地同化
帝國主義國家為了更好地控制其殖民地國家,將自己的思想模式及文化風俗推廣到殖民地國家的過程,稱為同化。ICA中通過所有殖民地向其所屬帝國主義國家移動來模擬同化過程。[2] 當然這個移動可以看出解在解空間上的移動,與鄰域搜索那個移動也有點類似,本質(zhì)還是解的變換。
一個同化的例子如下,其實跟GA中的交叉很相似:
3. 殖民地革命
殖民地革命是對殖民地進行一定的移動,希望其能更靠近最優(yōu)解的位置。但通常而言,對于一個社會來講,不是說有的革命都是成功的有益的。革命也可能導致資源內(nèi)耗,無法進行有效的社會變革從而降低殖民地的力量(參照蘇聯(lián))。一個殖民地革命的例子如下(和GA中的變異很像對不對):
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
10月31日立即下載>> 【限時免費下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
-
即日-11.13立即報名>>> 【在線會議】多物理場仿真助跑新能源汽車
-
11月28日立即報名>>> 2024工程師系列—工業(yè)電子技術在線會議
-
12月19日立即報名>> 【線下會議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
-
即日-12.26火熱報名中>> OFweek2024中國智造CIO在線峰會
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍皮書》
推薦專題
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結構工程師 廣東省/深圳市