Aplicação da metaheurística GRASP com uso da técnica de reconexão por caminhos para o problema de Clusterização Automática em Grafos

Documentos relacionados
Desenvolvimento e Análise Experimental de Algoritmos Evolutivos para o Problema de Clusterização Automática em Grafos Orientados

Desenvolvimento e Análise Experimental de Algoritmos Evolutivos para o Problema da Clusterização Automática

HEURÍSTICA BASEADA EM BUSCA LOCAL ITERADA PARA A RESOLUÇÃO DO PROBLEMA DE AGRUPAMENTO DE SISTEMAS ORIENTADOS A OBJETOS

HEURÍSTICAS GRASP PARA O PROBLEMA DE ALOCAÇÃO DINÂMICA DE ESPAÇOS

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Problemas de otimização

Estudo sobre o Tamanho dos Clusters e seus Efeitos no Cálculo do MQ

Uma Introdução à Busca Tabu André Gomes

5 VNS com Filtro e Reconexão por Caminhos

Universidade Federal Fluminense

Fabiano Vieira de Alvarenga, Marcelo Lisboa Rocha

Um GRASP Simples e Robusto para o Job Shop Scheduling Problem

UM ALGORITMO EVOLUTIVO HÍBRIDO APLICADO AO PROBLEMA DE CLUSTERIZAÇÃO EM GRAFOS COM RESTRIÇÕES DE CAPACIDADE E CONTIGUIDADE

Avaliação de Heurísticas de Melhoramento e da Metaheurística Busca Tabu para Solução de PRV

HEURÍSTICAS GRASP PARA O PROBLEMA DE ALOCAÇÃO DINÂMICA DE ESPAÇOS HEURISTIC GRASP TO THE PROBLEM OF ALLOCATION DYNAMICS OF SPACES

Thiago Christiano Silva

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

Análise da Performance de um Modelo de Escalonamento Baseado em Pesquisa Tabu Aplicado em um Sistema de Manufatura Flexível

EXPLORANDO A HEURÍSTICA DM-GRASP PARA O PROBLEMA DAS P-MEDIANAS

Algoritmos eficientes para o projeto de uma rede de telecomunicações com topologia em anel

RESOLUÇÃO DO PROBLEMA DAS P-MEDIANAS POR MEIO DE ALGORITMOS BASEADOS EM GRASP, ILS E MULTI-START

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

ANÁLISE DE RESULTADOS NA CONSTRUÇÃO DE ROTA PARA O PROBLEMA DO CAIXEIRO VIAJANTE

Introdução aos Problemas de Roteirização e Programação de Veículos

DETERMINAÇÃO DE FUNÇÕES DE TRANSFERÊNCIA DE PROCESSOS QUÍMICOS ATRAVÉS DO MÉTODO DE EVOLUÇÃO DIFERENCIAL UTILIZANDO O SCILAB

ALGORITMOS HEURÍSTICOS UTILIZANDO BUSCA LOCAL ALEATÓRIA EM VIZINHANÇA VARIÁVEL PARA O PROBLEMA DO CAIXEIRO VIAJANTE COM GRUPAMENTOS

Geração de Colunas Aplicada a uma Decomposição do Problema de Programação Quadrática Binária Irrestrita

GRASP com Memória Adaptativa na solução de um Problema de Roteamento de Veículos com Múltiplas Origens

Um Estudo da Aplicação de Heurísticas Construtivas e de Melhoramento para um Problema de PRV

Heurística GRASP para o problema de p-medianas aplicado à localização de concentradores

INVESTIGANDO O PROBLEMA DA MOCHILA IRRESTRITA EM SUA VERSÃO BIDIMENSIONAL

UMA METAHEURÍSTICA GRASP PARA O PROBLEMA DA ÁRVORE GERADORA DE CUSTO MÍNIMO COM GRUPAMENTOS UTILIZANDO GRAFOS FUZZY

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Proposta e Avaliação Experimental de Heurísticas GRASP para um Problema de Escalonamento de Veículos

PROPOSTA E AVALIAÇÃO DE HEURÍSTICAS GRASP PARA O PROBLEMA DA DIVERSIDADE MÁXIMA

Igor Ribeiro Sucupira (Aluno de Mestrado)

APLICAÇÃO DO MÉTODO GRASP NO PROBLEMA DE POSICIONAMENTO DE RADARES DE VIGILÂNCIA

Aplicação de uma Metaheurística GRASP para o Problema da Árvore de Steiner em Grafos Direcionados

Fundamentos de Inteligência Artificial [5COP099]

Sumário. Referências utilizadas. Introdução. MAFIA: Merging of Adaptive Finite Intervals. Introdução Visão Geral e Objetivos do MAFIA

ALGORITMO GENÉTICO PARA O PROBLEMA DA ÁRVORE GERADORA MÍNIMA GENERALIZADO

