Patterns of Flocking in Autonomous Agents