# Optimal Proactive Caching for Multi-View Streaming Mobile Augmented Reality
## 3 System Model
### Heuristic Algorithm Using LSTM  
The aforementioned optimization problem could provide a series of optimal solutions for learning. These optimal solutions are grouped and reshaped into a route matrix and then separated for training and testing purposes. A nominal LSTM network is then designed to explore the potential of multi-view streaming and improve the computing efficiency. Its state changing and gate controlling also follow the nominal LSTM architecture. As shown in Figure 3, we feed user initial locations and destinations into the LSTM network as input and optimized locations of servers anchoring MAR functionalities as output. All possible different results can be calculated as selecting any two execution locations from the set \(\mathbb{M}\) with order, which is \(M^{2}\). Then, the LSTM-based model classifies and creates a mapping between the two sets. A Feasibility Check Stage is required afterwards to guarantee that predictions from the LSTM network could still satisfy the given constraints in the original network. If violating a constraint, such as exceeding an EC's available cache size for example, the remaining predicted requests served by this EC will be redirected to an available neighbor EC as a backup choice. However, if both ECs are fully occupied, such remaining requests have to be transmitted to a further core network cloud and hence suffer from an extra penalty in latency. Figure 4 shows a toy example of applying the LSTM network in our case. The LSTM network treats vectors with low appearance frequency such as [1,3]/[2,4] and  
\begin{table}
\begin{tabular}{c c} \hline \hline
**Parameter** & **Description** \\ \hline
**N** & Set of all AROs \\
**M** & Set of edge clouds \\
**R** & Set of user requests \\
**S\({}_{\mathbf{r}}\)** & Set of view streams \\
**K** & Set of user destinations \\
**L\({}_{\mathbf{rs}}\)** & Set of target AROs for request \(r\) in corresponding view stream \(s\) \\
**T\({}_{\mathbf{lr}}\)**T\({}_{\mathbf{s}}\)** & Accessing probability vectors of AROs and view streams \\ \(\eta_{r}\)**\(\varrho\)** & Two types of AR functions (CPU, Cache) \\ \(O_{l}\) & Size of ARO \(l\) \\ \(h_{rl}^{p}\) & 0/1 var.: if ARO \(l\) in view stream \(s\) for the request \(r\) is cached \\ \(p_{sj}\) & 0/1 var.: if view stream \(s\) is cached at node \(j\) \\ \(x_{rj}\)**\(y_{rj}\)** & 0/1 var.: if function \(\eta\) or \(\varrho\) for \(r\) is set at EC \(j\) \\ \(z_{rj}\) & 0/1 var.: if a cache hit is spotted for request \(r\) \\ \(C_{ij}\) & Communication delay between nodes \(i\) and \(j\) \\ \(F_{rpr}\)**\(F_{\mathrm{er}}\)** & Input size for functions \(\eta_{r}\), \(\varrho\) in request \(r\) \\ \(H_{rl}\) & Channel gain for request \(r\) at node \(j\) \\ \(\gamma_{rj}\) & SINR for request \(r\) at node \(j\) \\ \(B_{j}\)**\(P_{j}\)**\(N_{j}\)** & Resource block bandwidth, power and noise at node \(j\) \\ \(\alpha\) & path loss exponent \\ \(d_{rl}\) & Euclidean distance between user \(r\) to node \(j\) \\ \(f(r)\) & Initial access point for request \(r\) \\ \(D\) & Cache miss penalty \\ \(u_{f(r)k}\) & Moving probability from initial location \(f(r)\) to destination \(k\) \\ \(\omega\), \(f_{rj}^{j}\) & Computation load and CPU availability at EC \(j\) \\ \(V_{rj}\), \(W_{rj}\) & Processing delay for request \(r\) for function \(\eta\), \(\varrho\) at EC \(j\) \\ \(L_{r}\), \(Q\) & Overall latency and user preference \\ \(\Theta_{j}\) & Cache capacity at EC \(j\) \\ \hline \hline \end{tabular}
\end{table}
Table 1: Notation.  
[3,1]/[2,2] as unimportant ones and forgets them during iterations. When several types of optimal solutions (e.g., [2,5] and [4,5]) for the same user route vector (e.g., [1,5]) share a similar level of appearance frequency, it is possible that the LSTM network generates a prediction between given solutions (e.g., [3,5]). The validation accuracy might still be acceptable, but in the Feasibility Check Stage, an activated neighbor EC with enough resources will substitute the current one (e.g., [2,5] replaces [3,5]).