Algorithm 1: The LGR Algorithm. |
Begin |
Input: Network topology, data source nodes, sink node and end-to-end delay QoS requirements |
Output: Data aggregation tree |
Initialize Lagrangean multiplier vectors ui(0) = 0, ∀i = 1,2,…,8. |
UB = a very large positive number (e.g., M) and LB = a very small negative number (e.g., −M) //upper and lower bounds, respectively. |
quiescence_age = 0, and step_size = 2. |
For iteration = 1 to Max_Iteration_Number, perform the following: |
Solve Subproblem 1, Subproblem 2, Subproblem 3, Subproblem 4, Subproblem 5 and Subproblem 6. |
ComputeZLR in (LR). |
If ZLR(u) > LB |
LB = ZLR(u) and quiescence_age = 0. |
Else quiescence_age = quiescence_age + 1. |
If quiescence_age = Quiescence_Threshold |
step_size = step_size/2 and quiescence_age = 0. |
Run the LGR-Primal algorithm. |
Compute the new upper bound ub. |
If ub < UB then UB = ub. |
Update the step_size. |
Update the Lagrangean multiplier vectors. |
End For |
End |