• Nenhum resultado encontrado

3.2 An´alise e Classifica¸c˜ao dos algoritmos

3.2.1 Tipos de algoritmos

Yu (Yu and Chong 2005) classifica os processos de forma¸c˜ao de cluster como pode ser visto no cap´ıtulo 2. No nosso contexto, a movimenta¸c˜ao dos n´os ´e constante. Mesmo que existam certos grupos parados diante de um ponto espec´ıfico, outros estar˜ao chegando ou saindo. Em nossa an´alise, escolhemos os esquemas com baixa manuten¸c˜ao e uso de mobilidade, dada a natureza dinˆamica da rede. Tamb´em utilizaremos os parˆametros de compara¸c˜ao dos processos de forma¸c˜ao de cluster propostos pelo autor. Esses crit´erios est˜ao sumarizados e descritos na Tabela 3.2. Adicionamos aos crit´erios de Yu a capaci- dade de fus˜ao de clusters e o uso da mobilidade na fase manuten¸c˜ao.

Parˆametros Descri¸c˜ao Uso de mensagens de con-

trole especificas

O processo requer mensagens espec´ıficas de forma¸c˜ao de cluster. Os clusters n˜ao podem ser formados por mensagens n˜ao relacionadas como informa¸c˜oes de roteamento ou pacotes de dados

Efeito Cascata Indica que reeleger um ´unico l´ıder pode afetar a estrutura de v´arios outros clusters e alterar a topologia de toda a rede

Assume n´os est´aticos na forma¸c˜ao

Os n´os devem ser assumidos como est´aticos na fase de forma¸c˜ao para que informa¸c˜ao precisa de vizinhan¸ca seja obtida

Ciclo de computa¸c˜ao cons- tante

O n´umero de vezes que o processo de forma¸c˜ao deve ser executado para completar. Um n´umero n˜ao constante indica que o algoritmo n˜ao tem a complexidade de tempo limitada. Algoritmos que n˜ao exigem que os n´os estejam est´aticos na forma¸c˜ao n˜ao precisam considerar essa m´etrica Fus˜ao de clusters Utiliza alguma crit´erio para fundir dois clusters em um s´o

Tabela 3.2: Criterios de an´alise dos algoritmos

An´alise dos algoritmos de forma¸c˜ao de Cluster

Classificamos os algoritmos com base nos crit´erios apontados na se¸c˜ao 3.2.1. Um sum´ario da an´alise pode ser visto na tabela 3.3

O Lowest Id Cluster (LIC) utiliza um ID pr´e estabelecido entre os n´os, escolhendo o de menor ID como coordenador. Os n´os publicam a sua informa¸c˜ao de ID para os seus vizinhos. Se um n´o s´o escuta IDs maiores do o que o pr´oprio, ele se declara o l´ıder. Os n´os que recebem informa¸c˜ao de n´os de ID menores que o seu, selecionam o n´o de

Trabalhos Relacionados 29

Algoritmo LCC LI GAME MCFA

Uso de mensagens espec´ıficas Sim Sim Sim Sim

Assume n´os est´aticos na forma¸c˜ao Sim Sim N˜ao N˜ao

Efeito Cascata Sim N˜ao Sim Sim

Fase de forma¸c˜ao de cluster Est´atica Est´atica Est´atica Recursiva

Permite fundir clusters Sim Nao Sim N˜ao

Uso de mobilidade na manuten¸c˜ao N˜ao N˜ao Sim Sim

Tabela 3.3: Comparativo entre os algoritmos implementados

menor ID como l´ıder, a n˜ao ser que o n´o de menor ID especificamente desista do papel de l´ıder. O n´o ´e chamado gateway se escuta dois l´ıderes. A reconstru¸c˜ao do cluster, em caso de movimenta¸c˜ao dos n´os, ´e feita periodicamente, assim, n˜ao sofre efeito cascata. O processo de forma¸c˜ao ´e est´atico e utiliza mensagens peri´odicas num tempo fixo.

