Multi-Agent Graph Reinforcement Learning based On-Demand Wireless Energy Transfer in Multi-UAV-aided IoT Network
Abstract
This paper proposes a new on-demand wireless energy transfer (WET) scheme of multiple unmanned aerial vehicles (UAVs). Unlike the existing studies that simply pursuing the total or the minimum harvested energy maximization at the Internet of Things (IoT) devices, where the IoT devices’ own energy requirements are barely considered, we propose a new metric called the hungry-level of energy (HoE), which reflects the time-varying energy demand of each IoT device based on the energy gap between its required energy and the harvested energy from the UAVs. With the purpose to minimize the overall HoE of the IoT devices whose energy requirements are not satisfied, we optimally determine all the UAVs’ trajectories and WET decisions over time, under the practical mobility and energy constraints of the UAVs. Although the proposed problem is of high complexity to solve, by excavating the UAVs’ self-attentions for their collaborative WET, we propose the multi-agent graph reinforcement learning (MAGRL) based approach. Through the offline training of the MAGRL model, where the global training at the central controller guides the local training at each UAV agent, each UAV then distributively determines its trajectory and WET based on the well-trained local neural networks. Simulation results show that the proposed MAGRL-based approach outperforms various benchmarks for meeting the IoT devices’ energy requirements.
Index Terms:
Multiple unmanned aerial vehicles (UAVs) aided network, wireless energy transfer (WET), hungry-level of energy (HoE), multi-agent deep reinforcement learning, self-attentions.I Introduction
The technology of radio frequency (RF) based wireless energy transfer (WET) has been recognized as a promising approach to support energy-sustainable Internet of Things (IoT) networks[1]. Conventionally, ground infrastructure (e.g., dedicated energy transmitters or base stations) are utilized to charge the low-power IoT devices. However, due to the generally low end-to-end wireless energy transmission efficiency, to assure non-zero harvested energy at the IoT devices, the effective transmission distance from the ground infrastructure to each IoT device is restricted (to , e.g., 10 meters [2]).
By exploiting the UAVs’ flexible mobility to effectively shorten the transmission distances between the UAVs and the IoT devices, the UAV-aided WET has attracted a great deal of attentions. For example, the UAV’s dynamic wireless energy and information transmission scheme in the presence of primary users was investigated in [3]. The UAV’s hovering position to maximize the minimum harvested energy at the IoT devices was studied in [4]. The UAV’s trajectory and WET were jointly optimized for maximizing the total harvested energy at the IoT devices in [5].
The above studies only considered the WET by a single UAV, which is usually difficult to serve a large-scale network due to its limited on-board battery energy. By tackling with the more complicated joint design of the multiple UAVs’ trajectories and wireless energy transmissions, the multi-UAV aided WET for maximizing the total harvested energy at the IoT devices has been studied in [6] and [7], where the Lagrange multiplier method and the fly-and-hover based trajectory design were utilized, respectively. The joint design of multi-UAV-aided wireless data and energy transmissions has also been investigated in [8] and [9], where the deep reinforcement learning (DRL) is applied to adapt the multiple UAVs’ transmissions to the dynamic environment.
However, it came to our notice that the existing UAV-aided WET schemes may sacrifice the energy demands of some IoT devices for achieving higher global benefits. For example, with the purpose to maximize the total harvested energy at all the IoT devices, the UAVs with limited on-board energy may choose to transmit energy to the closely-located IoT devices more often, but barely fly to serve the distantly-located IoT devices to save energy; and with the purpose to maximize the minimum harvested energy at all the IoT devices, the IoT devices with high energy demands may not be able to harvest sufficient energy, for achieving equal energy harvesting at each IoT device. As a result, both designs may deviate from the IoT devices’ own energy demands.
To cater to the IoT devices’ energy requirements, we propose a new metric called hungry-level of energy (HoE), which reflects the time-varying energy desirability of each IoT device based on the energy gap between its required energy and the harvested energy from the UAVs. Moreover, to explore the UAVs’ potential collaborations, such that they can automatically determine their joint or separate WET depending on the IoT devices’ HoE, we employ the UAVs’ self-attentions based on the graph-based representation. Finally, we propose the novel multi-agent graph reinforcement learning (MAGRL) based approach to minimize the overall HoE of the IoT devices whose energy requirements are not satisfied.
The main contributions are summarized as follows:
-
•
HoE-based Multi-UAV WET Modeling and Novel Problem Formulation: Section II newly proposes the metric of HoE to guide the multi-UAV-aided WET for satisfying the different energy demands of the IoT devices. Based on each IoT device’s non-linear energy harvesting model and each UAV’s velocity-determined energy consumption model, the battery energy management at both the UAVs and the IoT devices are properly modeled. By optimally determining all the UAVs’ trajectories and WET decisions over time, the novel HoE minimization problem is formulated under the UAVs’ practical mobility and energy constraints.
-
•
MAGRL-based Approach for Distributed and Collaborative Multi-UAV WET: Sections III and IV propose the MAGRL-based approach to solve the complicated HoE minimization problem, where the UAVs’ self-attentions are excavated for their collaborative WET. Through the offline training of the proposed MAGRL model, where the central controller leads the global training to guide the local training at each UAV agent, each UAV then distributively determines its trajectory and WET decision based on the well-trained policy neural networks.
-
•
Extensive Simulation Results for Performance Evaluation: Section V conducts extensive simulations to verify the validity of the proposed HoE metric for guiding the UAVs’ on-demand WET, by comparing with various benchmarks. The UAVs’ collaborative WET under the proposed MAGRL-based approach is also illustrated.
II System Model and the Problem Formulation
As shown in Fig. 1, we consider that UAVs with act as the airborne wireless energy transmitters to charge in total of IoT devices with low power consumptions on ground. Each UAV flies at a fixed altitude of meters (m). Denote the sets of the UAVs and the IoT devices as and , respectively. The UAVs’ task period of WET is divided into time slots with , where the slot length is seconds (s). The set of the time slots is denoted as . The coordinate of UAV- in slot is represented as , , . Since the slot length is usually very small, is assumed to be unchanged in each slot, but may change over different slots. The coordinate of device- with on ground is denoted as . Let denote the distance between UAV- and device- in slot . Let denote UAV-’s WET decision in slot , where UAV- broadcasts energy in slot if , or keeps silent, otherwise.
According to [10], denote as the line-of-sight (LoS) probability of the air-to-ground (AtG) channel from UAV- to device- in slot , where is the elevation angles from UAV- to device- in slot , and the constants and are the environment-related parameters. We then obtain the non-line-of-sight (NLoS) probability as . As a result, the average AtG channel power gain from UAV- to device- is
(1) |
where is the average channel gain at a reference distance of m, and and are the channel path-loss exponents for LoS and NoS links, respectively.
II-A UAV Energy Consumption Model
Each UAV’s energy consumption is mainly caused by propulsion and WET. According to [11], in each slot , UAV-’s propulsion power consumption is determined by its velocity as follows:
(2) |
where the constants , , , , , and are the UAV’s mechanical-related parameters. Hence, the propulsion energy consumption of UAV- in slot is obtained as . Denote as each UAV-’s transmit power for WET. The energy consumption of UAV-’s WET in slot is thus . Denote as the battery level of UAV- at the beginning of slot , which is updated as
(3) |
We assume that UAV- is fully charged in the initial with , where is UAV-’s battery capacity.
II-B Energy Harvesting at IoT devices
Each IoT device is installed with a rectenna and an energy harvester. According to [12], the energy harvester transforms the received RF power at the rectenna into the direct-circuit (DC) power as follows:
(4) |
where and with are the sensitivity power and the saturation power at the energy harvester, respectively, and is a non-linear power transform function that can be easily obtained through the curve fitting technique [12]. From (4), no DC power is harvested if is below and the harvested DC power keeps unchanged if . The value of is usually high (with, e.g., -10 dBm [13]) in practice. Hence, the transmission distance from the UAV to the IoT device needs to be sufficiently short to assure effective WET with non-zero harvested energy. For each device-, since its harvested energy from multiple UAVs in each slot can be accumulated, based on (1) and (4), the harvested energy at device- in slot is obtained as
(5) |
From (5), device- can harvest more energy if more UAVs are located nearby and transmit energy to it jointly. Denote as the battery level of device- at the beginning of slot , which is updated as
(6) |
where is the battery capacity of device- and the initial battery energy is given. Denote as the required battery energy level at each IoT device, where holds in general. We say an IoT device is energy satisfied if its accumulated battery energy reaches the required before or at the last slot . Hence, is the set of energy-unsatisfied IoT devices at the end of slot . After the UAVs’ WET for slots, the set of energy-unsatisfied IoT devices is obtained as .
II-C Hunger-Level of Energy at IoT devices
The HoE is defined to measure the time-varying energy demand of each IoT device. Denote as the HoE of device- at the beginning of slot . We define the time variation of as
(7) |
where denotes the average amount of energy that device- expects to harvest in each slot for reaching after slots. If device-’s harvested energy in slot () reaches the expected , but the resultant battery energy at the beginning of slot is still lower than the required , is reduced by at the beginning of slot , where the minimum allowable HoE when is set to . If is lower than the expected and the resultant is also lower than the required , is increased by at the beginning of slot . Moreover, if device-’s required energy is satisfied with at the beginning of slot , becomes . The overall HoE of all the energy-unsatisfied IoT devices over slots is then obtained as
(8) |
It is easy to find that is , if is empty.
II-D Problem Formulation
By optimally determining all the UAVs’ WET decisions and trajectories over slots, we minimize the overall HoE in (8) under the UAVs’ practical mobility and energy constraints as follows:
(9) | ||||
(10) | ||||
(11) | ||||
(12) | ||||
(13) |
The constraint in (9) ensures that the velocity of UAV- does not exceed its maximal allowable velocity . The constraint in (10) gives each UAV’s binary WET decision. The constraint in (11) ensures that each UAV’s remained energy at the end of slot is no less than the minimum required energy for a safe return after the WET task. The constraint in (12) guarantees a safe distance between any two UAVs in each slot to avoid collisions. The constraint in (13) confines each UAV’s horizontal moving space within an area of length and width .
Problem (P1) is a mixed-integer programming problem. It is also noticed that with the goal to minimize the overall HoE, the multiple UAVs need to be efficiently organized, by either jointly transmitting energy to the same set of IoT devices that are closely located, or separately serving different sets of IoT devices that are distantly located. Hence, all the UAVs’ trajectories and WET decisions are naturally coupled with each other over time. Moreover, as constrained by (11), each UAV must use the limited battery energy wisely for reducing the IoT devices’ HoE. Therefore, problem (P1) is generally difficult to solve efficiently by using the traditional optimization methods.
III MDP Modeling and Global Graph Design
Considering the above complicated and coupled relations in problem (P1) among multiple UAVs, a multi-agent DRL approach is leveraged in this paper. As shown in Fig. 1, each UAV acts as an agent and reports its environment states to the central controller (e.g., a base station or a satellite); By using the global environment information of all the UAVs, the central controller’s training output also guides each UAV’s local training. Although the training is centralized, after the training process, each UAV distributively determines its own WET decision and trajectory based on its local policy. Moreover, to explore the potential collaboration of all the UAVs for efficient WET, we take the global UAV information as a graph and introduce the similarity matrix [14] and the self-attention block [15] to operate the graph-based global information at the central controller [16]. By doing so, a new MAGRL-based approach is proposed to solve problem (P1). In this section, we model the Markov decision processes (MDP) at each UAV, and then introduce the UAVs’ graph-based representations at the central controller. The MAGRL-based solution will be specified in Section IV.
III-A MDP Modeling
According to problem (P1), by letting each UAV act as an agent, we model the MDP for each of the agents[17]. For each agent, define the MDP as a set of states , a set of actions , and a set of rewards . The state set embraces all the possible environment configurations at each UAV, including the UAV’s own location, the HoE of all the IoT devices, the battery levels of all the IoT devices 111It is assumed that all the IoT devices share their HoE and battery levels with the UAVs via a common channel., and the UAV’s own battery level. The action set provides the action space of each UAV’s decision on its trajectory and WET. For any given state for UAV- at the beginning of slot , UAV- applies the policy to select the action , and then gets the corresponding reward at the end of slot .
Specifically, the state in slot is defined as , which contains in total of elements. Denoting as UAV-’s horizontal rotation angle in slot , UAV-’s horizontal location in problem (P1) is determined if and are obtained. Thus UAV-’s MDP action is defined as , where if the policy network output is negative or , otherwise. The reward function is proposed as
(14) |
where are the reward and penalty that UAV- receives in slot , respectively, and are the corresponding weights. Specifically, letting denote the ratio of the DC energy that device- harvestes from UAV- to that from all the UAVs, we use with to represent UAV-’s effective WET weight among all the UAVs in slot . The IoT devices can harvest higher amounts of energy from the UAV with a higher , and vice versa. We then propose to use the following :
(15) |
From (15), while the UAVs prefer to perform WET more frequently to reduce the IoT devices’ HoE, they also need to use their battery energy carefully to assure the constraint in (11). Hence, the reward in (15) contains two items. The first item is UAV-’s reward for charging IoT devices, where the numerator is the product of UAV-’s weight and all the IoT devices harvested energy biased by their HoE, and the denominator is the product of the HoE summation over all the energy-unsatisfied IoT devices and the set size , which plus to prevent the denominator from being . It is easy to find that, the more energy the high-HoE IoT devices can harvest, the higher value the first item achieves. The second item is UAV-’s battery energy gap between and in constraint (11) after taking action in slot , where a balance parameter is multiplied. The penalty in (14) is designed as
(16) |
where (or ) if the constraint in (12) (or (13)) is not satisfied, or (or ), otherwise.
III-B Graph Representation of UAVs
By receiving each UAV’s state information, the central controller obtains the global information. Let , and denote the global observations, actions, and rewards, respectively. To explore the potential connections among the UAVs to improve the overall WET performance as well as to avoid collisions, the central controller uses a graph to represent all the UAVs, by treating each UAV as a node in the graph. According to [14], we use the following similarity matrix among the UAVs to represent the strength of their connections,
(17) |
where the element , , is the Gaussian distance between UAV- and UAV-, is a constant, and the element on the diagonal is used as the degree of UAV-. Specifically, from [15], to obtain the global feature matrix , the central controller first generates the attention matrix and value matrix as follows:
(18) |
where the symbol denotes the matrix multiplication, is the matrix transposition. For any matrix , the function transforms the element into , . Then, the global feature matrix is obtained as , which is used as the new observation matrix for the central controller.
IV MAGRL-based Solution
IV-A MAGRL Training Flow
As shown in Fig. 2, the MAGRL framework includes two parts, where one is the local training at each of the UAV, and the other is the global training at the central controller. In training stage, a tuple is stored in the experience replay buffer , and all the neural networks for both local and global training apply the stochastic gradient descent (SGD) algorithm to update their parameters.
Local Training: For each UAV’s local training, we apply the SAC algorithm proposed in [18] to enhance the exploration of the environment for all agents. As shown in the left side of Fig. 2, for any UAV-, there are five neural networks employed for its local training, which are the policy network , the local Q-networks and , and the local V-networks and , with the corresponding network parameters denoted by , , , and , respectively. The policy network is trained for the policy function that maps UAV-’s state to its action , the two local Q-networks are trained for the local state action functions and , and the two local V-networks are trained for the local state functions and . The information entropy is used to enhance the agent’s exploration of the environment [18]. The goal of the local training is to obtain the optimal policy , where the temperature coefficient is the weight of the information entropy, and is the expectation operation over all the possible actions. The performance of UAV- when taking action in state is evaluated by the local Q-networks and , with , . The performance of UAV- in state is evaluated by the local V-network , with , where denotes the action taken from policy , and .
The parameters of all the five neural networks are updated based on the corresponding loss functions. Specifically, after receiving the -th local experience from the mini-batch of central controller for the local training, UAV- uses the loss function
(19) |
to update for the local V-network in negative the direction of the gradient , where is the expected entropy-added local minimum Q-value and is the entropy. For the parameter of network, we perform a soft update via , . For the update of the parameters and for and networks, respectively, they are also computed in the negative direction of the corresponding loss function’s gradient with
(20) |
where and by using to denote the global Q-value used to guide the training of the two local Q-networks, we define with . Similarly, according to the loss function for the policy network
(21) |
the network parameter is updated in the negative direction of the gradient , where the information entropy is calculated from the noise-added action , and is the noise sampled from a fixed distribution . Based on [18], adding noise to the action prevents the network from overfitting and ensures the stable network training. We use the loss function
(22) |
to update the temperature coefficient in the negative direction of the gradient with .
Global Training: The global training is designed for the central controller which consists of three neural networks, which are the global Q-network and the two global V-networks and , with the corresponding network parameters denoted as , and , respectively. The global Q-network is trained for the global state action function and the two global V-networks are trained for the global state functions and . As shown in the right side of Fig. 2, each neural network contains the self-attention block, which extracts the global feature matrix to obtain the connections among UAVs as specified in Section III-B. The goal of the central training is to find the optimal global Q-value .
The parameters of the three networks are also updated based on the corresponding loss functions. Specifically, after receiving the -th global experience () from the mini-batch , the central controller uses the loss function
(23) |
to update for the global V-network in the negative direction of the gradient . For the parameter of network, we perform a soft update via , . For the update of the parameter for network, it is also computed in the negative direction of the corresponding loss function’s gradient, where the loss function is given as
(24) |
IV-B MAGRL-Based Algorithm
Based on the above framework, we propose the MAGRL-based algorithm to solve problem (P1). The MAGRL-based algorithm is specified in Algorithm 1.
Parameter | Value | Parameter | Value |
---|---|---|---|
m | dBm, 100 | ||
W | , dBm | ||
mWs | |||
, | , Ws | m | |
, , | for | , | |
, , | Size of | ||
size of | ’s learning rate |
V Simulation Results
To evaluate the performance of our proposed MAGRL method, we conduct simulations based on python-3.9.12 and pytorch-1.12.1. Unless specified otherwise, in all the simulations, the starting horizontal position of each UAV is selected randomly in the the considered area, and each IoT device’s initial battery energy is set randomly in the range between mWs and mWs, respectively. The UAV’s propulsion model parameters are set as in [12]. Each neural network for the local training has layers and the number of neurons in the hidden layer is . Each neural network in global training contains a self-atteion block and fully connected layers. Learning rate is set to for all neural networks except for the neural network , which has a learning rate of . Other parameters can be found in Table I.
V-A Training stage
In the training stage, we compare MAGRL with the following benchmarks:
We consider an area of m m with UAVs and IoT devices. For the proposed MAGRL method and the benchmarks, we show the accumulated average reward in Fig. 3(a). Fig. 3(b) shows the variations of of all four methods. The convergence of our proposed MAGRL algorithm is observed in Fig. 3(a), where the proposed MAGRL method outperforms the other benchmarks and achieves the highest after convergence. This implies that the global training can learn the potential connections among the states of the UAVs, thus improving the learning ability of multiple agents. From Fig. 3(b), it is observed that by considering HoE, in our proposed MAGRL method is the lowest among all four methods, which confirms, that the goal of HoE minimization can guide the UAVs’ WET to cater to each IoT device’s energy requirements.
V-B Testing stage
To show the performance of the UAVs’ WET in the testing stage, we illustrate an example, where UAVs are dispatched to charge IoT devices in a horizontal area of m m. Each UAV agent applies the trained network to determine its actions. Fig. 4(a) shows the trajectories of the two UAVs, Fig. 4(b) shows each of the IoT device’s battery variations over time, and Fig. 5 shows the two UAVs’ binary WET decisions. It is observed from Fig. 4(a) and Fig. 5 that although each UAV distributively determines its own trajectory and WET, due to the exploration of their self-attentions in the global training, the two UAVs can automatically serve different IoT devices in a collaborative manner, where UAV-1 transmits energy mainly to the two closely-located IoT devices, while UAV-2 mainly serves the other distantly-located IoT devices. Due to their effective collaboration for WET, it is also observed that each of the IoT device’s battery energy achieves the required threshold in Fig. 4(b), and thus the overall HoE in problem (P1) becomes . Moreover, at the end of slots, the remained energy of the two UAVs are Ws and Ws, respectively, where the required Ws in (11) are satisfied for both UAVs.
VI Conclusion
This paper proposes the novel on-demand WET scheme of multiple UAVs. We propose a new metric of HoE to measure each IoT device’s time-varying energy demand based on its required battery energy and the harvested energy from the UAVs. We formulate the HoE minimization problem under practical UAVs’ mobility and energy constraints, by optimally determining the UAVs’ coupled trajectories and WET decisions over time. Due to the high complexity of this problem, we leverage DRL and propose the MAGRL-based approach, where the UAVs’ collocations for WET are exploited by excavating the UAVs’ self-attentions in the global training. Through the offline global and local training at the central controller and each UAV, respectively, each UAV can then distinctively determine its own trajectory and WET based on the well-trained local neural networks. Simulation results verify the validity of the proposed HoE metric for guiding the UAVs’ on-demand WET, as well as the UAVs’ collaborative WET under the proposed MAGRL-based approach.
Acknowledgement
This work was supported by the National Natural Science Foundation of China under Grant 62072314.
References
- [1] S. Bi, C. K. Ho, and R. Zhang, “Wireless powered communication: Opportunities and challenges,” IEEE Commun. Mag., vol. 53, no. 4, pp. 117–125, Apr., 2015.
- [2] B. Clerckx, et al., “Fundamentals of wireless information and power transfer: From RF energy harvester models to signal and system designs,” IEEE J. Sel. Areas Commun., vol. 37, no. 1, pp. 4–33, Jan. 2018.
- [3] Y. L. Che, Y. Lai, S. Luo, K. Wu, and L. Duan, “UAV-aided information and energy transmissions for cognitive and sustainable 5G networks,” IEEE Tran. Wireless Commun., vol. 20, no. 3, pp.1668-1683, Mar. 2021.
- [4] Z. Yang,W. Xu,M. Shikh-Bahaei, “Energy efficient UAV communication with energy harvesting,” IEEE Trans. Veh. Technol., vol. 69, no. 2, pp. 1913-1927, Feb. 2020.
- [5] J. Xu, Y. Zeng and R. Zhang, “UAV-enabled wireless power transfer: trajectory design and energy optimization,” IEEE Trans. Wireless Commun., vol. 17, no. 8, pp. 5092-5106, Aug. 2018.
- [6] J. Mu and Z. Sun, “Trajectory design for multi-UAV-aided wireless power transfer toward future wireless systems,” Sensors, vol. 22, no. 18, pp. 6859, Aug. 2022.
- [7] L. Xie, X. Cao, J. Xu and R. Zhang, “UAV-enabled wireless power transfer: a tutorial overview,” IEEE Transactions on Green Communications and Networking, vol. 5, no. 4, pp. 2042-2064, Dec. 2021.
- [8] K. Li, W. Ni, E. Tovar and A. Jamalipour, “On-board deep Q-network for UAV-assisted online power transfer and data collection,” IEEE Trans. Veh. Technol., vol. 68, no. 12, pp. 12215-12226, Dec. 2019.
- [9] O. S. Oubbati et. al., “Synchronizing UAV teams for timely data collection and energy transfer by deep reinforcement learning,” IEEE Trans. Veh. Technol., vol. 71, no. 6, pp. 6682-6697, Jun. 2022.
- [10] A. Al-Hourani, S. Kandeepan and S. Lardner, “Optimal LAP altitude for maximum coverage,” IEEE Wireless Commun. Let., vol. 3, no. 6, pp. 569-572, Dec. 2014.
- [11] Y. Zeng, J. Xu and R. Zhang, “Energy minimization for wireless communication with rotary-wing UAV,” IEEE Trans. Wireless Commun., vol. 18, no. 4, pp. 2329-2345, Apr. 2019.
- [12] P. N. Alevizos and A. Bletsas, “Sensitive and nonlinear far-field RF energy harvesting in wireless communications,” IEEE Trans. Wireless Commun., vol. 17, no. 6, pp. 3670-3685, Jun. 2018.
- [13] PowerCast Module. Accessed: Jul. 2020. [Online]. Available: http://www.mouser.com/ds/2/329/P2110B-Datasheet-Rev-3-1091766.pdf
- [14] U. V. Luxburg, “A tutorial on spectral clustering,” Statistics and computing, vol. 17, no. 3, pp. 395-416, Aug. 2007.
- [15] A. Vaswani, et. al., “Attention is all you need,” Advances in neural information processing systems, 2017.
- [16] J. Jiang, et. al. “Graph convolutional reinforcement learning,” in Pro. International Conference on Learning Representations (ICLR), Oct. 2018.
- [17] M. L. Puterman, “Markov decision processes: Discrete stochastic dynamic programming,” John Wiley and Sons, 2014.
- [18] T. Haarnoja, et. al. “Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor,”, in Pro. International Conference on Machine Learning (ICML), Aug. 2018.