Estudo comparativo sobre meta-heurísticas em GPU para clusterização de dados
Clusterização, GPU, Meta-heurística
Clusterização é uma classe fundamental de problemas com inúmeras aplicações em muitas áreas do conhecimento, incluindo: bioinformática, visão computacional, mineração de dados, mineração de texto e agrupamento de páginas na Web. Dado um conjunto de n objetos, a clusterização objetiva agrupar automaticamente tais objetos em k grupos, geralmente disjuntos, denominados clusters ou agrupamentos utilizando uma medida de similaridade preestabelecida. Problemas de clusterização em geral têm alta complexidade computacional e envolvem uma grande quantidade de dados de entrada. Dessa forma, o uso de arquiteturas paralelas como Graphics Processing Units (GPUs) são alternativas interessante para acelerar o processo de clusterização. Neste trabalho, conduzimos um estudo comparativo de meta-heurísticas aceleradas por GPU para agrupamento de dados. Três meta-heurísticas populacionais foram implementadas na GPU: Particle Swarm Optimization (PSO), Differential Evolution (DE) e Scatter Search (SS). A implementação dessas meta-heurísticas foi dividida em duas partes: a parte independente do problema e a parte dependente problema. A parte independente do problema se refere aos operadores de seleção, reposição e combinação de cada meta-heurística, enquanto que a parte dependente se refere a função objetivo. A parte independente foi implementada usando o framework libCudaOptimize, e a parte dependente foi criada transformando o problema clusterização em um problema de otimização global sujeito a restrições de caixa. As meta-heurísticas propostas foram comparadas com o melhor algoritmo de clusterização da atualidade considerando eficiência do tempo de execução e a qualidade da solução. Os resultados indicam que o PSO baseado em GPU (GPU-PSO) obteve os melhores resultados em comparação com as outras meta-heurísticas baseadas em GPU e o melhor método da atualidade. Além disso, nossa implementação em GPU da função objetivo obteve um speedup médio de 175x sobre a versão sequencial. Esses resultados demonstram que uma abordagem de GPU para o problema de clusterização é muito promissora.