Craig Reynolds' Boids
Steering Behaviors For Autonomous Characters by Craig Reynolds
Understanding Steering Behaviors
Autonomous Agents from the Nature of Code by Daniel Shiffman