  Our ability to manipulate the behavior of complex networks depends on the
design of efficient control algorithms and, critically, on the availability of
an accurate and tractable model of the network dynamics. While the design of
control algorithms for network systems has seen notable advances in the past
few years, knowledge of the network dynamics is a ubiquitous assumption that is
difficult to satisfy in practice, especially when the network topology is large
and, possibly, time-varying. In this paper we overcome this limitation, and
develop a data-driven framework to control a complex dynamical network
optimally and without requiring any knowledge of the network dynamics. Our
optimal controls are constructed using a finite set of experimental data, where
the unknown complex network is stimulated with arbitrary and possibly random
inputs. In addition to optimality, we show that our data-driven formulas enjoy
favorable computational and numerical properties even compared to their
model-based counterpart. Although our controls are provably correct for
networks with linear dynamics, we also characterize their performance against
noisy experimental data and in the presence of nonlinear dynamics, as they
arise when mitigating cascading failures in power-grid networks and when
manipulating neural activity in brain networks.
