1 Introduction
The coronavirus (COVID19) is a new respiratory virus, firstly reported in the city of Wuhan, China, has spread worldwide, having been reported more than 100000 infected people so far. Much remains unknown about the virus, including how many people may have very mild or asymptomatic infections, and whether they can transmit the virus. The precise dimensions of the outbreak are hard to know.
Bioinspired models typically mimic behaviors from the nature and are known for their successful application in hybrid approaches. Viruses can infect people and these people can either die, infect other people or simply get recovered after the disease. Vaccines and the immune defense system typically fight the disease and help to mitigate their effects whereas an individual is still infected. This behavior can be modeled to search for suboptimal solutions in large search spaces.
The Virus Optimization Algorithm (VOA) was proposed by Liang and CuevasJuárez in 2016 [13] and later improved in [14]. However, as many other metaheuristics, the results of its application are highly dependent on its initial configuration. Additionally, it simulates generic viruses, without adding individualized properties for particular viruses.
It is known that metaheuristics must deal with huge search spaces, even infinite for the continuous cases, and must find suboptimal solutions in reasonable execution time. The rapid propagation of the coronavirus along with its ability of infecting most of the countries in the world impressively fast, has inspired the novel metaheuristic proposed in this work, named Coronavirus Optimization Algorithm (CVOA). The main CVOA advantages regarding other similar approaches can be summarized as follows:

Coronavirus statistics are known by the scientific community. In this sense, the rate of infection, the mortality rate or the reinfection probability are already known. That is, CVOA is parametrized with actual values for rates and probabilities, preventing the user to perform an additional study on the most suitable setup configuration.

CVOA can stop the solutions exploration after several iterations, with no need to be configured. That is, the number of infected people increases during the first iterations, however, after a certain number of iterations, the number of infected people starts decreasing, until reaching a void infected set of individuals.

Another relevant contribution of this work is the proposal of a new codification, discrete and of dynamic length, specifically designed for hybridizing LSTM with CVOA (or any other metaheuristic).
As for the limitations of the current approach, there is mainly one. Since there is no vaccine currently, it has not been included in the procedure to reduce the number of individuals candidates to be infected. This fact involves an exponential increase of the infected population in the first iterations and, therefore, an exponential increase of the execution time for such iterations. This fact, however, is partially solved with the isolation condition that simulates, somehow, individuals that cannot be infected at a particular iteration.
A study case is included in this work to discuss the CVOA performance. CVOA has been used to configure a Long ShortTerm Memory (LSTM) architecture
[12], which is widely used for artificial recurrent neural network (RNN) in the field of deep learning
[5]. Data from the Spanish electricity consumption have been used to validate the accuracy. The results achieved verge on 0.45%, substantially outperforming other wellestablished methods such as random forest, gradientboost trees, linear regression or deep learning optimized with other algorithms. The code, developed in Phyton with a discrete codification, is available in the supplementary material (along with an academic version in Java for a binary codification).
Finally, the authors acknowledge the need of further study on the performance of wellknown functions [11], however, given the relevance of coronavirus is acquiring throughout the world (declared as pandemic by the World Health Organization) and the remarkable results achieved when combined with deep learning, they wanted to share this preliminary work hoping it inspires future research in this direction.
The rest of the paper is organized as follows. Section 2 discusses related and recent works. The methodology proposed is introduced in 3. Section 4 proposes a discrete codification to hybridize deep learning models with CVOA and provides some illustrative cases. The results achieved are reported and discussed in 6. Finally, the conclusions drawn and future work suggestions are included in Section 7.
2 Related works
There are many bioinspired metaheuristics to solve optimization problems. Although CVOA has been conceived to optimize any kind of problems, this section focuses on optimization algorithms applied to hybridize deep learning models.
It is hard to find consensus among the researchers on which method should be applied to which problem, and, for this reason, many optimization methods have been proposed during the last decade to improve deep learning models. Generally, the criterion for selecting a method is its associated performance from a wide variety of perspectives. Low computation cost, accuracy or even implementation difficulty can be accepted as one of these criteria.
One of the most extended metaheuristics used to improve deep learning parameters is genetic algorithms (GA). Hence, a LSTM network optimized with GA can be found in
[4]. To evaluate the proposed hybrid approach, the daily Korea Stock Price Index data were used, outperforming the benchmark model. In 2019, a network traffic prediction model based on LSTM and GA was proposed in [3]. The results were compared to pure LSTM and ARIMA, reporting higher accuracy.Multiagents systems have also been applied to optimize deep learning models. The use of Particle Swarm Optimization (PSO) can be found in
[15]. The authors proposed a model based on kernel principal component analysis and back propagation neural network with PSO for midterm power load forecasting. The hybridization of deep learning models with PSO was also explored in
[8] but, this time, the authors applied the methodology with image classification purposes.Ants colony optimization (ACO) models have also been used to hybridize deep learning. Thus, Desell et al. [6] proposed an evolving deep recurrent neural networks using ACO applied to the challenging task of predicting general aviation flight data. The work in [7] introduced a method based on ACO to optimize a LSTM recurrent neural networks. Again, the field of application was flight data records obtained from an airline containing flights that suffered from excessive vibration.
Some papers exploring the Cuckoo Search (CS) properties have been published recently as well. In [18]
, CS was used to find suitable heuristics for adjusting the hyperparameters of another LSTM network. The authors claimed an accuracy superior to 96% for all the datasets examined. Nawi et al.
[17] proposed the use of CS to improve the training of RNN in order to achieve fast convergence and high accuracy. Results obtained outperformed those than other metaheuristics.The use of the artificial bee colony (ABC) optimization algorithm applied to LSTM can also be found in the literature. Hence, and optimized LSTM with ABC to forecast the bitcoin price was introduced in [21]. The combination of ABC and RNN was also proposed in [2]
for traffic volume forecasting. This time the results were compared to standard backpropagation models.
From the analysis of these works, it can be concluded that there is an increasing interest in using metaheuristics in LSTM models. However, not as many works as for artificial neural networks can be foundin the literature and, none of them, based on a virus propagation model. These two facts, among others, justify the application of CVOA to optimize LSTM models.
3 Methodology
This section introduces the CVOA methodology. Thus, Section 3.1 describes the steps. Section 3.2 suggests how parameters must be set. Section 3.3 shows the CVOA pseudocode. Finally, Section 3.4 comments the pseudocode.
3.1 Steps
Step 1. Generation of the initial population. The initial population consists of one individual, the socalled patientzero (). As in the coronavirus epidemy, it identifies the first human being infected.
Step 2. Disease propagation. Depending on the individual, several cases are evaluated:

