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

Documentos relacionados
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

5 VNS com Filtro e Reconexão por Caminhos

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

Uma Introdução à Busca Tabu André Gomes

Problemas de otimização

3. Resolução de problemas por meio de busca

1. Computação Evolutiva

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

1. Computação Evolutiva

4 Métodos Existentes. 4.1 Algoritmo Genético

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

Algoritmos Genéticos e Evolucionários

Introdução aos Algoritmos Genéticos

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

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

1. Computação Evolutiva

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

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

1. Computação Evolutiva

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

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Algoritmos Genéticos

Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

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

Inteligência Artificial

Busca Guiada por Agrupamentos aplicada à Alocação de Berços em Portos com Restrições de Navegabilidade

Algoritmos Genéticos

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Introdução ao Algoritmo Genético

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

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

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

Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo

Universidade Federal Fluminense

3 Algoritmos Genéticos

Universidade Federal do Paraná UFPR Curso de Ciência da Computação CI801 Tópicos em Inteligência Artificial. Algoritmo Memético

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

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

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

3 Metaeurísticas e Resolvedores MIP

Pesquisa Operacional Aplicada à Mineração

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

7 Experimentos Computacionais

3 Algoritmos Genéticos

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

Buscas Informadas ou Heurísticas - Parte III

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Breve Avaliação de Parâmetros básicos de Algoritmos Genéticos

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

GRASP COM MEMÓRIA ADAPTATIVA PARA O PROBLEMA DA ÁRVORE DE COBERTURA MÍNIMA GENERALIZADO

Um Estudo Empírico de Hiper-Heurísticas

Análise de Desempenho de Estratégias de Particionamento de Grafos

Igor Ribeiro Sucupira (Aluno de Mestrado)

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

Problema do vendedor: uma abordagem via algoritmos genéticos

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

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

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

IF-705 Automação Inteligente Algoritmos Evolucionários

Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas

Computação Bioinspirada PROF. PAULO SALGADO

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO

4 Implementação Computacional

Métodos de pesquisa e Optimização

ANEXO II MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

Palavras-chave: Algoritmos Genéticos. Otimização. Variância. Seleção Sexual.

Aprimorando o Corte Peças com Forma Irregular em Chapas Retangulares

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

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

Utilização de Algoritmos Genéticos para Otimização de Altura de Coluna da Matriz de Rigidez em Perfil no Método dos Elementos Finitos

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

Anais do IX Congresso Brasileiro de Redes Neurais / Inteligência Computacional (IX CBRN)

Relatório Técnico: Busca Tabu Aplicada ao Problema do Caixeiro Viajante

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

Computação Evolutiva. Aula 4 Usando AEs Prof. Tiago A. E. Ferreira

Thiago Christiano Silva

Inteligência nos Negócios (Business Inteligente)

Modelos Evolucionários e Tratamento de Incertezas

UM ALGORITMO EVOLUTIVO COM MEMÓRIA ADAPTATIVA PARA O PROBLEMA DE CLUSTERIZAÇÃO AUTOMÁTICA Marcelo Dib Cruz 1, Luiz Satoru Ochi 2

Um Estudo Empírico de Métodos Hiper-Heurísticos

5 Resultados Experimentais

Algoritmos Evolutivos para Otimização

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira

Teoria da Complexidade Computacional

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

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

3 Otimização Evolucionária de Problemas com Restrição

ESTIMAÇÃO DE PARÂMETROS DE SISTEMAS NÃO LINEARES UTILIZANDO ALGORITMOS GENÉTICOS

Estrutura comum dos AEs

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

Construção de uma Ferramenta para Evoluir Estratégias e Estudar a Agressividade/Cooperação de uma População submetida ao Dilema dos Prisioneiros

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas

XLVI Pesquisa Operacional na Gestão da Segurança Pública

Transcrição:

