• 沒有找到結果。

Dynamic Programming based Near-optimal Resource Allocation

When d = 1 the optimal solution to (4) can be obtained by a water-filling process (for parallel Gaussian channels). The water-filling level, however, is difficult to determine.

We present a very efficient algorithm called OMPA in Appendix A. Hence if the channel assignment is known, one can determine each user’s optimal power allocation by using the proposed OMPA algorithm.

For the general case (d 6= 1), an obvious optimal solution to (4) is the exhaustive search over all possible channel assignments with the associated power allocation ma-trices computed by the OMPA algorithm (or water-filling method) to satisfy all users’

rate requirement. Although this algorithm is guaranteed to yield the optimal solution,

21

the searching process is prohibitively complicated, especially if the numbers of users and/or subcarriers are large. An improvement is suggested in [4] which first determines the “water-filling” levels and the channels for each user. Overbooking of channels is inevitable as every one wants the best channels. A complicated process is thus needed to resolve such conflicts and recompute the “water-filling” levels iteratively. Although optimal solution can be found, the complexity is still very high and is practical for small N and d only (e.g., the case N = 8, d = 2 was given in [4]). Although [1] considered a discrete-rate scenario the authors relaxed the discrete constraint to find a lower-bound solution of (4) iteratively. The quantized version of this solution gives a suboptimal subcarrier allocation, {C(j) : 1 ≤ j ≤ d}, where C(j) is the jth user’s serving-channel set (SCS) that consists of the indices of the assigned channels. A single-user rate (bit) allocation algorithm is then applied to each C(j). Numerical behavior of this approach was shown but no comparison with the optimal performance was given.

Other earlier suboptimal proposals [5], [6], [8] for solving (3.4) start with some initial subcarrier (channel) allocation and assign remaining available subcarriers sequentially according to some ad hoc criterion. Since a given channel has different GNRs when serving different users, [8] gives a channel to the user with strongest gain, i.e., the ith subcarrier is assigned to the kth user if k = arg max1≤j≤daij. However, the ordering of the subcarriers or the user is arbitrary and it is highly likely that the best channels for two users are the same, say channel k, but the second best channel for the first user is much better than that for the second user. When the first user obtains channel k the second user can only use its second best channel which is much worse than channel k. If instead, the first user is given its second best channel which is not much worse than channel k while the second user is assigned channel k then the overall performance (required total power) will be much improved. On the other hand, [5] makes an initial SCS size |C(j)| decision based on users’ average channel GNRs and rate requirements Rj’s. The average GNR ignores frequency selectivity and the resulting algorithm is

22

unlikely to find the optimal solution.

In contrast, our approach begins with the fair initial condition that all users are given the opportunity to take every subcarrier. The proposed channel allocation process consists of a series (N -level) of deletion decisions. At each level, a subcarrier is given to an user and is simultaneously removed from the SCSs of all other users, where the SCS for the jth user at the tth level, Cts(j), is the set of all subcarriers allocated to serve user j then. Obviously, our fair initial condition implies that C0s(j) = {1, 2, · · · , N }, ∀ j. We initially eliminate the constraint Cts(i) ∩ Cts(j) = ∅, ∀ i 6= j, t = 0, 1, · · · , N and, at stage t, impose the constraint that t ∈ Cts(j) for only one j (i.e., the tth channel can only be in one of SCS’s) so that the original single-user-per-subcarrier (SUPS) constraint is eventually re-installed and satisfied. Hence, in a sense what we adopt is a constraint relaxation approach.

In such a sequential assignment process the order of subcarriers may be important as once a subcarrier is assigned, no re-assignment is possible. A reasonable ordering is to sort (re-arrange) the N subcarriers in descending order of their maximum GNR, ai = max1≤j≤daij such that with the new channel order, channel 1 has the best GNR, followed by channel 2, channel 3, · · · , etc. Formally, this channel sorting is the permutation µ on the ordered integer set {1, 2, · · · , N } which satisfies the inequality aµ−1(1) > aµ−1(2) >

· · · > aµ−1(N ), where µ−1 is the inverse mapping of µ.

