# Evolution of Hybrid LiFi-WiFi Networks: A Survey
## 5 Handover and Load Balancing in HWLNets
### Load Balancing  
In the RF domain, load balancing is a method to distribute user's sessions in overlapping APs. Load balancing optimizes resource employment, maximizes throughput, and reduces response time and network congestion. Load balancing happens only when geographically farthest users of an AP demand high traffic loads on neighbouring APs. If the user's data rate requests are distributed through the network in a rectangular form, load balancing is not necessary. Load balancing techniques can be categorized [67] into:  
* user-based;
* AP-based. In the user-based technique, APs are selected depending on user's interest, thus optimization of network performance is difficult, if not impossible to obtain. Another technique uses a central control to obtain network-wide load balancing. Imposing load balancing in hybrid networks is difficult due to coverage of LiFi APs and WiFi that overlap and the low system capacity of WiFi regarding LiFi [8]. Traffic overload in hybrid environments is unavoidable even with excellent geo-distribution of user demands on WiFi APs. New approaches such as cell range expansion, relaxed optimization, and game theory Markov decision process [68] minimize this problem but do not answer important constraints in HWLNets, that is user mobility, because of small coverage of LiFi transmitters. Load balancing in HWLNets can be divided into two groups, as seen in Figure 11:  
* stationary;
* mobility aware. Both use different algorithms to achieve optimized load balancing but mobility aware also takes into account user movement due to different factors. Figure 11: Load balancing models in hybrid LiFi–WiFi networks. A stationary channel has time duration over which the channel impulse response is considered to be not varying, thus load balancing has to compensate channel quality with resource availability. A method for realizing proportional fairness with the use of centralized and distributed resource algorithms to solve load balancing problem was used in [69]. Another method for QoS with mixed-integer non-linear programming problem was proposed [70]. Proposed methods have nondeterministic polynomial time complexity, which in terms requires enormous computational time and resources, thus increasing the number of APs exponentially. Using game theory, an algorithm was proposed [71] that has multiple fairness functions including modelling blockages, different user equipment orientation, and data throughput to represent real world scenarios. Another similar method uses power allocation with focus on two key elements:  
* optimize power of AP, thus maximize throughput;
* find AP that is less congested for users with low data rates and reconnect them to it. Both of these algorithms are considered to be of autonomous optimization on the AP level. These types of algorithms, centralized or autonomous, have a high computational complexity and long processing time. HWLNets have variating channel states, especially for mobile users, which in turn limits the processing time and makes the above-mentioned methods impractical. Direct decision-making can be used to minimize the process time [72]. This method first decides which users are to be connected to WiFi, then the rest are allocated to LiFi. Lastly, this method uses statistical models of data rates and channel state information to create fuzzy-based logic and obtain optimal throughput and user fairness. Stationary channel load balancing uses methods which calculate periodically based on movement and changes in the network. Users are moving in and out of network technologies even when they are walking inside a single LiFi domain due to constant requirement for connectivity and fairness, which leads to frequent handovers and diminishes performance. Mobility aware load balancing takes into account user's movements together with load balancing. The college admission model uses the moving direction of users and data rates for user predilection and for AP predilection, the total data rate is used [73].