Dalessandro Soares Vianna. Heurísticas híbridas para o problema da filogenia TESE DE DOUTORADO. Informática DEPARTAMENTO DE INFORMÁTICA

GRASP com Memória Adaptativa Aplicado ao Problema de Roteamento e Scheduling de Sondas de Manutenção

OTIMIZAÇÃO DO PROJETO DE REDES URBANAS BASEADO NO PROBLEMA DE STEINER

Uma técnica bastante utilizada na abordagem de problemas NPdifíceis é a utilização de procedimentos heurísticos, como por exemplo

Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora

UM ALGORITMO HEURÍSTICO PARA O PROBLEMA DE GERENCIAMENTO DE ESCALA OPERACIONAL DE CONTROLADORES DE TRÁFEGO AÉREO

GRASP COM PATH RELINKING PARA UM PROBLEMA DE PLANEJAMENTO FLORESTAL

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Um algoritmo pseudo-periférico genérico para a heurística de Snay

Aplicação da metaheurística GRASP ao Problema do Maior Conjunto Controlado Generalizado

METAHEURÍSTICAS PARA A SOLUÇÃO DO PROBLEMA DA ÁRVORE DE COBERTURA MÍNIMA GENERALIZADO

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos

Organização. 1. Introdução 2. Medidas de Similaridade. hierárquicos, de partição) 4. Critérios numéricos para definir o número de clusters

PROPOSTA E AVALIAÇÃO DE HEURÍSTICAS GRASP PARA O PROBLEMA DA DIVERSIDADE MÁXIMA

Busca Local Iterada. Universidade Federal do Paraná UFPR Curso de Ciência da Computação CI801 Tópicos em Inteligência Artificial

Um Algoritmo de Otimização Aplicado ao Problema de Estratificação Univariada. José André de Moura Brito

O Problema da Diversidade Máxima: Proposta e

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

O PROBLEMA DA ÁRVORE CAPACITADA COM DEMANDAS NÃO- UNITÁRIAS: HEURÍSTICA COM FATOR PESO x CUSTO

Heurística VNS para o problema do corte de rotulação mínima

BCC204 - Teoria dos Grafos

HEURÍSTICA PARA O PROBLEMA DE SINTERIZAÇÃO DE LIGA METÁLICA E DIAMANTE PARA A PRODUÇÃO DE FERRAMENTAS DIAMANTADAS

Experimentos e Resultados

Algoritmo Genético: um experimento comparativo entre a execução paralela com troca de indivíduos de populações e a não paralela.

META-HEURÍSTICA CLUSTERING SEARCH APLICADA AO PROBLEMA DE ROTULAÇÃO CARTOGRÁFICA DE PONTOS

UM ALGORITMO GRASP PARA O SALBP-2

ALGORITMO DE BUSCA TABU APLICADO NA SOLUÇÃO DO PROBLEMA DE MÚLTIPLAS MOCHILAS.


METAHEURÍSTICA Encontrar soluções boas ou até mesmo ótima

Tópicos em Métodos Heurísticos META-HEURÍSTICAS

3 Extensões dos modelos matemáticos

Apresentado e Publicado nos Anais do XXXV Simpósio Brasileiro de Pesquisa Operacional

HEURÍSTICAS GRASP PARA A MINIMIZAÇÃO DO ATRASO TOTAL NO PROBLEMA DE PROGRAMAÇÃO DE TAREFAS EM UMA MÁQUINA COM SETUP TIME

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

UMA METAHEURÍSTICA HÍBRIDA GRASP+TABU PARA O PROBLEMA DE ROTEAMENTO PERIÓDICO DE UMA FROTA DE VEÍCULOS

4 Implementação Computacional

1 - INTRODUÇÃO. Tabu) [17]; Greedy Randomized Adaptive Search Procedure (GRASP) [12]; Variable

O PROBLEMA DO CICLO DOMINANTE

Pesquisa Operacional Aplicada à Mineração

GRASP para o Problema do Caixeiro Viajante com Limite de Calado

Algoritmos Genéticos e Evolucionários

1. Computação Evolutiva

apenas os caminhos que passam só por vértices em C, exceto, talvez, o próprio v A Figura 1 a seguir ilustra o significado do conjunto C edovalordist.

Problema do Caixeiro Viajante

METAHEURISTICA BUSCA TABU PARA O PROBLEMA DE COLORAÇÃO DE GRAFOS

UMA SOLUÇÃO DO PROBLEMA DE ROTEAMENTO ABERTO DE VEÍCULOS COM JANELAS DE TEMPO UTILIZANDO METAHEURÍSTICAS GRASP E ILS

PCC104 - Projeto e Análise de Algoritmos

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Algoritmo Evolutivo para o Problema de Corte de Estoque Unidimensional com Redução do Número de Padrões de Corte

