You are on page 1of 8

Relatório de Iniciação

Científica
Título: “Detecção de Comunidades Baseada na
Competição e Cooperação de Partículas”

Discente: Douglas Eduardo Parra


Orientador: Prof. Dr. Marcos Gonçalves Quiles
Curso: Ciências da Computação

São José dos Campos


Fevereiro de 2011
1 – Identificação
• Nome do Bolsista: Douglas Eduardo Parra
• Nome do Orientador: Prof. Dr. Marcos Gonçalves Quiles
• Local de execução: Unifesp – Campus São José dos Campos
• Período de Vigência: Setembro/2010 a Junho/2011
• Título do Projeto: “Detecção de Comunidades Baseada na Competição e
Cooperação de Partículas”

2 – Introdução
Na última década do século XX, com a publicação de novas descobertas
relacionadas ao conceito de redes (grafos), um novo tema de pesquisa, denominado
redes complexas, foi estabelecido e desde então tem revolucionado não apenas as
teorias de redes, mas também diversas ciências [1]. Dentre as muitas propriedades que
podem ser extraídas / estudadas em diversas redes complexas, uma característica
notável é a presença de estruturas modulares locais conhecidas como comunidades [3,
8]. Tais comunidades podem ser definidas como grupos de vértices da rede densamente
conectados, enquanto que conexões entre vértices pertencentes a grupos (comunidades)
diferentes são esparsas [9]. Essas comunidades representam padrões de interação entre
os vértices da rede e sua identificação é importante no entendimento dos mecanismos de
crescimento e formação desta [2]. Além disso, um fator importante referente à estrutura
das comunidades está na similaridade das características dos vértices que as compõem.
Assim, por meio da identificação e estudo das comunidades é possível obter
informações pertinentes ao domínio da rede. Por exemplo, observando-se a estrutura de
ligações entre páginas da World Wide Web é possível constatar que páginas descrevendo
tópicos relacionados tendem a ser mais densamente conectadas entre si do que com o
restante da rede [4]. Esta propriedade também é compartilhada por redes reais
provenientes de outros domínios, como redes biológicas [7], rotas de transporte aéreo
[6], redes metabólicas [5], dentre outras.
O processo de detecção de comunidades em uma rede não é
computacionalmente trivial. Por exemplo, o problema de dividir um grafo em duas
partes de mesmo tamanho de tal forma que número de arestas ligando estas partes seja
mínimo é definido como um problema NP-Completo [3]. Para complicar ainda mais
este problema, que pode ser visto como um caso simples da tarefa de detecção de
comunidades, as redes reais podem ser compostas por um número não conhecido de
comunidades e não apenas duas como no caso anterior. Além disso, as comunidades por
si só podem ser definidas por estruturas hierárquicas na qual uma comunidade é
formada por outras sub-comunidades aninhadas [3, 11]. Devido a importância do
problema e a dificuldade computacional em sua solução, diversos autores têm proposto
modelos computacionais para realizar de forma automática a detecção de comunidades
em redes complexas. Entretanto, a precisão no processo de detecção das comunidades e
a complexidade computacional desses algoritmos podem ser vistas como características
antagônicas, na qual os modelos que apresentam alta eficiência computacional
geralmente apresentam uma baixa precisão. Por outro lado, modelos com alta precisão
demandam um alto custo de processamento [3].
Recentemente foi proposto por Quiles et al. [10] um novo modelo de detecção
de comunidades baseado em competição de partículas. Neste modelo, diversas
partículas caminham em uma rede competindo entre si para marcar seus vértices. Ao
mesmo tempo, partículas intrusas são repelidas ao entrarem em territórios pertencentes a
outras partículas. Após algum tempo de execução, cada partícula se isola permanecendo
confinada dentro de uma comunidade da rede. Desta forma, observando a partícula que
ocupa os vértices, é possível identificar as comunidades. Este modelo apresenta uma
alta precisão mantendo um custo computacional baixo, sendo este último item um ponto
crítico de outras técnicas de detecção de comunidade [3].
Entretanto, o modelo proposto em [10] ainda apresenta algumas limitações que
necessitam ser investigadas, como por exemplo:

• Apenas redes sem peso foram consideradas. Assim, o modelo poderia ser
estendido de tal forma a considerar outras formas de redes, como redes
com pesos e redes direcionadas;
• Não permite o tratamento de comunidades hierárquicas;
• A dinâmica por trás do processo de detecção de comunidades é um fator
positivo, possibilitando que este seja aplicado em redes cuja a estrutura
não é estática, isto é, redes onde novas arestas ou vértices podem ser
inseridos ou mesmo removidos ao longo do tempo. Porém, este fato
ainda não foi investigado;
• Apenas uma partícula é utilizada para definir cada comunidade na rede.
Um mecanismo de cooperação de partículas poderia ser considerado com
objetivo de melhorar a eficiência no processo de detecção;
• O número de comunidades deve ser informado a priori. Embora o
número de comunidades possa ser estimado através de aplicações
sucessivas do modelo variando o número de partículas, este processo não
é vantajoso computacionalmente. Desta forma, a geração do número
automático de partículas (comunidades) representaria uma importante
extensão do modelo original;
• O critério de parada do algoritmo não é completamente estabelecido.

Desta forma, a investigação dessas limitações mencionadas pode resultar na


elaboração de um modelo mais eficiente ou mais geral que o modelo de competição
original.
Os seguintes objetivos apresentados em ordem decrescente de prioridade foram
estabelecidos:

1. Introduzir um mecanismo de cooperação de partículas com o objetivo de


