PARALELISMO E HEURÍSTICA EM LINGUAGEM R

  • Theodoro Bonilha Altíssimo
  • Adriano Tolfo Dotta
  • Claudio Schepke
Rótulo Otimização, Paralelismo, Heurística

Resumo

O maior objetivo da computação é o desenvolvimento de soluções para diversos tipos de problemas através da criação de algoritmos, porém a maneira tradicional de se pensar em soluções cria alguns imprevistos, sendo um desses a quantidade de tempo demandada por alguns algoritmos de acordo com o número de elementos a serem tratados, essa quantidade de tempo normalmente é descrita pelo Big-O de um algoritmo, uma expressão matemática que simboliza a complexidade computacional de um certo algoritmo. Porém existem alguns problemas que suas soluções demandam tempos exorbitantes, possuindo complexidades computacionais que tende ao exponencial ou ao fatorial do número de elementos, para este tipo de desafios que são necessários às otimização, sendo as principais e as estudadas por este projeto o paralelismo e a heurística. O paralelismo é uma forma de otimização que se utiliza da possibilidade do processamento paralelo em diferentes núcleos da GPU ou CPU do computador, já a heurística provém de estratégias as quais ignoram parte da informação de forma consciente para tornar sua solução mais rápida .Para problemas os quais podem receber soluções não exatas, podendo receber aproximações a sua solução, pode se utilizar do artifício das heurísticas para buscar suas soluções rápidas porém sem a certeza de sua exatidão . Já o paralelismo pode ser aplicado a qualquer parte de um problema a qual não possua interdependência dos elementos para ser executado, como por exemplo a busca dentro de uma tabela, porém tende a depender da arquitetura da CPU ou da GPU da máquina que executa o algoritmo para a otimização significativa do algoritmo. O projeto tem como objetivo o estudo da otimização de algoritmos utilizando a linguagem de programação R, uma linguagem extremamente popular para o tratamento de dados estatísticos, os quais tendem a gerar problemas que necessitem de otimização graças a suas complexidades computacionais e seu grande número de elementos. O estudo usa como sua metodologia a análise e pesquisa de algoritmos heurísticos e de bibliotecas já existentes de paralelismo aplicadas em R. O projeto possui o foco inicial na pesquisa das seguintes otimizações utilizando heurística, GA (Genetic algorithm), são algoritmos que se baseiam nas teorias genéticas de Mendel e nos processos de seleção natural do mais adaptado de Darwin para a otimização de códigos; algoritmos ABC (Artificial Bee Colony), é um algoritmo que simula o comportamento de busca de abelhas com uma forma de otimização; ACO (Ant Colony Optimization), otimizando códigos a partir da simulação da busca de formigas por alimento; PSO (Particle Swarm Optimization), baseado no comportamento de uma revoada de pássaros, utilizada para encontrar rápidas soluções para problemas na qual sua melhor solução pode ser expressa como um ponto em um espaço n-dimensional. A partir dessas pesquisas tem se como intenção a apresentação da otimização de programas já existentes utilizando os diversos métodos de otimização encontrados em R, demonstrando aos acadêmicos as diferentes bibliotecas utilizadas para otimização de programas em R. As conclusões encontradas pelo projeto até então são pequenas comparadas a seu objetivo final, por ser um projeto consideravelmente novo, seu desenvolvimento ainda está na parte de pesquisa e teste de aplicações, porém a partir dessas pesquisas foram encontradas diversas bibliotecas e algoritmos, consideravelmente desconhecidos pela comunidade acadêmica, que podem ajudar pesquisadores a produzirem códigos com rápidas respostas ao invés dos longos tempos de espera resultantes de algoritmos não otimizados.

Downloads

Não há dados estatísticos.
Publicado
2021-11-16
Como Citar
BONILHA ALTÍSSIMO, T.; TOLFO DOTTA, A.; SCHEPKE, C. PARALELISMO E HEURÍSTICA EM LINGUAGEM R. Anais do Salão Internacional de Ensino, Pesquisa e Extensão, v. 13, n. 3, 16 nov. 2021.