Automatic spread factor and position definition for UAV gateway through computational intelligence approach to maximize signal-to-noise ratio in wooded environments
Author and article information
Abstract
The emergence of long-range (LoRa) technology, together with the expansion of uncrewed aerial vehicles (UAVs) use in civil applications have brought significant advances to the Internet of Things (IoT) field. In this way, these technologies are used together in different scenarios, especially when it is necessary to have connectivity in remote and difficult-to-access locations, providing coverage and monitoring of greater areas. In this sense, this article seeks to determine the best positioning for the LoRa gateway coupled to the drone and the optimal spreading factor (SF) for signal transmission in a LoRa network, aiming to improve the connected devices signal-to-noise ratio (SNR), considering a suburban and densely wooded environment. Then, multi-layer perceptron (MLP) networks and generalized regression neural networks (GRNN) were trained to predict the signal behavior and determine the best network to represent this behavior. The MLP network presented the lowest RMSE, 2.41 dB, and was selected for use jointly with the bioinspired Grey-Wolf optimizer (GWO). The optimizer proved its effectiviness being able to adjust the number of UAVs used to obtain 100% coverage and determine the best SF used by the endnodes, guaranteeing a higher transmission rate and lower energy consumption.
Cite this as
2024. Automatic spread factor and position definition for UAV gateway through computational intelligence approach to maximize signal-to-noise ratio in wooded environments. PeerJ Computer Science 10:e2237 https://doi.org/10.7717/peerj-cs.2237Main article text
Introduction
Long-range (LoRa) technology is expanding, the number of LoRa devices deployed around the world grew from 97 million to 300 million in the period from April 2019 to March 2023 (ABIresearch, 2019; SEMTECH, 2023). This technology uses spread spectrum modulation, enabling operation below the noise floor. That is, considering a fixed signal-to-noise ratio (SNR), only the bandwidth needs to be increased for error-free transmission (Lathi & Ding, 2009). Additionally, the technology uses the spread factor (SF) responsible for adjusting the data transmission rate, range, and consequently energy consumption. Based on this, LoRa technology provides low energy consumption and a long transmission range, making it ideal for Internet of Things (IoT) applications that require device communication over large areas.
Diverse applications use LoRa devices, for example, asset management, environmental monitoring, smart cities, smart agriculture, surveillance, security, and healthcare (LoRa Alliance & Wireless Broadband Alliance, 2020). This wide range of applications and the growth of LoRa technology has caught the interest of researchers, and the technology is currently present in the most diverse research (Seye et al., 2018; Park et al., 2018; Bocker et al., 2019; Chall, Lahoud & Helou, 2019; Mod Rofi et al., 2021).
Furthermore, intending to expand the reach of LoRa communication and reach remote regions that are difficult to access, researchers integrated LoRa technology into uncrewed aerial vehicles (UAVs), also called drones (Dambal et al., 2019; Marchese, Moheddine & Patrone, 2019; Moheddine, Patrone & Marchese, 2019). Drones are frequently employed in mapping missions, industrial inspections, and search and rescue operations. In addition, they have gained ground in civil applications such as agriculture, transport of small loads, security, media, and, more recently, telecommunications (Ghamari et al., 2022).
Finally, advances in drone technologies have also made it possible to use them in the field of wireless communications. Drones act as aerial base stations and have an advantage over terrestrial base stations, they are capable of operate in the most diverse scenarios. Therefore, it is necessary to adequately plan these devices positioning, aiming to improve the performance of the communication network and optimize the coverage area (De Rango & Stumpo, 2023).
It is crucial to consider the region’s unique characteristics when planning a communication network implementation. In this context, the present study directs its analysis to the Federal University of Pará (UFPA) Belém campus, an environment with suburban characteristics and densely wooded, located in Belém-Pa, Brazil. This choice is based on the expectation that wooded areas will expand in cities around the world.
The expansion projection occurs due to government actions around the world, such as the Decade of Ecosystem Recovery (2021–2030) announced by the United Nations (UN) (Zandonai, 2021), which tries to respond to the worsening of the climate crisis. As well as, the Green New Deal, representing public policies that promote economic growth in harmony with more sustainable practices (Alvares, Rodrigues & Narita, 2021). Therefore, when considering a suburban and densely forested scenario, this study considers both the particularities of the environment and global trends in sustainable development.
Given this perspective, this study employs the grey-wolf bioinspired optimization algorithm (GWO), adapted to the peculiarities of UFPA, to determine the optimal number of aerial LoRa gateways and optimize their arrangement to maximize the SNR, a classical measure of quality in both analog and digital systems, reflecting the transmission channel’s and receiver’s performance (Lathi & Ding, 2009; Haykin & Moher, 2006). Ensuring a high SNR helps maintain a clear and strong signal, thereby minimizing the likelihood of errors in data transmission. This is particularly important for applications such as wildlife monitoring, environmental data collection, and communication systems where precise data is essential.
The study goal is to ensure connectivity for the largest possible number of devices within the communication network with the minimum number of UAVs. To achieve this, the GWO is used in conjunction with a trained artificial neural network (ANN) that predicts signal behavior in this environment, enhancing the optimization of the LoRa network. Additionally, the study involves mapping wooded regions and buildings within the UFPA perimeter, allowing the GWO to determine the most appropriate spreading factor (SF) for devices connected to aerial gateways, thereby optimizing message transmission.
The remainder of this article is organized as follows: “Related Works” presents related research, “Methodology” presents the methodology used to model the problem, “Results” presents the results obtained from the execution of the GWO algorithm and “Conclusion” presents the conclusion.
Methodology
This section describes the methodology adopted in this work, the study scenario, data collection, training of neural network models, and modeling of the GWO algorithm. Figure 1 illustrates the methodology flowchart until results are obtained.
Figure 1: Methodology fluxogram.
Study environment
The Federal University of Pará (UFPA) Belém Campus, one of the most important higher education institutions in the North of Brazil, was chosen to carry out the analysis. The campus has approximately 450 hectares located on the Guamá River banks. UFPA has a variety of buildings and wooded regions, offering a diverse environment with practical implications for research related to the broadest themes (Federal University of Pará (UFPA), 2023). Figure 2 illustrates the UFPA Belém Campus geographic location and its perimeter outlined in red.
Figure 2: UFPA (Map data ©2023 Google).
Data collect
In this study, the data presented in Cardoso et al. (2022) was used. An Inspire One drone, two LoRa Dragino with GPS, and a car were used to collect data. The data was transmitted from a LoRa Dragino attached to the car and received on a LoRa Dragino attached to the drone. The transmission frequency was 915 MHz; the established drone’s heights were 6, 24, 42, and 60 m; SFs considered for analysis were 8, 9, 10, and 11; the transmission used 20 dBm of power and 500 KHz of bandwidth; the computer located in the car stored the data. Figure 3 illustrates the drone and radio used.
Figure 3: Measuring equipment.
The car went through two distinct routes to collect data. The first route, known as the “garage route” encountered numerous obstructions within the initial meters. In contrast, the second route, referred to as the “ceamazon route” experienced minimal obstructions within the initial meters. The raw data is provided in a CSV file containing the following columns: drone’s height, drone’s geographical coordinates, SF, Bandwidth, car’s geographical coordinates, RSSI, SNR, distance, radial distance, received power, a flag indicating whether the route is ceamazon (0) or garage (1), and a flag indicating whether the transmission is downlink (1) or uplink (0).
The total number of samples after measurements was 3,614 samples, and the SNR values collected were in the range of −18 to 9 dB, considering samples from downlink, drone-car communication, and uplink, car-drone communication. The variation of SF and drone height directly impacted the maximum communication range. Higher values provided a greater range.
For downlink, the range was 1.1 km, and in uplink communication, the maximum range was 0.5 km. It is believed that range difference occurs due to the difference in the propagation medium during signal formation, as in downlink, the electromagnetic wave is formed in the air without obstructions. While in uplink, the wave is formed in a terrestrial environment obstructed by buildings and wooded regions. Table 2 exihibts part of the processed data used in the neural network model.
Neural model training
Several multi-layer perceptron (MLP) and general regression neural networks (GRNN) were trained using the collected data, considering different input parameters. To determine the best inputs and the best model, four GRNNs and four MLPs were modeled based on the combination of input parameters: distance (d), height (h), SF, free space path loss (FSPL) and flag uplink-downlink (UD), used to distinguish between car-drone and drone-car communication.
For MLP-type networks, the model chosen had a hidden layer and an output layer, whose activation functions are logsig and purelin, respectively. Furthermore, the number of neurons in the hidden layer varied from one to 20, resulting in 80 MLP models, one for each combination of input parameters and number of neurons.
For GRNN-type networks, the architecture had a hidden layer with numbers of neurons equal to the number of samples used in network training, a Gaussian activation function, and a neuron in the output layer with a purelin activation function.
Additionally, during the training process, the cross-validation technique with k=10 folds was used (Gholamiangonabadi, Kiselov & Grolinger, 2020). In this way, ten training sessions will be performed for each of the 80 MLP models and 4 GRNN models, generating 800 MLP models and 40 GRNN models. Furthermore, to generate statistical validation, this training process is repeated 100 times (Jain, 1991), generating a total of 84,000 neural network models. Figure 4 illustrates the boxplot of the root mean squared error (RMSE) for all models trained considering different combinations of inputs.
Figure 4: Comparison between MLP × GRNN topologies.
Figure 4 illustrates the RMSE for the four combinations of input parameters. Through its analysis, it is possible to observe that there is not a big difference between the MLP and GRNN models, the difference is less than 1 dB. Regarding the input parameters, there is a high standard deviation and several outliers when using only the distance and flag UD as network input. Note that when using three parameters, there is also a large presence of outliers. The result is very similar for four and five parameters, but the number of outliers is smaller. Therefore, it is observed that, in this case, the addition of input parameters reduced the variability of the results presented by the different neural models.
From the analysis above, it was determined that models 3 and 4 exhibited similar performance. For the final model selection, model 3, with four input parameters distance, height, SF, and flag UD was chosen due to its lower RMSE variability and reduced computational cost compared to the model with five input parameters. To determine the optimal number of neurons in the hidden layer, 100 simulations were performed for each topology, and outliers were removed using a 2.5 median absolute deviation (MAD) criterion. Among the remaining neural network models, the MLP network with 17 neurons in the hidden layer presented the lowest RMSE of 2.41 dB and was selected for use alongside the GWO algorithm. Figure 5 illustrates the topology of the selected network.
Figure 5: MLP network topology.
Grey wolf optimizer
The grey wolf algorithm (GWO) (Mirjalili, Mirjalili & Lewis, 2014) copies the hunting mechanism and leadership hierarchy of these wolves to identify optimal solutions to problems in general. For the GWO to work, it is necessary to implement the hierarchy of alpha, beta, delta, and omega wolves, as well as the three main stages of the hunt: searching for prey, surrounding prey, and attacking prey.
Wolf hierarchy
Wolves are classified into four categories: Alpha wolf ( α) is the leader of the pack, the dominant wolf, and the best solution to the problem; Beta wolf ( β) is at the second level of the pack, subordinate to α, assists in the group’s decision making and is the second best solution to the problem; Delta wolf ( δ) must obey α and β acts as scout and sentry for the pack, it is the third best solution to the problem; Omega wolf ( ω) must submit to the others, and is the scapegoat serving for the other wolves to relieve their stress and maintain the pack hierarchy, for the algorithm the wolves ω are the other candidate solutions.
Search and attack prey
Grey wolves search for prey according to the positioning of wolves α, β and δ. These wolves walk in opposite directions while searching for prey, then converge to attack. This behavior is modeled in Eq. (1), as shown in
(1) →A=2→a⋅→r1−→awhere →A is a coefficient vector, →a linearly decreases from 2 to 0 over the iterations, and →r1 is a random value in the interval [0,1]. While →A is greater than 1, the wolves spread throughout the search space. When →A is less than or equal to 1, the wolves converge to attack the prey.
Surround the prey
When grey wolves find prey, they surround it. To represent this behavior Eqs. (2)–(4) are used.
(4) →X(t+1)=→Xp(t)−→A⋅→Dwhere →C is a coefficient calculated from the random value r2 in the interval [0,1], →Xp is the position of the prey vector, and →X(t) is the position of the grey wolf vector.
Hunt the prey
The hunt is guided by the α wolf, considered the best candidate solution, followed by the β and δ wolves. Assuming that these wolves have greater knowledge about the possible location of the prey, the three positions are stored, and all wolves move based on them. Equations (5)–(7) were modeled to update the position of any wolf →X(t), and are described by
(5) →Dα=|→C1⋅→Xα−→X(t)|,→Dβ=|→C1⋅→Xβ−→X(t)|,→Dδ=|→C1⋅→Xδ−→X(t)|,
(6) →X1=→Xα−→A1⋅→Dα,→X2=→Xβ−→A2⋅→Dβ,→X3=→Xδ−→A3⋅→Dδ,
(7) →X(t+1)=→X1+→X2+→X33,where →X1 represents the update factor related to component α, →X2 represents the update factor related to component β, →X3 represents the update factor related to the δ component and →X(t+1) is the new position of the grey wolf.
Grey wolf optimizer modeling
To model the problem, the devices used in the Amazon Multimodal Intelligent System (SIMA) (Lobato et al., 2023) project were considered. In this project there are seven endnodes, one for the photovoltaic system, one for the battery system, two divided for two electric stations, two divided for two electric buses, and one for an electric boat. Figure 6 illustrates the scenario with the presence of seven endnodes, of which four are immobile, represented by purple circles, and three are mobile, represented by yellow and green diamonds.
Figure 6: Initial scenario (Map data ©2023 Google).
Furthermore, it was necessary to map the wooded regions and building regions of UFPA, for which the Google Maps API V3 Tool (https://www.birdtheme.org/useful/v3tool.html) was used. This way, it is possible to ensure that according to the geographic coordinate, the optimizer knows the correct height to position the drones. Figure 7 illustrates the mapping carried out, the wooded regions in green and the building regions in light blue.
Figure 7: Trees and buildings mapping (Map data ©2023 Google).
From the information above, it is possible to model the grey wolf for the desired problem. The wolf is composed of the used drones’ number, their heights, their geographic coordinates, the SF used to communicate with each device, the SNR of each drone in relation to each device, and its fitness. Figure 8 illustrates the grey wolf vector modeled for the problem.
Figure 8: Grey wolf vector.
The problem fitness function is defined by two objectives: the first is to maximize the average SNR of all devices present in the IoT network, and the second is to use the smallest number of drones possible to offer complete coverage. In this way, a table is created containing the SNR values of each endnode in relation to each drone. Table 3 illustrates an example for the case of three drones (D) and seven endnodes (E).
E1 | E2 | E3 | E4 | E5 | E6 | E7 | |
---|---|---|---|---|---|---|---|
D1 | 3 | 2 | 3 | 1 | 3 | 4 | 1 |
D2 | 5 | 1 | 2 | 4 | 2 | 1 | 3 |
D3 | 2 | 4 | 6 | 3 | 1 | 2 | 4 |
From Table 3, it is possible to determine objective 1, maximizing the SNR of LoRa network devices; for this, Eq. (8) is used:
(8) Obj1=mean(max(Ci))SNRmaxwhere Ci is the i-th column of the matrix and SNRmax is the highest SNR value present in the collected data. To determine the second objective, minimizing the number of drones in use, Eq. (9) is used:
(9) Obj2=1−(NDloboNDmax)where NDlobo is the drone number in the grey wolf whose fitness is being calculated, and NDmax is the maximum number of drones allowed by the optimizer. Finally, fitness is determined by Eq. (10):
(10) fitness=−[W⋅Obj1]−[(1−W)⋅Obj2]where W is the Pareto front used to calculate fitness.
Restrictions
The pack initialization needs to respect the restrictions defined for this problem. There are restrictions related to endnodes and restrictions associated with drones. Each endnode sends different information, so they have distinct payloads. Since the SF used limits the LoRa transmission rate, the device payload defines the threshold of SFs used in transmission. Table 4 illustrates the payload of all endnodes and the minimum and maximum SF thresholds according to the AU915 region (LoRa Alliance, 2022).
Application | Payload (Bytes) | SF range |
---|---|---|
Gym electric station | 125 | 8 |
Ceamazon electric station | 125 | 8 |
Photovoltaic system | 53 | 8–9 |
Battery system | 53 | 8–9 |
Electric bus 1 | 23 | 8–11 |
Electric bus 2 | 23 | 8–11 |
Electric boat | 23 | 8–11 |
For drones, they must respect the UFPA limits presented in Fig. 2, that is, the optimizer must position the drones within the perimeter belonging to UFPA. If they are outside, the optimizer repositions them to the closest position within the perimeter. Furthermore, the positioning of the drones must respect the height of the mapped buildings and trees, represented in Fig. 7. For this purpose, the average height of 12 m is considered for all building regions and 25 m for the wooded. The Algorithm 1 exemplifies the adapted grey wolf optimizer pseudocode and the Fig. 9 illustrates the optimization fluxogram.
n= number of search agents |
Input=[nDrones,Height,Lat,Lon,SF,SNR] |
Initialize the Wolf Pack (IWP) of n wolves randomly |
for i=1:n do |
Input=random(6,1) |
IWPi=Input |
end for |
IWP = Check Restrictions(IWP) |
for Pareto=1:Paretomax do |
WolfPack=IWP |
W=ParetoParetomax |
while iter≤Itermax do |
Calculate fitness Fi(i=1,...,n) for all WolfPack (Eq. (10)) |
Sort WolfPack according to Fi in ascending order |
Xα=WolfPack[1], Best solution; Xβ=WolfPack[2], 2a best; Xδ=WolfPack[3], 3a best; |
Updates wolves in WolfPack |
for j=1:n do |
WolfPack[j]=Xα+Xβ+Xδ3 (Eq. (7)) |
end for |
WolfPack= Check Restrictions( WolfPack) |
Decreases Linearly A (Eq. (1)) |
Update C (Eq. (2)) |
iter++ |
end while |
Solutionpareto=Xα |
end for |
Output = Best(Solutionpareto) |
Figure 9: Optimization fluxogram.
Optimization problem
Let’s consider the problem above, let n be the number of endnodes in the network. Each endnode is positioned in a Lati and Longi for i=1,...,n. Also, each endnode has a maximum SFi between 8 to 11, and each endnode i has a SNRi,j related to k LoRa Gateways (LG) or drones for k=1,...,j.
The objective function defined in Eq. (10) has the goal to maximize the network SNR with the smallest number of drones possible. For this, j drones will be deployed for j=1,...,k and each drone is positioned at a Latj, Longj and height ( hj) for j=1,...,k. The table SNRi,j represents the SNR from endnode i related to LG j. The SNRi,j is determined through the ANN, Eq. (11), considering the radial distance dri,j between the LG j and the endnode i, the SFi and the LG j height.
(11) SNRi,j=net(dri,j,hj,SFi,UD)and dri,j is determined through the adapted Haversine equation, Eq. (12),
(12) dri,j=√(2rarcsin(√sin2(Latj−Lati2)+cos(Lati)cos(Latj)sin2(Longj−Longi2)))2+h2j,where dri,j is the radial distance between the LG j and the endnode i; r is the earth radius in meters (6,371,000 m). To summarize, the optimzation problem is modeled as:
minimize Eq. (10)
8≤SFi≤11fori=1,…,n−1.4784≤lati≤−1.4584fori=1,…,n−48.4594≤longi≤−48.4346fori=1,…,n−1.4784≤latj≤−1.4584forj=1,…,k−48.4594≤longj≤−48.4346forj=1,…,k6≤hj≤60forj=1,…,kifTreeRegionthenhj≥25ifBuildingRegionthenhj≥12
Results
This section will present the results obtained in this study, the behavior presented by the proposed prediction model, the convergence curves of the optimization algorithm used, and the performance of the optimizer with the analysis of coverage, number of drones, variation of SF and SNR before and after the optimization process.
Neural network
The MLP neural network with 17 neurons in the hidden layer was selected for use in conjunction with the grey wolf optimizer as it presented the best performance. Next, Fig. 10 compares the predicted SNR behavior for all SFs of the selected MLP network, considering the height of 24 m, to the measured data. The chosen network was able to follow the data trend and presented the expected behavior, that is, the reduction in the predicted SNR value occurs as the distance between the transmitter and receiver increases.
Figure 10: Prediction model developed.
Optimizer
From the initial scenario, presented in Fig. 6, 30 search agents are defined randomly, they are organized in ascending order, and their position in the rank may vary according to the Pareto front considered. For the analysis of initial Pareto fronts, fitness prioritizes reducing the number of drones, as seen in Fig. 11. Initially, the optimal solution had only one UAV, illustrated by the green diamond. After the optimization, only one UAV was used in the final solution, represented by the yellow diamond.
Figure 11: Pareto 1 positioning (Map data ©2023 Google).
The final Pareto fronts prioritize maximizing the SNR of devices connected to the LoRa network regardless of the number of UAVs used, as seen in Fig. 12, which illustrates the optimization result for Pareto Front 10. The initial solution had 7 UAVs, and at the end of the optimization process, the use of 8 UAVs was presented as the optimal solution.
Figure 12: Pareto 10 positioning (Map data ©2023 Google).
Next, Fig. 13 illustrates the convergence of the GWO algorithm for the two cases mentioned above. The lower the fitness, the better the individual. There is a considerable difference between the two scenarios caused by the increase in the number of UAVs at the highest Paretos, increasing the complexity of the problem to be solved. The complexity can be seen in the high population diversity present in Fig. 13B compared to that presented in Fig. 13A. For the other Pareto fronts, the algorithm convergence can be seen in Supplemental Files.
Figure 13: Pareto 1 & 10 convergence.
For a general analysis of all Pareto fronts, Fig. 14 is presented. In blue are the initial values, and in red are the post-optimization values. From the figure analysis, it is possible to observe that, for Paretos 1 to 6, only 1 UAV is used at the end of the optimization. However, this amount is insufficient to provide coverage for the entire LoRa network. In this way, it is noted that the most appropriate Pareto for solving the problem is between 7 and 10 since these are the ones that provide full coverage for the communication network.
Figure 14: Analysis of pareto fronts.
Therefore, restricting the analysis to Paretos between 7 and 10, it is observed that Paretos 7 and 8 achieved the objective of reducing the UAVs number and improving the SNR of devices connected to the network, placing UAVs at 46 and 52 m height, respectively. Both Paretos achieved 100% coverage for the LoRa network, reducing the number of UAVs used from 3 to 2 and 7 to 2, respectively. Furthermore, Paretos 7 and 8 were able to reduce the average SF used, providing a higher transmission rate for endnodes and reducing energy consumption during data transmission. Finally, Fig. 15 presents the positioning for Paretos 7 and 8, and the others can be seen in Supplemental Files.
Figure 15: Pareto 7 & 8 positioning.
Conclusion
This study proposed the grey wolf optimizer utilization to determine the optimal positioning of UAVs in a densely wooded suburban region and select the appropriate spreading factor for data transmission from endnodes connected to the LoRa network. To this end, the mapping of buildings and trees within the UFPA perimeter was carried out. Additionally, samples of the LoRa signal behavior were collected in this environment, and several neural networks were trained to reproduce this behavior, aiming to assist the LoRaWAN network planning process.
In total, 84,000 neural networks were trained. After training, the perceptron multi-layer network with 17 neurons in the hidden layer presented the lowest RMSE, 2.41 dB. This network was used in conjunction with the optimizer, which considered the positioning of the endnodes used by the SIMA project to determine the optimal position of the UAV gateways. Furthermore, restrictions were defined so that the UAVs are positioned respecting the heights of buildings and trees and restrictions so that the SF selected for transmission is in accordance with the payload used by the endnode.
The results show that the optimizer had acceptable performance, achieving 100% coverage for devices connected to the LoRaWAN network. Furthermore, the optimizer caused the devices to carry out their transmissions with lower SF, resulting in a higher transmission rate and lower energy consumption. Finally, the methodology presented in this work is expected to assist in future deployments of LoRa networks that use UAVs as gateways.
The plan for future work is to implement the automatic detection of wooded areas and buildings through computational intelligence techniques. The goal is to model a convolutional neural network to determine the different types of terrain and structures from aerial imagery. Also, we plan to use this study to adjust the positioning of UAVs in real-time by applying mobility simulation models to the network users, such as the Random Waypoint.
Supplemental Information
Dataset and codes used in the research.
The code (otimizador_ufpa) to run the adapted gwo optimizer for the UFPA scenario.
- code "main.m" runs the optimizer
- code "trata_resultados.m" plots the general analysis for all paretos
- folder "resultados" contains the plots used in the draft and the results
- obtained for the optimizer in .mat files
The code (SNR_mlp) to train the grnn and mlp networks:
- "old_mlp_snr_v2.m" trains the mlp networks
- "grnn_snr.m" trains the grnn networks
- "analise_resultados.m" generates the boxplot to compare grnn x mlp, then find the best network
Additional Information and Declarations
Competing Interests
The authors declare that they have no competing interests.
Author Contributions
Caio M. M. Cardoso conceived and designed the experiments, performed the experiments, analyzed the data, performed the computation work, prepared figures and/or tables, authored or reviewed drafts of the article, and approved the final draft.
Alex S. Macedo performed the experiments, analyzed the data, prepared figures and/or tables, and approved the final draft.
Filipe Cavalcanti Fernandes performed the computation work, prepared figures and/or tables, and approved the final draft.
Hugo A. O. Cruz performed the computation work, authored or reviewed drafts of the article, and approved the final draft.
Fabrício J. B. Barros conceived and designed the experiments, authored or reviewed drafts of the article, and approved the final draft.
Jasmine P. L. de Araújo conceived and designed the experiments, authored or reviewed drafts of the article, and approved the final draft.
Data Availability
The following information was supplied regarding data availability:
The data and code are available in the Supplemental File.
Funding
This study was financed by the Coordenação de Aperfeiçoamento de Pessoal de Nível Superior-Brasil (CAPES)–Finance Code 001. There was no additional external funding received for this study. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.