Heurística GRASP-VND para o Problema de Roteamento de Veículos com Cross-Docking

Um Estudo Empírico de Hiper-Heurísticas

OTIMIZAÇÃO POR COLÔNIA DE FORMIGAS PARA O ROTEAMENTO EM REDES DE COMPUTADORES.

1. Computação Evolutiva

1. Computação Evolutiva

1 Introdução Motivação

4 GRASP com Filtro e Reconexão por Caminhos

Um Algoritmo Simulated Annealing Eficiente para o Problema de Roteamento de Veículos com Janela de Tempo

Transcrição:

Aplicação da metaheurística GRASP com uso da técnica de reconexão por caminhos para o problema de Clusterização Automática em Grafos Rodrigo de Carvalho (UFOP) rocarvalho@decea.ufop.br Geiza Cristina da Silva (UFOP) geiza@decea.ufop.br Alexandre Xavier Martins (UFOP) xmartins@decea.ufop.br Tatiana Costa Alves (UFOP) tatiana@decea.ufop.br Resumo: Esse artigo apresenta a metaheurística GRASP juntamente com a técnica de reconexão por caminhos para resolver o problema de clusterização automática em grafos direcionados e não ponderado. Tal problema consiste em organizar em subconjuntos, chamados clusters, os vértices pertencentes a um grafo, de forma que o número de arestas entre pares de vértices em clusters distintos seja minimizado, bem como, o número de arestas internas a um cluster seja maximizado. Resultados computacionais obtidos de um conjunto de instâncias da literatura mostram que o algoritmo proposto é altamente competitivo diante as heurísticas e metaheurísticas apresentadas na literatura. Palavra chave: GRASP; Clusterização; metaheurística. 1. Introdução O problema de clusterização consiste em, dado um conjunto X de elementos, agrupar (clusterizar) os elementos de X de forma tal que os elementos pertencentes a um cluster tenham a maior similaridade possível entre eles e elementos menos similares fiquem em clusters separados. O processo de clusterização tem sua devida importância em mineração de dados (BERKHIN, 2002; FASULO, 1999), aplicado de maneira a descobrir grupos caracterizados por interesses afins, assim como em problemas de roteamento de veículos (OCHI et al., 1998), formação de células de manufaturas (TRINDADE e OCHI, 2006), particionamento em grafos (DIAS e OCHI, 2003) entre outros. Existem pelo menos duas classes para o problema de clusterização. O caso mais estudado é aquele em que o número de clusters é previamente definido, conhecido como Problema de K-Clusterização ou Problema de Clusterização (PC). No outro caso, em que definir o número de clusters faz parte do problema, é conhecido na literatura como Problema de Clusterização Automática (PCA). No presente trabalho é considerado o Problema de Clusterização Automática aplicado a grafos, também referenciado na literatura como problema de particionamento de grafos. Um grafo é um par ordenado de conjuntos disjuntos (V,E), onde V é um conjunto arbitrário que se designa por conjunto dos vértices e E um subconjunto de pares não ordenados de elementos (distintos) de V que se designa por conjunto das arestas. O objetivo é particionar os vértices em clusters otimizando uma função objetivo. O PCA em grafos é um problema de otimização combinatória pertencente a classe NP- Difícil (KAUFMAN e ROUSSEUW, 1990), sendo então inviável o uso de métodos exatos em dimensões de instâncias mais elevadas em tempo computacional viável. Por esse motivo, métodos que gerem soluções aproximadas são geralmente aplicados a esse tipo de problema. 1

