algoritmos distribuídos

29
Algoritmos Distribuídos Algoritmos para clusterização em redes móveis ad hoc

Upload: stacey

Post on 20-Jan-2016

27 views

Category:

Documents


0 download

DESCRIPTION

Algoritmos Distribuídos. Algoritmos para clusterização em redes móveis ad hoc. Tópicos. Redes Ad Hoc Roteamento em redes Ad Hoc Clusters em redes Ad Hoc Algoritmos DCA– Distributed Clustering Algorithm DMAC– Distributed and Mobility Adaptive Clustering. Redes Ad Hoc. Maior mobilidade - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algoritmos Distribuídos

Algoritmos Distribuídos

Algoritmos para clusterização em redes móveis ad hoc

Page 2: Algoritmos Distribuídos

Tópicos Redes Ad Hoc Roteamento em redes Ad Hoc Clusters em redes Ad Hoc Algoritmos

DCA – Distributed Clustering Algorithm

DMAC – Distributed and Mobility Adaptive Clustering

Page 3: Algoritmos Distribuídos

Redes Ad Hoc Maior mobilidade

Capacidade de auto-organização

Rapidamente estabelecida

Independente de estrutura física

Page 4: Algoritmos Distribuídos

Redes Ad Hoc Usos militares e civis Suporte a computação colaborativa

em ambientes temporários ou móveis

Sistemas de comando e controle distribuídos

Monitoramento móvel de pacientes para tratamento crítico

Page 5: Algoritmos Distribuídos

Redes Ad Hoc Estrutura sem fio ubíqua capaz de

intercomunicar milhares de dispositivos Comunicação em campo de batalha Auxílio a socorre em desastres naturais,

onde a estrutura está destruída ou é ausente, como terremotos, maremotos, avalanches, etc

Page 6: Algoritmos Distribuídos

Clusters em redes Ad hoc Utilizado desde o surgimento das

redes Uso inicial para roteamento Alocação de recursos, largura de

banda e canais, para tráfego multimídia em redes ad hoc

Tornar comunicação mais eficiente e gastar menos energia

Page 7: Algoritmos Distribuídos

Roteamento em redes Ad Hoc Quatro categorias:

Roteamento proativo Flooding Roteamento reativo Roteamento dinâmico através de

clusters

Page 8: Algoritmos Distribuídos

Roteamento - Proativo Periodicamente distribui informações

de roteamento através da rede Rotas pré computadas para todos os

destinos Boa qualidade para topologia

estáticas Não escalável para ambientes

dinâmicos

Page 9: Algoritmos Distribuídos

Roteamento – Flooding Não requer conhecimento da

topologia Pacotes enviados por broadcast

para todos os destinos com a expectativa de eventualmente atingir o destino desejado

Número excessivo de mensagens, o que significa um grande consumo de energia para roteamento

Page 10: Algoritmos Distribuídos

Roteamento – Reativo Terminais não armazenam informação sobre

rotas Quando um nó quer transmitir, ele manda

um broadcast para requisição de rota Quando chegar ao destinatário, ele retorna

com as informações da rota utilizada Tempo necessário para saber a rota é muito

grande e qualidade da rota pode ser ruim

Page 11: Algoritmos Distribuídos

Roteamento – Dinâmico baseado em clusters

Rede é organizada em partições (clusters)

A composição dos clusters muda com o tempo devido a mobilidade dos nós

Roteamento interno do cluster é independente do externo

Precisa de algoritmo de clusterização eficiente, caso contrário manutenção do cluster vai demandar muito esforço

Page 12: Algoritmos Distribuídos

Clusters em redes ad hoc Clusterização é realizada em duas

fases, set up e manutenção Escolha do clusterhead é comparável à

escolha de um coordenador em um algoritmo de eleição

A escolha do coordenador é baseada em um “peso”, para que seja escolhido o nó mais apto para a tarefa

Cada nó tem um ID único na rede

Page 13: Algoritmos Distribuídos

Propriedades dos clusters Cada nó não coordenador terá pelo

menos um clusterhead vizinho O nó vai se juntar ao melhor

clusterhead na sua vizinhança Não deverá haver dois ou mais

coordenadores vizinhos

Page 14: Algoritmos Distribuídos

Exemplo de clusterização

Page 15: Algoritmos Distribuídos

DCA – Distributed Clustering Algorithm

Cada nó tem consciência de seu ID, seu peso e os IDs e pesos dos seus vizinhos

Toda mensagem enviada é recebida por todos os vizinhos em tempo finito

Assume que a topologia da rede não muda durante a execução do set up

Page 16: Algoritmos Distribuídos

DCA – Distributed Clustering Algorithm

São utilizados dois tipos de mensagens CH(v) – utilizado por um nó v para indicar aos

seus vizinhos que ele será um clusterhead JOIN(v, u) – o nó v comunica aos seus vizinhos

que ele será parte do cluster no qual o coordenador é o nó u

A idéia do algoritmo é que um nó decidirá a sua função quando todos os nós de maior peso ao seu redor já tiverem decidido

Ao iniciar a execução, apenas os que tiverem o maior peso enviam CH(v)

Page 17: Algoritmos Distribuídos

DCA – Distributed Clustering Algorithm

On receiving CH(u) Checa se já recebeu JOIN(z, x) de

todos os vizinhos z tal que W(z) > W(u). Nesse caso o nó se junta a v e o algoritmo pára

