粒子群优化算法PSO的MATLAB程序代码
简介
粒子群优化算法(Particle swarm optimization)是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法,与遗传算法有点相似,但一般会更容易收敛到最优解。更多的理论可以参考一下链接:
- 维基百科:http://en.wikipedia.org/wiki/Particle_swarm_optimization
- 百度百科:http://baike.baidu.com/view/2936053.htm
我个人对这个理论也不是很熟悉,但是别人给我介绍说这个算法更加接近全局优化,所以就了解了点信息,然后也在网上找到了相应的MATLAB代码。
下载
使用
使用起来很简单,与MATLAB提供的fmincon很类似,如下:
x = pso(fitnessfcn,nvars,Aineq,bineq,Aeq,beq,LB,UB)
其中:
- fitnessfcn:函数句柄,即在定义函数的函数名前加上一个@。
- nvars:要优化的变量数。
- Aineq,bineq:对解的非线性约束关系;如果没有用[ ]代替。
- Aeq,beq:对解x的线性约束关系;如果没有用[ ]代替。
- LB,UB:变量的下边界和上边界;如果没有可以直接省略。
与fmincon的区别是:pso算法不需要给初始值,而fmincon是需要给初始值的。
程序来源:https://code.google.com/p/psomatlab/