Unconstrained numerical optimization using real-coded genetic algorithms: a study case using benchmark functions in R from Scratch: Inglês (Revista Brasileira de Computação Aplicada, 2019)
Problemas de otimização sem restrições são comuns em aplicações práticas e sendo estes formados normalmente por várias variáveis, limita-se o tipo de técnica ou algoritmo que pode ser utilizado para sua solução. Uma forma interessante de lidar com esse tipo de problema é através do uso de um algoritmo evolutivo chamado Algoritmo Genético. Nesse contexto, este trabalho é um tutorial sobre algoritmos genéticos em código real para solucionar problemas de otimização sem restrições, apresentando tanto a teoria quanto sua implementação em linguagem R. Cinco funções de benchmark ((Rosenbrock, Griewank, Ackley, Schwefel, and Alpine) são utilizadas como estudo de caso. Além disso, são também usados quatro diferentes operadores de cruzamento (simples, aritmético, aritmético não uniforme e linear), dois mecanismos de seleção (roleta e torneio) e dois operadores de mutação (uniforme e não uniforme). Os resultados indicam que a mutação não uniforme e o operador torneio de mutação apresentam os melhores resultados.