Desenvolvimento e Análise Experimental de Algoritmos Evolutivos para o Problema da Clusterização Automática Thiago de Souza Diogo, Daniel Peregrino Cavalcante Orientador: Luiz Satoru Ochi Instituto de Computação Universidade Federal Fluminense (UFF) Rua Passo da Pátria 156 Niterói RJ Brasil { tdiogo, dcavalcante, satoru} @ dcc.ic.uff.br RESUMO: Clusterização é o processo no qual elementos de um conjunto são alocados para grupos ou clusters de elementos similares. Nos algoritmos de clusterização, usualmente é assumido que o número ideal de clusters é previamente conhecido. Infelizmente em muitas aplicações reais, este número não pode ser definido antecipadamente. Estas versões são conhecidas como Problemas de Clusterização Automática (PCA). Neste trabalho, propomos versões de algoritmos evolutivos (AEs) para a solução do PCA. Resultados computacionais mostram uma maior eficiência e regularidade de versões híbridas incorporando módulos de busca local, reconexão de caminhos e diversificação de populações. Palavras chave: metaheurísticas, clusterização automática, algoritmos evolutivos Abstract Clustering is the process which elements of a set are assigned for groups or clusters of similar elements. In clustering algorithms, it is usually assumed that the number of clusters is known or given. Unfortunately, the optimal number of clusters is unknown for many application of this problem. These problems are known as Automatic Clustering Problems (ACP). In this work we propose versions of the Evolutionary Algorithms (EAs) for ACP. Computational results on a set of instances illustrate the effectiveness and the robustness of the hybrid versions including local search, path relinking and diversification procedures. Keywords: metaheuristics, automatic clustering, evolutionary algorithms 1. Introdução O Problema da Clusterização (PC) ou o Problema de k-clusterização, consiste em determinar o melhor agrupamento de n elementos de uma base de dados em k conjuntos disjuntos, denominados clusters, objetivando alocar em um mesmo cluster elementos altamente similares e alocar em clusters distintos, os elementos que possuem menor similaridade. O PC é considerado um problema NP-Difícil [6] e o número de soluções possíveis é determinado de acordo com a fórmula (1): (1) [2795]

Entretanto, em muitas aplicações, o número ideal de clusters não é conhecido previamente, ou seja, o algoritmo de clusterização tem que, determinar o número ideal de clusters e também descobrir a melhor configuração desses clusters. Esta variante do PC obviamente é ainda mais complexa e é conhecida como Problema de Clusterização Automática (PCA). No PCA o tamanho do espaço de busca também cresce exponencialmente como mostrado na fórmula (2): (2) Para dar uma idéia da complexidade deste problema, considere uma base de dados com apenas 10 elementos, a clusterização automática tem que considerar 115.975 diferentes maneiras de combinar os elementos em um número de clusters que pode variar de 1 a 10. Observando-se a quantidade de soluções do espaço de busca concluímos que a utilização de métodos exatos de otimização não são viáveis na maioria das aplicações reais, incentivando com isso o desenvolvimento de métodos heurísticos eficientes para este problema [1, 2, 3, 4, 6, 8]. Atualmente na literatura são encontradas diversas propostas de heurísticas usando conceitos de Algoritmos Genéticos, GRASP, Busca Tabu entre outros. Entretanto observamos que a maioria destes trabalhos, resolve apenas o PC e não o PCA [1, 4]. A literatura tem mostrado que o uso de modelos tradicionais de Algoritmos Genéticos (sem busca local ou outros módulos adicionais) na solução de problemas NP-Completos não tem trazido resultados muito animadores quando confrontados com outras metaheuristicas [3, 4, 8]. Portanto, essa foi a nossa principal motivação: desenvolver versões eficientes de um algoritmo genético capaz de encontrar soluções de alta qualidade em um tempo de execução aceitável para o PCA. Nesse trabalho consideramos os elementos (objetos) como pontos do plano e para a análise de similaridade utilizamos a distância euclidiana entre os pontos. A determinação da qualidade das soluções é realizada através do uso do critério conhecido como Average Silhouette Width apresentado por Kaufman et al. [6]. A base dos algoritmos aqui propostos, é denotado por BClust que utiliza conceitos de um AG podendo ser acrescidos de módulos de busca local e processos adicionais de diversificação de uma população. O BClust é dividido em quatro etapas: a primeira etapa é a de construção da população inicial. A população representa o espaço de busca corrente do algoritmo e a cada iteração o algoritmo atualiza essa população, visando melhorar a qualidade dos indivíduos. Cada indivíduo representa uma solução para o problema. A segunda etapa, é a etapa em que o algoritmo realiza a evolução da população através da execução de três operadores genéticos de cruzamento e de três operadores de mutação. A terceira etapa consiste em uma busca local através da técnica de Reconexão por Caminhos (pathrelinking) [5] e, por fim, a quarta etapa é a de diversificação da população. Esse procedimento visa manter a heterogeneidade da população, evitando assim uma convergência prematura para um ótimo local ainda muito distante de um ótimo global. 2. Algoritmo BClust O BClust tem como principal objetivo resolver aproximadamente um PCA. Buscamos implementar o algoritmo de forma que pudéssemos acoplar novos módulos, operadores diferentes sem a necessidade de re-compilação, ou seja, nos beneficiamos por utilizarmos uma linguagem orientada a objetos, no caso a escolha foi a linguagem Java. [2796]

