在Pyswarm PSO函数中实现约束

时间:2015-09-16 20:03:34

标签: python optimization particles particle-swarm swarm

我正在研究一种使用Pyswarm粒子群优化的光谱拟合程序。适应度函数简单地是基本微波谱与由PSO中的每个粒子产生的谱之间的图像相似性得分。粒子的参数是旋转常数A,B,C。

我的问题是每个粒子需要A> B> C.鉴于Pyswarm实现的格式,我将如何设置这些参数约束?

Link to pyswarm site

1 个答案:

答案 0 :(得分:2)

pso(Function, lb, ub, ieqcons=[constraints], f_ieqcons=None, args=(),kwargs = argss, swarmsize=100, omega=0.5, phip=0.5, phig=0.5, maxiter=100, minstep=1e-8, minfunc=1e-8, debug=False)

将约束定义为:

def constraints(x):

return x[0] - x[1], x[1] - x[2] 

您的x[]中有A, B, C