## 5 Performance Evaluation
### Simulation Results  
Figure 2 demonstrates the averaged and normalized results in terms of energy consumption (orange bars) and covered users (green bars) for different altitudes through \(k\)-means algorithm. Since the \(k\)-means algorithm determines the 2D position of the UAV BS, the altitude of the UAV BS should also be determined. Although there are different methods to determine the altitude, such as a trigonometric approach is used in [16], those usually do not consider the altitude regulations for the UAVs. In this work, on the other hand, considering such regulations, we used different fixed levels for the altitude of the UAV BS. In particular, three different altitude levels are considered: i) minimum allowed altitude (\(h_{\text{min}}=\)30), maximum allowed altitude (\(h_{\text{max}}=\)120 m), and the middle point between the two \(\left(\dfrac{h_{\text{max}}+h_{\text{min}}}{2}\right)=\)75 m.  
From (11) it is understood that the value in the second case, i.e., with maximum allowed height of 120 m, can be assumed as the upper-bound in terms of coverage, since in this case the UAV is placed in the best 2D position with the maximum allowed height, that means the maximum achievable coverage area with respect to the size of the considered urban area, consequently obtaining the maximum number of covered users. A similar consideration can be done for this case (i.e., \(h_{\text{max}}=\)120 m) in terms of energy consumption. Figure 2: Single UAV positioning for different altitudes through \(k\)-means. Since all ground users are covered at the first iteration, one of the stopping criteria is readily matched, thereby no movement is performed by the UAV, resulting in energy consumption due to mobility equals to zero. For the two remaining cases, with altitudes of 30 and 75 m, respectively, the results in terms of coverage can be considered as lower-bound and median values, since as previously stated, the coverage area, and subsequently, the number of covered user are highly dependent on the considered altitude of the UAV BS. Lastly, considering the energy consumption results, the UAV BS exploits the maximum number of allowed iterations attempting to match the stopping criteria for coverage, consequently resulting in the maximum value for energy consumption due to mobility. We acknowledge that the number of users considered in the simulation campaigns would intuitively change the results in terms of the percentage of covered users, since the UAV BS has a certain amount of radio resources available and cannot serve all the users in case the number of users increased (when the total demand exceeds its available capacity). However, the goal of the agent (the UAV BS in our case) in this design is to maximize the number of users covered when \(w_{2}\) is prioritized, and the simulation results confirm that the agent performs according to the prioritization conditions. Therefore, the scope of this work is to prove that the UAV BS is capable of maximizing the number of users covered and/or minimizing the energy consumption according to the prioritization policy. In the cases where the total demand is more than the capacity of a single UAV BS, then deploying multiple UAV BSs would be considered to accommodate more users in the system. Figure 3 presents the results in terms of achieved rewards, after an initial phase, the convergence of the Q-learning algorithm occurs, demonstrating the effectiveness of the \(Q\)-learning algorithm. One of the important takeaway from the findings in Figure 3 is that, regardless of the weighting approach (e.g., for different \(w_{1}\) and \(w_{2}\) values), the designed \(Q\)-learning algorithm converges to the final reward. This confirms the proper design of the algorithm, and is a clear sign that it can work in various scenarios. Following the above assumptions, the efficiency of the proposed \(Q\)-learning algorithm is verified through the testing phase, with the UAV BS positioning optimization through \(k\)-means as a benchmark.