# QoE Optimization in a Live Cellular Network through RLC Parameter Tuning
## 5 QoE Optimization Algorithm  
In order to automatize the optimization of the QoE based on the adjustment of RLC configuration parameters, a controller-based method has been selected. In particular, TM has been used. TM is one of the most widely used tools in the field of designing engineering experiments. TM is an iterative method that calculates the value to be adopted by the input variables, which are called factors or parameters, depending on the value to be obtained for a given response metric. In this way, TM is based on using the response obtained in the previous iteration to readjust the values of the input parameters. The method ends when a certain stop criterion is achieved. To solve the problem posed in this paper, RLC configuration parameters are used as TM factors (input variables). These configuration parameters vary depending on whether an AM or UM RLC mode of operation is used. The TM response metric--i.e., the metric to be optimized by the algorithm--is a measure of the QoE. As discussed in the previous section, this measure of the QoE is the MOS (see Section 4.1) in the case of the video service and the E2E throughput (see Section 4.2) in the case of the file transfer service. For each RLC configuration parameters, an initial range of values is established; i.e., maximum and minimum values that the parameter can adopt. In addition, the number of levels to be tested in each iteration for each parameter must be defined. This refers to the possible values that each input parameter can take in an iteration. The levels of the parameters or factors used in each experiment are determined by an orthogonal array (OA) [25]. Thus, this matrix has as many columns as the number of input parameters of the optimization algorithm and as many rows as the number of experiments to be performed in each iteration of the algorithm. In each element of the matrix, the level that a given parameter may adopt in a specific experiment is stored. TM can be used with three objectives: (a) to minimize the response metric (the-smaller-the-better (STB)), (b) to achieve a target value of the response metric (the-nominal-the-best (NTB)), (c) to maximize the response metrics (the-larger-the-better (LTB)). This paper is focused on the LTB case, since the QoE is considered to be better the higher its value. In order to obtain the optimal values of the studied RLC configuration parameters, TM uses a metric called the signal-to-noise ratio (SNR) [25]. This metric is computed internally by the TM algorithm after each iteration for each RLC configuration parameter and level. The optimal parameter level is the one that maximizes the SNR. The use of the SNR provides robustness to the algorithm, minimizing the effect of external factors [26]. This metric is calculated differently depending on the objective pursued (STB, NTB, or LTB). In the LTB case, the SNR metric is calculated as follows:  
\[SNR=10\cdot\log_{10}\left(y^{2}\right) \tag{2}\]  
where \(y\) is the value of response metric (QoE) in each experiment. Algorithm 1 shows the steps to follow during the QoE optimization process. The first step is the selection of the number of RLC configuration parameters, \(N\), that will be adjusted and an OA, \(OArr\), that fits the needs of the problem; i.e., an OA that sets the number of levels that are considered appropriate for each RLC configuration parameter, \(numLevels=\{levels_{1},...,levels_{N}\}\). Then, a mapping between the levels of each RLC configuration parameter and the real values of these is made. To this end, it is necessary to define the maximum values, \(maxValues=\{max_{1},...,max_{N}\}\), and minimum values, \(minValues=\{min_{1},...,min_{N}\}\), to be tested for each parameter and to compute the step sizes between the levels, \(stepSize=\{size_{1},...,size_{N}\}\) (the difference between two adjacent values of a parameter). Afterwards, the experiments indicated in the OA matrix are carried out obtaining a SNR value for each experiment (lines 5-8 of Algorithm 1).