• Nenhum resultado encontrado

Algoritmo de Escalonamento de Recursos Baseado em Otimização PSO

rantia de QoS

6.4 Algoritmo de Escalonamento de Recursos Baseado em Otimização PSO

O Particle Swarm Optimization (PSO) [46] é um algoritmo de otimização base- ado em população, de fácil implementação, geralmente utilizado para resolver problemas estocásticos, apresentando bom desempenho na resolução de problemas de diversas áreas da ciência. No PSO, a população é chamada de enxame e os indivíduos são chamados de partículas [46].

No PSO tradicional, cada partícula possui sua própria posição e velocidade e ainda um histórico de suas melhores posições encontradas até então. A posição de cada partícula no espaço de busca representa uma possível solução do problema de otimização que se deseja resolver.

O PSO é inicializado com um grupo de partículas posicionadas aleatoriamente. A posição e velocidade de cada partícula é atualizada conforme uma função de otimização chamada de Função Objetivo, responsável pela obtenção da melhor solução. As posições e velocidades das partículas são atualizadas até que um critério de parada, pré-estabelecido, seja atingido.

As atualizações de velocidade e posição ocorrem conforme as seguintes equa- ções [95]:

vt+1= wv + r1c1(Pt− Xt) + r2c2(Gt− Xt), (6-10)

Xt+1= Xt+ vt+1, (6-11)

onde w é o peso de inércia, c1 e c2 são dois fatores de aprendizagem, r1 e r2 são dois

números aleatórios gerados segundo uma distribuição uniforme [0,1], vt, Xt, Pt e Gt são,

respectivamente, a velocidade, a posição, a melhor posição da partícula e a melhor posição global no instante de tempo t.

O Algoritmo 2, descrito a seguir, sintetiza o funcionamento do Algoritmo PSO. Algoritmo 2 - PSO (Particle Swarm Optimization) [46]

1. Para cada partícula, inicialize sua posição X0e velocidade v0;

2. Defina o número máximo de iterações a serem utilizadas pelo algoritmo PSO; 3. Para cada partícula, faça:

4. Calcule a Função Objetivo, se o valor encontrado para essa partícula é melhor que seu próprio histórico (pBest), defina a partícula atual como pBest;

5. Fim Para.

7. Para cada partícula, faça:

8. Calcule a sua velocidade conforme (6-10); 9. Atualize a sua posição conforme (6-11); 10. Fim Para;

11. Se o número máximo de iterações não foi atingido, volte para o passo 2.

Com o objetivo de aplicar o algoritmo PSO para solucionar o problema de escalonamento de recursos em redes LTE, os autores em [95] propuseram primeiramente um esquema de codificação para mapear soluções em partículas, em seguida propuseram a discretização da posição e da velocidade dessas partículas e, por fim, estabeleceram uma Função Objetivo para qualificar as partículas (possíveis soluções). Cada uma dessas etapas é descrita a seguir.

A) Codificação

Considera-se que cada partícula representa uma solução de alocação de bloco de recurso. Cada bloco de recurso só pode ser atribuído a um usuário, no entanto o índice iutilizado para designar cada usuário não pode ser utilizado como espaço de busca para o algoritmo PSO, visto que o PSO exige que as soluções sejam buscadas em um espaço de busca ordenado. Logo, o primeiro passo da codificação é, para cada bloco de recurso, ordenar os usuários de maneira decrescente, com base em seus valores de MCS.

Assim, considere que para J blocos de recursos e M partículas, a posição da m-ésima partícula pode ser expressa por xm= (x1m, x2m, · · · , x

j

m, · · · , xJm), m= 1, 2, · · · , M

onde xmj representa que o bloco de recurso j é alocado ao usuário com ranqueamento xmj.

Jé o número de partículas, que é o mesmo número de blocos de recursos.

Essa codificação reduz o espaço de busca de qual usuário i está associado a qual bloco de recurso j de N × J para J, onde N é o número de usuários [95].

B) Discretização

