• No results found

Hierarchical Radiosity on Curved Surfaces

3.5 Object-based Meshing

A computação bioinspirada é um sub-ramo da computação natural, que utiliza caracte- rísticas encontradas na natureza com o objetivo de extrair conceitos, princípios e mecanis- mos fundamentados em processos biológicos para serem aplicados em sistemas compu- tacionais [Teixeira et al. 2011, Dorigo et al. 1996, Goldberg 1989, Medeiros et al. 2005]. Esta área de pesquisa multidisciplinar investiga como computadores podem ser utilizados para modelar características de sistemas biológicos e como as soluções encontradas por ela podem originar novos paradigmas de computação.

Diversos problemas envolvendo busca e otimização podem ser encontrados no mundo real e podem ser definidos através de regras com as quais se deseja maximizar ou mi- nimizar valores de uma determinada função numérica (restritiva ou não) ou manipular problemas de tempo exponencial, tais quais os do tipo NP-completos (caxeiro viajante, soma dos subconjuntos) [Filho et al. 2008]. Estes problemas podem ser enquadrados em uma gama de aplicações prática na indústria, no gerenciamento de suplementos básicos como energia elétrica, gás e refinamento de petróleo [Linden 2008, Teixeira et al. 2011].

A computação tem buscado inspirações na natureza para lidar com estes tipos de pro- blemas, sendo que diversos cientistas da computação como Von Newman, Norbert Wier- ner e Alan Turing foram motivados à construção de sistemas de computação com capa- cidade adaptativa ao ambiente presente [Teixeira 2012, Mitchell 1999]. Esses cientistas buscavam inspiração na biologia e em outras áreas de conhecimento como a psicologia e a eletrônica para a construção de soluções mais eficientes [Yasojima et al. 2009].

O conhecimento obtido em diversas áreas da ciência a respeito de sistemas natu- rais (i.e. exatas, biológicas) já vem sendo utilizadas com considerável sucesso para o desenvolvimento de ferramentas tecnológicas capazes de resolver problemas de grande complexidade, cujas soluções eram até então, desconhecidas ou computacionalmente impraticáveis [Dorigo & Gambardella 1997, Medeiros et al. 2005]. De acordo com [Teixeira 2012, Filho et al. 2008, Forbes 2005, de Castro 2010], o uso de algoritmos inspirados em sistemas biológicos ou físico tem por base o estudo e desenvolvimento de metaheurísticas1 capazes de solucionar problemas ou obter soluções satisfatórias em re- lação a técnicas clássicas de otimização (e.g. programação linear). A Figura 1.1 mostra as diversas categorias e tipos de algoritmos bioinspirados.

Figura 1.1: Classificação dos Algoritmos Bioinspirados

1Segundo [Teixeira 2012], uma metaheurística consiste em um conjunto de conceitos e métodos usados

para definir procedimentos heurísticos, gerando assim uma estrutura genérica de um algoritmo que pode ser aplicada em diferentes problemas de busca e otimização com o objetivo de encontrar uma solução praticável - não necessariamente ótima - em tempo de processamento viável.

1.1. COMPUTAÇÃO BIOINSPIRADA 25

Como exemplos de sistemas computacionais baseados em sistemas naturais têm-se a computação evolucionária [Back et al. 2000], os sistemas imunológicos artificiais [Dasgupta 1999, de Castro & Timmis 2002], as redes neurais artificiais [Haykin 1999], inteligência de enxames [Bonabeau et al. 1999], o algoritmo de arrefecimento simulado [Aarts & Korst 1989] e mais recentemente, os algoritmos culturais [Reynolds & Peng 2005].

Dentre as metaheurísticas bioinspiradas mais utilizadas, as baseadas no modelo de po- pulação têm apresentado desempenho satisfatório em solucionar problemas de otimização onde se apresenta um cenário de uma ou de múltiplas soluções [Eberhart & Shi 2000]. Um algoritmo que vem sendo bastante adotado é o de otimização por enxame de partículas (PSO), que é inspirado no comportamento de uma revoada de pássaros para encontrar uma solução ótima em um espaço limitado de busca [Kennedy & Eberhart 1995]. Na literatura, o PSO é classificado com um algoritmo que utiliza a abordagem de Swarm Intelligence, ou Inteligência de Enxames [Haupt & Haupt 1998, Kennedy & Eberhart 2001].

O algoritmo PSO é conhecido por ser uma metaheurística com várias modificações documentadas, Dentre elas, destacam-se duas dessas variações utilizadas neste trabalho:

• EPSO - Otimização por Enxame de Partículas Evolucionário: Proposto por [Leite et al. 2010, Miranda & Fonseca 2002], essa variante traz o conjunto de ope- rações de estratégias evolucionárias como replicação, mutação e seleção aplicado em um ambiente PSO modificado;

• QPSO - Otimização por Enxame de Partículas com Inspiração Quântica: Pro- posto por [Sun et al. 2004b], o modelo de inspiração quântica traz várias modifica- ções ao algoritmo PSO original, onde as partículas se movimentam seguindo regras baseadas na mecânica quântica ao invés da clássica com movimentação inspirada na mecânica Newtoniana.

O PSO também apresenta diversas implementações que envolve o conceito de mul- tipopualção ou multi-enxames, tendo como destaque os trabalhos concebidos por [den Bergh & Engelbrecht 2004, Niu et al. 2007] para o desenvolvimento da abordagem utili- zada nesta dissertação. Essa classe de algoritmos consiste na utilização de dois ou mais enxames sendo executados de maneira competitiva ou cooperativa, cuja interação e es- trutura variam de acordo com a topologia utilizada. Em geral, grande parte dessas me- taheurísticas [e.g. Niu et al. 2005] utilizam sistemas computacionas com arquitetura distribuída e paralela, cuja função é a divisão da carga de processamento em um ambi- ente inter-comunicável entre dois ou mais enxames. Como resultado, ambientes multi- enxames auxiliam na obtenção de resultados mais eficientes, dada a troca de informações entre si [Niu et al. 2007, El-Abd & Kamel 2008].

Com base em diversos trabalhos publicados [e.g. Veronese & Krohling 2009, Souza et al. 2011, Mussi et al. 2011, Souza et al. 2013, Souza et al. 2014], pode-se afirmar que a implementação do PSO e de suas variantes com recursos de estratégia evolucionária em um modelo competitivo e multienxame, aplicado sob o paradigma GPGPU traz uma série de benefícios, considerando que cada partícula pode ser tratada por uma thread, que ao ser aplicada em um ambiente de paralelismo massivo de múltiplos enxames independentes, apresenta um considerável aumento de desempenho e performance em relação ao tempo de execução, bem como no processo de busca e otimização.

Neste trabalho, são propostos dois novos algoritmos, baseados nas metaheurísticas EPSO e QPSO sob uma abordagem multi-enxame, inspirados em um modelo de topologia mestre-escravos encontrado na literatura [e.g. Niu et al. 2007, El-Abd & Kamel 2008] e aplicados sob a arquitetura CUDA, denominados de Competitive Evolutionary Multi- Swarm Optimization on Graphics Processing Units (CEMSO) e Competitive Quantum Evolutionary Multi-Swarm Optimization on Graphics Processing Units(CQEMSO).