melhorar a eficiência computacional do modelo;
2. Adaptar o modelo para tratar redes gerais (redes com pesos e redes com
arestas direcionadas);
3. Permitir que o número de partículas se adapte automaticamente, permitindo
que o algoritmo identifique, segundo algum critério fornecido, o número de
comunidades presentes na rede. Esta adaptação automática também pode permitir que
comunidades hierarquicamente configuradas sejam detectadas.

As atividades desenvolvidas se resumem ao estudo do Modelo de Competição de


Partículas, assim como a leitura de toda a bibliografia, implementação do gerador de
Redes Sintéticas e, o que está por vir, o estudo e implementação das modificações do
modelo original e futuros testes utilizando as redes sintéticas.
3 - Material e Métodos

Este projeto tem sido realizado utilizando-se estritamente um computador para a


programação do Modelo de Competição de Partículas, na linguagem Java, por meio do
ambiente de programação Eclipse Ganymede e NetBeans 6.9.1. Além deles, a biblioteca
Java Jung, para visualização de grafos, foi incluída no projeto.
Primeiramente, foi estudado o modelo de partículas proposto por Quiles et. al
[10] e, junto a esse estudo, também o da biblioteca Jung mencionada. Antes, contudo,
de implementar o modelo, foi visto o conceito de Redes Sintéticas, aplicando-se na
prática um programa simples que gera randomicamente tais redes, e, somente então,
utilizando das ferramentas citadas, o modelo citado em [10] foi desenvolvido.
A fase atual do projeto está no desenvolvimento de uma aplicação gráfica para
demonstração dos resultados obtidos até então para, por fim, investigar e implementar
formas de contornar as limitações do Modelo de Competição de Partículas.

4 – Resultados

Os resultados obtidos até então são tanto a implementação do modelo proposto


por Quiles et. al [10], e, com o uso da biblioteca Java Jung, pode-se visualizar o modelo
de Competição de Partículas através de um grafo simples, onde cada partícula é
representada por uma cor, e, os vértices que possuem essa cor são dominadas pela
partícula respectiva, como se observa na Figura 1, abaixo:
Figura 1: Visualização do Modelo de Competição de Partículas

Então, pode-se notar que existem quatro partículas no grafo, dominando os 32


vértices existentes. O mesmo modelo atualmente pode ser aplicado facilmente com
maior número tanto de vértices quanto de partículas. Entretanto, para uma melhor
visualização futura, será feito o agrupamento de vértices que possuem a mesma
partícula dominadora em cada canto do grafo, tornando mais fácil a visualização
completa.

5 - Discussão / Conclusões
Esses resultados até o presente momento indicam que, pronto o Modelo de
Competição de Partículas proposto no início do projeto e também a visualização do
mesmo, pode-se então avançar para o estudo e implementação das modificações que
tornarão este Modelo, um mais geral, no qual se espera uma melhora na eficiência
computacional, além de tratar redes gerais, ou seja, com pesos e/ou arestas direcionadas,
e também permitir que o número de partículas se adapte automaticamente, sem a
necessidade da informação prévia de quantas comunidades deverão existir, por meio de
algum critério existente no algoritmo.
Até então, notou-se algumas dificuldades em trabalhar mais com a biblioteca
Java Jung do que com o Modelo de Competição de Partículas em si, além da interface
gráfica que está sendo desenvolvida atualmente para facilitar a demonstração do
modelo.
Apesar desses pontos, espera-se que até o final do período de vigência da
Iniciação Científica as adaptações requeridas no modelo estejam desenvolvidas,
melhorando o modelo atual.

6 – Bibliografia
[1] Barabási, A.-L. (2003). Linked: How Everything Is Connected to Everything
Else and What It Means. Plume.

[2] Clauset, A. (2005). Finding local community structure in networks. Physical


Review E 72, 026132(1-6).

[3] Danon, L., A. Díaz-Guilera, J. Duch, and A. Arenas (2005). Comparing


community structure identification. Journal of Statistical Mechanics: Theory and
Experiment P09008, 1-10.

[4] Flake, G. W., S. Lawrence, C. L. Giles, and F. M. Coetzee (2002). Self-


organization and identication of web communities. IEEE Computer 35 (3), 66-70.

[5] Guimerà, R. and L. A. N. Amaral (2005). Functional cartography of complex


metabolic networks. Nature 433, 895-900.

[6] Guimerà, R., S. Mossa, A. Turtschi, and L. A. N. Amaral (2003). The


worldwide air transportation network: Anomalous centrality, community structure, and
cities' global roles. Proceedings of the National Academy of Sciences of the USA 102
(22), 7704-7709.
[7] Jeong, H., B. Tombor, R. Albert, Z. N. Oltvai, and A.-L. Barabási (2000).
The large scale organization of metabolic networks. Nature 407, 651-654.

[8] Newman, M. E. J. (2004). Detecting community structure in networks. The


European Physical Journal B 38, 321-330.

[9] Newman, M. E. J. and M. Girvan (2004). Finding and evaluating community


structure in networks. Physical Review E 69, 026113(1-15).

[10] Quiles, M. G., L. Zhao, R. L. Alonso, and R. A. F. Romero (2008). Particle


competition for complex network community detection. Chaos (Woodbury) 18, 1-10
(DOI: 10.1063/1.2956982).

[11] Ravasz, E. and A.-L. Barabasi (2003). Hierarchical organization in complex


networks. Physical Review E 67, 026112(1-7).

7 – Apoio
O projeto teve o financiamento do Conselho Nacional de Desenvolvimento
Científico e Tecnológico (CNPq).