Documente Academic
Documente Profesional
Documente Cultură
Grupo 05
Juiz de Fora
Novembro de 2019
1 Introdução
Com o crescente aumento do uso de dispositivos sem fio e o constante tráfego de dados,
as redes Wi-Fi, domésticas e corporativas, tem sofrido com o problema de entrega de uma
conexão eficiente e sem interferências.
No Brasil, os dispositivos responsáveis por distribuir a conexão, atuam em sua maior
parte na banda ISM 2,4 GHz em 11 canais separando cada canal por 5 MHz e uma largura
de banda de 22 MHz [Monteiro et al., 2016].
A escassa quantidade de canais corrobora com a dificuldade em oferecer uma inter-
net de qualidade para os clientes conectados a rede visto que, a reutilização de canais é
constante e mesmo em canais diferentes, mas próximos no espectro, podem causar interfe-
rência entre si. Essa interferência pode ser resolvida por métodos mais eficazes na escolha
de canais pelos pontos de acesso.
Visto os problemas enfrentados no cenário atual, o presente Relatório Técnico tem
como objetivo central descrever o uso de algoritmos construtivos gulosos para o problema
de atribuição canais de transmissão para redes cognitivas. Considerou-se neste trabalho
as características do problema modelado sobre um grafo de conflito, não direcionado,
desconexo, onde cada vértice representa um ponto de acesso - Access Point (AP) - da
rede e cada aresta simboliza se um AP pode causar interferência a seu adjacente. Foram
desenvolvidos três algoritmos: guloso, guloso randomizado e o randomizado reativo. Os
mesmos foram avaliados sobre um conjunto de instâncias e os resultados foram comparados
com os apresentados em [Ferreira and Soares, 2017].
O restante do trabalho está assim estruturado: na Seção 2 o problema é descrito
formalmente através de um modelo em grafos; a Seção 3 descreve as abordagens propostas
para o problema, enquanto a Seção 4 apresenta os experimentos computacionais, onde se
descreve o design dos experimentos, o conjunto de instâncias (benchmarks), bem como se
apresenta a análise comparativa dos resultados dos algoritmos desenvolvidos e a literatura;
por fim, a Seção 5 traz as conclusões do trabalho e propostas de trabalhos futuros.
2 Descrição do problema
O problema pode ser modelado em um grafo de conflito, não direcionado, desconexo,
ponderado nas arestas, onde cada vértice representa um AP da rede e cada aresta é
formada se um AP pode gerar interferência a seu adjacente. O peso da aresta corresponde
a intensidade da interferência causada entre os APs.
Para gerar o grafo de conflito, é feita uma relação entre cada AP e seus clientes
1
para determinar sua potência, sendo a mesma, a distância de seu cliente mais longe. As
arestas são inseridas quando a área de potência de um AP faz interseção com uma área
de potência de outro AP e, se dentro dessa interseção, existem clientes de qualquer um
dos pontos de acesso.
Como resultado o problema se resume a uma variação do problema de coloração,
onde os canais seriam as cores. Portanto se espera a minimização na quantidade canais
distribuídos reduzindo o somatório dos pesos dos arcos de forma atender todos os clientes
da rede sendo que nós adjacentes não devem conter canais iguais.
2
Normalmente, algoritmos gulosos são determinísticos e possuem complexidade reduzida
[Talbi, 2009].
De forma a minimizar as interferências causadas na rede, todos os algoritmos pro-
postos executam inicialmente um algoritmo base para atribuir os canais 1, 6 e 11 a todos
os nós da rede possíveis, já que os mesmos não possuem interferência entre si, como é
possível confirmar na figura 2 e na tabela 1.
Matriz de sobreposição
Canal 1 2 3 4 5 6 7 8 9 10 11
1 1 0.77 0.54 0.31 0.09 0 0 0 0 0 0
2 0.77 1 0.77 0.54 0.31 0.09 0 0 0 0 0
3 0.54 0.77 1 0.77 0.54 0.31 0.09 0 0 0 0
4 0.31 0.54 0.77 1 0.77 0.54 0.31 0.09 0 0 0
5 0.09 0.31 0.54 0.77 1 0.77 0.54 0.31 0.09 0 0
6 0 0.09 0.31 0.54 0.77 1 0.77 0.54 0.31 0.09 0
7 0 0 0.09 0.31 0.54 0.77 1 0.77 0.54 0.31 0.09
8 0 0 0 0.09 0.31 0.54 0.77 1 0.77 0.54 0.31
9 0 0 0 0 0.09 0.31 0.54 0.77 1 0.77 0.54
10 0 0 0 0 0 0.09 0.31 0.54 0.77 1 0.75
11 0 0 0 0 0 0 0.09 0.31 0.54 0.77 1
3
Algorithm 1: Algoritmo Base 1,6,11
Input: listaDeN os
Output: Vetor dos APs sem canais definidos
1 for ap ← primeiroN o to ultimoNo do
4
Algorithm 2: Algoritmo Guloso
Output: Interferência total da rede
1 vetAps ← algoritmoBase1611
2 listaDeCandidatos ← [3,8,4,9,2,5,7,10]
Apesar do algoritmo guloso executar de forma rápida ele apenas retorna uma solução para
o problema e esse resultado muitas vezes não é o melhor para o cenário. Para resolver
essa adversidade o algoritmo guloso randomizado, para cada iteração, aleatoriza a lista
de candidatos a partir de um alfa passado como parâmetro na função. Isso permite gerar
diversas outras soluções e assim compara-las afim de retornar o melhor resultado.
5
Algorithm 3: Algoritmo Guloso Randomizado
Input: quantIteracoes, alf a
Output: Melhor Solução
1 vetAps ← algoritmoBase1611
2 listaDeCandidatos ← [3,8,4,9,2,5,7,10]
3 melhorResultado ← ∞
4 for i ← 0 to i<quantIteracoes do
5 listaRadomizada ← randomizaListaDeCandidatos(alfa)
6 for ap ← vetAps to ultimoAp do
7 for candidato ← listaRadomizada to ultimoCandidato do
8 f lag = T rue
9 for apAdjacente ← primeiraAresta to ultimaAresta do
10 if apAdjacente possui o canal canditado then
11 f lag = F alse
12 break;
13 end
14 if f lag then
15 canalDeAp ← candidato;
16 break;
17 end
18 end
19 Calcula a interferência total gerada
20 if interf erenciaT otal < melhorResultado then
21 melhorResultado ← interferenciaTotal;
22 end
23 return melhorResultado;
A partir do guloso randomizado é possível gerar diversas soluções, mas o algoritmo ainda
fica limitado ao alfa passado como parâmetro. Para contornar esse problema, o guloso
randomizado reativo recebe um vetor de alfas como parâmetro.
A cada iteração o vetor de custos guarda na posição correspondente de alfa a soma
dos resultados. O vetor de contador guarda a quantidade de vezes que os alfas foram
escolhidos. Já o vetor de medias guarda a media dos resultados para cada alfa.
Um novo alfa é escolhido toda vez que a quantidade de iterações atinge 10% do
total. Para definir qual a chance de que um alfa ser escolhido, um vetor de probabilidades
é utilizado. Esse vetor é atualizado toda vez que um alfa é escolhido a partir do vetor de
6
médias e da melhor solução gerada até o momento.
Algorithm 4: Algoritmo Guloso Randomizado Reativo
Input: quantIteracoes, vetAlf as
Output: Melhor Solução
1 vetAps ← algoritmoBase1611
2 listaDeCandidatos ← [3,8,4,9,2,5,7,10]
3 vetCustos ← 0
4 vetM edias ← 0
6 melhorResultado ← ∞
7 alf a ← randomizaAlf a
8 for i ← 0, k ← 0 to i<quantIteracoes do
9 k++
10 listaRadomizada ← randomizaListaDeCandidatos(alfa)
11 for ap ← vetAps to ultimoAp do
12 for candidato ← listaRadomizada to ultimoCandidato do
13 f lag = T rue
14 for apAdjacente ← primeiraAresta to ultimaAresta do
15 if apAdjacente possui o canal canditado then
16 f lag = F alse
17 break
18 end
19 if f lag then
20 canalDeAp ← candidato
21 break
22 end
23 end
24 Calcula a interferência total gerada
25 if interf erenciaT otal < melhorResultado then
26 melhorResultado ← interferenciaTotal
27 vetContador ← atualizaContador
28 vetCustos ← atualizaCustos
29 vetM edias ← atualizaM edia
30 if k = 10% da quantidade de iteracoes then
31 alf a ← randomizaAlf a
32 k=0
33 end
34 return melhorResultado;
7
4 Experimentos computacionais
8
Instâncias #APs #Clientes
instance_1 10 50
instance_2 10 50
instance_3 10 50
instance_4 10 50
instance_5 10 50
instance_6 10 50
instance_7 10 50
instance_8 10 50
instance_9 10 50
instance_10 40 200
instance_11 40 200
instance_12 40 200
instance_13 40 200
instance_14 40 200
instance_15 40 200
instance_16 40 200
instance_17 40 200
instance_18 40 200
instance_19 40 200
instance_20 40 200
instance_21 40 200
instance_22 70 350
instance_23 70 350
instance_24 70 350
instance_25 70 350
instance_26 70 350
instance_27 70 350
instance_28 70 350
instance_29 70 350
instance_30 70 350
Tabela 2: Instancias
9
4.2 Ambiente computacional do experimento e conjunto de pa-
râmetros
M edia(a) − b
RDI(a) = × 100 (1)
c−b
Onde M edia(a) é o valor médio das soluções obtidas pelo algoritmo a, b é o valor da
melhor média obtida dentre todos os algoritmos comparados e c é o valor da pior solução
dentre os algoritmos utilizados, e nesse caso específico, a pior média encontrada. Note
10
que RDI(a) ∈ [0, 100] e quanto menor o valor resultante, maior é a qualidade da solução
do algoritmo a [Ferreira and Soares, 2017].
Segue a análise de resultados a partir de uma tabela:
11
Instâncias onde o RDI foi igual a zero em todos os algoritmos se deve ao fato de que
o algoritmo de base conseguiu atribuir apenas os canais 1,6,11 a todos os nós do grafo.
Analisando a tabela 3 é possível verificar que o algoritmo guloso randomizado reativo foi
melhor do que os demais, já que a mesma verifica uma gama muito maior de soluções,
apesar de necessitar de mais tempo de execução. Vale ressaltar que, no decorrer dos
testes, em nenhuma instância foi necessário atribuir todos os canais disponíveis para uso.
Referências
Surachai Chieochan, Ekram Hossain, and Jeffrey Diamond. Channel assignment schemes
for infrastructure-based 802.11 wlans: A survey. IEEE Communications Surveys &
Tutorials, 12(1):124–136, 2010.
Lucas Rossini Ferreira and Stênio Sã Rosário Furtado Soares. Abordagens heurísticas para
o problema de atribuição de potência e de canais de transmissão em redes cognitivas.
Relatórios Técnicos do DCC/UFJF, 2017.
Alex Monteiro, Eduardo Souto, Richard Pazzi, and Jussi Kiljander. Atribuição dinâmica
de canais em redes sem fio não coordenadas ieee 802. 11, baseada em fatores de sobre-
posição e intensidade de sinal. XXXIV Simpósio Brasileiro de Redes de Computadores
e Sistemas Distribuídos, pages 704–717, 2016.
12
EG Talbi. Metaheuristics: from design to implementation. 2009, hoboken, 2009.
13