資源簡介
粒子群算法,也稱粒子群優化算法,縮寫為 PSO, 是由J. Kennedy和R. C. Eberhart等開發的一種新的進化算法,PSO 算法屬于進化算法的一種,和模擬退火算法相似,它也是從隨機解出發,通過迭代尋找最優解,它也是通過適應度來評價解的品質,但它比遺傳算法規則更為簡單,它沒有遺傳算法的“交叉”(Crossover) 和“變異”(Mutation) 操作,它通過追隨當前搜索到的最優值來尋找全局最優。這種算法以其實現容易、精度高、收斂快等優點引起了學術界的重視,并且在解決實際問題中展示了其優越性。
代碼片段和文件信息
%?定義PSO函數
function?out?=?PSO(problem?params)
????%%?讀取problem變量的值
????CostFunction?=?problem.CostFunction;??%?目標函數
????nVar?=?problem.nVar;????????%?決策變量個數
????VarSize?=?[1?nVar];?????????%?決策變量矩陣大小
????VarMin?=?problem.VarMin; %?決策變量的取值的最小值
????VarMax?=?problem.VarMax;????%?決策變量的取值的最大值
????%%?讀取params變量的值
????MaxIt?=?params.MaxIt;???%?最大迭代次數
????nPop?=?params.nPop;?????%?種群數量
????w?=?params.w;???????????%?慣性系數w
????wdamp?=?params.wdamp;???%?每次迭代改變慣性系數
????c1?=?params.c1;?????????%?個體理性系數c1
????c2?=?params.c2;?????????%?群體理性系數c2;?????????本文設r1r2為區間(0,1)的隨機數
????%?判斷是否顯示迭代信息
????ShowIterInfo?=?params.ShowIterInfo;????
????
????%?定義速度的上下界
????MaxVelocity?=?0.2*(VarMax-VarMin);
????MinVelocity?=?-MaxVelocity;
????
????%%?初始化
????
????%?粒子的性質
????empty_pa
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1073??2019-02-02?00:44??pso1.m
?????文件?????????53??2019-01-30?21:16??Sphere.m
?????文件???????4254??2019-02-02?00:52??PSO.m
-----------?---------??----------?-----??----
?????????????????5380????????????????????3
- 上一篇:鋸齒波發生器
- 下一篇:復雜網絡的Matlab實現14103
評論
共有 條評論