訂閱
糾錯
加入自媒體

帝國競爭算法(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等。其他的大家就自己慢慢研究啦。

<上一頁  1  2  3  4  下一頁>  余下全文
聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標(biāo)題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號