An Improved Particle Swarm Optimization for Economic Dispatch with Non-Smooth Cost Functions