O Least Cluster Change (LCC) tem como objetivo minimizar a altera¸c˜ao da estrutura da rede em caso de mobilidade ou falha de n´os. A forma¸c˜ao de cluster segue o mesmo modelo do LIC. Durante a manuten¸c˜ao, a migra¸c˜ao s´o acontece se dois n´os l´ıderes passarem a se escutar mutuamente. Nesse caso, o n´o com menor ID desiste do papel de l´ıder. Quando um n´o n˜ao consegue escutar nenhum l´ıder, ele inicia o processo de forma¸c˜ao novamente, assim como no LIC. Ambos os algoritmos assumem que a forma¸c˜ao do cluster acontecer´a com os n´os praticamente est´aticos. O processo de manuten¸c˜ao do LCC suporta movimenta¸c˜ao dos n´os ap´os a forma¸c˜ao da rede, permitindo a refilia¸c˜ao e a fus˜ao de clusters. Existe um problema conhecido no LCC. Quando um n´o com ID muito baixo se movimenta rapidamente. Esse n´o ao passar por outros clusters com IDs menores que o dele, for¸ca a reconex˜ao dos afiliados ou a desistˆencia do l´ıder, degenerando a rede.

No algoritmo de LI (Li and Dai 2009) cada n´o inicia um contador decrescente ba- seado no seu ID. Quando o contador atinge zero o n´o envia uma mensagem de in´ıcio de cluster para todos os seus vizinhos, que por sua vez, o assumem como l´ıder. Esse

30 Trabalhos Relacionados

com facilidade devido a n˜ao previs˜ao de reconstru¸c˜ao.

O m´etodo Game de Sun (hui Sun, Sun, qing Yang and jiu Xu 2011) define 3 atributos do cluster e calcula um peso a partir dos trˆes para eleger o l´ıder do cluster usando a Formula 3.2.

1. Taxa de gasto de energia 2. Velocidade m´edia

3. Conectividade

A Taxa de gasto de energia, Pv, ´e calculada pela formula 3.1, onde v ´e um n´o, ev ´e a energia necess´aria para enviar uma mensagem, X o n´umero de mensagens enviadas e t o tempo. A Velocidade m´edia, Mv, ´e medida como a distˆancia total percorrida por um n´o dividida pelo tempo t. A Conectividade, δ(v), ´e a diferen¸ca entre o n´umero corrente de vizinhos do n´o e o n´umero ideal de elementos ξ no cluster. Esse valor ´e pr´e-definido.

Pv = evX

t (3.1)

.

O valor ´e calculado usando a formula 3.2. Os fatores ω1, ω2, ω3 s˜ao arbitrariamente definidos e devem satisfazer P3

j=1ωj = 1. A escolha do l´ıder inicia-se com a difus˜ao de uma mensagem beacon para que os n´os possam calcular seu n´umero de vizinhos. Ap´os um tempo pr´e-definido, todos os n´os calculam seu peso usando a formula 3.2 e difundem uma mensagem de elei¸c˜ao com o peso W resultante. Se um n´o somente recebe mensagem com W maior que o seu pr´oprio peso, esse n´o se declara o l´ıder e difunde este papel para seus vizinhos. Se um n´o escuta mensagens com W menor que o seu pr´oprio, ele ´e potencialmente um membro e espera por uma mensagem de forma¸c˜ao de cluster. Se um potencial n´o membro n˜ao receber uma mensagem de forma¸c˜ao ap´os um tempo definido, ele inicia o algoritmo de novo.

Wv = ω1(E0− Er) + ω2δ(v) + ω3M(v) (3.2)

Trabalhos Relacionados 31

calizados, garantindo a n˜ao sobreposi¸c˜ao de l´ıderes, clusters com distˆancia m´axima de um n´o e n˜ao exige que os n´os estejam est´aticos durante a forma¸c˜ao. A fus˜ao dos clus- ters acontece se dois l´ıderes puderem se escutar mutuamente sendo o de menor valor calculado o remanescente.

