## 5 Simulation and Experiments
We assume that the intercell interference is shared between the \(M\). The radio resources are limited, as well as the backhaul resources. The bandwidth used was 20 MHz, which corresponds to 100 resource blocks (RBs) corresponding to the parameters used in LTE. In the simulation, the RB is the smallest resource unit that can be allocated to a user. Depending on interference and other variables that may interfere with the allocation between the user and \(M\), more RBs may be allocated to that user. The backhaul capacity of an \(M\) is similar to the study [36], where resource block usage is the mediator between \(M\) with either normal or congested states. For example, we assume that an overloaded \(M\) uses its resource blocks more than 80% of the time. In this step, we generate the new database of utilization that will be used as input to the predictive models. The second step of this work was to predict the \(M\) with the possibility of overload, its location, and time so that the second simulation could be performed. In LPA, we have two models already consolidated in the literature, the random forest and GRNN, to predict the load set. In the first phase, 43,200 data were generated with time, day, week, and load information for each \(M\) for April 2014. The data were split into 70% for training and 30% for testing and validation, and divided into input (week, day, time, and macrocell ID) and output (load) of the models. Both models had over 80% accuracy on a 30-day basis. For the case study, we selected two samples within the database within 30 days. The goal was to evaluate and validate the proposed system. We divided the database into four weeks and selected the last week of April 2014 for the experiment. From this week, we selected Friday because it has the highest density of users. Then, we divided the week into two specific times that are within the peak hours of Manhattan according to [35]. The first sample selected was Friday at 7 a.m., with approximately 1054 users. The data was fed to the already trained models, and the prediction obtained accuracy above 84% accuracy. For the second sample, we chose Friday at 6 p.m., with a total of 1947 users. The data were passed to the trained models, and the prediction reached over 97% accuracy. Next, we used the prediction of 7 a.m. and 6 p.m. to select the overloaded macrocell \(M_{\rm s}\) and then grouped users that were located within 800 m of each other, as shown in Equation (29). With the \(M_{\rm s}\) found, the UCPA algorithm calculated the required UAV-BSs based on two strategies: naive and optimized. The naive strategy has a fixed value \(Vn_{i,j}=5\) of UAV-BSs for each overloaded \(M_{\rm s}\). In the optimized strategy, the number of UAV-BSs is calculated based on the number of users in the \(M_{\rm s}\) coverage area, as shown in Equation (30). After calculating the number of UAV-BSs, the UCPA calculates the optimal location for each UAV-BS, to serve the users with the best possible QoS and minimize the energy cost for the UAVs. The grouped users were passed to the K-means algorithm to separate the higher-affinity subgroup and find the center of that subgroup, and then determine the best placement for the UAV-BSs. After determining the number and positioning of the UAV-BSs, we restarted the simulation, but only with the two specific schedules of 7 a.m. and 6 p.m. Unlike the first phase, in this phase, we had the support of the UAV-BSs, and the results were compared with those of the first phase to evaluate the performance of this system. The settings for the macrocell were the same as in the first phase, except that we assumed that both macrocell and UAV-BS used the same frequency band. That is, UAV-BS and macrocell interfere with each other. A frequency reuse factor of 1 was assumed. We assumed that UAV-BS has limited resources, e.g., for the radio access network (RAN) and backhaul. We determined that the bandwidth of UAV-BS with 20 MHz, as well as macrocell with an amount of 100 resource blocks, was used to determine the amount of load consumed.