Probabilísticos

Uma das desvantagens na utilização de algoritmos puramente determinísticos é que, dependendo do algoritmo implementado, algumas poucas variações em horários de conexão e duração de oportunidades de roteamento podem fazer com que seu desempenho caia consideravelmente, comprometendo o funcionamento adequado de toda a DTN. Uma excelente otimização em momentos em que tudo ocorre como o esperado pode apresentar resultados piores do que se não fosse utilizada tal otimização em momentos de instabilidade ou incerteza nas informações que ele utiliza sobre a conexão dos nós da rede.

Com isso, uma das formas de tornar o algoritmo de roteamento mais tolerante a flutuações imprevistas é não mais lidar com janelas de tempo em que espera-se que conexão e atraso estejam devidamente estabelecidos, mas sim com probabilidades de que a oportunidade de conexão ocorra em cada instante. Por essa natureza, algoritmos desse tipo são chamados de algoritmos probabilísticos, ou algoritmos estocásticos.

Diferentemente dos não probabilísticos, que baseiam-se em janelas em que a comunicação entre dois nós podem ocorrer com início e fim bem definidos, os algoritmos não determinísticos baseiam-se em uma função de distribuição de probabilidade ao longo do tempo, que relaciona cada instante a uma chance de a conexão estar ativa. Por exemplo, em vez de definirmos que haverá conexão constante e determinística entre A e B entre os instantes t e u, podemos definir que a probabilidade existir conexão entre A e B era 0 antes do instante t e cresce seguindo uma distribuição distribuição Poisson até que no instante t, a chance de ter ocorrido conexão sem 100%.

Outra vantagem dessa abordagem é que as probabilidades utilizadas pelo algoritmo para o cálculo das rotas e de quais pacotes enviar podem não estar relacionadas apenas com a conexão de um nó na rede, mas também podem guardar sem calculadas de forma a representar a taxa de sucesso de um eventual envio de pacotes. Assim, o roteador, com aplicação de algumas multiplicações e funções matemáticas, passa a computar rotas e instantes no tempo que maximizam as chances de sucesso de transmitir uma mensagem.

Uma das formas de obter modelos para futuras conexões e atrasos em um DTN é, por exemplo, mantendo registro e observando conexões e atrasos no passado.

Por outro lado, podemos perceber como desvantagem da utilização de algoritmos probabilísticos que o não determinismo dificulta ou até mesmo impossibilita prever qual rota será preferida no envio de um pacote. Uma de suas consequências é que, havendo pouco ou nenhum conhecimento sobre os caminhos possíveis pela rede, a realização de balanceamento de carga ou Qualidade de Serviço (do inglês, Quality of Service ou QoS) perdem sentido. O uso de métricas ou a avaliação dos efeitos de melhorias ou decrementos em um enlace da rede também passam a ter comportamento de difícil previsão

Rede utilizando algoritmo ZERO

Exemplo de uma rede que utiliza o algoritmo probabilístico "ZERO". Nele, podemos observar a atribuição de valores de probabilidade de sucesso apra cada nó e cada enlace da topologia.
Imagem extraída de: Xavier, Vilajosana et al. "ZERO: Probabilistic Routing for Deploy and Forget Wireless Sensor Networks". Sensors, 2010.