the random variable $Q_p \triangleq \left| \mathcal{K}_p \right|$, which denotes the number of users served by $\mathrm{S}_p$. We shall denote a particular realization of $Q_p$ as $q_p$ and define $\mathbf{q}\triangleq ( q_1, \ldots , q_p )$, where we have $\sum_{p=1}^{P} q_p = K\rho$. For example, in Fig. \[fig:f1\](a), we have $\mathcal{K}_1=\{ \mathrm{U}_1,\mathrm{U}_2 \}, \mathcal{K}_2=\{ \mathrm{U}_1, \mathrm{U}_2, \mathrm{U}_3, \mathrm{U}_4\}, \mathcal{K}_3=\{ \mathrm{U}_3, \mathrm{U}_4 \}$, and $\mathbf{q}=(2,4,2)$. In the delivery phase, server $\mathrm{S}_p$ transmits message $X_p$ of size $R_p F$ bits to the users connected to it, i.e., the users in set $\mathcal{K}_{p}$, over the corresponding shared link. We assume that each server is allocated a separate orthogonal delivery channel, and the message it transmits is received by all the users connected to this server. The message $X_{p}$ is a function of the demand vector $\mathbf{d}$, the network topology, the storage contents of server $\mathrm{S}_p$, and the cache contents of the users in $\mathcal{K}_p$. User $U_k$ receives the messages $X_{\mathcal{Z}_k} \triangleq \{ X_p : p \in \mathcal{Z}_k \}$, and reconstructs its requested file $W_{d_k}$ using these messages and its local cache contents.

Formal Problem Statement
------------------------

We now provide the formal definition of the caching problem. Let $\{W_n\}_{n=1}^{N}$ be $N$ independent random variables 