/* particleswarm.h by M. Hazen Implements particle swarm optimization. */ #ifndef PARTICLESWARM_H #define PARTICLESWARM_H #define DIM 2 #define POPSIZE 40 #define MAXITS 500 typedef struct particle { float pos[DIM]; float pb[DIM]; // personal best position float pbval; // personal best value float vel[DIM]; // current velocity } particle; float* optimize (float(*obj)(float*), float* mins, float* maxs); particle* initialize_opt (float(*obj)(float*), float* mins, float* maxs, float* gb, float *gbval); void update_vel (particle* part, float* gb); void update_pos (float(*obj)(float*), particle* part); void update_gb (particle* population, float* gb, float* gbval); #endif