## 2 System Model
### Caching  
UDNs can benefit from caching popular files on BSs in terms of throughput, delay, and traffic load on backhaul links. It is obvious that the more files cached on BSs, the better performance a network can achieve. The cache-enabled heterogeneous UDN we considered in this paper is illustrated as Figure 1. For simplicity, we assume that the files requested by all UEs in the networks are restricted into the set of \(F^{\Omega}=\{f|f=1,2,\cdots,|F^{\Omega}|\}\), and each file is in the same size of \(F_{\text{max}}\) bits. We assume the popularity of files follows Zipf distribution [13]. Let \(p_{f}\) denote the probability mass function of popularity random variable \(F\). The probability that file \(f\) is requested can be given by:  
\[p_{f}=\frac{\left(\sum_{f=1}^{|F^{\Omega}|}f^{-\gamma}\right)^{-1}}{f^{\gamma} }, \tag{6}\]  
where \(\gamma\) is the Shape Factor (SF) indicating the correlation between requests of UEs [13]. It is seen that the larger the shape factor \(\gamma\) is, the smaller the probability mass function \(p_{f}\) would be, the lower probability file \(f\) is requested out of the caching set \(F^{\Omega}\).  
Define a caching index vector \(\mathbf{y_{b}}=[y_{b,1},y_{b,2},\cdots,y_{b,f},\cdots y_{b,|F^{\Omega}|}]\), where \(y_{b,f}\) indicates whether BS \(b\) caches file \(f\) in the caching set \(F^{\Omega}\) or not. More specifically,  
\[y_{b,f}=\left\{\begin{array}{ll}1&\text{file $f$ is cached on BS $b$}\\ 0&\text{otherwise}\end{array}\right.. \tag{7}\]  
Figure 1: System model of caching-enabled Ultra-Dense Network (UDN) with joint transmission Coordinated Multi-Point (JT CoMP).  
Then the File-BS caching matrix can be denoted by:  
\[\mathbf{Y}=\left[\begin{array}{ccccc}y_{1,1}&y_{1,2}&\cdots&y_{|B^{\Omega}|,|F^{ \Omega}|}\\ y_{2,1}&y_{2,2}&\cdots&y_{|B^{\Omega}|,|F^{\Omega}|}\\ \vdots&\vdots&\ddots&\vdots\\ y_{|B^{\Omega}|,1}&y_{|B^{\Omega}|,2}&\cdots&y_{|B^{\Omega}|,|F^{\Omega}|} \end{array}\right]. \tag{8}\]  
As for UEs, we define a row vector \(\mathbf{q_{m}}=[q_{m,1},q_{m,2},\cdots,q_{m,f},\cdots]\), where \(q_{m,f}\) represents the request of UE \(m\) to file \(f\), i.e.,  
\[q_{m,f}=\left\{\begin{array}{ll}1&\quad\text{file $f$ is requested by UE $m$}\\ 0&\quad\text{otherwise}\end{array}\right.. \tag{9}\]  
Suppose a UE can request one and only one file at each time, then we have \(\sum_{f}q_{m,f}=1\), \(\forall m\in M^{\Omega}\). Then \(\mathbf{q_{m}y_{b}^{T}}\) represents whether the file requested by UE \(m\) is caching on BS \(b\), where \(\mathbf{v}^{T}\) represents the transpose of the vector \(\mathbf{v}\).  
\[\mathbf{q_{m}y_{b}^{T}}=\left\{\begin{array}{ll}1&\quad\text{file $f$ requested by UE $m$ is on BS $b$}\\ 0&\quad\text{otherwise}\end{array}\right.. \tag{10}\]  
If UE \(m\) is associated with BS \(b\) (i.e., \(x_{m,b}=1\)), we say that BS \(b\) misses a file if file \(f\) requested by UE \(m\) is not cached in it.  
If BSs miss a file, they need to fetch the file from the Core Network (CN). We assume a centralized deployment of the considered UDN, where each BS is directly connected to the CN via backhaul links. The backhaul load is defined as the traffic carried by backhaul links between BSs and the CN [14]. In the case that BS \(b\) misses a file requested by UE \(m\), BS \(b\) have to fetch the file from the CN through the backhaul link, which aggravates the backhaul load of BS \(b\) inevitably. In reality, the capacity of backhaul links is usually limited. Congestion occurs when the backhaul load of BS \(b\) exceeds the backhaul capacity \(C_{b}^{\text{max}}\).  
Let \(U_{\text{back}}\) represent the increase of backhaul load due to fetching a file from the CN. The backhaul load caused by UE \(m\) can be given by:  
\[V_{m}=\sum_{b\in B_{0}^{\Omega}}(1-\mathbf{q_{m}y_{b}^{T}})U_{\text{back}}. \tag{11}\]  
It is obvious that the more files BSs cache (i.e., the less files BSs miss), the less heavier the backhaul load will be.