  In this work, we study protocols so that populations of distributed processes
can construct networks. In order to highlight the basic principles of
distributed network construction we keep the model minimal in all respects. In
particular, we assume finite-state processes that all begin from the same
initial state and all execute the same protocol (i.e. the system is
homogeneous). Moreover, we assume pairwise interactions between the processes
that are scheduled by an adversary. The only constraint on the adversary
scheduler is that it must be fair. In order to allow processes to construct
networks, we let them activate and deactivate their pairwise connections. When
two processes interact, the protocol takes as input the states of the processes
and the state of the their connection and updates all of them. Initially all
connections are inactive and the goal is for the processes, after interacting
and activating/deactivating connections for a while, to end up with a desired
stable network. We give protocols (optimal in some cases) and lower bounds for
several basic network construction problems such as spanning line, spanning
ring, spanning star, and regular network. We provide proofs of correctness for
all of our protocols and analyze the expected time to convergence of most of
them under a uniform random scheduler that selects the next pair of interacting
processes uniformly at random from all such pairs. Finally, we prove several
universality results by presenting generic protocols that are capable of
simulating a Turing Machine (TM) and exploiting it in order to construct a
large class of networks.
