Uma hiper-heurística híbrida para a otimização de algorítmos - MIRANDA, Pericles Barbosa Cunha de (2016)
A escolha de algoritmos ou heurísticas para a resolução de um dado problema é uma tarefa desafiadora devido à variedade de possíveis escolhas de variações/configurações de algoritmos e a falta de auxílio em como escolhê-las ou combiná-las. Por exemplo, o desempenho de algoritmo de otimização depende da escolha dos seus operadores de busca e do ajuste adequado de seus hiper-parâmetros, cada um deles com muitas possibilidades de opções a serem escolhidas. Por este motivo, existe um interesse de pesquisa crescente na automatização da otimização de algoritmos de modo a tornar esta tarefa mais independente da interação humana. Diferentes abordagens têm lidado com a tarefa de ajuste de algoritmos como sendo outro problema de (meta)otimização. Estas abordagens são comumente chamadas de hiper-heurísticas, onde cada solução do espaço de busca, neste caso, é um possível algoritmo avaliado em um dado problema. Inicialmente, hiper-heurísticas foram aplicadas na seleção de valores de hiper-parâmetros em um espaço de busca pré-definido e limitado. No entanto, recentemente, hiper-heurísticas têm sido desenvolvidas para gerar algoritmos a partir de componentes e funções especificados. Hiperheurísticas de geração são consideradas mais flexíveis que as de seleção devido à sua capacidade de criar algoritmos novos e personalizados para um dado problema. As hiper-heurísticas têm sido largamente utilizadas na otimização de meta-heurísticas. No entanto, o processo de busca torna-se bastante custoso, pois a avaliação das soluções trata-se da execução do algoritmo no problema de entrada. Neste trabalho, uma nova hiper-heurística foi desenvolvida para a otimização de algoritmos considerando um dado problema. Esta solução visa prover algoritmos otimizados que sejam adequados para o problema dado e reduzir o custo computacional do processo de geração significativamente quando comparado ao de outras hiper-heurísticas. A hiper-heurística proposta combina uma abordagem de seleção de algoritmos com uma hiper-heurística de geração. A hiperheurística de geração é responsável por criar uma base de conhecimento, que contém algoritmos que foram gerados para um conjunto de problemas. Uma vez que esta base de conhecimento esteja disponível, ela é usada como fonte de algoritmos a serem recomendados pela abordagem de seleção de algoritmos. A ideia é reusar algoritmos previamente construídos pela hiper-heurística de geração em problemas similares. Vale salientar que a criação de hiper-heurísticas visando reduzir o custo de geração de algoritmos sem comprometer a qualidade destes algoritmos não foi estudada na literatura. Além disso, hiper-heurísticas híbridas que combinam de abordagens de seleção de algoritmos e hiper-heurísticas de geração para a otimização de algoritmos, proposta nesta tese, é novidade. Para avaliar o algoritmo proposto, foi considerada como estudo de caso a otimização do algoritmo baseado em enxames (PSO). Nos experimentos realizados, foram considerados 32 problemas de otimização. O algoritmo proposto foi avaliado quanto à sua capacidade de recomendar bons algoritmos para problemas de entrada, se estes algoritmos atingem resultados competitivos frente à literatura. Além disso, o sistema foi avaliado quanto à sua precisão na recomendação, ou seja, se o algoritmo recomendado seria, de fato, o melhor a ser selecionado. Os resultados mostraram que a hiper-heurística proposta é capaz de recomendar algoritmos úteis para os problemas de entrada e de forma eficiente. Adicionalmente, os algoritmos recomendados atingiram resultados competitivos quando comparados com algoritmos estado da arte e a recomendação dos algoritmos atingiu um alto percentual de precisão.