2.1. Método de construção da população inicial Nessa etapa, colocamos como objetivo não somente gerar uma população de soluções como nos AGs tradicionais, mas principalmente gerar soluções de boa qualidade e com isso tentar reduzir o espaço de busca através da eliminação de soluções iniciais consideradas de baixa qualidade. Dessa forma, podemos esperar que o algoritmo não só parta de soluções de boa qualidade como também que o tempo computacional para obter soluções alvos (solução ótima ou próxima desta) deve ser reduzido consideravelmente. A representação de cada indivíduo é feita através da codificação de um string onde a posição representa o elemento e o conteúdo representa o cluster onde o elemento se encontra. Por exemplo, o seguinte string: AAABBCA indica que os elementos 1,2,3 e 7 estão no cluster A, os elementos 4 e 5 estão no cluster B e o elemento 6 no cluster C. O BClust possui duas formas de criação de solução e a cada geração de um individuo da população, uma das duas formas é selecionada visando aumentar a diversidade da população inicial. A primeira forma (Geração tipo A) utiliza uma estratégia gulosa pois utiliza um fator de afinidade(µ) para todos os pontos ou um fator por ponto do grafo. Existe 50% de chance de um mesmo fator ser utilizado para todos os pontos e 50% de chance de que seja utilizado um fator de afinidade para cada ponto. Essa estratégia foi utilizada na tentativa de simular as relações entre os diferentes tipos de indivíduos que existem na natureza. Após essa definição a vizinhança de cada ponto é calculada buscando com isso detectar áreas de grande densidade. Por exemplo, o ponto a é considerado vizinho do ponto b caso a distância entre eles seja inferior ao produto do fator de afinidade pela distância média (dm) dentre todos os pares de pontos do conjunto, ou seja, a somente será vizinho de b caso a equação (3) seja satisfeita: ( a,b) < µ dm dist (3) Após as vizinhanças de cada ponto terem sido calculadas, os pontos que possuem as maiores vizinhanças são eleitos como embriões de um cluster, isto é, serão as bases dos clusters iniciais. Esse processo tem uma importância direta na determinação do número de clusters da solução gerada. Cada um destes pontos e seus pontos vizinhos são alocadas para um mesmo cluster até que todos os pontos tenham sido agrupados. Uma outra interpretação desta técnica é gerar uma aresta entre dois pontos (vértices) se eles atendem (3). Desta forma, serão formados ao final deste procedimento, conjuntos conexos de diferentes tamanhos e os de maior cardinalidade serão prioritários para serem os embriões dos futuros clusters. Na segunda etapa, as componentes conexas que não são embriões irão se juntar ao embrião mais próximo utilizando o conceito de centróide e vizinho mais próximo, ou seja, uma componente conexa será anexada a um embrião se a distancia entre seus respectivos centróides for mínimo. Este procedimento tem uma importância vital no PCA, pois ele tende a reduzir significativamente a dimensão do conjunto de entrada X. Por exemplo, se X = n e se forem formadas após o uso de (3), m componentes conexas, a dimensão de X será m, valor este normalmente menor que n. A segunda forma (Geração tipo B) é um pouco mais complexa e preza por aumentar a aleatoriedade da solução gerada da seguinte forma: escolhe-se aleatoriamente dois pontos do conjunto X, que chamamos de a e b, e se faz as seguintes verificações após calcular o produto() da distância média(dm) por um fator aleatório que varia de 0.1 a 1.0: Se a e b não estão alocados ainda em nenhum cluster e se a distância entre a e b for inferior a então a e b são inseridos em um novo cluster comum, caso a [2797]

