我正在研究一种使用Pyswarm粒子群优化的光谱拟合程序。适应度函数简单地是基本微波谱与由PSO中的每个粒子产生的谱之间的图像相似性得分。粒子的参数是旋转常数A,B,C。
我的问题是每个粒子需要A> B> C.鉴于Pyswarm实现的格式,我将如何设置这些参数约束?
答案 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
。