Exploring pigeon flocking under predation through multi-agent simulation and evolutionary algorithms.