• Nenhum resultado encontrado

UPLINK NÃO COOPERATIVO

Algoritmo 4.2: Loop de alocação de potência e subportadoras.

1 for n=1:N do 2 for k=1:K do

3 Calcule pk,n usando a equação (4.12); 4 Calcule sk,n usando a equação (4.15);

5 Aloque a n-ésima subportadora usando a equação (4.16);

Em [34], a variável de atualização φ e o valor inicial dos multiplicadores τ são otimi- zados empiricamente para se atingir a EE ótima no menor número de iterações possível, enquanto o desenvolvimento de uma solução robusta e efetiva para realizar esses procedi- mentos é citado pelos autores como uma questão em aberto. Em [123], apenas é afirmado que o valor inicial do parâmetro do DKB deve ser inferior à EE ótima, porém nenhum procedimento é apresentado.

A definição desses valores afeta diretamente o número de iterações executadas, ou seja, a velocidade de obtenção da solução, e também a convergência tanto do algoritmo DKB quanto do LDD. Por exemplo, se a variável de atualização φ for definida com um valor muito alto, os multiplicadores de Lagrange podem oscilar na região do ponto de ótimo sem jamais serem capazes de convergir para esse ponto, fazendo com que o algoritmo continue sendo executado até que o número limite de iterações seja atingido; por outro lado, se for atribuído valores muito baixos para φ, o algoritmo pode consumir muitas iterações até convergir, ou mesmo não convergir até que o limite de iterações seja atingido. Em relação à inicialização de q e τ , o desenvolvimento de um procedimento capaz de atingir valores significativos e próximos da EE ótima e também de aproximar rapidamente o valor dos multiplicadores do valor ótimo, ou ao menos da região onde o ponto de ótimo se localiza, terá um impacto significante na redução do número de iterações, e portanto do tempo de convergência, do Algoritmo 4.2. A definição da variável de atualização será feita na Subseção 4.3.1, enquanto os demais aspectos de implementação serão desenvolvidos nas subseções seguintes.

4.2.1

Inicialização de Variáveis

Se tanto q quanto τ forem definidos como zero ao mesmo tempo, o nível da água χk,n na

equação (4.12) se torna infinito, o que implica em alocação de potência infinita de acordo com a equação (4.12). Se q0 = 0, com τ  0, a primeira iteração do algoritmo DKB se

assemelha a um problema de maximização de taxa de dados, dado que o custo da potência se torna nulo na função-objetivo (4.4). É o caso observado, por exemplo, em [34], onde se define que q0 = 0, enquanto a inicialização das variáveis duais foi obtida empiricamente.

A solução proposta para o problema de inicialização de variáveis tem sua base nos resultados obtidos em [124]. Uma possível interpretação do problema de otimização de

4.2. Implementação Computacional Robusta e Efetiva 73

EE é maximizar a capacidade do sistema para cada nível de potência possível, e então selecionar o nível que resulta na máxima EE. Quando as restrições do problema são suficientemente frouxas, ou um cenário de downlink é considerado, a capacidade do sistema será maximizada quando para cada subportadora for alocada à MS com maior ganho de canal. Assim, é possível definir a alocação inicial de subportadoras como aquela que aloca a n-ésima subportadora à k-ésima MS de acordo com o ganho de canal Γk,n, ou seja:

λk,n =        1, se k = arg max. kk,n) 0, caso contrário ∀n. (4.19)

Definida a alocação de subportadoras, uma alocação igualitária de potência (EPA) é feita, de modo que pk,n =

pmax

k

N ∀ k, n. Finalmente, q

0 é calculado usando a equação (4.6).

Utiliza-se q0 aqui para obter a alocação de potência a partir da equação (4.12), sem

alterar a alocação de subportadoras definida pela equação (4.19). A motivação para tal recalculo é que a alocação de potência por EPA não considera a diversidade entre as subportadoras, ou seja, a taxa de dados resultante é, certamente, inferior à máxima taxa que pode ser obtida. Além disso, no EPA se utiliza toda a potência disponível, o que, geralmente, não é ótimo. Após o recálculo da alocação de potência, para todas as MSs que violarem a potência máxima pmaxk , utiliza-se um algoritmo clássico do tipo waterfilling (WF) para adequar a restrição de potência. Considerando que pk,n > 0 após o algoritmo

WF, o valor do multiplicador de Lagrange τk pode ser calculado como

τk=

Γk,nıkw`k,n

log(2) (Γk,nıkpk,n+ Γk,nık)

− q0%

k. (4.20)

Finalmente, a alocação de potência atualizada é utilizada para atualizar o parâmetro q0.

4.2.2

Violação da Restrição de Potência

Apesar do cálculo de τkna etapa anterior, é possível que a primeira execução subsequente

do Algoritmo 4.2 possa resultar em nova violação das restrições de potência máxima do problema de otimização. Considere que apenas uma k-ésima MS viole a restrição de potência máxima no passo anterior: nesse caso, τk é aumentado, o que reduz o nível

da água e, consequentemente, a potência alocada. Como a métrica de alocação sk,n

é crescente em relação à potência alocada, a k-ésima MS se torna menos competitiva na alocação de subportadoras, e pode perder várias subportadoras para a k0-ésima MS. Finalmente, essa k0-ésima MS pode alocar tantas subportadoras que ela mesmo pode vir a violar a restrição de potência máxima. Caso tal situação ocorra, o Algoritmo 4.1 pode consumir dezenas de iterações para retornar a um estado válido, ou até mesmo não convergir devido ao limite de iterações ou oscilações na alocação de subportadoras.

Para solucionar tal problema, define-se τ = 0 após o passo anterior e executa-se novamente o Algoritmo 4.2, utilizando o parâmetro q0 calculado ao fim do passo anterior.

Caso todas as MSs respeitem a restrição de potência máxima, encerram-se as etapas de aproximação e o algoritmo DKB+LDD é efetivamente iniciado. Caso contrário, calcula- se τk utilizando o algoritmo WF para essas MSs, adequando o limite de potência, e

recalcula-se o parâmetro q. Com o novo parâmetro, reinicia-se o procedimento até que todas as MSs respeitem a restrição de potência máxima. No Algoritmo 4.3 é apresentada a implementação desse procedimento.