Some of the infected individuals die. They die according to the coronavirus death rate (). For simplicity, it is considered that such individuals cannot infect new individuals.

The individuals surviving the coronavirus will infect new individuals (intensification). Two types of spreading are considered, according to a biven probability ():

Ordinary spreaders. Infected individuals will infect new ones according to the coronavirus spreading rate ().

Superspreaders. Infected individuals will infect new ones according to the coronavirus superspreading rate ().


There is another consideration, since it is needed to ensure diversification. Both ordinary and superspreaders individuals can travel and explore solutions quite dissimilar. Therefore, individuals have a probability of traveling () thus allowing to propagate the disease to solutions that may be quite different (). In case of not being traveler, new solutions will change according to an . One individual can be both superspreader and traveler.
Step 3. Updating populations. Three main populations are maintained and updated for each generation.

Dead population. If any individual dies, it is added to this population and can never be used again.

Recovered population. After each iteration, infected individuals (after spreading the coronavirus according to the previous step) are sent to the recovered population. It is known that there is a reinfection probability. Hence, an individual belonging to this population could be reinfected at any iteration provided that it meets the reinfection criterion (). Another situation has to be considered as well, since individuals can be isolated, simulating the how the population has behaved according to local governments policies. For the sake of simplicity, it is considered that an isolated individual is sent to the recovered population as well when meeting an isolation probability ().

New infected population. This population gathers all individuals infected at each iteration, according the procedure described in the previous steps.
Step 4. Stop criterion. One of the most interesting features of the proposed approach lies on its ability to end without the need of controlling any parameter. This situation occurs because the recovered and dead populations are constantly growing as time goes by, and the new infected population cannot infect new individuals. It is expected that the number of infected individuals increases for a certain number of iterations. However, from a particular iteration on, the size of the new infected population will be smaller than that of the current one because recovered and dead populations are too big, and the size of the infected population decays over time. Additionally, a preset number of iterations () can be added to the stop criterion.
3.2 Suggested parameters setup
Since CVOA simulates the coronavirus disease propagation, most of the rates (propagation, reinfection or death) are already known. This fact prevents the research from wasting time in selecting values for such rates and turns the CVOA into metaheuristic quite easy to execute. The suggested values and associated discussion are listed below:

