No artigo anterior investigamos o desempenho de métodos de busca em redes complexas que usam uma espécie de memória (busca em profundidade) para retornar a busca a um ponto anterior. Contrapomos estes métodos ao roteamento da Internet que não tem memória, mas que usa informação global em seu processo de busca. Assim, terminamos o artigo deixando uma dúvida no ar: podemos construir uma forma de navegação usando apenas informação local e nenhuma memória? Neste artigo tentaremos responder esta questão.
Vejamos o que ocorre caso os processos sejam simplificados para fazer navegações diretas, i.e., sem memória dos nós passados e, por isso, permitindo que os nós sejam visitados mais de uma vez. Como uma melhoria deste processo, adicionaremos informação local aos nós e permitiremos que cada nó saiba quem são os seus vizinhos, assim caso o nó $v_1$ receba uma mensagem cujo destino é o nó $v_2$ que é seu vizinho, o nó $ v_1$ encaminhará diretamente a mensagem para $v_2$. Isso ajuda a diminuir o tempo de envio da mensagem, sem que seja preciso grande quantidade de memória.
Teremos então, novamente, dois processos de encaminhamento: o aleatório e o preferencial de acordo com o grau. Embora os processos sejam de busca e navegação, como os que vimos anteriormente, chamaremos estes processos de encaminhamento apenas para diferenciá-los dos processos com memória.
No processo de encaminhamento aleatório, quando chegamos a um nó, verificamos se um dos vizinhos é o nó de destino, que é o caso em que encaminhamos a mensagem diretamente ao vizinho. Caso o destino não esteja entre os vizinhos, encaminhamos a mensagem para um nó escolhido aleatoriamente segundo uma distribuição uniforme.
A diferença no processo de encaminhamento preferencial é que, se nenhum dos nós vizinhos é o destino, encaminharemos a mensagem ao vizinho aleatoriamente escolhido de acordo com a probabilidade $\frac{d_i}{\sum_{j \in V}{d_j}}$, onde $V$ é o conjunto de vizinhos do nó que está decidindo e $i \in V$. Em outras palavras, os nós de maior grau terão maior chance de ser escolhidos.
Ambos os processos de encaminhamento param somente ao encontrar o nó buscado ou ao atingir um número máximo de saltos.
Para demonstrar o comportamento destes processos de encaminhamento em redes diferentes faremos um experimento similar ao anterior, em que utilizamos as três redes de cada modelo construídas anteriormente, e realizamos um encaminhamento tendo como origem e destino cada par de nós da rede. Neste experimento medimos, primeiramente, a taxa de falha dos métodos, contada pela fração das vezes em que os processos atingiram o número máximo de saltos, que para este experimento foi configurado como o total de nós (100).
Nós também contabilizamos, novamente, a relação entre o tamanho do caminho encontrado pelo respectivo processo de encaminhamento (aleatório ou preferencial) e o menor caminho entre o par de nós. Note que fazemos este cálculo apenas para os caminhos onde o nó de destino foi alcançado. Desta forma, poderemos comparar os resultados deste experimento com os anteriores.
Ao todo, repetimos cada processo 4.950 vezes, já que o temos 100 nós em cada rede e que fazemos o caminho em apenas um sentido, ou seja, se fizemos o processo de encaminhamento entre o nó $v_1$ e nó $v_2$, não fazemos o processo de encaminhamento de $v_2$ para $v_1$.
A taxa de falha do processo de encaminhamento aleatório nas redes G(n,m), GWS e GBA é de, respectivamente, 0,55%, 18,57% e 0,71%. Para o processo de encaminhamento preferencial temos que as taxas de falha são, respectivamente, de 0,36%, 17,86%, 0,65%. Como se pode observar, enquanto as redes G(n,m) e GBA tem taxas de falha comparáveis, as redes GWS tem uma elevada taxa de falha. Novamente, a estrutura da rede com muitos enlaces curtos e poucos longos tem impacto neste caso.
No caso anterior, se os nós de origem e destino estivessem em grupos diferentes, o processo poderia permanecer em um grupo e visitar todos os nós do grupo, sem localizar o nó de interesse. Contudo, em algum momento, o processo de busca retornaria (por causa da memória) e passaria para outro grupo. Note que isso aumenta o tamanho do caminho, mas a memória garante que o nó será localizado. Já no processo de encaminhamento, o processo pode ficar "preso" em um grupo ao qual o nó de destino não pertence, fazendo com que se possa visitar reiteradamente os mesmos nós do grupo sem nunca sair dele. Isso ajuda a explicar a alta taxa de falhas das redes GWS.
Agora vejamos o resultado mais surpreendente.
Os histogramas abaixo mostram a relação entre o tamanho dos caminhos encontrados pelos processos de encaminhamento e o menor caminho em cada uma das redes. Como se pode ver, de modo geral, estes processos conseguem encontrar caminhos ainda menores do que os encontrados pelos processos de busca anteriormente introduzidos.
Comentários
Postar um comentário