  In this paper, we study systems of distributed entities that can actively
modify their communication network. This gives rise to distributed algorithms
that apart from communication can also exploit network reconfiguration in order
to carry out a given task. At the same time, the distributed task itself may
now require global reconfiguration from a given initial network $G_s$ to a
target network $G_f$ from a family of networks having some good properties,
like small diameter. With reasonably powerful computational entities, there is
a straightforward algorithm that transforms any $G_s$ into a spanning clique in
$O(\log n)$ time. The algorithm can then compute any global function on inputs
and reconfigure to any target network in one round. We argue that such a
strategy is impractical for real applications. In real dynamic networks there
is a cost associated with creating and maintaining connections. To formally
capture such costs, we define three edge-complexity measures: the \emph{total
edge activations}, the \emph{maximum activated edges per round}, and the
\emph{maximum activated degree of a node}. The clique formation strategy
highlighted above, maximizes all of them. We aim at improved algorithms that
achieve (poly)log$(n)$ time while minimizing the edge-complexity for the
general task of transforming any $G_s$ into a $G_f$ of diameter (poly)log$(n)$.
We give three distributed algorithms. The first runs in $O(\log n)$ time, with
at most $2n$ active edges per round, an optimal total of $O(n\log n)$ edge
activations, a maximum degree $n-1$, and a target network of diameter 2. The
second achieves bounded degree by paying an additional logarithmic factor in
time and in total edge activations and gives a target network of diameter
$O(\log n)$. Our third algorithm shows that if we slightly increase the maximum
degree to polylog$(n)$ then we can achieve a running time of $o(\log^2 n)$.
