| | Run at the MCP |
| | Input: dmin, dmax, Δd, and η |
| | Output: |
| (1) | Invoke Algorithm 1 to get Nk and MTK |
| (2) | Notify η, Nk, and MTK to all the DCHs |
| (3) | Initialize the set Dk as “empty” |
| (4) | For each member (xk, yk) of Nkdo |
| (5) | // is the coordinates of BS, and lk is the distance between BS and DCH k |
| (6) | Compute according to formula (5) by using as the input // is the channel gain from BS to DCH k |
| (7) | Add () to Dk |
| (8) | End for |
| (9) | If receive from all the DCHs then |
| (10) | Initialize μ as “0” |
| (11) | For (d = dmin; d < dmax; d = d + Δd) do //Δd is the incremental step of the coverage radius for BS |
| (12) | Initialize and as “0” respectively |
| (13) | For each member () of Dkdo |
| (14) | If d < lk + Δd then End if |
| (15) | If d < lk + Δd and then End if |
| (16) | End for |
| (17) | Broadcast test packet at |
| (18) | Calculate the related parameters (e.g., φt, φc, and φout,k) according to feedback of test packet |
| (19) | Compute μmcp according to formula (10) |
| (20) | If μ < μmcp then {μ = μmcp; dse = d} End if |
| (21) | End for |
| (22) | For each member () of Dkdo |
| (23) | If dse < lk + Δd then βk = 1 and send it to DCH k End if |
| (24) | If dse < lk + Δd and then αk = 1 and send it to DCH k End if |
| (25) | End for |
| (26) | End if |