13.07.2015 Views

O Algoritmo Newman-Ziff

O Algoritmo Newman-Ziff

O Algoritmo Newman-Ziff

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2Depth/Breadth-First-SearchNos algoritmos de busca Depth/Breadth-First-Search partimos de um sítio original e visitamos todos os demaissítios que estão no mesmo cluster que o sítio original, buscando as informações desejadas sobre esse clusterao longo do processo. Para vislumbrar com mais detalhes a metodologia desses dois algoritmos, permita-meassociar o processo de exploração dos sítios num cluster ao de exploração de uma caverna da seguinte forma [6]:associamos cada sítio ocupado do cluster a um salão de uma certa caverna e cada elo ligando sítios ocupadoscomo sendo túneis ligando esses salões.Depth-First-Search12161431112104135967815Numa exploração do tipo Depth-First-Search partimos do salão de entrada (sítio 1na figura ao lado) e escolhemos um de seus túneis para seguir adiante (escolhemosos elos segundo uma ordenação horária a partir do elo da direita, ou seja: Direita,Abaixo, Esquerda, Acima). No próximo salão (sítio 2) escolhemos novamente umde seus túneis para continuar a exploração. Quando chegarmos a um salão quenão possui túneis (p. ex., sítio 8), retornamos ao último salão visitado que aindapossui túneis exploráveis (sítio 7) para escolher um túnel diferente e continuar aexploração. Seguindo esse procedimento de siga-e-volte pelos túneis visitados podemosexplorar toda a caverna. Observe que em todo momento devemos registraros túneis pelos quais já andamos para que possamos retornar por eles e escolher novos túneis. Enquanto naexploração de cavernas podemos adotar a estratégia do "Labirinto do Minotauro" e carregar conosco um novelode lã que sempre indicará o caminho de onde viemos, no caso computacional podemos registrar num vetor todosos sítios visitados e retornar por esses sítios quando chegarmos a um sítio que não possui vizinhos ocupados.Por outro lado, numa exploração do tipo Breadth-First-Search partimos do salão Breadth-First-Searchde entrada (sítio 1) e percorremos cada um de seus túneis para registrar todosos salões adjacentes (no caso, apenas o sítio 2), os quais constituem um 1o nívelde salões. Para cada salão registrado nesse 1o nível percorremos todos os seustúneis para registrar todos os salões adjacentes, os quais constituem um 2o nívelde salões (sítios 3 e 4). Seguindo esse procedimento de explorar salões nível anível podemos explorar toda a caverna. Observe que em todo momento devemosmanter o registro de quais salões do nível anterior ainda não tiveram seus túneispercorridos, assim como quais salões do próximo nível foram recém descobertos.12 3954 67 10 14118 1213 1516No caso computacional isso pode ser facilmente implementado utilizando uma estrutura de dados do tipoqueue. <strong>Algoritmo</strong>s completos e explicações adicionais tanto do Depth- quanto do Breadth-First-Search podemser encontrados em [6,7].

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!