# AI Optimization-Based Heterogeneous Approach for Green Next-Generation Communication Systems
## 3 Proposed SDR-Based LTE-LAA Architecture and Its Resource Management Scheme
### Heuristic Solution  
This section presents our proposed throughput- and energy-aware (TEA) heuristic solution to increase the gross network's throughput and reduce the total network power consumption. Heuristic algorithms are essential for addressing non-deterministic polynomial time (NP) problems due to their practicality in finding solutions efficiently, given the exponential complexity of exact solutions. They provide timely results which, though not guaranteed to be optimal, meet acceptable standards for real-world applications. Heuristics are crucial in fields like scheduling and resource allocation, where exact solutions are often impractical. Their adaptability allows them to be tailored to specific problem instances, utilizing iterative techniques to refine solutions incrementally. By balancing computational feasibility with solution quality, heuristics play a vital role in optimizing decision-making processes across various complex scenarios The proposed heuristic is summarized in Algorithm 1, and the relevant procedures are illustrated in Algorithms 2 and 3. The heuristic was designed to select the optimum user-BS association, and it was designed to be flexible and adaptable to the rapidly changing nature of traffic demands. The heuristic's main idea is to find, iteratively, the user that has the smallest utility value and reassign it to another BS to increase the overall network utility. In the algorithm, user \(j\), which is allocated to BS \(i\), has a network utility value calculated as follows:  
\[z_{ij}=D_{ij}^{eff}+\beta\cdot(1-\frac{P_{ij}}{P_{j_{max}}}) \tag{34}\]  
First, users of the networks are assigned to their vendor macro BS which provides the best SINR. Algorithm 1 follows a systematic approach across multiple lines. Specifically, it iterates over each time slot (line 3), initializes the user-BS assignment matrix \(\Pi\) (line 4), adds all users to the initial group \(j^{\prime}\) (line 5), and continues as it processes the user-BS associations. This initial allocation ensures that all users are grouped into an initial set \(j^{\prime}\). In this process, it selects a user to minimize the utility function (line 8), adds all BSs to the initial group (line 9), and proceeds with Algorithm 2 (line 10). Depending on the condition, it updates the total utility value \(Z_{total}\) (line 13) or moves the user to the final group (line 15). This iterative process continues until all users are appropriately associated with BSs and returns the final optimized user-BS association list (line 19). In every iteration, the proposed algorithm selects the user with the smallest utility value among all users to prioritize those with the least favorable network conditions. Using Algorithm 2, a new BS is identified to increase the user's utility value, thereby improving the overall network utility. If no suitable BS is found, then the proposed algorithm ignores that user and starts a new iteration. Algorithm 2 aims to optimize user assignment to a base station (BS). Initially, it identifies the set \(V_{j*}\) for a specific user \(j*\) where the utility \(u_{ji}\) exceeds a minimum threshold \(u_{min}\) (line 1). The set \(V_{j}\) is then sorted in decreasing order (line 2). An initial flag \(F\) is set to 0 (line 3). The algorithm enters a while loop which continues until \(V_{j*}\) is empty (line 4). Within the loop, it identifies the optimal BS \(i\) (line 5) and removes it from the set \(I^{\prime}\) (line 6). The assignment indicator \(\Pi_{ji}\) is set to 1 (line 7). It calculates the new objective \(Z_{new}\) and the performance \(P_{ji}\) (line 8). If \(P_{ji}\) is less than a maximum threshold \(P_{jmax}\) (line 9), then it checks if \(Z_{new}\) is greater than the current \(Z_{current}\). If this is true, then it updates the assignment \(\Pi\) (line 11) and sets the flag \(F\) to 1 (line 12). If \(P_{ji}\) is not less than \(P_{jmax}\), then it proceeds with Algorithm 3 (line 15). The while loop ends when \(V_{j}\) is empty (line 17).