Um algoritmo aproximativo ou heurístico é um método de obtenção de soluções para um determinado problema que não garante que as soluções obtidas sejam necessariamente ótimas, mas que tenham proximidade do ótimo em tempo de computação viável. Dentre os mais diversos métodos heurísticos estão as metaheurísticas. As metaheurísticas são métodos que guiam outras heurísticas a fim de encontrar soluções factíveis para problemas particulares, elas têm se mostrado bastante eficientes em se tratando dos fatores de qualidade de solução e tempo computacional. Em uma revisão bibliográfica constata-se que trabalhos com abordagem metaheurística para o PCA empregam os Algoritmos Genéticos (AG) (DIAS e OCHI, 2003; CHIUN e LAN, 2001; DOVAL et al., 1999; COLE, 1998; MAINI et al., 1994). Em DOVAL et al. (1999) foi proposto um algoritmo genético (AG) tradicional para obter de forma automática, um bom particionamento em grafo de dependências de módulos, MDG (Module Dependency Graph). Um MDG é uma estrutura utilizada por projetistas de softwares para tornarem sistemas complexos mais compreensíveis e corresponde a um grafo orientado onde os módulos são representados pelos vértices, e a dependência entres os módulos pelas arestas. A partir da verificação de desempenho dos algoritmos Genéticos disponíveis na literatura apresentados por DOVAL et al. (1999), DIAS (2004), fez uso de diferentes propostas para o aperfeiçoamento de um AG para o PCA em grafos, e que podem ser estendidas para outras aplicações, a fim de tentar achar soluções de qualidade sem o aumento significativo do tempo. O objetivo desse trabalho é o de verificar o desempenho da metaheuristica GRASP com a técnica de reconexão por caminhos para o PCA. A escolha dessa metodologia é embasada nos bons resultados já alcançados quando aplicada a problemas de dificuldade semelhante, como pode ser visto em COSTA et al. (2005), SILVA et al. (2007), DUARTE e MARTÍ (2007) e MARTINS et al. (2008). Este trabalho está organizado como segue. Na próxima seção, o Problema de Clusterização Automática em grafos é detalhado. Na seção 3 é apresentada a metodologia utilizada. A seção 4 apresenta os resultados computacionais fazendo uma análise comparativa diante aos resultados reportados em DIAS (2004). Finalmente, a seção 5 conclui o trabalho. 2. Problema de Clusterização Automática em grafos O problema de clusterização automática em grafos consiste em dado um grafo G (V, E), sendo V o número de vértices e E o número de arestas, dividir os vértices de V em K subconjuntos disjuntos, ou clusters, otimizando alguma função de avaliação, onde K não é conhecido, e pode variar de 1 até o número total de vértices. Quando existe a restrição de que a diferença de cardinalidade entre o maior e menor cluster deve ser de, no máximo, uma unidade, o problema é conhecido como particionamento balanceado de grafo. Os grafos bi-particionados são, também, de grande interesse na área de Teoria dos Grafos. Um grafo é bi-partido quando o número de clusters é exatamente igual a dois (NETTO, 2003). Em BATTITI et al. (1999), o problema consiste em particionar o conjunto de vértices do grafo em k clusters disjuntos e com a mesma cardinalidade, de forma que o total de arestas da qual participam pares de vértices de diferentes clusters seja minimizado. O problema abordado neste trabalho corresponde à clusterização automática considerando grafos orientados e sem peso nas arestas. O objetivo é o de agrupar os vértices do grafo de maneira que seja minimizado o número de arestas entre pares de vértices que 2

estão em clusters distintos, assim como, que seja maximizado o número de arestas internas a um cluster (Doval et al., 1999). Algumas restrições devem ser obedecidas para que uma instância seja considerada clusterizada. k U i= 1 c i = X. (1) c i, i k; (2) c i c j =, i k, j k e i k; (3) A equação 1 indica que todo vértice de uma instância deve ser atribuído a um cluster existente. A equação 2 restringe que todo cluster criado possua no mínimo um vértice atribuído a ele e a equação 3 garante que um vértice é atribuído a somente um cluster. É necessário, no problema, que seja estabelecida uma medida de similaridade, pois é a partir desta que se deve determinar como os elementos de uma mesma instância devem ser distribuídos entre os clusters. A maneira de medir a similaridade depende muito do problema a ser tratado. Nesse trabalho é utilizada uma medida apresentada por DOVAL et al. (1999), denominada Qualidade de Modularização (MQ Modularization Quality). Esta medida leva em consideração a quantidade de arcos internos interligando vértices em um mesmo cluster e a quantidade de arcos interligando vértices entre clusters distintos. Essa medida será adotada como função de avaliação e será mais detalhada ao decorrer do trabalho. A Figura 1 mostra o exemplo de um grafo com 9 vértices e 14 arestas e duas possíveis clusterizações. É perceptível que, segundo o critério acima, a primeira é melhor que a segunda, onde cada cluster é caracterizado pela linha delimitando um espaço. FIGURA 1 Exemplo de um grafo não ponderado e direcionado. 3. Metodologia Nesta seção é apresentada a forma de representação computacional de uma solução para o problema, assim como, a estrutura de vizinhança, função de avaliação e o algoritmo GRASP com reconexão por caminhos proposto. 3

3.1 Representação computacional O esquema de codificação utilizado nesse trabalho, é conhecido como group-number, no qual um vetor de n inteiros é usado para representar uma clusterização de n elementos. Neste vetor, a i-ésima posição do vetor indica o número do cluster do i-ésimo elemento (COLE, 1998). A Figura 2 mostra um exemplo de uma codificação:... FIGURA 2 Representação computacional para o problema de clusterização. 3.2 Estrutura de vizinhança Seja s uma solução para o PCA, é necessário definir uma estrutura de vizinhança, ou seja, uma função F, na qual podemos chegar a s' através de uma modificação, geralmente chamada de movimento. Nesse problema a nossa função F(s) F(s') apenas troca um vértice de cluster, a Figura 3 mostra um exemplo de como é feita essa troca, o vértice de número 5, quinta posição do vetor, é trocado do cluster 1 para o 7. FIGURA 3 Exemplo de movimento 3.3 Função de Avaliação Como já citado anteriormente, é utilizada para avaliação de uma solução a função MQ que considera outras duas funções para calcular a modularidade de uma determinada instância: uma que calcula a intraconectividade de um cluster (A i ), ou seja, o grau de conectividade interna de um cluster e outra, que calcula a interconectividade entre clusters (B ij ), que corresponde ao grau de conectividade entre dois clusters. A intraconectividade de um cluster i, é calculado por: A µ i N i =, onde µ i é o total de i 2 arcos internos do cluster i e N i o total de vértices pertencentes a esse cluster. O valor de A i pode variar entre 0 e 1. A inter-conectividade, B ij, grau de conectividade entre dois 0 se i = j clusters, i e j, é calculada por: B = ε ij ij se i j 2 N i N j 4

