particle swarm optimization for constrained optimization