1 / 29

Algoritmos Distribuídos

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

stacey
Download Presentation

Algoritmos Distribuídos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. Redes Ad Hoc • Maior mobilidade • Capacidade de auto-organização • Rapidamente estabelecida • Independente de estrutura física

  4. 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

  5. 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

  6. 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

  7. Roteamento em redes Ad Hoc • Quatro categorias: • Roteamento proativo • Flooding • Roteamento reativo • Roteamento dinâmico através de clusters

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. Exemplo de clusterização

  15. 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

  16. 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)

  17. 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

  18. DCA – Distributed Clustering Algorithm 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 end send JOIN(self, chMsg) end end 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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} end end

  24. 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 end end

  25. 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 end end

  26. 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 end end

  27. 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 end end

  28. 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

  29. 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

More Related