O MCFA de Akbari (Akbari Torkestani and Meybodi 2011) utiliza dois atributos de movimenta¸c˜ao para a escolha do l´ıder, dire¸c˜ao e velocidade dos n´os, e um m´etodo de aprendizagem para amortizar as altera¸c˜oes bruscas mobilidade ao longo do tempo. O m´etodo de Akbari tamb´em possui uma fase de forma¸c˜ao e outra de manuten¸c˜ao do cluster. O fase de forma¸c˜ao de cluster consiste de um processo de descoberta, que tem um tempo pr´e-estabelecido, e escolha de l´ıder. A fase de manuten¸c˜ao permite que um n´o desgarrado possa se afiliar a outro cluster. A Figura 3.2 ilustra a forma¸c˜ao de clusters do MCFA baseado na movimenta¸c˜ao dos n´os. O m´etodo pode ser sumarizado nos seguintes passos.

Passo 1: An´uncio e Descoberta. Cada n´o se anuncia para os seus vizinhos, pu- blica seus atributos de movimenta¸c˜ao. Recebendo a informa¸c˜ao dos seus vizinhos, o n´o constr´oi um conjunto chamado ActionSet, que denota um vetor de probabilidade com uma entrada por n´o vizinho mais ele mesmo. A probabilidade de cada n´o ´e iniciada com

1 N.

Passo 2: Cada n´o calcula sua mobilidade agregada, ERM. Este atributo ´e a m´edia m´ovel de todas as velocidades relativas entre o n´o e seus vizinhos.

Passo 3: Forma¸c˜ao de Cluster. Sempre que um n´o observa mudan¸ca em um dos seus atributos de mobilidade, ele envia uma mensagem de atualiza¸c˜ao para todos os vizinhos. A mensagem de atualiza¸c˜ao inicia o processo de forma¸c˜ao de cluster que seleciona um vizinho aleat´orio da matriz de probabilidades associadas ao ActionSet e pergunta por sua ERM. A resposta ´e comparada com a m´edia de ERM de todos os outros vizinhos. O resultado da compara¸c˜ao ´e usado para atualizar o vetor de probabilidade.

Passo 4: Manuten¸c˜ao. Se um n´o perde acesso ao seu ClusterHead ele tenta se associar a outro cluster enviando uma mensagem de Join para todos os vizinhos. Se nenhum

32 Trabalhos Relacionados

ten¸c˜ao de clusters. O GLUE explora a o conceito de mobilidade relativa apresentado pelo MCFA, afim de permitir que clusters semelhantes possam se aglutinar simplificando a rede. Nosso trabalho demonstra que a rela¸c˜ao entre diminui¸c˜ao do n´umero de clusters ´e favor´avel em rela¸c˜ao a estabilidade total da rede.

Cap´ıtulo 4

GLUE

O GLUE pertence a uma classe de algoritmos de clusteriza¸c˜ao caracterizados por possuir um n´o l´ıder em cada cluster. Nesse modelo, um n´o pode assumir trˆes pap´eis distintos.

1. UNDEFINED, se um n´o n˜ao pertence a nenhum cluster

2. CHILD, se um n´o est´a associado a um cluster mas n˜ao ´e o l´ıder

3. CLUSTERHEAD, se um n´o est´a associado a um cluster e ´e o seu l´ıder.

O GLUE possui duas fases, uma fase de forma¸c˜ao e uma manuten¸c˜ao. Na fase de forma¸c˜ao, os n´os s˜ao descobertos e o l´ıder eleito. Na fase de manuten¸c˜ao em caso de perda de conex˜ao com o l´ıder, os n´os podem se reafiliar ou iniciar a fase de forma¸c˜ao novamente. Nessa fase tamb´em ´e poss´ıvel a fus˜ao de clusters para diminui¸c˜ao da complexidade total da rede.

34 GLUE

Mensagem Uso

MOBILITY UPDATE Atualiza¸c˜ao de Mobilidade e informa¸c˜ao de fus˜ao

ASFREQ Forma¸c˜ao de ActionSet. Descoberta de n´os

RERM Pedido de Mobilidade Relativa

CHSEL Notifica¸c˜ao de escolha de L´ıder

JREQ Pedido de ingresso no Cluster

