MOPSO 多目標粒子群優化演算法

2022-03-16 08:36:47 字數 2851 閱讀 4279

近年來,基於啟發式的多目標優化技術得到了很大的發展,研究表明該技術比經典方法更實用和高效。有代表性的多目標優化演算法主要有nsga、nsga-ii、spea、spea2、paes和pesa等。粒子群優化(pso)演算法是一種模擬社會行為的、基於群體智慧型的進化技術,以其獨特的搜尋機理、出色的收斂效能、方便的計算機實現,在工程優化領域得到了廣泛的應用,多目標pso(mopso)演算法應用到了不同的優化領域[9~11],但存在計算複雜度高、通用性低、收斂性不好等缺點。

多目標粒子群(mopso)演算法是由carlosa. coello coello等在2023年提出來的,詳細參考1。目的是將原來只能用在單目標上的粒子群演算法(pso)應用於多目標上。我們知道原來的單目標pso流程很簡單:

-->初始化粒子位置(一般都是隨機生成均勻分布)

-->計算適應度值(一般是目標函式值-優化的物件)

-->初始化歷史最優pbest為其本身和找出全域性最優gbest

-->根據位置和速度公式進行位置和速度的更新

-->重新計算適應度

-->根據適應度更新歷史最優pbest和全域性最優gbest

-->收斂或者達到最大迭代次數則退出演算法

速度的更新公式如下:

等式右邊有三部分組成。第一部分是慣性量,是延續粒子上一次運動的向量;第二部分是個體認知量,是向個體歷史最優位置運動的量;第三部分是社會認知量,是粒子向全域性最優位置運動的量。

有了速度,則位置更新自然出來了:

以上是對於多目標pso演算法的介紹。運用到多目標上去的話,出現的問題有以下幾點:

如何選擇pbest。我們知道對於單目標優化來說選擇pbest,只需要對比一下就可以選擇出哪個較優。但是對於多目標來說兩個粒子的對比,並不能對比出哪個好一些。如果粒子的每個目標都要好的話,則該粒子更優。若有些更好,有些更差的話,就無法嚴格的說哪個好些,哪個差一些。

如何選擇gbest。我們知道對於單目標在種群中只有乙個最優的個體。而對於多目標來說,最優的個體有很多個。而對pso來說,每個粒子只能選擇乙個作為最優的個體(領帶者)。該如何選擇呢?

mopso對於第乙個問題的做法是在不能嚴格對比出哪個好一些時隨機選擇乙個其中乙個作為歷史最優。對於第二個問題,mopso則在最優集裡面(存檔中)根據擁擠程度選擇乙個領導者。盡量選擇不那麼密集位置的粒子(在這裡用到了網格法)。mopso在選擇領導者和對存檔(也可以說是pareto臨時最優斷面)進行更新的時候應用了自適應網格法,詳細參考4。

下面是mopso演算法的步驟:

(1)初始化群體和archive 集

給引數賦初值,生成初始群體p1,並把p1 中的非劣解拷貝到archive 集中得到a1。設當前進化代數為 t,在t 小於總進化代數時完成(2)~(4)的內容。

(2)進化產生下一代群體

設當前進化的粒子 j,在j 小於群體規模時完成1)~3)的內容。

1)計算archive 集中粒子的密度資訊

把目標空間用網格等分成小區域,以每個區域中包含的粒子數作為粒子的密度資訊。粒子所在網格中包含的粒子數越多,其密度值越大,反之越小。以二維目標空間最小化優化問題為例,密度資訊估計演算法的具體實現過程如下:

其中,g = m ×m 為目標空間要劃分的網格數, int( ⋅)為取整函式, fi 1 和fi 2 為粒子i 的目標函式值。

2)為群體中的粒子pj,t 在at 中選擇其gbest 粒子gj,tgj,t 粒子的質量決定了mopso 演算法的收斂效能和非劣解集的多樣性,其選擇依據是archive 集中粒子的密度資訊。具體地,對於archive 中的粒子,其密度值越低,選擇的概率就越大,反之越小;用archive 集中的粒子優於群體中的粒子數來評價其搜尋潛力,優於群體中的粒子數越多,其搜尋潛力越強,反之越弱。演算法的具體實現如下:

其中,|at|表示at 包含的粒子數;aj 用來存放at 中優於粒子pj,t 的成員,aj 中密度最小的粒子存放在gj 中;density(ak)計算粒子ak 的密度估計值;rand表示從gj,t 中隨機選擇乙個成員。

3)更新群體中粒子的位置和速度群體中的粒子在gbest 和pbest 的引導下搜尋最優解,演算法的具體實現如下:

其中,pk,t+1 表示pt+1 中的第k 個粒子;符號≺

多目標優化 粒子群演算法 PSO 1

1 背景 2 演算法介紹 3 演算法流程 4 例子說明 粒子群演算法 particle swarm optimization,pso 最早是由eberhart和kennedy在1995年提出來的,粒子群演算法的特點是簡單易行,收斂速度快,設定引數少,已經成為現代優化領域的熱點。粒子群演算法的概念源於...

matlab實現多目標粒子群優化(MOPSO)

此函式執行多目標粒子群優化 mopso 以最小化連續函式。該實現是可以承受的,計算量較小並且已壓縮 該演算法僅需要乙個檔案 mpso.m 提供了乙個 example.m 指令碼,以幫助使用者使用該實現。值得一提的是,為了便於理解,該 受到了高度評 價。此實現基於coello等人的 2004 使用粒子...

基於粒子群演算法的多目標搜尋

工程優化問題,大多數問題屬於多目標優化問題。相對於單目標優化問題,多目標優化問題的顯著特徵是優化各個目標使其同時達到綜合的最優值。然而,由於多個目標有花紋的各個目標之間往往是衝突的。多目標優化問題求解中最重要的概念是非劣解和非劣解集 非劣解 noninferior solution 在多目標優化問題...