segunda inferência não for satisfeita então a e b são inseridos cada um em um novo cluster; Se a está em inserido em um cluster e b ainda não e se a distância entre a e b for inferior a então b é inserido no cluster de a, caso a segunda inferência não for satisfeita então b é inserido em um novo cluster; Se a está em um cluster e b está em outro cluster e a distância entre a e b for inferior a então os dois clusters são reunidos num único cluster, se a segunda inferência não for satisfeita então nada é feito; Se a e b estão no mesmo cluster então nada é alterado; Esse processo prossegue até que todos os vértices sejam alocados em algum cluster. O procedimento de Geração B é mais complexo e, conseqüentemente, possui um tempo computacional maior quando comparado com o procedimento de Geração A. Em ambos os casos (A e B), o número de clusters de uma solução é escolhido de forma aleatória no intervalo [2, n]. Ainda prezando pela escalabilidade do BClust, utilizamos a seguinte estratégia para armazenamento das distâncias entre os elementos: cada elemento possui um identificador e a distância entre elementos diferentes deve ficar armazenada no elemento que possui o menor identificador. Essa idéia foi adotada uma vez que temos um problema de redundância das distâncias entre os elementos. 2.2. A evolução da população Como citado anteriormente, o método utilizado para determinação da qualidade(fitness) de uma solução é o Average Silhouette Width utilizado pela maioria dos autores em PC e PCA [6]. A cada iteração existe a possibilidade de acontecer o cruzamento dentre os indivíduos da população, segundo um parâmetro de entrada (P_CROSS). Caso em uma iteração o cruzamento seja iniciado; então dois indivíduos são selecionados segundo o Método da Roleta, onde os indivíduos mais aptos tem mais chance de serem selecionados. Após a seleção dos indivíduos reprodutores, é o momento de cruzamento entre os selecionados. O BClust possui três operadores de cruzamento, sendo eles definidos a seguir: Cruzamento Janela: Uma intervalo do vetor solução de tamanho aleatório é permutado entre os pais e são gerados dois novos indivíduos; Cruzamento GeneGene: São gerados dois indivíduos filhos escolhendo-se, aleatoriamente, cada gene de um dos dois pais; Cruzamento UmPonto : São gerados dois indivíduos filhos escolhendo-se apenas um ponto p, aleatoriamente, e trocando o DNA dos geradores a partir do ponto p; Os novos indivíduos provenientes do cruzamento são colocados na população que sofrerá a seleção natural. Portanto, a cada processo de cruzamento dois indivíduos podem ser substituídos por novos indivíduos. Isso faz com que a população tenda a evoluir a cada iteração. 2.3. Reconexão por Caminhos A Reconexão de Caminhos (RC) foi proposta originalmente para o Tabu Search e Scatter Search por Glover et al. [5] e apresenta-se como uma técnica de busca intensiva alternativa em relação às buscas tradicionais. Após a atualização da população do AE, caso o número de iterações seja um múltiplo do tamanho da população (N) então o módulo de RC entra em execução, recebendo como solução extrema base a melhor solução atual e como solução alvo uma das k melhores soluções da atual população [2798]

