2.3 Modelos de redes
2.3.5 Propriedades do modelo de Barab´asi e Albert
A. Tamanho do caminho m´edio
Comparando o tamanho do caminho m´edio da rede de Barab´asi-Albert com o tamanho do caminho m´edio de uma rede aleat´oria de mesmo tamanho e mesma conectividade m´edia, vemos que na rede de Barab´asi-Albert o tamanho do caminho m´edio ´e menor para qualquer valor de N . Tal diferen¸ca ´e exibida na Figura 2.11 que mostra o tamanho do caminho m´edio da rede de Barab´asi-Albert com uma conectividade m´edia hki = 4 como uma fun¸c˜ao de uma rede de tamanho N , indicando que a heterogeneidades da topologia de redes livres de escala ´e mais eficiente em aproximar n´os que a topologia homogˆenea de redes aleat´orias. O tamanho do caminho m´edio da rede de Barab´asi-Albert cresce aproximadamente de forma logar´ıtmica com N ,
30
mostrando o efeito de mundo pequeno presente na rede de Barab´asi-Albert.
Figura 2.11: Caracter´ıstica do caminho m´edio l pelo tamanho N da rede de Barab´asi-Albert com hki = 4, comparada com um grafo aleat´orio de mesmo tamanho e mesma conectividade m´edia. Figura retirada da ref. [26].
B. Coeficiente de agrega¸c˜ao
O coeficiente de agrega¸c˜ao da rede de Barab´asi-Albert com conectividade m´edia hki = 4 comparada com o coeficiente de agrega¸c˜ao Crand = hki /N para redes aleat´orias, ´e mostrada
na Figura 2.12, onde o coeficiente de agrega¸c˜ao de redes livres de escala e cerca de 5 vezes maior que o de uma rede aleat´oria, e esse fator aumenta lentamente com o n´umero de n´os. Entretanto, o coeficiente de agrega¸c˜ao do modelo de Barab´asi-Albert diminui com o tamanho da rede, seguindo aproximadamente uma lei de potˆencia C ≈ N−0.75 enquanto que para grafos
aleat´orios o coeficiente de agrega¸c˜ao ´e de C = hki N−1, e ainda ´e diferente do comportamento
Figura 2.12: Coeficiente de agrega¸c˜ao pelo tamanho da rede de (BA) com hki = 4, comparada com o coeficiente de agrega¸c˜ao de um grafo aleat´orio com Crand≈ hki /N. Figura retirada da ref. [26].
Cap´ıtulo 3
O problema do caminho m´ınimo
3.1
Introdu¸c˜ao
Em teoria dos grafos, o problema do caminho m´ınimo ou problema do caminho mais curto consiste em minimizar o custo da travessia entre dois v´ertices quaisquer de um grafo [7]. Em tal problema temos um grafo G = (V, E), onde V ´e o conjunto de v´ertices e E ´e o conjunto de arestas (u; v), sendo cada aresta (u; v) orientada do v´ertice u para o v´ertice v. A cada aresta (u; v) ´e atribu´ıda uma fun¸c˜ao peso w(u; v) : E → ℜ, onde o peso do caminho p =< v0, v1, ..., vk−1, vk> ser´a a soma dos pesos de todas as arestas pertencentes ao grafo G,
w(u; v) = w(v0, v1, ..., vk−1, vk) = k
X
i=1
w(vi−1, vi) (3.1)
Definimos o peso do caminho mais curto δ de u para v como sendo:
δ(u, v) = (
minnw(p):u → vp o se h´a um caminho de u para v
∞ de outro modo (3.2)
Assim, o caminho mais curto do v´ertice u para o v´ertice v ser´a definido como qualquer caminho p com peso w(p) = δ(u; v).
Um exemplo pr´atico do problema do caminho m´ınimo ´e que se imaginarmos duas cidades, A e B, onde as mesmas s˜ao ligadas por rotas, sendo que cada rota ´e composta por v´arios trechos, calculamos o caminho de menor distˆancia entre as duas cidades, conhecendo-se os trechos adjacentes de todas as rotas. Assim podemos resolver tal problema de uma maneira bem simples, tentando todos os caminhos poss´ıveis at´e descobrirmos o mais curto entre as
duas cidades. Mas, quando o n´umero de rotas ´e muito grande, esta forma de solu¸c˜ao se tornar´a invi´avel. Afim de facilitar o problema, podemos excluir rotas com ciclos ou mesmo rotas que se afastam demais das cidades. S˜ao id´eias como essas que v´arios algoritmos de busca de menores caminhos utilizam para resolver o problema de maneira mais eficiente.
Na Figura 3.1, mostramos duas cidades citadas no exemplo anterior, consideramos os v´ertices como as intersec¸c˜oes entre os trechos, as arestas como os trechos e os pesos como os comprimentos de cada trecho. Poder´ıamos tamb´em exemplificar o problema do menor caminho de tal forma que os pesos fossem dados por uma outra fun¸c˜ao, como por exemplo, o tempo gasto para percorrer cada trecho.
Figura 3.1: Grafo das rotas entre as cidades A e B. Os v´ertices s˜ao as cidades, as arestas s˜ao os trechos entre as cidades com seus respectivos pesos dados em Km. As arestas tracejadas em vermelho formam um dos menores caminhos.
H´a algumas variantes do problema do caminho mais curto. As principais s˜ao as seguintes: • Encontrar o caminho mais curto entre um v´ertice fonte s ∈ V para todos os outros
v´ertices v ∈ V ,
• Encontrar o caminho mais curto at´e um determinado v´ertice de destino t ∈ V a partir de cada v´ertice v ∈ V ,
34
• Encontrar o caminho mais curto desde u at´e v para todos os pares de v´ertices u e v. O caminho mais curto de um v´ertice u para um v´ertice v sempre ser´a bem definido quando estamos lidando com pesos que s˜ao positivos, j´a para pesos que s˜ao negativos, o caminho mais curto s´o ´e bem definido caso o grafo G(V, E) n˜ao contenha nenhum ciclo de pesos negativos alcan¸c´aveis a partir do v´ertice origem u. Alguns algoritmos, como o algoritmo de Dijkstra [7], consideram que todos os pesos em um grafo s˜ao sempre positivos, outros, como o algoritmo de Bellman-Ford [7], trabalham com a possibilidade de haver pesos negativos. Lembremos que no problema do caminho mais curto os pesos podem ser positivos e/ou negativos.
Al´em de calcularmos o peso do caminho mais curto tamb´em ´e necess´ario calcular os v´ertices que comp˜oe o caminho mais curto, para isso, dado um grafo G(V ; E), mantemos para cada v´ertice v ∈ V um predecessor π[v] que ser´a nulo ou igual ao v´ertice anterior `a v. Assim, na execu¸c˜ao do algoritmo de caminhos mais curtos n˜ao ´e necess´ario que os valores de π indiquem os caminhos mais curtos, pois nesse caso estamos interessados no subgrafo predecessor Gπ = (Vπ; Eπ) induzido pelos valores de π. Logo, o conjunto de v´ertices Vπ ´e um
conjunto de v´ertices de G com predecessores n˜ao nulos, incluindo a origem s:
Vπ = {v ∈ V : π[v] 6= nulo} ∪ {s} (3.3)
Sendo Eπ o conjunto de arestas induzidas pelos valores π correspondentes aos v´ertices Vπ:
Eπ = {(π[v], v) ∈ E : v ∈ Vπ− {s}} (3.4)
Uma ´arvore de caminhos mais curtos enraizada no v´ertice s pode ser interpretada como um sub-grafo de antecessores G′ = (V′ , E′ ) onde V′ ⊆ V e E′ ⊆ E, tal que 1. V′
´e o conjunto de v´ertices acess´ıveis a partir de s em G. 2. G′
forma uma ´arvore enraizada com raiz no v´ertice s, e 3. Para todo v pertencente V′
, o ´unico caminho desde o v´ertice s at´e o v´ertice v em G′
´e o caminho mais curto desde s at´e v em G.