,onde ε ij é o total de arcos entre o cluster i e j, N i e N j o total de vértices dos clusters i e j respectivamente. O valor de B ij pode variar de 0 a 1; A função MQ considera a intraconectividade total e a interconectividade total de uma k k i= 1 Ai i, j= 1Bij k > 1 solução, e é defina como: MQ = k k( k 1), onde k é o total de 2 A se k = 1 i clusters formados na solução. O valor de MQ corresponde a diferença entre a média da intra-conectividade e da média de inter-conectividade quando existe mais de um cluster na solução, podendo variar de -1 a 1. Se somente um cluster for criado, o valor de MQ é igual ao valor da interconectividade da instância, podendo variar de 0 a 1. Tendo em vista que a função MQ penaliza a dependência, conexão, entre clusters e premia a formação de clusters bem coesos, de forte inter-conectividade, iremos utilizar a função MQ tendo como objetivo sua maximização. A Figura 4 apresenta um exemplo de avaliação da função MQ com diferentes configurações de clusterizações. 3.4 GRASP com reconexão por caminhos A metaheurística GRASP foi proposta em 1995 por FEO e RESENDE (1995) e tem se mostrado uma das melhores heurísticas da literatura (DUARTE e MARTÍ, 2007; SILVA et al., 2007; SILVA et al., 2006; LAGUNA e MARTÍ, 1999). GRASP é um método iterativo onde cada iteração é composta de duas etapas: construção de uma solução e busca local. A fase de construção do GRASP é iterativa, gulosa, randômica e adaptativa. Ela é iterativa porque constrói uma solução elemento a elemento e é adaptativa, pois a escolha do próximo elemento da solução parcial é influenciada pelas escolhas anteriores. Para a seleção do próximo elemento da solução parcial, a princípio todos os candidatos são considerados, contudo o número de candidatos pode em muitos casos ser extremamente elevado, por isso, normalmente, é considerada apenas uma lista restrita de candidatos (LRC). Os elementos contidos na LRC devem estar no intervalo definido pela equação 4 por: min = [e max - α (e max - e min ), e max ]. (4) Onde e max e e min são, respectivamente, o elemento de maior e o elemento de menor incremento na solução e α um parâmetro de entrada que pode variar entre 0 e 1. Quanto mais próximo de 1 for o valor de α, mais aleatórias são as soluções geradas devido à diversidade de valores que podem ser encontrados na LRC. Os elementos contidos na LRC devem estar no 5