escolhidas aleatoriamente; onde k é um parâmetro de entrada. Por se tratar de um processo de intensificação de busca, a RC acaba se tornando a fase mais onerosa em uma execução do AE. Portanto, optamos por executar a RC enquanto as soluções intermediárias encontradas forem melhor que a pior solução extremo (no nosso caso, a solução alvo). Em contrapartida, no sentido de tentar buscar soluções de melhor qualidade, todas as soluções intermediárias de uma RC, sofrem uma busca local, denominada Estabilização da Solução. Este processo nada mais é do que numa dada solução, determinar o centróide de cada cluster e a cada vértice de cada cluster, verificar se ele está no cluster correto, ou seja se o centróide mais próximo a este vértice é o centróide do seu próprio cluster, caso não seja, é feito o remanejamento do vértice ao cluster adequado segundo este critério. 2.4. Diversificação da população Após um certo número de gerações a população de um AG ou AE tende a tornar-se homogênea e isso pode ser um sintoma de que o algoritmo está preso em um ótimo local muitas vezes ainda distante de um ótimo global. Num AG, o papel da diversificação é feito tradicionalmente pelo operador mutação, mas na prática este processo não tem se mostrado eficiente [3, 8]. Na diversificação aqui proposta, um histórico das últimas gerações do AE é armazenado com o intuito de informar ao BClust que a população está estagnada e que é o momento da execução da diversificação. Esse histórico é um contador () que é incrementado a cada iteração que a solução best (melhor solução encontrada até o momento) não é atualizada. Quando ultrapassa o número de indivíduos da população então a diversificação é ativada. A diversificação utiliza como base o conjunto elite da população composto por um grupo das 33% melhores soluções da população atual. A população corrente é totalmente descartada, sendo reconstruída em seguida incluindo inicialmente todo o conjunto elite, outros 33% por um processo denominado Criação por Janelas Aleatórias, onde janelas de DNA de tamanho aleatório são escolhidas de indivíduos elite, também escolhidos de forma aleatória. Neste caso, o restante dos genes de cada individuo (fora da janela), é inserido usando a geração tipo A ou B.Finalmente, os outros 34% dos indivíduos da nova população são gerados novamente como o processo inicial, Geração tipo A e Geração tipo B(Restart da população). A idéia deste processo de diversificação, é obter uma nova população heterogênea de indivíduos mas preservando informações das melhores soluções geradas até o momento. Neste contexto, são propostos neste trabalho quatro versões do algoritmo BClust, sendo elas AE1 (a versão básica); AE2 a versão com apenas a Reconexão por Caminhos; AE3 a versão com Reconexão por Caminhos com Busca Local acoplada nas soluções intermediárias e, finalmente, AE4 a versão com Reconexão por Caminhos e Busca Local acoplada e com o Operador de Diversificação da população. 3. Resultados computacionais Com o intuito de avaliar o desempenho empírico dos algoritmos aqui propostos, foram gerados diferentes tipos de instâncias do PCA. Devido à inexistência ou dificuldade de se obter instâncias da literatura, inicialmente foi desenvolvido uma ferramenta gráfica auxiliar que possibilita a visualização do resultado gerado e possibilita gravar estes num arquivo no formato XML. As instâncias analisadas possuem dimensão entre 50 e 1000 vértices. Para cada dimensão foram criadas 5 instâncias, exceto para a instância de 1000 vértices, onde foi criada uma instância. Essas instâncias foram nomeadas de acordo com o grau de dificuldade que adotamos, ou seja, a letra F no [2799]

