訂閱
糾錯(cuò)
加入自媒體

帝國(guó)競(jìng)爭(zhēng)算法(imperialist competitive algorithm, ICA )詳解+Java代碼

當(dāng)一個(gè)殖民地國(guó)家通過(guò)同化和革命移動(dòng)到一個(gè)新的位置后,殖民地的代價(jià)函數(shù)值可能比帝國(guó)主義國(guó)家小,也就是說(shuō)殖民地的勢(shì)力更大。此時(shí),交換殖民地和帝國(guó)主義國(guó)家的位置,即殖民地成為該帝國(guó)的帝國(guó)主義國(guó)家,而原來(lái)的帝國(guó)主義國(guó)家則淪為殖民地。[2]

完成上述步驟后,需要對(duì)帝國(guó)的權(quán)力進(jìn)行重新計(jì)算。常見(jiàn)的計(jì)算方式是對(duì)帝國(guó)的權(quán)力和該帝國(guó)下的所有殖民地國(guó)家的權(quán)力進(jìn)行加權(quán)。當(dāng)然你直接加總也應(yīng)該是可以的,具體還是取決于算法如何進(jìn)行設(shè)計(jì)。

4. 帝國(guó)競(jìng)爭(zhēng)

帝國(guó)競(jìng)爭(zhēng)機(jī)制模擬的是現(xiàn)實(shí)社會(huì)中勢(shì)力較強(qiáng)的帝國(guó)占有并控制勢(shì)力較弱帝國(guó)的殖民地的過(guò)程。首先,需要計(jì)算帝國(guó)的總代價(jià)函數(shù)值,即勢(shì)力大小。帝國(guó)主義國(guó)家對(duì)整個(gè)帝國(guó)的勢(shì)力影響較大,而殖民地國(guó)家的影響非常小,因此ICA采用如下公式計(jì)算一個(gè)帝國(guó)的總代價(jià):

其中, 是第個(gè)帝國(guó)的帝國(guó)主義國(guó)家;是第個(gè)帝國(guó)的總代價(jià);,的大小決定了殖民地國(guó)家對(duì)整個(gè)帝國(guó)勢(shì)力的影響程度。選擇最弱的帝國(guó)中最弱的殖民地作為帝國(guó)競(jìng)爭(zhēng)的對(duì)象,勢(shì)力越大的帝國(guó)越有可能占有該殖民地。[2]

一般的做法是將勢(shì)力最弱的那個(gè)帝國(guó)中最弱的殖民地重新分配給勢(shì)力最強(qiáng)的帝國(guó)。

5. 帝國(guó)消亡

帝國(guó)之間的競(jìng)爭(zhēng),使勢(shì)力大的帝國(guó)通過(guò)占有其他帝國(guó)的殖民地變得越來(lái)越強(qiáng)大,而勢(shì)力弱的帝國(guó)殖民地個(gè)數(shù)不斷減少,當(dāng)一個(gè)帝國(guó)丟失所有的殖民地時(shí),帝國(guó)覆滅。隨著帝國(guó)的滅亡,最終剩下一個(gè)帝國(guó),此時(shí)算法終止。[2]

動(dòng)態(tài)演示

最后可以給大家看看該算法的一個(gè)動(dòng)態(tài)演示過(guò)程:

可以看到,隨著迭代的進(jìn)行,大國(guó)不斷吞并效果,最終剩下的帝國(guó)數(shù)量越來(lái)越少。正所謂分久必合嘛。最終剩下的幾個(gè)帝國(guó)就代表著算法搜索到的比較優(yōu)秀的解了。

代碼

代碼從GitHub上找的,自己修改了一些地方確保能夠運(yùn)行

欲下載本文相關(guān)的完整代碼及算例,在公眾號(hào)后臺(tái)回復(fù)【ICAJAVA】不包括【】即可。

main函數(shù)寫(xiě)在了TestICA.java里面。其中代碼是求解數(shù)學(xué)優(yōu)化問(wèn)題的,其適應(yīng)度函數(shù)計(jì)算可以找到FitnessFunction.java中的getFitnessValue進(jìn)行修改,比如Sphere function、Rastrigin function和Ackley function等。其他的大家就自己慢慢研究啦。

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

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

暫無(wú)評(píng)論

暫無(wú)評(píng)論

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

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