intervalo de [min = e max - α (e max - e min ), e max ], onde e max é o maior incremento na solução parcial e e min o elemento de menor incremento e α um parâmetro de entrada que pode variar entre 0 e 1, quanto mais perto de 1 o algoritmo torna-se mais aleatório devido a diversidade de valores que poderam ser encontrados na LRC. A partir de uma LRC, seleciona-se um elemento deste conjunto aleatoriamente e não necessariamente o melhor. Esta escolha aleatória permite que este procedimento possa ser usado várias vezes para obter soluções distintas. Pela forma como são construídas as soluções na etapa inicial, estas não representam na maioria dos casos um ótimo local, daí ser fortemente recomendada uma etapa de busca local. As iterações do GRASP são totalmente independentes, esse é o motivo de ser também conhecida como uma heurística do tipo multistart. O critério de parada do GRASP normalmente é o número máximo de iterações e a solução final GRASP é a melhor solução obtida ao final de sua execução. A Figura 5 mostra o pseudo-código para o GRASP. proc grasp (MAX_ITER) Carrega_Instancia_Entrada() para k=1 ate MAX_ITER faca Solução = constrói_solução () Solução = buscalocal () Atualiza_Solução (Solução, Melhor_Solução) fim para retorna (Melhor_Solução) fim grasp FIGURA 5 Pseudo-código GRASP. O procedimento de construção proposto neste trabalho constrói uma solução da seguinte forma. Inicialmente todos os vértices pertencem a um único cluster i. O primeiro passo do método é a escolha aleatória de um vértice que é associado a um novo cluster i+1. A cada iteração é escolhido aleatoriamente um vértice u ainda pertencente ao cluster i e são calculados os valores de MQ de cada uma das k+1 possíveis soluções parciais levando-se em consideração a inserção deste vértice em um dos k clusters já existentes, assim como em um novo cluster inicialmente vazio. As possíveis inserções que retornam valores de MQ superiores ou iguais ao valor definido pela equação 4 são considerados para compor a LRC. Um elemento (cluster) é selecionado aleatoriamente da LRC e, à posição do vetor correspondente ao vértice u, é associado o elemento selecionado. O procedimento prossegue até que, para todos os vértices, um elemento da LRC seja selecionado. A busca local é um procedimento que tem como objetivo tentar melhorar a solução obtida na fase de construção. Nesta fase percorre a vizinhança da solução corrente a fim de encontrar uma solução melhor. Em um problema de maximização, assim como esse, entende se que uma solução S é melhor se f(s) > f(solução corrente), onde f é uma função de avaliação. Neste trabalho, para percorrer a vizinhança da solução será adotado o movimento descrito na seção 3.1. A cada iteração da busca são examinados todos os possíveis movimentos na solução corrente. O melhor movimento de melhora é executado e a solução obtida é considerada corrente para a próxima iteração. A busca é encerrada quando nenhum movimento de melhora for obtido. A reconexão por caminhos consiste em gerar todas as soluções intermediárias (vizinhas) entre uma solução inicial e uma solução final. O princípio básico dessa técnica é que entre duas soluções de qualidade pode existir uma terceira melhor. Esta idéia tem sido 6

aplicada com muito sucesso em problemas da área de otimização combinatória (LAGUNA e MARTÍ, 1999; GLOVER e LAGUNA, 2000; SILVA et al., 2007). Nesta proposta, são guardadas todas as soluções encontradas a cada iteração GRASP em um pool de soluções. Deve-se ressaltar que todas as soluções são armazenadas devido ao pequeno número de iterações GRASP adotadas no presente trabalho. Se ao contrário disto, um número grande de iterações estivesse sendo utilizado, um critério de seleção poderia ser adotado, como exemplo fixar um número de soluções para o pool, armazenando as melhores soluções ou ainda, considerar além da qualidade das soluções, critério de similaridade entre as soluções do pool. Após o total de iterações GRASP ser atingido é aplicado o procedimento de reconexão por caminhos entre as soluções do pool, duas a duas, considerando a solução de maior MQ, solução inicial e as outras, soluções finais. Segundo RIBEIRO et al. (2002), melhores soluções são encontradas quando o procedimento é iniciado a partir da melhor solução pois, como a vizinhança da solução inicial é mais cuidadosamente explorada que a solução final, o algoritmo tem chance de investigar com detalhes a vizinhança da solução mais promissora. Um exemplo é mostrado na Figura 6. FIGURA 6 Exemplo de movimento para a técnica de reconexão por caminhos. 4 Resultados O algoritmo proposto foi implementado na linguagem Java. Para testar o algoritmo foram utilizadas as instâncias propostas por DIAS (2004). Os resultados reportados pelo autor para diferentes versões de Algoritmos Genéticos () são comparados com os resultados obtidos nesse trabalho a fim de medir o desempenho desse algoritmo. Todos os experimentos foram realizados em um PC Intel Core 2 Duo 2.2GHz e 2 Gb de RAM e compilados com o Eclipse 3.2. O método GRASP implementado foi com o número de iterações igual a 8 e o fator de aleatoriedade do algoritmo, α (alfa), igual a 0.1. O pequeno número de iterações GRASP se deve ao desnecessário incremento de tempo computacional uma vez que, em experimentos preliminares constatou-se que 8 execuções eram suficientes para o obtenção de bons resultados. Para cada instância foram feitas 10 execuções do algoritmo, cada qual partindo de diferentes números aleatórios para construção de uma solução. As tabelas 1 e 2 mostram os valores de função objetivo e tempos obtidos pelos diferentes algoritmos propostos em DIAS (2004) e os obtidos pelo GRASP com reconexão por caminhos. Os tempos (em segundos) contidos na Tabela 2 são os tempos médios de 10 execuções de todos os algoritmos. Grafo TABELA 1 Valores de MQ médios para diferentes tipos de algoritmos +M(0,004) +C +T (2) +T(4) +G +B +D(10) GRASP + RC A10 0,7083 0,6505 0,6826 0,7083 0,7093 0,7083 0,7083 0,6955 0,7083 A20 0,7289 0,7070 0,6829 0,6784 0,7075 0,6456 0,7371 0,6963 0,7416 A40 0,5651 0,6092 0,4678 0,6630 0,6626 0,4665 0,6754 0,6491 0,7978 A60 0,5537 0,6213 0,4874 0,6236 0,6173 0,4852 0,7339 0,6545 0,6756 7

