• No se han encontrado resultados

In this section, a optimal solution algorithm will be proposed to solve our problem mentioned above. Since the 2-layer cellular network problem has been formulated in section 3.2, the solution algorithm could base on the flow formulation. In chapter 2, a solution algorithm of optimal assisted rate allocation in random positions within the coverage has been explained. The further extension of this solution is going to applied in this thesis to introduce the spectral efficiency. As a consequence, the solution algorithm will be substantially more complicated compared with previous algorithm. It actually an extended version of the previous algorithm.

For another, the problem is classified as linear programming problem which con- sists of basic water-filling algorithm. The water-filling algorithm mainly addresses the maximum allocation that could be allocated to all the flows simultaneously and further refines of allocations of specific flows. On the contrary, the first stage may have multiple solutions compared with the unique solution of the single path prob- lem. The linear programming problem(3.3.1) is as follows:

Maximize: ∆, Subject to: PPd p=1sdpxdp = hd, d = 1, 2, . . . , N. (3.8) ∆ − hd≤ 0 (3.9) PN d=1 PPd p=1δedpxdp = ce, e ∈ {1, 2, . . . , E} (3.10) all xdp ≥ 0, d ∈ {1, 2, . . . , N }, p ∈ {1, 2, . . . , pd} (3.11)

The algorithm proposed is based on the non-blocking test, aka NBT for check- ing whether there is still hd which could be increased. NBT highly determine the

efficiency of algorithm. More precisely, in rest of the section, two algorithms will be compared with NBT. First algorithm with NBT1 is less efficient and more com- plex than the second algorithm with NBT3. Nevertheless, the first algorithm is still worth introducing since it is the fundamental principle for solving capacitated flow problem. Meanwhile, the second algorithm with NBT3 is based on dual variables of specific constrains. The first algorithm is also used in the implementation procedure for more convenient and easy to be implemented.

Two feasible algorithms(algorithm 3.3.1 and algorithm 3.3.2 will be explained and compared in detail as following.

Algorithm 3.3.1

Step 1: Let(∆∗, x∗, h∗) be the optimal solution of LP (3.3.1). Set Z0 := ∅,

Z1 := {1, 2, . . . , N }, and ∆d:= ∆∗ for each d ∈ Z1.

Step 2: Perform NBT1: start considering each d ∈ Z1 to check whether the

total allocation hd could be made greater than ∆∗ without decreasing the already

found maximal allocation of other demands d0. NBT is performed during the check. If there is no blocking demand in Z1,then move to step 3. In other words, demand

d ∈ Z1 is blocking when hd could not be increased, the check of NBT move to the

next step. Otherwise, it means that the demand d is found when the first blocking demand. Under this situation, we should add d to set Z0 and remove d from Z1.This

process will continue until Z1 = ∅, then solution is the optimal solution(allocation

vector) of the problem. Otherwise, the process will proceed to step 3. Note that Z0

is basically the set of blocking demands.

Step 3: Solve the following linear programming problem: Maximize: ∆ Subject to: PPd p=1sdpxdp = hd, d ∈ {1, 2, . . . , N }. (3.12) ∆ − hd≤ 0, d ∈ Z1 (3.13) ∆d− hd≤ 0, d ∈ Z0 (3.14) PN d=1 PPd p=1δedpxdp ≤ ce, e ∈ {1, 2, . . . , E} (3.15)

all xdp ≥ 0, d ∈ {1, 2, . . . , N }, p ∈ {1, 2, . . . , pd} (3.16)

Step 4: Then, (∆∗, x∗, h∗) is used to solve the following linear programming problem for each d ∈ Z1, and go back to step 2.

Recall that NBT1 is used to solve the flowing linear programming problem for each d ∈ Z1: Maximize: hd Subject to: PPd p=1sd0pxd0p = h0d, d0 ∈ {1, 2, . . . , N } ∆d0 − hd0 ≤ 0, d0 ∈ {1, 2, . . . , N } P d0 P pδed0pxed0p ≤ ce, e ∈ {1, 2, . . . , E} allxd0p ≥ 0.

The outcome of NBT1 is positive, and it means that demand d is not blocking if the optimal solution hd is strictly greater than ∆0. Otherwise, it means that

the considered demand d is blocking and the allocation of demand d could not be increased anymore. Obviously, the results obtained from step 1 and step are used by the calculation.

Based on the description above, it is apparent that algorithm is of polynomial complexity. Nonetheless, it could be very time-consuming and inefficient in terms of large networks with thousands of demands since it needs to solve large amounts of NBT1s. Hence, an improved and more efficient NBT is needed. It is commonly known that the most efficient test is NBT3, and NBT3 is based on dual variables. The detailed description of NBT3 is as following.

Let the vector ~γ = (γ1, γ2, . . . , γN) be the optimal dual variables of the equation

’∆ − hd ≤ 0’. And the vector ~γ will be used in efficient NBTs for step 2 of algorithm

3.3.1, referred to as algorithm 3.3.2.

According to the dual theory, the corresponding demand d is blocking if the dual variables of problem (3.3.1) γd > 0. In other words, the total bandwidth allocation

hd of demand d could not be increased further. In summary, d is blocking if γd> 0,

i.e., d ∈ Z0 after the first execution of step 2. Unfortunately, it does not imply that

Algorithm 3.3.2

Step 1: Set Z0 := ∅, Z1 := {1, 2, . . . , N }, ∆d := 0 for all demands

Step 2: Solve the linear problem below: Maximize: ∆ Subject to: PPd p=1sdpxdp = hd, d ∈ {1, 2, . . . , N }. (3.17) ∆ − hd≤ 0, d ∈ Z1 (3.18) ∆d− hd≤ 0, d ∈ Z0 (3.19) P d P pδedpxdp≤ ce, e ∈ {1, 2, . . . , E} (3.20) all xdp ≥ 0, d ∈ {1, 2, . . . , N }, p ∈ {1, 2, . . . , pd} (3.21)

Let ∆∗ be the optimal value and γd be the dual variables of (3.18), respectively.

Step 3: First, put ∆d = ∆∗ for each d ∈ Z1. Then, let Z0 := ZS{d ∈ Z1 :

γd > 0} and Z1 := {d ∈ Z1 : γd = 0}. If set Z1 equals 0, then stop. The

vector ~h = (h1, h2, . . . , hd) = (∆1, ∆2, . . . , ∆d) becomes final optimal solution of the

problem; otherwise return to Step 2.

Note that in algorithm 3.3.2, if the optimal ∆∗ in step 2 is strictly greater than the optimal solution of the problem obtained in the previous iteration, then all demands d belonging to set Z1 are non-blocking. Otherwise, at least one demand d in set Z1 is

blocking (it is not ”true” non-blocking demand), and ∆∗ cannot increased. Another significant observation is that there will be at least one with γd> 0 among the newly

obtained optimal dual variable γd. Therefore, one or more blocking demands will be

found. It is based on the property of dual variables γd below:

P d∈Z1λ ∗ d= 1 and λ ∗ d≥ 0 for d ∈ Z1.

On the basis of the above description, Algorithm 3.3.2 is clearly more simplified compared with Algorithm 3.3.1 owing to using dual variables. It also proves to be more efficient and less time-consuming when using algorithm 3.3.2 instead of algorithm 3.3.1. Especially, only one linear programming problem is solved in AMPL coding process.

In document FACULTAD DE CIENCIAS EMPRESARIALES (página 46-51)

Documento similar