Our DP-based algorithm can be described by a d-ary tree in which there are d outgoing branches at the root (initial level) to represent possible assignment of the channel 1. Similarly, every node at any given level (height), say the tth level, has d outgoing branches (to d child nodes), each represents a possible channel-assignment (removal) decision and a tentative channel allocation. The channel allocation is tentative because only t channels are assigned and the remaining N − t channels still belong to all SCSs and unassigned. If we associated each level’s decision with a cost, then at the kth level, we shall assign channel k to user i and remove it from the SCSs of all other users

23

(branches) if the associated cost is minimized. Such a decision is equivalent to selecting the ith branch emitted from the surviving node at the (k − 1)th level as the survival branch while all other d − 1 branches are terminated.

Given the initial fair channel allocation and the ultimate object of minimizing the required power, the cost for a decision at any level should be the minimum required power for the corresponding tentative channel allocation. Hence if we define the SCS collection at the tth level as Cst = (Cts(1), · · · , Cts(d)), then the corresponding cost function Jt is

Jt(Cst) =X

j

g(Rj; Cts(j)) (3.5)

in which each g(Rj; Cts(j)) is determined by applying the OMPA algorithm to solve the problem

Given Cts(j), find g(Rj; Cts(j)) = min X

i∈Cst(j)

pij

s.t. X

i∈Cts(j)

rij ≥ Rj. (3.6)

Cts(j) for each j is modified at each level so that the subcarrier and power assignment pro-cess is guaranteed to end at the N th level. As the minimum required power g(Rj; Cts(j)) for each j is a decreasing function of the cardinality |Cts(j)| of its SCS, the cost Jt is an increasing function of t. At each level, however, we find the removal of the subcarrier from all but one Cts(j) that results in minimum cost (total power) increase. As the collection {Cts(j)} = Cst allows multiple channel assignments, i.e., Cts(j) ∩ Cts(k) 6= ∅, if j 6= k and t < N , it does not satisfy the constraints (3) of a legitimate channel assign-ment matrix. But as the subcarriers are assigned to users one by one, at the end of the N th level, {CNs(j)} = CsN will correspond to a legitimate one. Therefore, the metric de-fined by (5)-(6) is simply the minimum total transmit power for a given rate-subcarrier assignment with various degrees of relaxation on the SUPS constraint.

Since a path in the tree that visits the jth child node at the kth level implies a channel assignment that gives the kth subcarrier to the jth user, an N -level path would

24

represent a complete channel allocation. But not all paths are legitimate for a path may assign no serving-channel to an user. In particular, if at the end of the tth level there are still more than N − t users without any serving-channel, i.e., whose SCS cardinality is equal to N − t, then there will be at least one user with an empty SCS at the end of the N th level. To avoid such a possibility and rule out all illegitimate channel assignments, we modify the cost function as

Jt(Cst) = min

By adding the weight function wt(·) in the cost function, we avoid continuously assigning channels to some users while other users might not be able to obtain any channel, although the probability of such an event is almost zero so long as N > d and the GNR distributions {aij, i = 1, 2, · · · , N } for each user are independent.

The resulting DP-based resource allocation (DPRA) algorithm, unlike other ap-proaches [1][8][6], accomplishes channel and power (rate) allocations simultaneously and is listed in Table 3.1. Early terminations and computational complexity reduction are possible if certain conditions are satisfied; see Guidelines 4, 5 in the next section.

25

Step 1: (Channel-sorting) Given N, d, aij and R, find ai = max1≤j≤daij and re-arrange the channel indexes by decreasing magnitude of the maximum GNR such that a1 > a2 > · · · > aN with the new channel indexes.

Step 2: (Initial channel allocation)

Set C0s(j) = {i | 1 ≤ i ≤ N }, for 1 ≤ j ≤ d.

Step 3: (Sequential channel-power-rate assignment) for t = 1 : N

k=arg min1≤k≤dJtk(Cst) Jt(Cst) = Jtk(Cst)

for j = 1 : d

if j = k then Cts(j) = Ct−1s (j) else Cts(j) = Ct−1s (j)\{t}

end end

Step 4: (Output) The final channel allocation is the N th level SCS collection CsN. The power-rate

allocation is obtained while computing JN(CsN) through (5)-(7).

Table 3.1: A dynamic programming based resource allocation (DPRA) algorithm

26