帝國競爭算法(imperialist competitive algorithm, ICA )詳解+Java代碼
前言
這段時間用過這個算法做過相關(guān)的工作,今天就介紹一下吧。雖然感覺效果嘛,勉勉強強啦。不過每種算法肯定有其適用的地方,用到了就Mark一下方便后人吧~
介紹
帝國競爭算法(imperialist competitive algorithm,ICA)是Atashpaz-Gargari和Lucas于2007年提出的一種基于帝國主義殖民競爭機制的進化算法,屬于社會啟發(fā)的隨機優(yōu)化搜索方法。目前,ICA已被成功應用于多種優(yōu)化問題中,如調(diào)度問題、分類問題和機械設(shè)計問題等。[2]
帝國主義競爭算法,借鑒了人類歷史上政治社會殖民階段帝國主義國家之間的競爭、占領(lǐng)、吞并殖民殖民地國家從而成為帝國國家的演化,是一種全局性的優(yōu)化算法。該算法把所有初始化的個體都稱作國家,按照國家勢力分成帝國主義國家及殖民地兩種,前者優(yōu)勢大于后者。[1]
其實,從另一個角度來看,ICA可以被認為是遺傳算法(GA)的社會對應物。ICA是基于人類社會進化的過程,而GA是基于物種的生物進化過程。二者其實有異曲同工之妙。
不過話說回來,大多數(shù)群體仿生類算法都有異曲同工之妙~
流程圖
學習算法框架,當然先搞懂流程圖啦。算法的流程圖我就不重新畫了,找了一篇文獻上的直接挪過來:[1]
整個流程大體如上,可能大家在其他地方看到的有些專有名詞可能對不上,但描述的都是一個東西,本質(zhì)是一樣的。我們下面來一步步分析這個過程吧。

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字