A80 0,4921 0,6559 0,4181 0,4879 0,4889 0,4240 0,7372 0,6642 0,8619 A100 0,4552 0,6445 0,4080 0,4504 0,4466 0,4046 0,7827 0,6621 0,9083 E10 0,7083 0,7083 0,7083 0,7083 0,5100 0,7083 0,6505 0,7083 0,7083 E20 0,5734 0,4609 0,5061 0,4914 0,5090 0,5317 0,6974 0,5613 0,6933 E40 0,3716 0,4394 0,2857 0,4780 0,4864 0,2718 0,6201 0,4764 0,5541 E60 0,1962 0,2721 0,1093 0,2080 0,2032 0,1106 0,7402 0,2898 0,7287 E80 0,1940 0,3613 0,1307 0,1820 0,1849 0,1315 0,6721 0,3807 0,6140 E100 0,1416 0,3172 0,0972 0,1362 0,1355 0,0985 0,6564 0,3648 0,5648 Fonte: Autor Grafo TABELA 2 Tempo médio de execução dos algoritmos em segundos +M(0,004) +C +T (2) +T(4) +G +B +D(10) GRASP + RC A10 0,682 0,071 0,070 0,083 0,082 0,070 0,067 0,067 0,016 A20 8,548 0,427 0,433 0,465 0,446 0,446 0,374 0,426 0,068 A40 104,391 2,568 2,649 2,690 2,682 2,656 2,238 2,558 0,976 A60 58,884 10,696 11,068 11,107 11,102 11,087 7,958 10,507 6,528 A80 1.483,246 18,008 18,482 19,322 19,298 18,575 15,367 18,033 28,92 A100 3.321,629 32,463 32,982 34,417 34,354 32,960 27,849 32,383 84,02 E10 0,607 0,065 0,071 0,082 0,091 0,072 0,065 0,067 0,016 E20 8,845 0,445 0,447 0,483 0,488 0,445 0,367 0,429 0,048 E40 104,177 2,556 2,631 2,728 2,716 2,636 2,260 2,266 0,525 E60 656,204 10,570 10,991 11,092 11,109 10,982 8,146 10,589 2,100 E80 1.479,860 17,844 18,413 19,191 19,187 18,425 15,547 18,031 7,774 E100 3.361,533 32,528 33,373 34,620 34,763 33,533 28,490 32,843 18,549 Fonte: Autor Os resultados obtidos mostram que o algoritmo proposto teve uma boa performance diante as variações dos algoritmos genéticos, tanto em questão da qualidade da solução quanto em tempo computacional, em algumas instâncias obteve um resultado superior aos demais algoritmos. Levando-se em consideração a melhor solução conhecida para este conjunto de instâncias (Tabela 3), o algoritmo GRASP+RC teve um melhor desempenho, estando a, aproximadamente, 3,63% da melhor solução. Dentre os algoritmos da literatura, o que teve a melhor performance foi o +B estando em média a, aproximadamente, 4,38% da melhor solução. Os demais algoritmos obtiveram resultados piores, como o +G, com diferença média de 43,77% da melhor solução. A metaheurística GRASP sem a técnica de reconexão por caminhos obteve resultados inferiores diante aos resultados obtidos pela mesma metaheurística com essa técnica aplicada. A tabela 3 mostra os resultados de algumas instâncias comparando as duas versões. TABELA 3 Valores de MQ médios para diferentes abordagens do GRASP 8

