  We show how a distributed flocking controller can be synthesized using deep
learning from a centralized controller which generates the trajectories of the
flock. Our approach is based on supervised learning, with the centralized
controller providing the training data to the learning agent, i.e., the
synthesized distributed controller. We use Model Predictive Control (MPC) for
the centralized controller, an approach that has been successfully demonstrated
on flocking problems. MPC-based flocking controllers are high-performing but
also computationally expensive. By learning a symmetric distributed neural
flocking controller from a centralized MPC-based flocking controller, we
achieve the best of both worlds: the neural controllers have high performance
(on par with the MPC controllers) and high efficiency. Our experimental results
demonstrate the sophisticated nature of the distributed controllers we learn.
In particular, the neural controllers are capable of achieving myriad
flocking-oriented control objectives, including flocking formation, collision
avoidance, obstacle avoidance, predator avoidance, and target seeking.
Moreover, they generalize the behavior seen in the training data in order to
achieve these objectives in a significantly broader range of scenarios.