. An infected individual can die with a given probability. Currently, this rate is set as almost 5% by the scientific community. Therefore, .

. It is the probability that an individual spread the disease to a greater number of healthy individuals. It is known that this situation affects to a 10% of the population, therefore, . After this condition is validated, two situations can be found:

. If the infected individual is not a superspreader, then the infection rate is 2.5. It is suggested that this rate varies from 0 to 5.

. If the infected individual turns out to be superspreader, then he/she infects up to 15 healthy individuals, as per reported by the scientific community. It is suggested that this rate varies from 6 to 15.


. It is known that a recovered individual can be reinfected. The current reported rate is 14%. Therefore, .

. This value is uncertain because countries are taking different policies to isolate people. This parameter helps to reduce the exponential growth of the infected population after each iteration. Therefore a high value must be assigned to. It is suggested that

. This probability simulates how an infected individual can travel to any place in the world and can infect any healthy individual. It is known that almost a 10% of the population travel during a week (simulated time for every iteration), so .

. This parameter simulates the duration of the pandemic. Since the estimated recovering time is one week, each iteration simulates one week. Currently, this data is unknown so this number can be adjusted to the size of the problem. It is suggested that
.
3.3 Pseudo codes
This section provides the pseudo code of the most relevant functions for the CVOA, along with some comments to better understand them.
3.3.1 Function
This is the main function and its pseudo code can be found in Algorithm 1. Four lists must be maintained: dead, recovered, infected (the current set of infected individuals) and new infected individuals (the set of new infected individuals, generated by the spreading of the coronavirus from the current infected individuals).
The initial population is generated by means of the patient zero (), which is a random solution.
The number of iterations is controlled by the main loop, evaluating the duration of the pandemic (preset value) and if there is still any infected individual. In this loop, every individual can either die (it is sent to the dead list) or infect, thus enlarging the size of the new infected population. How this infection is made, is implemented in the function (see Section 3.3.2).
Once the new population is formed, it is evaluated any solution outperforming the current one has been found and, in such case, the best individual is updated.
3.3.2 Function
This function receives an infected individual and returns the set of new infected individuals. Two additional lists, recovered and dead, are also received as input parameters since they must be updated after the evaluation of every infected individuals. The pseudo code is shown in Algorithm 2
Two conditions are evaluated to determine the number of new infected individuals (use of or ) or how different the new individuals will be ( or . The implementation on how this new infected individuals are encoded according to such rates is carried out in the function .
3.3.3 Function
Given an infected individual this function generates new infected individuals, according to the spreading and traveling rates. This function also controls that the new infected individuals are not already in the dead list (in such case this new infection is ignored) or in the recovered list (in such case the is applied to determine whether the individual is reinfected or if it remains in the recovered list). Additionally, it considers that the new potential infected individual might be isolated, which is controlled by . Although the use of an extra list could be implemented, it has been decided to treat these individuals as recovered. Therefore, if an isolated individual is attempted to be infected, it is added to the recovered list.
The effective generation of the new infected individuals must be carried in the function , whose pseudo code is not provided because it depends on the codification and the nature of the problem to be optimized. This function must return a set of new infected individuals, according to the aforementioned rates. Specific information on how this codification and replication is done for LSTM models.
The pseudo code for the described procedure can be found in Algorithm 3.
3.3.4 Function
This function is called from the function. It evaluates all individuals in the infected population and determines whether they die or not, according to the given . Those meeting this condition, are sent to the dead list. Algorithm describes this procedure.
3.3.5 Function
This is an auxiliary function used to find the best fitness in a list of infected individuals. Its peudo code is shown in Algorithm 5.
4 Hybridizing deep learning with CVOA
In order to apply CVOA to optimize the architecture of a deep neural network, the individual codification shown in Figure 1 has been implemented.
As it can be seen in Figure 1, each individual is composed of the following elements. The element LR encodes the learning rate used in the neural network algorithm. It can take a value from to and its corresponding decoded values are , , , , and .
The element DROP encodes the dropout rate applied to the neural network. It can take values from to that correspond to , , , , , , , and , respectively. The dropout rate is distributed uniformly for all the layers of the network. That is, if the dropout is and the network has layers, then the (
) of the neurons of each layer will be removed.
The element of the individual stores the number of layers of the network. It is restricted to . The first layer is referred to the input layer of the neural network. The rest of layers are hidden layers. The output layer is excluded from the codification. Therefore, the optimized network can contain from to hidden layers.
The proposed individual codification has a variable size. Thus, its size depends on the number of layers indicated in the element . Consequently, a list of elements (LAYER , …, LAYER ) are also included in the individual, which encode the number of units (neurons) for each network layer. Each of these elements can take values from to , and their corresponding decoded values range from to , with a step of .
4.1 PZ generation
The PZ, as it has been described previously, is the individual of the first iteration in the CVOA algorithm. Following the particular hybridization proposed, a random individual is created taking into account the codification defined above.
In first place, a random value for the learning rate of the PZ is generated. Specifically, a number between and
is generated randomly in an uniform distribution. Such limits are the indicated in Figure
1, according to the possible encoded values of the learning rate element. The same process is carried out to produce a random value for the dropout element. In such case, a random number between and is generated.In second place, a random number of layers is generated for the element of the patient zero individual. Such number layers is a random number between and . Note that the first layer is reserved for the input layer of the neural network, as it has been discussed before.
In last place, for each one of the layers, a random number of units is generated between and , covering the possible encoded values for the number of units previously defined (see Figure 1).
4.2 Infection procedure
The infection procedure described here corresponds to the functionality of , introduced in the line of the Algorithm 3. This procedure takes an individual as input and returns an infected individual according to the following procedure.
The first step is to determine the element of the infected individual that will be mutated. The probability of such mutation occurs has been set to so that every element has the same probability to mutate. If the mutation occurs, then the element of the individual is modified according to the process described in Section 4.4.
If the element (the number of layers of the network) changes, then the elements encoding the different layers within the individual (LAYER , …, LAYER ) must be resized accordingly. Such resizing process is explained in Section 4.3.
The second step is to determine how many elements of the individual will be infected. If the , then the number of infected elements is generated randomly from to the length of the individual (excluding the element ). Else, the indicates itself the number of infected elements.
As third step, once it is determined the number of infected elements of the individual, a list of random positions are generated. For example, if three positions of the individual must be changed, then the random positions affected could be, for instance, whose referred to the elements {DROP, LAYER , LAYER }.
Finally, the selected positions of the individual are mutated. Such mutation is described in Section 4.4.
4.3 Individual resizing process
When an individual is infected at the position of the element , the list of elements that encodes the number of units per layer (LAYER , …, LAYER ) must be resized accordingly.
In the case that the new number of layers after the infection is lower than its previous value, then the last leftover elements are removed. For instance, if the initial individual is (four layers), the element is infected and the new value is , then the resulting individual will be .
In the case that the new number of layers after the infection is higher than its previous value, the new random elements are added at the end of the individual. For instance, if the initial individual is (four layers), the element is infected and the new value is , then the resulting individual could be .
4.4 Single position mutation
The process carried out to change the value of a specific element of an individual is described below.
First, a signed change amount is randomly determined using the following criteria. A random real number between and is generated using an uniform distribution. If , then the change amount will be . Else if , then the change amount will be . Else if , then the change amount will be . Else, the change amount will be .
Once the amount of change is determined, the new value for the infected element is computed. If its previous value is , then the new value after the single position mutation will be . If the new value exceeds the limits defined for the individual codification, such value is set to the maximum or minimum allowed value accordingly.
5 CVOA preliminary analysis
This section provides an overview on how populations evolve over time, and how the search space is explored to reach the optimum value for a given fitness function.
To conduct this experimentation, a simple binary codification has been used. The fitness function was because to goal of this section is to evaluate the growth of the new infected populations, and to the find challenging optimum values. This function reaches the minimum value at , that is, .
For this reason, individuals with 10, 20, 30, 40 and 50 bits have been tested. Tables 15 summarize the results achieved for each of these lengths, respectively. Every experiment has been launched 50 times, determining that, on average, the optimum value was found for 11, 12, 14, 15 and 17 iterations, respectively. Each table shows the results of a particular execution meeting this criterion.
Iteration  Deaths  Recovered  Infected  Fitness 

1  0  1  6  7.72E+04 
2  1  7  8  6.05E+04 
3  1  15  5  6,00E+04 
4  1  20  6  4 
5  2  26  7  4 
6  2  33  5  4 
7  2  38  19  4 
8  3  48  13  1 
9  3  61  16  1 
10  4  77  18  1 
11  5  95  20  0 
Iteration  Deaths  Recovered  Infected  Fitness 

1  0  1  10  5.73E+11 
2  1  11  14  3.92E+11 
3  2  25  16  3.14E+11 
4  2  41  24  1.33E+09 
5  4  63  36  1.37E+07 
6  5  98  56  2.76E+06 
7  8  153  72  1.32E+06 
8  12  222  112  1.61E+04 
9  17  330  172  1 
10  26  499  249  1 
11  38  738  389  1 
12  58  1112  567  0 
Iteration  Deaths  Recovered  Infected  Fitness 

1  0  1  8  6.11E+17 
2  1  9  9  6.00E+16 
3  1  18  18  5.59E+16 
4  2  36  21  1.12E+16 
5  3  57  43  1.04E+16 
6  5  100  83  1.85E+13 
7  9  183  126  1.08E+10 
8  16  307  208  1.51E+09 
9  26  514  326  1.21E+09 
10  42  838  606  1.07E+09 
11  73  1436  1049  1.69E+07 
12  125  2467  1796  676 
13  215  4233  2967  9 
14  363  7138  4823  0 
Iteration  Deaths  Recovered  Infected  Fitness 

1  0  1  10  2.23E+18 
2  1  11  20  2.57E+15 
3  2  31  41  1.83E+11 
4  4  70  85  3.58E+09 
5  8  154  170  3.24E+09 
6  17  321  331  7.39E+08 
7  33  652  598  7.08E+08 
8  63  1246  1036  1.06E+08 
9  115  2275  1918  2.12E+07 
10  211  4169  3592  1612900 
11  390  7716  6357  270400 
12  708  14003  11205  2809 
13  1268  25052  19495  49 
14  2243  44198  33215  9 
15  3904  76672  55122  0 
Iteration  Deaths  Recovered  Infected  Fitness 

1  0  1  12  4.61E+18 
2  1  13  23  7.80E+15 
3  2  36  23  3.62E+13 
4  2  36  40  1.39E+12 
5  4  76  71  1.37E+12 
6  8  146  119  1.57E+10 
7  14  265  185  7.50E+08 
8  23  449  338  1.21E+08 
9  40  787  586  7963684 
10  69  1369  1100  7873636 
11  124  2461  2129  597529 
12  230  4579  3957  68121 
13  428  8499  7211  17956 
14  789  15644  13305  36 
15  1454  28807  24167  36 
16  2662  52622  43184  1 
17  4821  95116  76288  0 
Table 6 summarizes the amount of search space explored, on average, before finding the optimum value. It can be seen that for a small space as possible values, the optimum value is reached after exploring 15.6250% valid solutions. However, this value acutely decreases as the search space increases. The opposite case is reached for possible values, where the optimum value was reached after exploring just 0.00000002% of valid solutions.
Length  Search space  Evaluated  Evaluated (%) 

10  1024  160  15.62500000% 
20  1048576  2253  0.21486282% 
30  1073741824  15589  0.00145184% 
40  1,09951E+12  170827  0.00001554% 
50  1,1259E+15  219613  0.00000002% 
Figure 2 illustrates how the new infected population evolve over time for the 20bit codification case with the suggested parameters initialization. It can be seen that the number of new people increase until a given iteration in which it starts to decrease. Note that data shown in the figure are sampled every 5 iterations.
Finally, Figure 3 shows the number of recovered and dead people. These two curves accumulates these numbers since dead and recovered people are sent to their respective lists and are no longer infected (except for those in recovered that can be reinfected for a its given probability ). The final number of recovered is 92826 and of dead people 5335, being 94.56% and 5.44%, respectively.
6 Results
This section reports the results achieved by hybridizing a deep learning model with CVOA. Section 6.1 describes the study case selected to prove the effectiveness of the proposed algorithm. Section 6.2 describes the dataset used. Section 6.3 discusses the results achieved and includes some comparative methods.
6.1 Study case: electricity demand time series forecasting
The forecasting of future values fascinates the human being. To be able to understand how certain variables evolve over time has many benefits in many fields.
Electricity demand forecasting is not an exception, since there is a real need for planning the amount to be generated or, in some countries, to be bought.
The use of machine learning to forecast such time series has been intensive during the last years
[16]. But, with the development of deep learning models, and, in particular of LSTM, much research is being conducted in this application field [1].6.2 Dataset description
The time series considered in this study is related to the electricity consumption in Spain from January 2007 to June 2016, the same as used in [19]. It is a time series composed of 9 years and 6 months with a high sampling frequency (10 minutes), resulting in 497832 measures in total into a 33 MB file.
As in the original paper, the prediction horizon is 24, that is, this is a multistep strategy with . The size of samples used for the prediction of these 24 values is 168. Furthermore, the dataset was split into 70% for the training set and 30% for the test set, and in addition, a 30% of the training set has also been selected for the validation set, in order to find the optimal parameters. The training set covers the period from January 1, 2007 at 00:00 to August 20, 2013 at 02:40. Therefore, the test set comprises the period from August 20, 2013 at 02:50 to June 21, 2016 at 23:40.
6.3 Performance analysis
This section reports the results obtained by applying hybridizing LSTM with CVOA, by means of the codification proposed in Section 4, to forecast the Spanish electricity dataset described in Section 6.2.
Linear regression (LR), decision tree (DT), gradientboosted trees (GBT) and random forest (RF) models have been used with a parametrization setup according to that studied in
[10, 9]. A deep neural network optimized with a grid search (DNNGS) according to [19] has also been applied. Finally, another deep neural network but optimized with random search (DNNRS) and smoothed with a lowpass filter (DNNRSLP) [20] have also been applied.These results along with those of LSTMCVOA are summarized in Table 7, expressed in terms of the mean absolute percentage error (MAPE). It can be observed that LSTMCVOA outperforms all evaluated methods which have showed particularly remarkable performance for this realworld dataset.
Another relevant consideration that must be taken into account is that the compared methods generated 24 independent models, each of them for every value forming . So it would expected that LSTMCVOA performance increases if independent models were generated for each of the values in .
Method  MAPE (%) 

LR  7.34 
DT  2.88 
GBT  2.72 
RF  2.20 
DNNGS  1.68 
DNNRS  1.57 
DNNRSLP  1.36 
LSTM  CVOA  0.47 
These results have been achieved with the individual , which decoded involves the following architecture parameters:

Learning rate: 10E04.

Dropout: 0.

Number of layers: 8.

Units per layer:
7 Conclusions and future works
This work has introduced a novel bioinspired metaheuristic, based on the coronavirus behavior. One the one hand, CVOA has two major advantages. First, its highly relation to the coronavirus spreading model, prevents the authors to make any decision about the inputs values. Second, it ends after a certain number of iterations due to the exchange of individuals between healthy and dead/recovered lists. Third, a novel discrete and dynamic codification has been proposed to hybridize deep learning models. On the other hand, it exhibits some limitations. Such is the case for the exponential growth of the infected population as time (iterations) goes by. Additional experimentation must be conducted in order to assess its performance on standard functions and find out the search space shapes in which it can be more effective.
Some actions must be taken to reduce the size of the infected population after a number of iterations, that grows exponentially. In this sense, a vaccine must be implemented. This case would involve adding to the recovered list, at a given healthy individuals.
Another suggested research line is using dynamic rates. For instance, the observation of the preliminary effects of the isolation in countries like China or Italy suggests that the could be simulated as a Poisson process, but more time and country recoveries is required to confirm this trend.
A parallel and distributed version is proposed for future works. CVOA can be easily transformed into a multiagent metaheuristic, in which different agents search for the best solution in a collaborative way. In this sense, the simulation of the existence of more strains can be considered. So far, it is known that there exists one strain way more aggressive than the original one. This could be modeled as a new agent with different initial setup (higher , for instance), sharing recovered or dead lists.
Finally, for the particular multistep forecasting problem analyzed it would be desirable to generated independent models for each of the values that form the prediction horizon .
Supplementary material
Along with this paper, an academic version in Java for a binary codification is provided, with a simple fitness function (https://github.com/DataLabUPO/CVOA_academic). Additionally, the code in Phyton for the deep learning approach is also provided, with a more complex codification and the suggested implementation, according to the pseudocode provided (https://github.com/DataLabUPO/CVOA_LSTM).
Acknowledgments
The authors would like to thank the Spanish Ministry of Economy and Competitiveness for the support under project TIN201788209C2.
References
 [1] J. Bedi and D. Toshniwal. Deep learning framework to forecast electricity demand. Applied Energy, 238:1312–1326, 2019.
 [2] A. Bosire. Recurrent Neural Network Training using ABC Algorithm for Traffic Volume Prediction. Informatica, 43:551–559, 2019.
 [3] J. Chen, H. Xing, H. Yang, and L. Xu. Network Traffic Prediction Based on LSTM Networks with Genetic Algorithm. Lecture Notes in Electrical Engineering, 550:411–419, 2019.
 [4] H. Chung and K.S. Shin. Genetic AlgorithmOptimized Long ShortTerm Memory Network for Stock Market Prediction. Sustainability, 10(10):3765, 2018.
 [5] S. DeCnudde, Y. Ramon, D. Martens, and F. Provost. Deep learning on big, sparse, behavioral data. Big Data, 7(4):286–307, 2019.
 [6] T. Desell, S. Clachar, J. Higgins, and B. Wild. Evolving deep recurrent neural networks using ant colony optimization. Lecture Notes in Computer Science, 9026:86–98, 2015.

[7]
A. ElSaid, F. ElJamiy, J. Higgings, B. Wild, B. Wild, and T. Desell.
Using ant colony optimization to optimize long shortterm memory
recurrent neural networks.
In
Proceedings of the Genetic and Evolutionary Computation Conference
, pages 13–20, 2018.  [8] F. E. FernandesJunior and G. G. Yen. Particle swarm optimization of deep neural networks architectures for image classification. Swarm and Evolutionary Computation, 49:62–74, 2019.
 [9] A. Galicia, R. L. TalaveraLlames, A. Troncoso, I. Koprinska, and F. MartínezÁlvarez. Multistep forecasting for big data time series based on ensemble learning. KnowledgeBased Systems, 163:830–841, 2019.
 [10] A. Galicia, J. F. Torres, F. MartínezÁlvarez, and A. Troncoso. Scalable forecasting techniques applied to big electricity time series. Lecture Notes in Computer Science, 10306:165–175, 2019.
 [11] F. Glover and G. A. Kochenberger. Handbook of metaheuristics. Springer, 2003.
 [12] A. Kelotra and P. Pandey. Stock market prediction using optimized deepconvlstm model. Big Data, 8(1):5–24, 2020.
 [13] Y. C. Liang and J. R. CuevasJuárez. A novel metaheuristic for continuous optimization problems: Virus optimization algorithm. Engineering Optimization, 48(1):73–93, 2016.
 [14] Y. C. Liang and J. R. CuevasJuárez. A selfadaptive virus optimization algorithm for continuous optimization problems. Soft Computing, In press, 2020.
 [15] Zhao Liu, Xincheng Sun, Shuai Wang, Mengjiao Pan, Yue Zhang, and Zhendong Ji. Midterm power load forecasting model based on kernel principal component analysis and back propagation neural network with particle swarm optimization. Big Data, 7(2):130–138, 2019.
 [16] F. MartínezÁlvarez, A. Troncoso, G. AsencioCortés, and J. C. Riquelme. A survey on data mining techniques applied to electricityrelated time series forecasting. Energies, 8(11):13162–13193, 2015.
 [17] N. M. Nawi, A. Khan, and M. Z. Rehman. A New Optimized Cuckoo Search Recurrent Neural Network (CSRNN). In Proceedings of the International Conference on Robotic, Vision, Signal Processing & Power Applications, pages 335–341, 2014.
 [18] D. Srivastava, Y. Singh, and A. Sahoo. Auto Tuning of RNN Hyperparameters using Cuckoo Search Algorithm. In Proceedings of the International Conference on Contemporary Computing, pages 1–5, 2019.
 [19] J. F. Torres, A. Galicia, A. Troncoso, and F. MartínezÁlvarez. A scalable approach based on deep learning for big data time series forecasting. Integrated ComputerAided Engineering, 25(4):335–348, 2018.
 [20] J. F. Torres, D. GutiérrezAvilés, A. Troncoso, and F. MartínezÁlvarez. Random hyperparameter searchbased deep neural network for power consumption forecasting. Lecture Notes in Computer Science, 11506:259–269, 2019.
 [21] A. D. Yuliyono and A. S. Girsang. Artificial Bee ColonyOptimized LSTM for Bitcoin Price Prediction. Advances in Science, Technology and Engineering Systems Journal, 4(5):375–383, 2019.
Comments
There are no comments yet.