nome representa uma instância que consideramos fácil (normalmente clusters esféricos e sem ruídos), M representa uma instância que consideramos de média dificuldade e, por fim, a letra D que representa as instâncias que acreditamos serem difíceis (normalmente clusters não esféricos e com ruídos). Os resultados da tabela 1, mostram como AEs podem ser beneficiados com a inclusão de módulos adicionais. Por exemplo, em termos de resultados médios, o AE1 não obteve nenhuma melhor média, enquanto AE2 obteve 3; AE3 com 4 e o AE4 obteve 13 melhores médias em 20 instâncias. Em relação aos tempos gastos, como era de se esperar, usando um critério de parada número máximo de iterações, os tempos exigidos pelas versões mais sofisticadas tendem a ser maiores, mas outros testes com diferentes critérios de parada que estão sendo implementadas tais como alcance de um valor alvo, mostram que versões como AE3 e principalmente o AE4, convergem muito mais rapidamente que as versões AE1 e AE2. Instância AE1 AE2 AE3 AE4 B QM TM B QM TM B QM TM B QM TM 50FA 0,894 0,743 1,130 0,894 0,712 0,984 0,894 0,671 1,060 0,894 0,761 1,260 50FB 0,889 0,772 1,223 0,904 0,780 1,113 0,904 0,747 0,922 0,889 0,778 1,330 50MA 0,727 0,617 1,276 0,760 0,645 0,798 0,757 0,633 1,035 0,740 0,631 1,041 50MB 0,913 0,772 1,099 0,913 0,766 1,298 0,943 0,704 1,241 0,913 0,812 1,397 50D 0,794 0,635 0,951 0,794 0,652 1,108 0,823 0,704 1,019 0,794 0,665 1,465 100FA 0,603 0,569 3,070 0,618 0,575 3,052 0,623 0,574 3,523 0,623 0,577 3,276 100FB 0,645 0,549 1,585 0,653 0,559 2,652 0,645 0,583 2,545 0,671 0,598 3,230 100MA 0,626 0,609 1,969 0,626 0,617 2,256 0,626 0,614 2,097 0,626 0,618 2,484 100MB 0,510 0,493 3,996 0,528 0,507 4,408 0,546 0,508 4,425 0,533 0,509 6,408 100D 0,585 0,451 3,336 0,641 0,508 4,427 0,622 0,510 4,889 0,641 0,522 5,649 300FA 0,549 0,462 11,001 0,567 0,497 55,344 0,572 0,500 73,176 0,563 0,496 71,646 300FB 0,554 0,499 9,251 0,569 0,511 44,562 0,572 0,514 40,639 0,553 0,522 62,910 300MA 0,403 0,332 9,266 0,466 0,381 71,233 0,525 0,396 66,176 0,490 0,395 63,967 300MB 0,563 0,485 11,347 0,604 0,550 60,207 0,604 0,560 72,953 0,600 0,567 64,039 300D 0,441 0,376 8,077 0,522 0,439 92,701 0,458 0,416 63,584 0,508 0,433 75,389 500FA 0,585 0,460 21,906 0,549 0,499 239,091 0,538 0,495 316,268 0,545 0,502 388,332 500FB 0,365 0,317 22,567 0,534 0,373 497,489 0,506 0,397 572,840 0,539 0,438 667,686 500MA 0,343 0,308 22,937 0,402 0,345 394,581 0,411 0,341 524,652 0,414 0,362 456,677 500MB 0,387 0,315 22,231 0,474 0,386 587,408 0,458 0,390 448,670 0,476 0,378 556,934 500D 0,399 0,327 35,426 0,446 0,390 622,116 0,446 0,367 598,826 0,463 0,408 713,453 1000D 0,425 0,409 97,402 0,486 0,430 3662,350 0,487 0,449 5716,003 0,477 0,452 4384,284 Tabela 1: Resultados obtidos, onde B representa o valor da melhor solução encontrada pelo algoritmo; QM a qualidade média das soluções encontradas e TM o tempo médio em segundos de cada versão do algoritmo. Pelos resultados ilustrados na tabela 1, fica evidente que o AE3 e o AE4 possuem o melhor desempenho em termos da melhor solução alcançada e o AE4 é superior no tocante a média das soluções geradas em cada instância. Isso mostra a sua regularidade em gerar soluções de boa qualidade. Para ilustrar a diferença no desempenho entre o modelo mais simples (AE1) e o mais sofisticado (AE4), ilustramos algumas soluções geradas pelos mesmos como mostrado nas figuras 1 a 4. Nas figuras 1 e 2, podemos verificar o desempenho dos algoritmos AE1 e AE4 respectivamente numa instância considerada difícil (clusters não esféricos). Neste caso, o número ideal de clusters é 8 (cada cluster representa um número, e a idéia é cada algoritmo numerar os pontos de cada cluster com um mesmo número, exemplo: cluster 1 é formado por vários números 5 na figura 1). O AE1, embora tenha obtido uma boa solução, obtendo 8 clusters, não conseguiu identificar os clusters 2 e 3 corretamente. O AE4 por sua vez, obteve 8 clusters corretamente (figura 2). [2800]

