7 Algorithm 1 Computing LB and UB Allocations in Cell l 1) Input: [ H$_{l}$ ] , [ A$_{l}$ ] , [ P$_{l}$ ] , [ G$_{jl}$ ] where α$_{n,k,l}$ = 0 , p$_{n,k,l}$ = P$_{k,}$$_{max}$/N ∀ k, ∀ n 2) For each user k in cell l , power is divided equally over all of its allocated subcarriers and the remaining unallocated subcarriers of the system. 3) Using [ P$_{l}$ ] from step 2, [ H$_{l}$ ] and [ G$_{jl}$ ] , compute the matrix Q$_{l}$ for each cell l . 4) Find the ( n, k ) pair that has the maximum value of Q$_{n,k,l}$ . Allocate subcarrier n to user k . 5) Delete the n th subcarrier from the set of unallocated subcarriers. If there are still unallocated subcarriers in the system go to step 2. else terminate after distributing the maximum power equally at each user over all of its assigned subcarriers. by ignoring the effect of ICI in all the cells. This can be achieved by substituting ξ$_{n,l}$ = 0 in Algorithm 1, i.e., Q$_{n,k,l}$ = p$_{n,k,l}$h$_{n,k,l}$ σ 2 : The allocations computed by Algorithm 1 are near optimal since they are based on a criterion which is shown to be near optimal in the context of single cell scenarios [2]–[4]. The average network throughput revealed by these allocations could be highly optimistic for multi-cell sce- narios. Thus, we can investigate the impact of ICI by simply computing the throughput using (1) instead of (10) with these allocations. Computing throughput in this way helps to analyze the degradation in the performance when the single cell near-optimal allocations are used in multi-cell network scenarios with ICI. C ( A$_{l}$ , P$_{l}$ ) ≤ 1 L L ∑ l =1 K ∑ k =1 N ∑ n =1 α$_{n,k,l}$ log$_{2}$ ( 1 + p$_{n,k,l}$h$_{n,k,l}$ σ 2 ) (10) C. Complexity Analysis The ( n, k ) pair at which the term Q$_{n,k,l}$ becomes maximum is allocated (Step 4), which has a complexity of a two dimensional search, i.e., O ( KN ) . However, as soon as a subcarrier is assigned, each user updates its power as defined in Algorithm1. This process iterates until all the subcarriers in all the cells are allocated and, thus, the time complexity of Algorithm 1 is O ( KN $^{2}$) . DRAFT March 19, 2018