Se existir z tal que W(z) > W(u), o nó guarda a mensagem e continua aguardando

Page 18: Algoritmos Distribuídos

DCA – Distributed Clustering Algorithm

on receive JOIN(u, t): joins[u] = t if ch then if self == t then for z in neighbors do if z.w < weight and joins[z] != null then exit end end end end boolean allJoins = true for z in neighbors do if z.w > weight and joins[z] == null then allJoins = false break end end

if allJoins then clusterhead = true boolean joined = true for y in neighbors do if y.w < weight and joins[y] != null then joined = false break end end if joined then exit else send CH(self) end else node chMsg = null for z in neighbors and z.w > weight do if chMsg == null or z.w > chMsg.w then chMsg = z end endsend JOIN(self, chMsg) endend

Page 19: Algoritmos Distribuídos

DCA – Distributed Clustering Algorithm

Funciona melhor em ambientes pouco móveis, quase estáticos

Reorganização realizada periodicamente

A manutenção é feita através da reordenação dos clusters

Assume estabilidade dos nós e da comunicação na rede enquanto está executando

Page 20: Algoritmos Distribuídos

DMAC – Distributed and Mobility Adaptive Clustering

Similar ao algoritmo do convite, mas cada nó age individualmente

Não assume estabilidade na construção do cluster

Nós reagem a mensagens e a falha de comunicação com outros nós e ao surgimento de um nó vizinho

Uma mensagem enviada por um nó é recebida por todos os seus vizinhos em tempo finito

Page 21: Algoritmos Distribuídos

DMAC – Distributed and Mobility Adaptive Clustering

Cada nó conhece o seu ID, seu peso, sua função e o ID, peso e função de todos os seus vizinhos

Se um nó não escolheu sua função, ele e normal (não coordenador)

São utilizados dois tipos de mensagens CH(v) – utilizado por um nó v para indicar

aos seus vizinhos que ele será um clusterhead

JOIN(v, u) – o nó v comunica aos seus vizinhos que ele será parte do cluster no qual o coordenador é o nó u

Page 22: Algoritmos Distribuídos

DMAC – Distributed and Mobility Adaptive Clustering

Cluster(v) indica os nós pertencentes ao cluster cujo clusterhead e v

Clusterhead indica o coordenador de um nó A variável Ch(v) diz se v enviou uma

mensagem CH Os nós são informados da presença ou falha

de um link por um serviço de mais baixo nível, que disparará o evento tratador

As variáveis Clusterhead, Cluster(-) e Ch(-) são iniciadas com valor nil, false e vazio

Page 23: Algoritmos Distribuídos

DMAC – Distributed and Mobility Adaptive Clustering

procedure Init:begin if {z Є neighbor(v) | Wz > Wv and Ch (z)} != { } then x = max Wz>Wv {z: Ch(z)} send JOIN(v, x) Clusterhead = x else send CH(v) Ch(v) = true Clusterhead = v Cluster(v) = {v} endend

Page 24: Algoritmos Distribuídos

DMAC – Distributed and Mobility Adaptive Clustering

procedure Link failure (u):begin if Ch (v) and (u Є Cluster (v)) then Cluster (v) = Cluster (v) - {u} else if Clusterhead = u then if {z Є neighbor(v) | Wz > Wv and Ch(z)} != {} then x = max Wz > Wv {z | Ch(z)} send JOIN(v, x) Clusterhead = x else send CH(V) Ch(v) = true Clusterhead = v Cluster(v) = {v} end endend

Page 25: Algoritmos Distribuídos

DMAC – Distributed and Mobility Adaptive Clustering

procedure New link (u):begin if Ch (u) then if (Wu > WClusterhead ) then send JOIN(v, u) Clusterhead = u if Ch(v) then Ch(v) = false end end endend

Page 26: Algoritmos Distribuídos

DMAC – Distributed and Mobility Adaptive Clustering

On receiving Ch(u):begin if (Wu > WClusterhead ) then send JOIN(v, u) Clusterhead = u if Ch(v) then Ch(v) = false end endend

Page 27: Algoritmos Distribuídos

DMAC – Distributed and Mobility Adaptive Clustering

On receiving JOIN(u, z):begin if Ch(v) then if z == v then Cluster(v) = Cluster(v) + {u} else if u Є Cluster(v) then Cluster(v) = Cluster(v) - {u} end else if Clusterhead = u then if {z Є neighbor(v) | Wz > Wv and Ch(z)} != {} then x = max Wz > Wv {z | Ch(z)} send JOIN(v, x) Clusterhead = x else send Ch(v) Ch(v) = true Clusterhead = v Cluster(v) = {v} end endend

Page 28: Algoritmos Distribuídos

DMAC – Distributed and Mobility Adaptive Clustering

Algoritmo é tolerante a falhas de comunicação em qualquer momento da execução

Adequado a redes ad hoc reais, onde não se pode assumir estabilidade da rede em nenhum momento

Menos eficiente que o DCA quando a rede é pouco móvel e as falhar de link são menos constantes

Page 29: Algoritmos Distribuídos

Conclusão Os dois algoritmos apresentados são

razoavelmente eficientes O DCA tem uma complexidade máxima

de O(n) e é indicado para redes com pouca mobilidade, executando uma reclusterização periodicamente

O DMAC é mais complexo que o DCA, mas é totalmente adaptativo a mudanças na topologia