近期閱讀了關於大尺度優化問題**:《a level-based learning swarm optimizer for large-scale optimization》,是對pso做出的改進,演算法容易實現,這裡做出簡單總結。
(一)動態層數選擇
將種群按適應度值進行排序,排序後將粒子分層,層數的大小從層數池中選擇。層數池為集合s:
粒子的總數np,所分的層數為nl(nl∈s),每層的粒子數為ls,ls=np/nl,餘數=(np%nl),放入底層。
(1)動態層數選擇
為了提高粒子的收斂速度,使用輪盤賭的方法在集合s中動態選擇層數。定義集合:
各元素初始化為1,其中存放的是對集合s中存放的層數的相對效能改進。
f是上一代全域性最佳適應度值,f彎是當代全域性最佳適應度值。
定義集合
存放的是集合s中各層數被選擇的概率。使用輪盤賭的方法,通過生成[0,1]的隨機數,落在特定的概率區間,就選擇乙個特定的層數。
每更新一代將重新排序,再次隨機選擇層數,最大評估粒子數max_fes作為結束條件。
(二)分層學習
層數選好之後,粒子從底層開始不斷向上更新,第一層不更新直接進入下一代。
公式中v(d,(i,j))代表當前在i層的第j個粒子在維度d的速度,引數ф=0.4,是(i-1)層中的隨機兩層,且規定rl1本實驗使用測試函式
z = x^2 + y^2 - 10cos(2pix) - 10cos(2piy) + 20;
三維影象如下:
實驗引數:
ф = 0.4;
max_fes=10^5; %最大評估粒子
np =300; %種群規模
s=6; %層數池中的元素個數
s=[4,6,8,10,20,50];%層數池
這是粒子在三維圖上的分布在z軸仰檢視,粒子逐漸密集與乙個區域。
這是粒子在二維平面的運動變化收斂圖,可以明顯的看出粒子的收斂速度非常快。
這是記錄器記錄的粒子的適應度的變化,最優解的尋找速度也是比較快的。
將粒子按適應度值進行動態分層,優秀粒子保留被學習,讓差的粒子進行探索,不僅保持了多樣性,還加速了粒子的收斂,實現了大規模優化。但是該演算法還是存在一定的缺陷,改進接近全域性最優將是下一步的工作。
粒子群課設 基於粒子群演算法的排課系統設計
基於粒子群演算法的排課系統設計 李道旺李桂珍 期刊名稱 臨沂大學學報 年卷 期 2013 035 003 摘要 排課問題是乙個有約束的 多目標的組合優化問題 在針對遺傳演算法在 求解該問題時搜尋效率較低的情況下 提出了乙個基於粒子群的排課演算法 在演算法設計過程中 考慮排課過程中所出現的各種時間 空...
粒子群演算法 2 標準的粒子群演算法
標準的粒子群演算法 在上一節的敘述中,唯一沒有給大家介紹的就是函式的這些隨機的點 粒子 是如何運動的,只是說按照一定的公式更新。這個公式就是粒子群演算法中的位置速度更新公式。下面就介紹這個公式是什麼。在上一節中我們求取函式y 1 cos 3 x exp x 的在 0,4 最大值。並在 0,4 之間放...
基於粒子群演算法的多目標搜尋
工程優化問題,大多數問題屬於多目標優化問題。相對於單目標優化問題,多目標優化問題的顯著特徵是優化各個目標使其同時達到綜合的最優值。然而,由於多個目標有花紋的各個目標之間往往是衝突的。多目標優化問題求解中最重要的概念是非劣解和非劣解集 非劣解 noninferior solution 在多目標優化問題...