# A BiGRU Model Based on the DBO Algorithm for Cloud-Edge Communication Networks
## 3 Short-Term Traffic Load Prediction Based on DBO-BiGRU
### DBO-BiGRU Model
#### 3.2.3 Overall Architecture of the DBO-BiGRU Prediction Model  
The DBO-BiGRU-based link traffic load prediction model consists of three sub-functional units, namely, the data processing unit, the BiGRU unit, and the DBO unit, and their details are given below:  
(1) Data processing unit: This unit is responsible for obtaining the specified number of historical traffic statistics raw data from the edge server, normalising the raw data, and scaling it to the [0, 1] interval, so as to realise the standardisation and unification of the data. After normalisation, the normalised data are divided into training set and test set according to the set ratio. (2) BiGRU unit: This unit is responsible for the construction, training, and prediction of the BiGRU prediction model. This unit will train the model based on the training set data and input historical data into the model after training. The model output will be processed through the full connectivity layer and transformed into the prediction results, as described in Section 3.2.1. (3) DBO unit: This unit is responsible for optimising four important hyperparameters in the BiGRU prediction model, i.e., the width of the data observation window, the number of neurons in the hidden layer, the dropout layer failure rate, and the neural network learning rate, as described in Section 3.2.2. The overall architecture of the DBO-BiGRU prediction model is shown in Figure 5. The overall modelling process for optimising BiGRU based on the DBO algorithm is described below:  
Step 1: Acquire and normalise the raw data and divide the dataset. Step 2: Set the parameters of the DBO algorithm; there are a total of five pieces of parameter information, namely, the population size; the dimension of the optimisation object (the dimension value is 4 in the preset scenario of this paper); the optimisation search range boundaries; the proportion of the population occupied by each of the ball-rolling dung beetles, dung beetle ovoids, juvenile dung beetles, and thieving dung beetles; and the maximum number of iterations of the DBO. Step 3: Set the linear mapping laws of the dung beetle individual position coordinates to the four data, namely, the width of the data observation window, the number of neurons in the hidden layer, the failure rate of the dropout layer, and the learning rate of the neural network, to randomly initialise the dung beetle population. Step 4: Calculate the fitness values of all individuals of the dung beetle population according to Equation (13), keeping the best and worst positions, and the fitness values corresponding to the positions. Step 5: The positions of the rolling dung beetle, the dung beetle ovoid, the juvenile dung beetle, and the thief dung beetle are updated. Rolling ball dung beetles are updated with 90% probability according to Equation (6) and 10% probability according to Equation (7) for their positions. Dung beetle egg balls are updated with positions according to Equations (8) and (9). Juvenile dung beetles update their position according to Equations (10) and (11). Thieving dung beetles update their position according to Equation (12). Step 6: Calculate the fitness value corresponding to the position of each dung beetle individual and sort by this value. Consider the smallest fitness value as the current best and compare it with the global best. If the current best fitness value is less than the global best, the global best result is updated. Similarly, the global worst result will likewise be updated based on the maximum fitness value. Step 7: Determine whether or not the algorithm reaches the maximum number of iterations, and if so, satisfies the iteration termination condition. If the iteration termination condition is satisfied, decode the global best result after the last round of position updates according to the linear mapping law and obtain the optimal hyperparameters of the BiGRU prediction model. Otherwise, jump to Step 5 to continue the execution.