AABGs Baseados em Árvore Spanning Minimal
Algoritmo 3.6 Descrição do Algoritmo ASM-TXE.
Para um melhor entendimento do Algoritmo 3.6, os passos de remoção de arestas da ASM da Figura 3.5 são exemplificados.
Os pesos das arestas na ASM da Figura 3.5 seguem a seguinte ordem descrescente: w(e5), w(e2), w(e8), w(e4), w(e3), w(e6), w(e7), w(e1). A Tabela 3.2 mostra os resultados das
taxas de erros calculados a cada iteração. Note que na segunda iteração a taxa_erro 50%
Procedure Agrupamento_ASM_TXE(CD)
{entrada: CD: Conjunto de dados CD = {d1, d2,..., dn}, |CD| = n.
saída: AG: Agrupamento AG = {G1, G2, ... Gk} um conjunto contendo as
componentes conexas do grafo construído pelo algoritmo - cada componente conexa é um grupo do agrupamento obtido.}
begin
Gi Cria_Grafo_Completo(CD)
GASM = (V, E) Cria_ASM (Gi) {ASM_Kruskal(Gi) ou ASM_Prim(Gi, r)}
Eord Ordena_Arestas(GASM) {ordem decrescente de seus pesos}
i 1
termina false
while i < |Eord| and not termina do
begin
taxa_erro Calcula_Taxa(ei, ei+1)
If taxa_erro 50% then begin i i 1 k i end else termina true end
GASM Remove_Arestas(k, GASM, Eord) {remove k arestas na ordem de Eord }
AG Identifica_Componentes_Conexas(GASM) end w(e1) = 2 w(e2) = 15 w(e3) = 4 w(e4) = 5 w(e5) = 21 w(e6) = 4 w(e7) = 3 w(e8) = 6
e, portanto, duas arestas serão removidas do conjunto de arestas organizado em ordem decrescente, ou seja w(e5) e w(e2) serão retiradas de ASM e três grupos serão evidenciados.
Tabela 3.2 Cálculo de taxa_erro para a ASM da Figura 3.5, usando o ASM-TXE.
iteração taxa_erro
1 15
21 × 100% = 71%
2 6
15 × 100% = 40%
3.5 AABG Baseado em ASM com Estrutura de Escala Livre
3.5.1 Estrutura de Escala Livre – Considerações Iniciais
A topologia da estrutura de escala livre é caracterizada por focalizar vértices que possuem um alto grau de conectividade (chamados de hubs) i.e., vértices que estejam ligados por meio de um número elevado de arestas a vértices com baixo grau de conectividade. Essa estrutura, devido à sua propriedade particular de representação do grafo, é utilizada para modelar redes em diversas áreas, tais como a Internet, redes sociais e de redes de computadores.
O modelo de redes de escala livre mais conhecido é o modelo de Barabási-Albert [Barabási & Albert 1999] que utiliza o conceito de crescimento incremental e preferencial. O crescimento incremental permite que um grafo aleatório com n vértices possua uma topologia de rede aberta em que, continuamente, um novo vértice v é acrescentado ao grafo. A adição de v, entretanto, é feita por meio de uma conexão preferencial, ligando v a um vértice específico do grafo. No modelo matemático de construção da rede de escala livre, proposto por Barabási-Albert, a probabilidade de um novo vértice ser conectado a um vértice v é dada pela razão entre o número atual de conexões de v e o número total de conexões da rede. Ou seja, a conexão é preferencialmente feita com os vértices de alto grau de conectividade. Este modelo tornou-se a base de estudo das propriedades das redes de escala livre.
3.5.2 O Algoritmo de Agrupamento para a Indução de Grafo com
Estrutura de Escala Livre
O método de agrupamento que induz um grafo com estrutura de escala livre (Clustering with Minimum Spanning Tree of Scale-free Structure- SFASM), proposto em [Päivinen 2005], é baseado no conceito de árvore spanning mínima. O grafo induzido pelo algoritmo possui uma única componente conexa que deve ser interpretada da seguinte maneira: vértices com alto grau de conectividade representam centros de grupos que contém todos os vértices conectados a este hub. Na representação gráfica do grafo, as arestas representadas por longos segmentos de reta, são interpretadas como ligando vértices que não pertencem a nenhum dos grupos induzidos pelo algoritmo.
O algoritmo para a indução do grafo com estrutura de escala livre baseia-se no algoritmo de Prim (utilizado para a construção da ASM). Seus passos estão descritos no Algoritmo 3.7, no qual o grafo GSFASM = (S, P) é determinado pelo conjunto de vértices S e pelo conjunto de arestas P. Inicialmente o conjunto de aresta E é construído pela função Inicializa_E() com todas as possíveis arestas entre os vértices pertencentes ao conjunto de dados CD. A matriz D é calculada por meio do cálculo da distância euclidiana entre todos os pares formados a partir dos n dados ou vértices (função Inicializa_Distancia() em Algoritmo 3.7). A matriz de distância reversa W é então inicializada (função Inicializa_Distancia_Reversa() em Algoritmo 3.7) conforme mostra Equação (3.5).
W[di][dj] = max(D) D[di][dj], i = 1..n e j = 1 .. n (3.5)
O vértice di com maior peso em relação à dj corresponde a menor distância
euclidiana entre di e dj. O algoritmo sempre escolhe o vértice com maior peso através da
função Seleciona_Maior_Peso(E, S), mantendo a conectividade do GSFASM e evitando a formação de ciclos.
As modificações no algoritmo de Prim, responsáveis pela estrutura diferenciada da ASM, são relativas à utilização de uma matriz com os valores das distâncias reversas entre os vértices W e o procedimento de atualização dos pesos das arestas. A atualização dos pesos permite o crescimento preferencial do grafo e é controlada por um parâmetro de entrada na, fornecido pelo usuário. O parâmetro na é utilizado para verificar se um vértice
peso de um vértice di em relação a todos os possíveis vértices dj ao qual di pode se conectar,
é dada pela Equação (3.6). A equação mostra que o ganho no peso (representado pela expressão na cna) de um vértice d é levemente aumentado de acordo com o número de arestas na de d, e é diminuído quando na de d for suficiente. O parâmetro c é dado como entrada pelo usuário e preferencialmente tem o seu valor entre 0,5 e 1
W[di][dj] = W[di][dj] + na cna (3.6)
O procedimento Atualiza_Peso() do Algoritmo 3.7 é necessário para a formação da topologia de escala livre pois toda conexão tem um efeito no peso de um determinado vértice d, fazendo com que outros vértices próximos a v tenham preferência pela conexão com d.
O valor ideal para o parâmetro na, determinado empiricamente, é 3, indicando que um vértice do GSFASM precisa ter pelo menos 3 arestas para que haja atualização de seu peso. Os valores do parâmetro c podem ser analisados da seguinte maneira:
c = 1, a estrutura do grafo tenderá a representar um único hub pois o ganho do peso sempre crescerá, conforme o aumento do número de arestas de um vértice.
c = 0,1, a estrutura do grafo tenderá a representar uma ASM já que os pesos não tem um significativo ganho no peso.
c = 0,5, é um valor ideal, pois o ganho do peso tende a diminuir quando o vértice possuir 10 arestas.
O Algoritmo 3.7 não constrói a usual rede de escala livre uma vez que o procedimento não é aleatório; cada vértice é escolhido pelo seu maior peso e pela sua conectividade com o grafo, de forma a manter a estrutura de árvore.
Algoritmo 3.7 Descrição do Algoritmo SFASM.