**Overview**

Mobility load balancing is a 3GPP Release 17 AI/ML for NG RAN Use Case. It involves transferring load from overloaded cells to under-loaded neighboring cells, for optimizing network performance and user experience.

**Concept**

**Default Association**: In NetSim, the default user equipment (UE) association is based on Maximum signal strength (SS-RSRP)**Load Balancing Goal**: Modify the association/Handover criteria to distribute network load efficiently across available cells.

**Load Balancing Algorithm**

**Inputs**

- Number of RRC connected UEs at each gNB
- DL and UL CQIs of each UE
- Time averaged PRB utilization (DL and UL) at each gNB

**Possible Outputs**

- UE to gNB associations
- Handover offsets
- Cell Individual Offsets

NetSim provides a flexible framework for users to develop and test load balancing algorithms:

- NetSim passes 'measurements' to the user algorithm
- The algorithm processes data and returns 'controls or actions'
- NetSim adjusts the simulation based on algorithm output
- NetSim then provides performance metrics (KPIs) back to the algorithm
- These steps occur in a continuous loop, allowing for run-time adjustments.

**User Algorithm Development**

- Algorithms can be developed in high-level languages like Python
- No need for deep knowledge of NetSim internals

**Example Scenario**

- 7-cell hexagonal layout
- 3 sectors per cell, 2 carriers per sector (total 7*3*2 = 42 gNBs in NetSim)
- 50 active UEs per sector

**Additional Considerations**

To create more sophisticated load balancing solutions, users could consider the following:

- PRB utilization between GBR (Guaranteed Bit Rate) and Non-GBR users
- Time-varying network traffic patterns
- UE mobility
- Minimum throughput per user

**Advanced: An outline for applying Reinforcement Learning (RL) for load balancing**

- Now, let us denote c_ij as the instantaneous rate of a UE and is theoretically a log function of SINR

- And let R_ij be the long-term rate and y_ij is the fraction of resources allocated, to UE_i by BS_j

- Note that the max RSS association does not balance the load between BSs. The load balancing problem can be solved from optimization theory for a fixed topology
- Now let's say the SINR changes with time due to user mobility
- Then RL can be used to decide a "load-aware" UE-BS association i.e., the association is not based on max RSS
- We explore, Markov decision process/Q-learning based (model-free) RL
- At state s_t RL agent selects action a_t by following policy π and receives reward r(s_t, a_t).
- The MDP has value function V^π (s), and action value function Q^π (s, a) where α (0≤α≤1) is the discount factor
- We assume that the update interval (epoch) ≫ LTE/5G frame length of 10ms

- State: UE SINRs (γ_1,…, γ_N ), based on the current association at time t
- Action:
- Association x_ij (indicator variable showing association of UEi_ to BS_j)
- Resource allocation y_ij (equals 1/sum_j x_ij, i.e., the reciprocal of the number of UEs associated with a BS. This is exact for Round robin, and on average for PFS)

**Power control example involving Reinforcement Learning**