LREQ Notifica¸c˜ao de abandono de cluster Tabela 4.1: Mensagens do GLUE

4.1.1

Forma¸c˜ao de ActionSet

Na primeira etapa de forma¸c˜ao ´e definido um vetor chamado ActionSet que denota os n´os vizinhos que hi pode ser escolhidos como l´ıder. O ActionSet ´e definido como αi = αji onde hj ´e adjacente a hi ou i = j. Sobre o ActionSet ´e definido um vetor de probabilidades pj com a chance de um n´o hj se tornar o l´ıder para o n´o hi. Al´em do vetor de probabilidade ´e definido um vetor de mobilidade υi = υ(i,j)T onde T ´e o tempo total da amostragem, para armazenar a m´edia de velocidades relativas entre os n´os hi e hj. Em que para cada entrada em αi existe uma correspondente em υi

A forma¸c˜ao do ActionSet inicia-se com a difus˜ao de uma mensagem de requisi¸c˜ao

ASFREQ contendo inicialmente a velocidade e a dire¸c˜ao do n´o expressas respectivamente

em metros/s e em graus relativos ao eixo de latitude. O objetivo da mensagem ASFREQ ´e prover aos n´os informa¸c˜ao da mobilidade dos seus vizinhos e da atual topologia da rede. Cada n´o que recebe uma mensagem ASFREQ a responde adicionado os seus parˆametros velocidade e dire¸c˜ao. Ao receber a resposta, cada n´o adiciona uma entrada correspondente ao n´o origin´ario no vetor ActionSet.

Ao receber os informa¸c˜oes de velocidade e dire¸c˜ao na mensagem de ASFREQ, o n´o calcula sua velocidade relativa RM(i,j) usando a F´ormula 4.1, onde θti e θjt s˜ao a dire¸c˜ao dos n´os i e j em graus, no plano cartesiano. O n´o calcula a m´edia de velocidades relativas do n´o hj utilizando a F´ormula 4.2 onde k ´e a amostra da velocidade, inicialmente definida como 1. O valor calculado ´e armazenado no vetor υi.

RM(i,j)t = 2 q