O PSO tradicional é apropriado para resolver problemas cuja solução é encon- trada em um espaço contínuo de soluções. Para o problema de escalonamento de recursos, um problema com solução discreta, os autores em [95] utilizaram um operador de discre- tização, chamado de INT, para discretizar as posições e velocidades das partículas do algoritmo PSO. O operador INT é definido como [95]:

INT(r) = (

brc, se rand> r − brc

onde r é o valor a ser discretizado, brc retorna o maior inteiro menor que r, dre retorna o menor inteiro maior que r e rand designa o valor de uma variável aleatória uniforme no intervalo [0, 1].

C) Função Objetivo

Para obter uma Função Objetivo para o problema de escalonamento de recursos em questão, os autores em [95] primeiro definiram a seguinte função de penalidade:

Penalidade=

N

i=1

min(0, ri− Ri)2. (6-13)

A função de penalidade está associada ao percentual da taxa mínima Ri que foi

atendido para o usuário i, cuja taxa de transmissão é ri. Quando as taxas mínimas de

todos os usuários são atendidas, a função de penalidade é igual a zero, ou seja, a restrição é atendida.

Com base na função de penalidade, a Função Objetivo foi definida como:

Ob jetivo=

N

i=1

ri− Q × Penalidade. (6-14)

onde Q ∈ R+ é um fator de penalidade.

O PSO realiza o processo de otimização avaliando os custos de cada solução (partícula) através da Função Objetivo. Os menores custos por partícula são memorizados e utilizados no algoritmo PSO. O algoritmo PSO procura a melhor solução que atenda a essa Função Objetivo, obtendo assim, a cada slot de tempo, o valor da taxa ria ser alocada

ao usuário i [95].

Mais detalhes sobre o algoritmo de escalonamento baseado em otimização PSO podem ser encontrados em [95].

6.5

Algoritmo de Escalonamento Max C/I

O Max C/I (Maximum Carrier to Interference Ratio) é um algoritmo simples, oportunístico, que tem por objetivo encontrar o valor máximo de taxa de transmissão (maior número de bits por símbolo) para cada RB [33]. Em outras palavras, para cada RB o Max C/I irá procurar o usuário, ou os usuários, cujo valor de CQI informado para aquele RB é máximo (se mais de um usuário for encontrado, a escolha é aleatória).

O algoritmo Max C/I tem baixa complexidade computacional, aumenta vazão, mas não leva em consideração outros parâmetros da rede, como por exemplo, o estado das filas dos usuários na estação base.

Usuários com condições ruins (baixo SNR) do canal de comunicação podem não receber recursos até que as condições melhorem, por isso no Max C/I o índice de justiça (fairness) é geralmente inferior ao obtido a partir de outros algoritmos de escalo- namento que consideram essa métrica. O Algoritmo 3, apresentado a seguir, sintetiza o funcionamento do algoritmo de escalonamento Max C/I.

Algoritmo 3 - Max C/I (Maximum Carrier to Interference Ratio) [84]

1. Constantes:

Jé o número de sub-bandas do canal de comunicação; N é o número de usuários ativos na célula LTE; 2. Para j de 1 a J, faça:

3. Encontre Uj, o vetor constituído pela informação de qualidade do canal SNR(i, j)

do usuário i em relação a j-ésima sub-banda;

4. Para a j-ésima sub-banda, encontre o i-ésimo usuário que atenda a seguinte equa- ção:

i∗= arg max

i (SNR(i, j)), ∀i ∈ Uj. (6-15)

5. Atribua a j-ésima sub-banda ao usuário i∗. 6. Fim Para.

7. Encontre ri, o número de bits por símbolo do MCS relativo a sub-banda com menor

SNR dentre as sub-bandas atribuídas ao usuário i;

8. Atribua ao usuário i a taxa de transmissão Ri, onde Rié a taxa de transmissão total

relativa ao uso de ripara todas as sub-bandas atribuídas ao usuário i.

Mais detalhes sobre o algoritmo de escalonamento Max C/I podem ser encontra- dos em [84].

6.6

Algoritmo de Escalonamento de Recursos Sensível às

Condições do Canal e à Probabilidade de Transbordo

Documentos relacionados