Grafo A10 A20 A40 A60 A100 E10 E60 E80 E100 GRASP 0,7083 0,7416 0,7714 0,6754 0,9067 0,7083 0.7085 0,5583 0,4904 GRAS + RC 0,7083 0,7416 0,7978 0,6756 0,9083 0,7083 0,7287 0,6140 0,5648 Fonte: Autor O tempo computacional foi em média inferior em 20% no GRASP sem a técnica de reconexão por caminhos, porém os valores das modularizações foram inferiores para a maioria das instâncias. 5 Conclusão Esse artigo contribuiu com a apresentação de um método heurístico para o problema de clusterização automática em grafos. Na comparação com os melhores resultados obtidos através de algoritmos genéticos para um conjunto de instâncias proposto na literatura, verificou-se que as soluções encontradas com o algoritmo proposto baseado em GRASP + reconexão por caminhos são robustas, validando assim o uso dessa metaheurística para esse tipo problema. Referências BATTITI, R.; BERTOSSI, A. e CAPPELLETTI, A. Multilevel Reactive Tabu Search for Graph Partitioning. Preprint UTM 554, Dip. Mat., Univ. Trento, Itália, 1999. BERKHIN, P. (2002). Survey of Clustering Data Mining. Accrue Software. CHIUN, Y.; LAN, L. W. Genetic Clustering Algorithms. European Journal of Operational Research, v. 135 (2), p. 413-427 (2001). COLE, R. M. Clustering with genetic algorithms. Dissertação de mestrado, Department of Computer Science, University of Western Australia, 1998. COSTA, T. A. ; SOUZA, M. J. F. ;SOUZA, S. R.. Um algoritmo baseado em GRASP com busca tabu aplicado a resolução do problema de roteamento de veículos com janela de tempo. In: Simpósio de Pesquisa Operacional e Logística da Marinha, 2005, Rio de Janeiro. VIII SPOLM. Rio de Janeiro : CASNAV, 2005. Rio de Janeiro, 2005. v. 1. p. 01-12. DIAS, C.R.; & OCHI, L.S. (2003). Efficient Evolutionary Algorithms for the Clustering Problems in Directed Graphs. Proc. of the IEEE Congress on Evolutionary Computation (IEEE-CEC), 983-988. Canberra, Australia (http://ieeexplore.ieee.org). DIAS, C.R. Desenvolvimento e Análise Experimental de Algoritmos Evolutivos para o Problema de Clusterização Automática em Grafos Orientados, Univ. UFF,2004, Dissertação de Mestrado. DOVAL, D., MANCORIDIS, S. E MITCHELL, B. S., Automatic Clustering of Software System using a Genetic Algorithm. Proc. Of the Int. Conf. On Software Tool and Enginnering Practice, pp 73-81,1999. DUARTE, A e MARTÍ, R. (2007). Tabu search and GRASP for the maximum diversity problem. European Journal of Operational Research, v. 178, p.71 84. FASULO, D. (1999). An analysis of recent work on clustering algorithms. Technical Report, Dept. of Computer Science and Engineering, Univ. of Washington. GLOVER, F. e LAGUNA, M. (2000). Fundamentals of Scatter Search and Path Relinking, Control and Cybernetics, v. 29, p. 653-684. 9

HALKIDI, M.; BATISTAKIS, Y. e VAZIRGIANNIS, M. (2001). On clustering validation techniques. Journal of Intelligent Information Systems, v. 17 (2-3), p. 107-145. KAUFMAN, L.; ROUSSEUW, P. J. Finding Groups in Data - An Introduction to Cluster Analyses, Wiley Series in Probability and Mathematical Statistics, John Wiley, 1990. LAGUNA, M. e MARTÍ, R. (1999). GRASP and path relinking for 2-layer straight line crossing minimization. INFORMS Journal on Computing. v. 11, p.44-52. MAINI, H.S.; MEHROTRA, K. G.; MOHAN, C. K. e RANKA, S. Genetic algorithms for graph partitioning and incremental graph partitioning. In: Proceedings of the 1994 Conference on Supercomputing, p. 449-457, 2004. MARTINS, A. X.; SOUZA, M. C.; SOUZA, M. J. F.; TOFFOLO, T. A. M. GRASP with Hybrid Heuristic- Subproblem Optimization for the Multi-Level Capacitated Minimum Spanning Tree Problem. Journal of Heuristics, 2008. NETTO, P. O. B. Grafos: Teoria, Modelos, Algoritmos. E. Blücher, São Paulo, 2003. OCHI, L.S, DIAS, C. D, SOARES S. S. F. Clusterização em Mineração de Dados. OCHI, L.S.; Drummond, L.M.A. & VIANNA, D.S. (1998). A Parallel Genetic Algorithm for the Vehicle Routing Problems. Future Generation on Computer Systems. Elsevier, 14(5-6), 285-292. RIBEIRO, C.C., UCHOA, E. e WERNECK, R.F. (2002). A hybrid GRASP with perturbations for the Steiner problem in graphs. INFORMS Journal on Computing, v. 14, p. 228-246.SILVA, G. C. ; OCHI, L. S. ; NETTO, P. O. B.. HEURÍSTICAS GRASP PARA O PROBLEMA DE ALOCAÇÃO DINÂMICA DE ESPAÇOS. Revista Gestão Industrial (Online), v. 04, p. 160, 2008. SILVA, A. R. e OCHI, L. S. (2007). Effective GRASP for the Dynamic Resource Task Scheduling Problem. Status: In: Proceedings of International Network Optimization Conference (INOC 2007), Belgium. SILVA, G.C.; OCHI, L.S. & Martins, S.L. (2006). Proposta e Avaliação de Heurísticas GRASP para o Problema da Diversidade Máxima. Pesquisa Operacional. v. 26(2), p. 321-360. THEODORIDIS, S. e KOUTROUBAS, K. (1999). Pattern Recognition. Academic Press. TRINDADE, A. R. ; OCHI, L. S.. Um Algoritmo Evolutivo Híbrido para a Formação de Células de Manufatura em Sistemas de Produção. Pesquisa Operacional, Rio de Janeiro, v. 26, p. 255-294, 2006. 10