Figura 1: Solução gerada pelo AE1 Figura 2: Solução gerada pelo AE4 As figuras 3 e 4 ilustram o resultado do AE4 em outras instâncias com clusters não esféricos. Os resultados mostram a eficiência do AE4 em localizar clusters densos de formas variadas, bem como identificar corretamente cada cluster. Figura 3: Solução gerada pelo AE4 [2801]

Figura 4: Solução gerada pelo AE4 4. Conclusões Este trabalho apresentou propostas e análise empírica de diferentes versões de um algoritmo evolutivo proposto para a solução do PCA. Neste contexto foram desenvolvidos desde versões básicas de AE1, e versões com módulos adicionais: AE2, AE3 e AE4. O que foi percebido, é que à medida que novos módulos são incluídos, os resultados em termos de qualidade são melhorados na média. E a melhor versão foi a AE4, que inclui os módulos de Reconexão de Caminhos com Busca Local sobre as soluções intermediárias além do Mecanismo de diversificação da população. Obviamente existe um aumento nos tempos computacionais, mas isso na prática pode ser bem absorvido se trabalharmos com outros critérios de parada tais como: tempo máximo de execução e/ou um valor alvo a ser alcançado. Em testes preliminares (ainda em desenvolvimento), já percebemos que apesar das versões mais sofisticadas como o AE4 ter o trabalho computacional por iteração mais onerosa, este necessita de um número bem menor que as versões mais simples como o AE1 e AE2, obtendo com isso uma convergência empírica mais rápida para um valor alvo. Além disso percebemos nestes testes que se colocarmos um valor alvo difícil versões mais simples tais como AE1 e AE2 não convergem enquanto AE4 sempre converge. Desta forma acreditamos que os métodos híbridos apresentados são boas alternativas para a solução de problemas de elevada complexidade computacional como é o caso do PCA. 5. Bibliografia [1] Berkhin, P. Survey of Clustering Data Mining Techniques. Accrue Software, 2002. [2] Chiun, Y. and, Lan, L. W. Genetic Clustering Algorithms. European Journal of Operational Research (135) 2, pp. 413-427, 2001. [3] Dias, C. R. and Ochi, L. S. Efficient Evolutionary Algorithms for the Clustering Problem. In Proc. of the IEEE Congress on Evolutionary Computation (IEEE-CEC 2003) (em CD-ROM), Canberra, Australia, 2003. [4] Fasulo, D. An Analysis of Recent Work on Clustering Algorithms. Technical Report, Dept. of Computer Science and Engineering, Univ. of Washington, 1999. [5] Glover, F., Laguna, M., e Martí, R. Scatter Search. Publisher Springer-Verlag New York, Inc. New York, NY, USA, 2003. [6] Kaufman, L. and Rousseau, P. J. Finding Groups in Data - An Introduction to Cluster Analyses, Wiley Series in Probability and Mathematical Statistics, John Wiley and Sons, 1989. [7] Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs. Springer, 1992. [8] Trindade, A. R., e Ochi, L. S. Um algoritmo evolutivo híbrido para a formação de células de manufatura em sistemas de produção. Revista Pesquisa Operacional, 26(2), pp. 255-294, 2006. [2802]