粒子群优化约束优化求解器
psoco的Python项目详细描述
粒子群优化约束优化求解器
参数
Name | Type | Default Value |
---|---|---|
particle_size | int | 2000 |
max_iter | int | 1000 |
sol_size | int | 7 |
fitness | function | null |
constraints | a list of functions | null |
用法
变换约束,它变成:
注:为了更快地搜索最优解,请使用特定的低和高初始化解决方案。在
importpsocoimportmathdefobjective(x):'''create objectives based on inputs x as 2D array'''return(x[:,0]-2)**2+(x[:,1]-1)**2defconstraints1(x):'''create constraint1 based on inputs x as 2D array'''returnx[:,0]-2*x[:,1]+1defconstraints2(x):'''create constraint2 based on inputs x as 2D array'''return-(x[:,0]-2*x[:,1]+1)defconstraints3(x):'''create constraint3 based on inputs x as 2D array'''returnx[:,0]**2/4.+x[:,1]**2-1defnew_penalty_func(k):'''Easy Problem can use \sqrt{k}'''returnmath.sqrt(k)constraints=[constraints1,constraints2,constraints3]num_runs=10# random parameters lead to variations, so run several time to get meanfor_inrange(num_runs):pso=psoco.PSOCO(sol_size=2,fitness=objective,constraints=constraints)pso.h=new_penalty_funcpso.init_Population(low=0,high=1)# x并集的上下限,默认为0和1pso.solve()# best solutionsx=pso.gbest.reshape((1,-1))
参考
- 项目
标签: