A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Geração de Spanning Tree Mínima Algoritmo GHS Algoritmos Distribuídos - Lynch Vicente Carvalho.

Apresentações semelhantes


Apresentação em tema: "Geração de Spanning Tree Mínima Algoritmo GHS Algoritmos Distribuídos - Lynch Vicente Carvalho."— Transcrição da apresentação:

1 Geração de Spanning Tree Mínima Algoritmo GHS Algoritmos Distribuídos - Lynch Vicente Carvalho

2 Algoritmo GHS Criado por Gallager, Humblet, e Spira. Um dos algoritmos mais conhecidos da teoria da computação distribuída. (Lyinch)

3 Motivação ◦ Minimiza o custo de comunicação entre um processo fonte e todos os demais processos em uma rede. (broadcast) ◦ Evita laços indesejados e permite redundância entre nós de uma rede. Algoritmo GHS

4 Definições ◦ Grafo G = (V, E) ◦ Conectado ◦ Não direcionado (bidirecional) ◦ Arcos com peso associado ◦ Processos com UID ◦ Peso do arco é conhecido por seus dois vértices ◦ Assume-se que os pesos dos arcos são únicos, não há repetição Algoritmo GHS

5 Definições (continuação) ◦ Processos inicialmente quiescentes, nenhuma ação de controle local está ativa em seu estado inicial. Cada processo tem uma ação de entrada wakeup na qual o ambiente sinaliza para iniciar a execução do algoritmo. Algoritmo GHS

6 Descrição do funcionamento ◦ Processos se agrupam em componentes ◦ Componentes se agrupam e formam componentes maiores ◦ Cada componente tem um nó líder, e uma spanning tree que é um subgrafo da spanning tree mínima(MST) ◦ Dentro de cada componente os processos cooperam para encontrar o minimum weight outside edge (MWOE), arco de menor peso que faz fronteira com um outro componente Algoritmo GHS

7 Descrição do funcionamento (continuação) ◦ Depois de descoberto o MWOE uma mensagem é enviada através desse arco para o componente vizinho ◦ Os componentes podem se unir e formar um novo componente maior. ◦ O processo se repete para o novo componente ◦ A cada união (merge) feita entre componentes o novo componente cresce um nível, iniciando pelo nível 0 Algoritmo GHS

8 Descrição do funcionamento (continuação) Algoritmo GHS

9 Como encontrar MWOE dentro de um componente? ◦ O nó líder do componente envia uma mensagem broadcast através de sua spanning tree solicitando a informção ◦ Cada nó sabe o peso dos arcos incidentes ◦ Através de covercast o líder recebe a informação de qual nó está ligado à MWOE Algoritmo GHS

10 Dificuldades ◦ 1) Por ser um algoritmo assíncrono, pode acontecer dos componentes crescerem de forma desbalanceada, fazendo com que um grande componente se una a um nó simples. Com isso o número de mensagens aumentaria significativamente. Antes de cada união o componente precisa encontrar a MWOE, que dependendo do tamanho do componente pode ter a necessidade de um grande número de mensagens. Algoritmo GHS

11 Merge e Absorb ◦ Merge – União de dois componentes de mesmo nível k, originando um novo componente maior de nível k+1 com novo líder. ◦ Absorb – União de um componente de nível menor a um componente de nível maior, resultando na absorção do componente de nível menor pelo o de nível maior. O líder e o nível do componente resultante permanecem o mesmo do componente de nível maior. Algoritmo GHS

12 Merge e Absorb Algoritmo GHS

13 Como escolher o nó líder do componente? ◦ Só há troca de líder em caso de merge ◦ Para componentes com nível 1 ou maior é identificado o arco principal (core edge) ◦ O arco principal é o MWOE que originou a união dos componentes ◦ O arco principal (peso) + o nível do componente é utilizado como identificador do componente ◦ A extremidade do arco principal que possui o maior UID é eleito o novo líder do componente Algoritmo GHS

14 Dificuldades ◦ 2) Um processo adjacente j com um identificador de componente diferente está na verdade no mesmo componente que o processo solicitante i, mas não sabe disso pois ocorreu um atraso na comunicação. Algoritmo GHS

15 Solução dificuldade 2 ◦ Caso 1:  nó i(solicitante), nó j(solicitado)  Possuem diferentes identificadores de componente  Nível de j é no mínimo tão alto quanto o nível de i i e j não podem estar no mesmo componente, pois:  Um nó possui apenas um identificador de componente para cada nível  Como o nó i está fazendo a solicitação significa que ele está atualizado  O nível do nó j é igual ou maior do que o nó i Algoritmo GHS

16 Solução dificuldade 2 ◦ Caso 2:  nó i(solicitante), nó j(solicitado)  Possuem diferentes identificadores de componente  Nível de j é menor que o nível de i j aguarda até estar no mesmo nível que i para responder. Algoritmo GHS

17 Dificuldades ◦ 3)O nível de avanço (quantidade de uniões) de cada componente pode ser diferente. Não está claro que tipo de interferência isso pode causar em uma busca concorrente por MWOE. ◦ Componente C é absorvido pelo componente C’ enquanto C’ está envolvido em descobrir seu MWOE ◦ MWOE de C conecta o nó i(C) ao nó j de C’ Algoritmo GHS

18 Caso 1 O nó j ainda não determinou o MWOE Neste caso, o algoritmo de procura por MWOE que está rodando em C’ irá fazer a busca no componente C. Algoritmo GHS

19 Caso 2 O nó j já determinou o MWOE O mwoe(j) != mwoe(j,i) pois o nível de C é inferior ao nível de C’ O MWOE de C’ é menor que mwoe(j,i) pois caso contrário aconteceria um merge (o nó i aguardaria até seu nível se igualar ao do componente C’) Se mwoe(i,j) é o MWOE de C e o MWOE de C’ é menor que mwoe(i,j) então o MWOE do novo componente (C+C’) não pode estar em C. Algoritmo GHS

20 Mensagens utilizadas pelo algoritmo Initiate – Disparada pelo líder (broadcast) para os processos iniciarem a busca pelo mwoe, contém o identificador do componente. Report – Retorna a informação (convergecast) de arco mínimo ao líder do componente. Test – Um processo envia uma mensagem test a outro processo para saber se está no mesmo componente. Algoritmo GHS

21 Mensagens utilizadas pelo algoritmo Accept e Reject – Resposta a mensagem test, caso esteja em um componente diferente, accept, caso esteja no mesmo, reject. Changeroot – É disparada pelo líder para os processos adjacentes ao MWOE do componente, depois do MWOE ter sido encontrado. Connect – Enviada através do MWOE para realizar uma união entre componentes. Algoritmo GHS

22 Mensagens utilizadas pelo algoritmo Para se manter a complexidade de comunicação baixa foi necessário criar o seguinte mecanismo para o protocolo test/accept/reject: Cada processo possui uma lista dos arcos incidentes com seus respectivos pesos em ordem crescente. Cada arco é classificado como branch, rejected ou basic. Algoritmo GHS

23 Mensagens utilizadas pelo algoritmo Protocolo test/accept/reject: Branch – Aqueles que fazem parte da MST. Rejected – Aqueles que não fazem parte da MST. Basic – Processos que ainda não foram classificados. Inicialmente todos os arcos são classificados como basic. Ao enviar a mensagem test, o processo o faz sequencialmente, por ordem crescente de peso, somente para os arcos basic. A mensagem contém o identificador do componente. Algoritmo GHS

24 Comparação Tel ◦ Nós não possuem UID ◦ Componente (fragmento) possui um core edge e 2 nós líderes ◦ No fim da busca pelo MWOE do fragmento os nós líderes trocam mensagens entre si ◦ O nó que possuir o MWOE dispara o reinício do processo ◦ Se não houver MWOE o algoritmo chegou ao final Algoritmo GHS

25 Complexidade comunicação (Lynch) ◦ Cada arco pode ser rejeitado no máximo uma vez, para isso são necessárias duas mensagens (test+reject). Complexidade |E|. ◦ As mensagens test-accept, initiate-report, changeroot- connect para um componente podem ser associadas de modo que possa ter no máximo uma dessas mensagens associadas a cada nó. Complexidade N. ◦ Calculando para cada nível temos a complexidade:  N logN + |E| Algoritmo GHS

26 Complexidade comunicação (Tel) ◦ Cada arco pode ser rejeitado no máximo uma vez, para isso são necessárias duas mensagens (test+reject). Complexidade 2|E|. ◦ Em qualquer nível um nó recebe no máximo:  1 initiate  1 accept ◦ Em qualquer nível um nó envia no máximo:  1 report  1 changeroot ou connect  1 test que não leva a rejeição ◦ Complexidade resultante: 2|E| + 5NlogN Algoritmo GHS

27 Algoritmo de Prim (variante) ◦ Inicia-se no nó Vo e prosegue em fases(p) sincronizadas adicionando um novo nó a MST por fase. ◦ Fases são inicializadas por uma mensagem pulso (broadcast) enviada pelo nó raiz (Vo). ◦ Cada nó conhece seu pai e seus filhos(se houver). ◦ Cada nó sabe quais vizinhos já pertencem a MST. Algoritmo GHS

28 Algoritmo de Prim (variante)...continuação ◦ A cada fase(p) a procura pelo MWOE é feita por broadcast/convergecast. ◦ Cada fase necessita p mensagens ◦ Complexidade O(n²) Algoritmo GHS

29 Conclusão ◦ É uma versão distribuída do algoritmo de Kruskal. ◦ É mais adequado a ambientes distribuídos do que o algoritmo de Prim (distribuído). ◦ Visão do Tel mais realista e de mais fácil entendimento. Algoritmo GHS

30 Bibliografia ◦ Lynch, N. Distributed Algorithms, Morgan Kaufmann Publishers, Inc., San Francisco, CA, 1996 ◦ Tel, G. Introduction to Distributed Algorithms, Cambridge University Press; 2nd Edition, 2000 ◦ Peleg, D. Distributed Computing: A Locality-Sensitive Approach, Society for Industrial Mathematics, 1987 ◦ Cormen,Thomas H. ; Rivest, Ronald L.; Leiserson, Charles E. Introduction to algorithms, The MIT Press; 2nd edition, 2001 Algoritmo GHS


Carregar ppt "Geração de Spanning Tree Mínima Algoritmo GHS Algoritmos Distribuídos - Lynch Vicente Carvalho."

Apresentações semelhantes


Anúncios Google