Swarm Dynamics: Flocking And Communication-Based Optimization