(vt

GLUE 35 ERM(i,j)T = 1 k k X t=1 RM(i,j)t (4.2)

Depois de um tempo de espera pr´e definido experimentalmente por n´os, onde espera- se ter recebido informa¸c˜oes de todos seus vizinhos, o n´o inicializa o vetor de probabilida- des pj com o valor N1 onde N ´e o total de membros, satisfazendo a condi¸c˜ao 1 =

P ∀hj∈αi

pj. Ap´os a forma¸c˜ao do ActionSet, sempre que um n´o experimentar uma mudan¸ca dos seus parˆametros de velocidade (epoch) uma mensagem de atualiza¸c˜ao de mobilidade

MOBILITY UPDATE ´e enviada. Essa mensagem, se os n´os estiverem no estado UN- DEFINED ou CHILD, conter´a os valores de dire¸c˜ao e velocidade do n´o. Um n´o ao

receber uma mensagem MOBILITY UPDATE atualiza a entrada correspondente ao n´o origin´ario no vetor ERMi utilizando a F´ormula 4.2.

4.1.2

Escolha de L´ıder

Ap´os a forma¸c˜ao do ActionSet, inicia-se o processo de escolha de l´ıder. O algoritmo de forma¸c˜ao pode ser chamado em dois casos, ao receber uma mensagem de atualiza¸c˜ao de mobilidade MOBILITY UPDATE de um dos vizinhos ou ap´os um tempo m´aximo de espera wt.

Ao iniciar o processo de elei¸c˜ao o n´o em quest˜ao i seleciona aleatoriamente um dos membros de seu ActionSet, de acordo com seu vetor de probabilidades pj, chamando-o de ch. Caso o elemento escolhido seja o pr´oprio n´o i, ele calcula sua velocidade m´edia relativa aos vizinhos ERMT

i usando a F´ormula 4.3. Se o n´o escolhido for um n´o vizinho, ele envia um Pedido de ERM (RERM ) para o n´o escolhido. Um n´o que recebe um RERM calcula sua ERMT

i e responde para o solicitante. Em ambos os casos, o n´o solicitante compara o ERMT obtido com um parˆametro T , calculado pela formula 4.6.

36 GLUE

parˆametro P ´e a condi¸c˜ao de parada. O algoritmo ´e descrito pelo pseudoc´odigo 4.1.

ERMiT = 1 |Ni| X ∀Hj ∈ NiERM(Ti, j) (4.3) pj(n + 1) =    pj(n) + a[1 − pj(n)] i = j (1 − a)pj(n) ∀j 6= i (4.4) pj(n + 1) =    (1 − b)pj(n) i= j ( b r−1) + (1 − b)pj(n) ∀j 6= i (4.5) Tik = 1 ∆ + 1 X ∀hj;(hi,hj)∈L or i=j ERMhk j (4.6)

GLUE 37

Algoritmo 4.1:Forma¸c˜ao Cluster MCFA-GLUE

input: hi,P /* hi:N´o, P :Condi¸c~ao de parada */ Data: Todos os N´os est˜ao no estado UNDEFINED

chi ´e o n´o l´ıder escolhido pelo n´o hi wi o peso do n´o escolhido chi k o est´agio do processo de escolha αw

i [j] ´e o peso da escolha de cada hj para chi por hi Tk

i um limiar associado ao est´agio do processo e ao n´o i 1 begin

2 Tk

i ← 0, k ← 0 N´o hi gera o ActionSet αi = { αjikhj ´e vizinho de hi ou i = j }/* αi ´e conjunto de vizinhos de hi mais hi */ 3 repeat

4 chi = ActionSeti[RAN D()] /* Seleciona a¸c~ao aleat´oriamente */ 5 if chi != hi then

6 N´o hi envia RERM para chi ;

7 wi ← ERMk

chi

8 end

9 else

/* Se o chi selecionado ´e o pr´oprio n´o, wi recebe ERMhki */

10 wi ← ERMk

hi

11 end

/* Se o peso de chi ´e ≤ que Tik, o limiar din^amico calculado pela equa¸c~ao 4.6 a a¸c~ao de escolha de chi ´e refor¸cada */ 12 if wi ≤ Tk

i then

13 Ref orca(chi) /* Refor¸ca o peso da escolha de chi */

14 end

15 else

16 P une(chi) /* Pune a escolha de chi */

17 end

18 Calcula T com a equa¸c˜ao 4.6 k ← k + 1 19 until αw

i [chi] > P /* Probabilidade de escolha atinge P */ 20 ;

21 if chi = hi then

22 hi muda estado para HEAD

23 end

24 else

38 GLUE

de l´ıder. Na linha 4 O n´o escolhe um dos candidatos a l´ıder aleatoriamente sobre um vetor de probabilidades com peso, conforme explicado na subse¸c˜ao 4.1.2. No caso do n´o n˜ao escolher a si mesmo, na linha 5 ele envia um pedido de mobilidade relativa para o candidato a l´ıder e recebe armazenando a resposta, conforme a linha 7. Na linha 11, o n´o executante verifica se o candidato est´a abaixo do limiar de T usando a equa¸c˜ao 4.6, caso positivo a escolha desse candidato ´e refor¸cada utilizando a equa¸c˜ao 4.4 conforme visto na linha 13, ou em caso negativo a escolha desse candidato ´e punida utilizando a equa¸c˜ao 4.5 conforme visto na linha 16. Quando algum dos candidatos atinge a probabilidade de escolha da condi¸c˜ao de parada P ´e definido o n´o HEAD. Na linha 25, caso o n´o escolhido seja diferente do n´o executante,o n´o se declara CHILD, caso seja escolhido o pr´oprio n´o, ele se declara HEAD como visto na linha 22.

4.2

Manuten¸c˜ao do Cluster

Uma vez escolhido o l´ıder, o n´o entra na fase de manuten¸c˜ao do cluster. Em perda conectividade com seu l´ıder, ele difunde mensagem de associa¸c˜ao JREQ e espera um tempo previamente estabelecido. N´os l´ıderes que recebem uma JREQ respondem a mensagem diretamente com sua ERM. Se ele receber respostas de algum l´ıder em seu alcance, ele escolher´a como l´ıder o de menor ERM. Em caso de n˜ao receber nenhuma resposta, o processo de escolha ´e iniciado.

No nosso cen´ario, a movimenta¸c˜ao dos turistas segue mais de um padr˜ao. Alguns estar˜ao em grupos seguindo um guia, alguns simplesmente formam um grupo de interesse e outros movimentam-se sozinhos. Os pontos de interesse em cidades ou lugares tur´ıstico s˜ao de certa forma pr´e-definidos, assim, ´e comum que dois grupos se encontrem e sigam o mesmo caminho. Nesse caso, a complexidade total da rede pode ser reduzida fundindo- se dois grupos. O GLUE permite a fus˜ao de grupos seguindo os crit´erios de mobilidade da forma¸c˜ao aplicando os seguintes princ´ıpios:

1. N´os que mantˆem a mesma mobilidade devem se manter no mesmo cluster.

2. Se dois clusters se sobrepuserem e apresentarem os mesmos padr˜oes de mobilidade, eles devem se fundir no mesmo cluster.

3. Se dois clusters se sobrepuserem sem apresentar o mesmo padr˜ao de mobilidade, eles devem continuar separados.

GLUE 39

Durante a fase de forma¸c˜ao, os clusters s˜ao criados de acordo com a tendˆencia de mobilidade apresentada pelos n´os. Os n´os agrupam-se em torno do n´o de menor mo- bilidade relativa entre eles. Nesse caso, ´e possivel afirmar que o n´o l´ıder tem a menor probabilidade de se mover para fora do grupo. O parˆametro de mobilidade ERMT

i ´e calculado dinamicamente relativo aos atuais vizinhos de cada n´o. Assim, para a fus˜ao de n´os do GLUE assumimos as seguintes afirma¸c˜oes.

1. A m´edia m´ovel da mobilidade ERMT

i de cada n´o l´ıder ´e igual ao parˆametro de mobilidade de todo o cluster.

2. Quando dois n´os possuem o mesmo conjunto de vizinhos seus parˆametros ERMT i s˜ao relativos aos mesmos n´os.

O algoritmo de fus˜ao ´e executado a cada vez que um n´o l´ıder experiencia um epoch. O n´o l´ıder em quest˜ao adiciona trˆes parˆametros `a sua mensagem de atualiza¸c˜ao de mobilidade MOBILITY UPDATE. Esses parˆametros s˜ao o ClusterId, que ´e o ID do cluster, a lista de n´os ao alcance do seu r´adio Ni e sua ERMiT. Caso um n´o l´ıder, ao receber uma mensagem MOBILITY UPDATE, verificar que a mensagem vem de outro l´ıder, ele inicia o processo de verifica¸c˜ao de fus˜ao seguinte:

1. Se a velocidade relativa entre ele e o n´o enviante (RM(i,j)) ´e menor que um limite pr´e-estabelecido M .

2. Se o n´o verificar que o conjunto de n´os ao alcance do r´adio dos dois n´os ´e o mesmo. Ni = Nj

3. Se o seu parˆametro ERMT

i ´e menor que o informado pelo n´o l´ıder origin´ario

40 GLUE

Figura 4.1: Fus˜ao de clusters no GLUE

Algoritmo LCC LI GAME MCFA GLUE

Uso de mensagens espec´ıficas Sim Sim Sim Sim Sim

Assume n´os est´aticos na forma¸c˜ao Sim Sim N˜ao N˜ao N˜ao

Efeito Cascata Sim N˜ao Sim Sim Sim

Fase de forma¸c˜ao de cluster Est´atica Est´atica Est´atica Recursiva Recursiva

Permite fundir clusters Sim Nao Sim N˜ao Sim

Uso de mobilidade na manuten¸c˜ao N˜ao N˜ao Sim Sim Sim

Tabela 4.2: Comparativo entre os algoritmos analisados e o GLUE

Documentos relacionados