帝國競爭演算法 ICA 詳解與python 實現

2021-10-24 21:58:59 字數 871 閱讀 9960

制定規則

假設有100個國家,每個國家有乙個獨特的編號,例如1號國家,2號國家…100號國家這樣。每個國家有個cost function: c1,

c2..

...c

100c_1, c_2 .....c_

c1​,c2

​...

..c1

00​。100個國家中,有10個帝國,90個殖民地。

初始化帝國對於求rastrigin 函式全域性最優問題,就是求乙個二維座標座標下, x 和 y的值。

同化簡單說就是殖民地向領主(帝國)靠近。同化完成過後,重新比對某個帝國的cost function 與其 擁有的殖民地的 cost function,如果某個帝國的cost function 比 被殖民的某個國家還大(最小化優化問題),則兩級反轉,帝國變殖民地,殖民地變帝國。

競爭靠的是實力。帝國演算法競爭步驟需要計算乙個帝國的綜合勢力:帝國自己的勢力與全部殖民地的勢力的總和。

競爭的物件就是最弱帝國的最弱殖民地。

t .c

nt.c_n

t.cn

​是乙個帝國的全部總價值,f(i

mpn)

f(imp_n)

f(impn

​)是乙個帝國的cost function值。ζ

\zeta

ζ是自定義引數,相對於殖民地勢力的權重。f(c

oli)

f(col_i)

f(coli

​)是i號殖民地的cost function 值。

step 4. 帝國滅亡

當乙個帝國沒有了殖民地,這個帝國就會滅亡。

Linux 併發與競爭詳解

多個任務 中斷都能訪問的資源叫共享資源,在驅動開發中注意對共享資源的保護,防止共享資源的併發訪問造成混亂。1 什麼是併發?答 併發就是多個 使用者 同時訪問同乙個共享資源,併發訪問帶來的問題就是競爭。2 什麼是競爭?答 linux 是多工作業系統,肯定存在多個任務共同操作同一段記憶體或裝置,這些任務...

RSA演算法詳解與舉例

一 基礎 rsa演算法非常簡單,概述如下 找兩素數p和q 取n p q 取t p 1 q 1 取任何乙個數e,要求滿足e 取d e t 1 這樣最終得到三個數 n d e 設訊息為數m m 設c m d n就得到了加密後的訊息c 設m c e n則 m m,從而完成對c的解密。注 表示次方,上面兩式...

冒泡演算法詳解及與插入演算法區別

氣泡排序 從字面上理解,就好像水裡的氣泡,大的慢慢冒出來,小的沉下去。而氣泡排序的核心思想就是通過迴圈陣列,將陣列邏輯上分為已排序和未排序陣列,然後遍歷迴圈未排序陣列,將未排序陣列中最大或者最小的加入到已排序陣列中,直至未排序陣列為空。最後得到乙個有序陣列。下面看一組陣列演示 int a 從大到小排...