to different deployment strategies.

[Alg. \[alg:consolidate\]]{} details the consolidation procedure, and takes as input the nodes $n_1$ and $n_2$ to consolidate. If $n_2$ is $n_1$’s parent, i.e., we are in the situation of [Fig. \[fig:consolidate\]]{}(top), the server at $n_2$ is removed and any base stations that were served by $n_2$ are served by $n_1$ ([Line \[line:consolidate1-begin\]]{}–[Line \[line:consolidate1-end\]]{} of [Alg. \[alg:consolidate\]]{}). If $n_1$ and $n_2$ are siblings, i.e., we are in the situation of [Fig. \[fig:consolidate\]]{}(bottom), then we first identify the node $n_3$ that is a parent to both $n_1$ and $n_2$ ([Line \[line:consolidate2-n3\]]{}). Afterwards, servers at both $n_1$ and $n_2$ are removed, a new server at $n_3$ is created, and all base stations that were served by $n_1$ or $n_2$ are served by $n_3$ ([Line \[line:consolidate2-begin\]]{}–[Line \[line:consolidate2-end\]]{} of [Alg. \[alg:consolidate\]]{}).

### Score definitions {#sec:dist}

A key feature of our approach is that it can support multiple deployment [*strategies*]{} through the one [*algorithm*]{} [Alg. \[alg:design\]]{}. We are able to do so by considering multiple definitions of the score associated with consolidating two network nodes, i.e., the implementation of function called in [Line \[line:mindist\]]{}. Recall that we are still focusing on a single content category $k$.

[**Location-based**]{} It is often desirable to 