• Nenhum resultado encontrado

Uma hiper-heurística híbrida para a otimização de algorítmos

N/A
N/A
Protected

Academic year: 2021

Share "Uma hiper-heurística híbrida para a otimização de algorítmos"

Copied!
105
0
0

Texto

(1)

Péricles Barbosa Cunha de Miranda

UMA HIPER-HEURÍSTICA HÍBRIDA PARA A OTIMIZAÇÃO DE ALGORITMOS

Tese de Doutorado

Universidade Federal de Pernambuco posgraduacao@cin.ufpe.br www.cin.ufpe.br/~posgraduacao

(2)

PÉRICLES BARBOSA CUNHA DE MIRANDA

UMA HIPER-HEURÍSTICA HÍBRIDA PARA OTIMIZAÇÃO DE

ALGORITMOS

ESTE TRABALHO FOI APRESENTADO À PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO DO CENTRO DE INFORMÁTICA DA UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO PARCIAL PARA OBTENÇÃO DO GRAU DE DOUTOR EM CIÊNCIA DA COMPUTAÇÃO.

ORIENTADOR: RICARDO BASTOS CAVALCANTE PRUDÊNCIO

(3)

M672h Miranda, Pericles Barbosa Cunha de.

Uma hiper-heurística híbrida para a otimização de algorítmos / Pericles Barbosa Cunha de Miranda. – 2016.

104 f.: fig., tab.

Orientador: Ricardo Bastos Cavalcante Prudêncio.

Tese (Doutorado) – Universidade Federal de Pernambuco. CIN. Ciência da Computação, Recife, 2016.

Inclui referências.

1. Programação genética. 2. Meta-aprendizado. 3. Otimização por enxame de partículas. 4. Geração de algorítmos. I. Prudêncio, Ricardo Bastos Cavalcante (Orientador). II. Titulo.

(4)

Péricles Barbosa Cunha de Miranda

Uma Hiper-heurística Híbrida para a Otimização de Algoritmos Tese apresentada ao Programa de Pós-Graduação em Ciência da Computação da Universidade Federal de Pernambuco, como requisito parcial para a obtenção do título de

Doutor em Ciência da Computação.

Aprovado em: 22/08/2016.

_________________________________________

Prof. Ricardo Bastos Cavalcante Prudêncio

Orientador do Trabalho de Tese

BANCA EXAMINADORA

________________________________________________ Prof. Dr. Cleber Zanchettin

Centro de Informática / UFPE

________________________________________________ Prof. Dr. Abel Guilhermino da Silva Filho

Centro de Informática / UFPE

_________________________________________________ Prof. Dr. Adriano Lorena Inácio de Oliveira

Centro de Informática / UFPE

________________________________________________ Profa. Dra. Gisele Lobo Pappa

Departamento de Ciência da Computação/UFMG _________________________________________________

Profa. Dra. Ana Carolina Lorena Instituto de Ciência e Tecnologia /UNIFESP

(5)

mesmo nos momentos mais difíceis da vida. Em especial ao meu pai Antônio Pádua de Miranda, pessoa fantástica e inesquecível. Amo você para sempre.

(6)

Agradecimentos

Gostaria de agradecer primeiramente a Deus pela saúde e pela força. Isso é suficiente para caminhar e buscar. A família é tudo na vida. Eu gostaria de agradecer a toda a minha família pelo carinho e amor que recebo todos os dias. Mesmo nos momentos difíceis nos apoiamos e nos fortalecemos para continuar caminhando em frente.

Agradeço também à minha esposa, Mouriely Rodrigues, por sua atenção, compreensão e amor. Você é minha inspiração e tudo o que faço é para que a gente seja ainda mais feliz. Te amo. Aos meus amigos agradeço pelas conversas, saídas, brainstorms...amigos são irmãos que a vida nos dá. Sou grato a todos vocês que nos momentos que saturação e desconforto tinham uma palavra para descontrair e animar.

Gostaria de fazer um agradecimento especial ao meu orientador Ricardo Prudêncio, que me acolheu como aluno de mestrado e vêm aturando desde então. Como minha formação foi na UPE, não conhecia nenhum professor no CIn-UFPE. Fiquei com receio inicialmente em tentar a pós-graduação na UFPE pois fui muito bem orientado pelo professor Carmelo Bastos durante minha graduação e temia não ter a mesma sorte. Foi então que o professor Meuser Valença me indicou professor Ricardo como um bom professor e orientador. Fui feliz na escolha e agradeço por você ter me dado a oportunidade de aprender e fazer pesquisa. Me espelho muito em você e admiro sua inteligência, atenção e disponibilidade para atender seus alunos. Meu muito obrigado por ter tido paciência e feito críticas construtivas para mim como aluno e como pessoa.

(7)

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. Hiper-heurí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 heurística de geração. A hiper-heurí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

(8)

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.

Palavras-chave: Meta-aprendizado. Otimização por enxame de partículas. Programação Gené-tica. Geração de algoritmos.

(9)

Designing an algorithm or heuristic to solve a given problem is a challenging task due to the variety of possible design choices and the lack of clear guidelines on how to choose and/or combine them. For instance, the performance of an optimization algorithm depends on the design of its search operators as well as an adequate setting of specific hyper-parameters, each of them with many possible options to choose from. Because of that, there is a growing research interest in automating the design of algorithms by exploring mainly optimization and machine learning approaches, aiming to make the algorithm design process more independent from human interaction. Different approaches have dealt with the task of optimizing algorithms as another (meta)optimization problem. These approaches are commonly called hyper-heuristics, where each solution of the search space is a possible algorithm. Initially, hyper-heuristics were applied for the selection of parameters in a predefined and limited search space. Nonetheless, recently, generation hyper-heuristics have been developed to generate algorithms from a set of specified components and functions. Generation hyper-heuristics are considered more flexible than the selection ones due to its capacity to create new and customized algorithms for a given problem. Hyper-heuristics have been widely used for the optimization of meta-heuristics. However, the search process becomes expensive because the evaluation of each solution depends on the execution of an algorithm in a problem. In this work, a novel hyper-heuristic was developed to optimize algorithms considering a given problem. The proposed approach aims to provide optimized algorithms for the input problem and reduce the computational cost of the optimization process significantly when compared to other hyper-heuristics. The proposed hyper-heuristics combines an automated algorithm selection method with a generation hyper-heuristic. The generation hyper-heuristic is responsible for the creation of the knowledge base, which contains previously built algorithms for a set of problems. Once the knowledge base is available, it is used as a source of algorithms to be recommended by the automated algorithm selection method. The idea is to reuse the algorithms already built by the generation hyper-heuristic on similar problems. It is worth mentioning that the creation of hyper-heuristics aiming to reduce the cost of the algorithm generation without harming the quality of these algorithms were not studied yet. Besides, hybrid hyper-heuristics which combine an algorithm selection approach with a generation hyper-heuristic for the algorithm optimization, proposed in this thesis, are a novelty. To evaluate the proposed algorithm, it was considered as case study the optimization of the Particle Swarm Optimization algorithm (PSO). In our experiments, we considered 32 optimization problems. The proposed system was evaluated regarding its capacity to recommend adequate algorithms for an input problem, the quality of the recommended algorithms, and, finally, regarding its accuracy to recommend algorithms. The results showed that the proposed system recommends useful algorithms for the input problem. Besides, the algorithms achieved competitive results when compared to state-of-the-art algorithms, and also, the system presented a high percentage of accuracy in the recommendation.

(10)

Keywords: Meta-learning. Particle Swarm Optimization. Genetic Programming. Algorithm generation.

(11)

Figura 1 – Esquema do formalismo básico para o problema de seleção de algoritmos. . 17

Figura 2 – Roadmap da pesquisa. . . 22

Figura 3 – Arquitetura do MtL. . . 26

Figura 4 – Mtl: Modo de Aquisição de Conhecimento. . . 27

Figura 5 – MtL: Modo de Consulta. . . 29

Figura 6 – Arquitetura de HHs. . . 30

Figura 7 – Uso de GA na otimização do PSO quando aplicado a problemas de otimização contínua sem restrições. . . 31

Figura 8 – Representação de indivíduos em formato de árvore. . . 32

Figura 9 – Exemplo de gramática para a geração de indivíduos no contexto do problema de regressão simbólica. . . 34

Figura 10 – Funcionamento do GGGP. . . 35

Figura 11 – Exemplo de operador de mutação em GGGP. . . 36

Figura 12 – Exemplo de operador de cruzamento em GGGP. . . 37

Figura 13 – Indivíduo representado por array de 8-bits. . . 38

Figura 14 – Topologias (a) Estrela e (b) Anel. . . 47

Figura 15 – Topologia Focal. . . 48

Figura 16 – Topologia Hierárquica com N = 7. . . . 49

Figura 17 – Algoritmo de atualização da Topologia Hierárquica. . . 49

Figura 18 – Algoritmo de atualização da Topologia Von Neumann. . . 50

Figura 19 – Topologia Four-Clusters. . . 50

Figura 20 – Topologia Clan e a conferência dos líderes. . . 51

Figura 21 – Arquitetura proposta. . . 58

Figura 22 – Mecanismo de retro-alimentação da meta-base com o aprendizado gerado a partir do problema novo. . . 59

Figura 23 – Fitness landscape dos problemas P1e P2. . . 61

Figura 24 – Gramática proposta para otimização do PSO. . . 63

Figura 25 – Classificação e codificação de objetos três pontos como neutro, enrugado e liso baseada nos valores de fitness relativos. . . 66

Figura 26 – Superfície de Fitness das funções matemáticas. . . 68

Figura 27 – Cálculo de dispersão. . . 69

Figura 28 – Média dos valores de fitness (a cada 500 iterações) dos algoritmos gerados pelos CFG-GP, GE e RS para todas as categorias de problemas. . . 79

(12)

Lista de tabelas

Tabela 1 – Problemas de classificação utilizados para a geração de meta-exemplos. . . 27 Tabela 2 – Métricas para descrição de problemas de classificação. . . 28 Tabela 3 – Resumo dos principais trabalhos relacionados à seleção/geração de

algorit-mos para PSO. . . 55 Tabela 4 – Métricas de FLA . . . 70 Tabela 5 – Parâmetros adotados pelos CFG-GP e GE. . . 75 Tabela 6 – Média dos valores de fitness dos algoritmos CFG-GPprope CFG-GPadv em

cada problema de otimização. . . 76 Tabela 7 – Média dos valores de fitness dos algoritmos CFG-GP, GE e RS em cada

problema de otimização. . . 78 Tabela 8 – Ranking dos algoritmos considerando todos os problemas. . . 81 Tabela 9 – Média dos valores de fitness dos algoritmos gerados pelo CFG-GP e dos

algoritmos do ICSI 2014 em cada problema de otimização. . . 83 Tabela 10 – Valores de parâmetros resultantes por categoria de problema. . . 84 Tabela 11 – Valores de <TOPOLOGIA> utilizados durante as simulações por categoria

de problemas. . . 84 Tabela 12 – Exemplos de <UPDATE-VELOCITY> por categoria de problemas. . . . . 86 Tabela 13 – Comparação entre os valores de fitness da recomendação e dos valores de

fitness dos algoritmos originais, para cada problema. . . 88 Tabela 14 – Resultados da recomendação da abordagem proposta para cada problema. . 89

(13)

ACO Ant Colony Optimization

AM Aprendizagem de Máquina

BBO biogeography-based optimization

BNF Backus-Naur form

CFG-GP Context-free Grammar Genetic Programming

DE Differential Evolution

DM Dispersion Measure

EFWA Enhanced Fireworks Algorithm

ES Evolution Strategy

FCI Fitness Cloud Index

FEM First Entropic Measure

FLA Fitness Landscape Analysis

FWA Fireworks Algorithm

GA Genetic Algotihms

GDE Grammatical Differential Evolution

GE Grammatical Evolution

GEFPSO Grammatical Evolution Framework for Particle Swarm Optimization

GGGP Grammar-guided Genetic Programming

GM Gradient Measure

GP Genetic Programming

GS Grammatical Swarm Evolution

HHs Hiper-heurísticas

IL Information Landscape

(14)

LOGENPRO Logic grammar-based genetic programming

MLP Multi-Layer Perceptron

MPCPSO Multiple Population Co-evolution PSO

MtL Meta-Learning

NSM Nonlinear Simplex Model

PSO Particle Swarm Optimization

RS Random Search

(15)

1 INTRODUÇÃO . . . . 16

1.1 Contexto da tese . . . . 16

1.1.1 Seleção de algoritmos . . . 16

1.1.2 Seleção de valores de hiper-parâmetros . . . 18

1.1.3 Geração de algoritmos . . . 18

1.2 Definição do problema da tese . . . . 19

1.3 Trabalho desenvolvido . . . . 19 1.4 Estudo de caso . . . . 22 1.5 Organização da tese . . . . 24 2 CONCEITOS BÁSICOS . . . . 25 2.1 Meta-aprendizado . . . . 25 2.2 Hiper-heurísticas . . . . 30

2.3 Programação Genética guiada por gramática . . . 33

2.4 Considerações finais . . . 40

3 ALGORITMOS INSPIRADOS EM ENXAMES DE PARTÍCULAS . . 41

3.1 O algoritmo do PSO . . . . 42

3.2 Técnicas de inicialização populacional . . . . 43

3.3 Equações de atualização de velocidade . . . . 44

3.4 Constantes de aceleração . . . . 46

3.5 Topologias de comunicação . . . . 46

3.6 Operadores de Mutação . . . . 53

3.7 Seleção/Geração de algoritmos para PSO . . . . 53

3.8 Considerações finais . . . 56

4 HIPER-HEURÍSTICA HÍBRIDA PARA A OTIMIZAÇÃO DE ALGO-RITMOS . . . . 57 4.1 Arquitetura do sistema . . . . 57 4.1.1 Geração de algoritmos . . . 60 4.1.2 Extração de características . . . 60 4.1.3 Meta-base . . . 61 4.1.4 Seleção de algoritmos . . . 61 4.2 Implementação da arquitetura . . . . 61 4.2.1 Geração de algoritmos . . . 62 4.2.2 Extração de características . . . 64

(16)

4.2.3 Meta-base . . . 69 4.2.4 Seleção de algoritmos . . . 70 4.3 Considerações finais . . . 71 5 EXPERIMENTOS E RESULTADOS . . . . 72 5.1 Metodologia experimental . . . . 72 5.2 Domínio do problema . . . . 72 5.3 Resultados . . . . 74

5.3.1 Análise da geração de algoritmos . . . 74

5.3.1.1 Comparação entre gramáticas para a geração de algoritmos para o PSO . . . 74

5.3.1.2 Comparação entre abordagens baseadas em GGGP . . . 75

5.3.1.3 Comparação com algoritmos do ICSI 2014 . . . 80

5.3.1.4 Análise da estrutura dos algoritmos gerados . . . 82

5.3.2 Análise da seleção de algoritmos . . . 85

5.3.3 Análise do custo computacional . . . 90

5.4 Considerações finais . . . 90 6 CONCLUSÃO . . . . 91 6.1 Contribuições do trabalho . . . . 92 6.2 Produção bibliográfica . . . 92 6.2.1 Artigos em conferências . . . 92 6.2.2 Artigos em revistas . . . 93

6.3 Limitações e trabalhos futuros . . . 93

(17)

1 Introdução

1.1 CONTEXTO DA TESE

Um problema de otimização pode ser definido como a tarefa de encontrar a melhor solução dentre as possíveis soluções para um problema (HOOS e STÜTZLE, 2004). Diversos problemas reais podem ser mapeados como problemas de otimização, tais como, planejamento financeiro, controle de processos, gerenciamento de riscos, projeto de escalonamento, planeja-mento de produção, roteaplaneja-mento, empacotaplaneja-mento e etc. Por este motivo a grande importância de se estudar estratégias para resolvê-los.

Geralmente, métodos heurísticos dependent) ou meta-heurísticos (problem-independent) são usados para solucionar estes problemas, já que métodos exatos podem levar muito tempo para alcançar a solução ótima. Estas abordagens não garantem que a solução ótima será encontrada, mas o objetivo é retornar uma solução razoavelmente boa em um tempo e memória aceitável (TALBI, 2009; GENDREAU e POTVIN, 2010). Na literatura, encontra-se uma variedade de algoritmos meta-heurísticos aplicados a problemas de otimização. Dentre os algoritmos, pode-se citar busca tabu, Algoritmos Genéticos (do inglês, Genetic Algorithms) (GA), Programação Genética (do inglês, Genetic Programming) (GP), algoritmos meméticos, busca baseada em vizinhança variável, busca local, GRASP, Otimização baseada em Colônia de Formigas (do inglês, Ant Colony Optimization) (ACO), Otimização por Enxame de Partículas (do inglês, Particle Swarm Optimization) (PSO), têmpera simulada, entre outros (TALBI, 2009; GENDREAU e POTVIN, 2010). Diante da grande variedade de algoritmos e de problemas a serem resolvidos, naturalmente surge a seguinte pergunta: Qual é o algoritmo mais adequado para um dado problema?. Utilizar a estratégia de tentativa e erro para identificar o melhor algoritmo, seus parâmetros e componentes (e.g. operador de mutação) é a resposta mais direta, mas não é viável. Como não existe um algoritmo genérico que possa resolver todos os problemas (WOLPERT e MACREADY, 1997), surge a necessidade de automatizar o processo de definição do algoritmo mais adequado para um problema de entrada. Pode-se destacar três vertentes de pesquisa na área de otimização de algoritmos: a seleção de algoritmos, a seleção de valores de hiper-parâmetros e a geração de algoritmos (PAPPA e FREITAS, 2009).

1.1.1 Seleção de algoritmos

O problema de seleção de algoritmos pode ser definido como, dado um conjunto de algoritmos candidatos, escolher o melhor algoritmo para um problema de entrada considerando uma métrica desejada de avaliação. Rice (1975) propôs um formalismo genérico para seleção de algoritmos (ver figura 1). Este formalismo relaciona problemas e algoritmos através do desempenho destes algoritmos e as características dos problemas. Em seu formalismo,

(18)

observa-Capítulo 1. Introdução 17

se o espaço de problemas P , que contém todo o conjunto de instâncias de problemas. O espaço de características F que contém características adquiridas de P e realizadas por um extrator de características qualquer. O espaço de algoritmos A, que contém todos os algoritmos capazes de resolver um determinado problema. O espaço de medidas de desempenho D, que contém todas as medidas de desempenho possíveis. Dado um problema x ∈ P que contém características f (x) ∈ F , a tarefa consiste em encontrar um mapeamento S(f (x)) no espaço de algoritmos A de forma que um algoritmo candidato selecionado a ∈ A apresente o maior desempenho d(a(x)) ∈ D.

Figura 1 – Esquema do formalismo básico para o problema de seleção de algoritmos.

Fonte: adaptado de (RICE, 1975)

O problema de seleção de algoritmos abriu possibilidades para investigar se o processo de aprendizado pode ocorrer em um nível de abstração em que é possível aprender sobre o próprio processo de aprendizado e gerar conhecimento a partir da experiência de execuções anteriores. Dessa forma, torna-se possível a realização de uma seleção automática de algoritmos tomando como base o conhecimento adquirido e as características de um novo problema a ser resolvido. Uma das abordagens mais conhecidas neste contexto é o Meta-Aprendizado (do inglês, Meta-Learning) (MtL) (SMITH-MILES, 2008; KANDA et al., 2011b). MtL é o processo de aquisição automática de conhecimento a partir de uma avaliação empírica de algoritmos de treinamento em diferentes problemas (conjuntos de dados). Um sistema de MtL resolve o problema de seleção de algoritmos efetivamente através da realização de um mapeamento entre um determinado problema e um modelo preditivo. A função preditiva é modelada na forma de um problema de aprendizagem supervisionada. O processo difere da abordagem tradicional de aprendizagem de máquina principalmente no nível de abstração em que a adaptação do modelo de aprendizagem ocorre. A aprendizagem dos métodos tradicionais foca na adaptação do modelo em uma tarefa específica. MtL, por outro lado, utiliza modelos de aprendizado induzidos a partir de conhecimento em nível meta, fazendo uso da experiência resultante de várias aplicações de um sistema de aprendizado. Em um contexto de recomendação de algoritmos, por exemplo, o conhecimento adquirido é utilizado para construir a função de mapeamento entre características

(19)

de problemas e desempenho de algoritmos (BRAZDIL; SOARES; COSTA, 2003). Sendo assim, a qualidade de um modelo de MtL está intimamente ligada à qualidade do conhecimento obtido durante a etapa de aprendizagem (meta-base).

MtL, como abordagem de seleção de algoritmos, têm contribuído bastante no processo de otimização de algoritmos. Isto se deve ao reuso do conhecimento adquirido a partir dos experimentos passados. Este procedimento reduz o custo na definição de um algoritmo para um novo problema de entrada, quando comparado a outras abordagens tais como algoritmos de busca que precisam avaliar cada possível algoritmo candidato. Embora MtL seja uma abordagem eficiente, esta pode apresentar algumas limitações. Uma delas é com relação à construção da meta-base, pois a capacidade de MtL para selecionar algoritmos versáteis para os problemas de entrada está intimamente ligada à qualidade do conhecimento obtido durante o processo de aprendizagem. Além disso, o desempenho da recomendação de algoritmos do MtL é dependente da escolha das métricas de caracterização dos problemas. Caso as métricas não sejam adequadas para a descrição dos problemas considerados, a recomendação é prejudicada.

1.1.2 Seleção de valores de hiper-parâmetros

O problema de seleção de parâmetros pode ser definido como, dado um algoritmo e um espaço de hiper-parâmetros, escolher a melhor configuração de valores para os hiper-parâmetros do algoritmo de modo que este alcance um bom desempenho em um dado problema de entrada. Algoritmos do estado da arte geralmente possuem hiper-parâmetros (e.g. taxa de mutação em GA e, constantes de regularização no PSO) e, quando estes algoritmos são aplicados na resolução de problemas reais e complexos, os seus hiper-parâmetros precisam ser devidamente ajustados. Caso contrário, valores inadequados podem influenciar negativamente o desempenho dos algoritmos.

Visando evitar o ajuste manual dos parâmetros dos algoritmos, este problema passou a ser encarado como um problema de otimização. Podendo-se, portanto, aplicar algoritmos de otimização na busca por parâmetros ótimos para que um certo algoritmo maximize seu desempenho quando aplicado em um dado problema de entrada (SHI e EBERHART, 1998b; EIBEN; HINTERDING; MICHALEWICZ, 1999). Vale salientar que a aplicação de MtL também já foi investigada para a seleção de valores de hiper-parâmetros de algoritmos. Destacam-se os seguintes trabalhos relacionados (KUBA et al., 2002; PAPPA et al., 2014; SMITH-MILES, 2009; MIRANDA et al., 2014).

1.1.3 Geração de algoritmos

O problema de geração de algoritmos pode ser definido como, dado um conjunto de com-ponentes de um ou vários algoritmos, gerar novos algoritmos a partir dos comcom-ponentes existentes. As abordagens anteriormente apresentadas objetivavam apenas a seleção de algoritmos padrão ou ajustar os parâmetros destes algoritmos. Em busca de maior flexibilidade na construção de uma melhor solução (algoritmo) para um dado problema, foram criadas técnicas para geração total de

(20)

Capítulo 1. Introdução 19

algoritmos (hiper-heurísticas de geração), considerando-se funções e elementos complexos de programação (e.g. loops e if-then-else) (FREITAS e PAPPA, 2009). Neste ramo de geração de algoritmos destacam-se as hiper-heurísticas (HHs). HHs podem ser definidas como o processo de usar (meta-)heurísticas para escolher/construir (meta-)heurísticas para resolver um determinado problema. Enquanto meta-heurísticas realizam a busca em um espaço de soluções candidatas para um problema diretamente, HHs realizam a busca em um espaço de (meta-)heurísticas. Cada (meta-)heurística é um possível algoritmo para resolver o problema de otimização, e é avaliada através de uma função de avaliação sobre o problema. Uma vez que o desempenho de cada (meta-)heurística é avaliado sobre o problema, a HH é capaz de direcionar a busca considerando as (meta-)heurísticas mais promissoras.

A abordagem de geração de algoritmos tem sido importante para a área de otimização de algoritmos pois provê meios para projetar novos algoritmos com modelos previamente não considerados. Isto torna-se interessante para o especialista, pois permite o surgimento de novos pontos de vista com relação ao desenvolvimento de algoritmos (FREITAS e PAPPA, 2009). No entanto, um ponto crítico existente na geração de algoritmos, é a avaliação da solução. Como cada solução do espaço de busca representa um possível algoritmo, o cálculo de fitness de cada solução é a execução do próprio algoritmo no problema de entrada. Deste modo, a geração de algoritmos torna-se bastante custosa, principalmente quando o número de soluções e iterações da simulação é grande (HARDING e BANZHAF, 2007). Vale salientar que algoritmos de geração de algoritmos propostos na literatura não levaram em consideração este custo, sendo, portanto, um problema em aberto (MCKAY et al., 2010). No entanto, pode-se citar alguns trabalhos que utilizaram GPUs para tentar acelerar a avaliação dos indivíduos (HARDING e BANZHAF, 2007; ROBILLIARD; MARION; FONLUPT, 2009).

1.2 DEFINIÇÃO DO PROBLEMA DA TESE

Hiper-heurísticas de geração automática de algoritmos têm sido largamente estudadas e aplicadas em diversos domínios. Embora os resultados alcançados sejam promissores, o problema relacionado ao custo de geração de algoritmos ainda está em aberto. Diante disto, esta tese propõe uma alternativa para a redução do custo de geração de algoritmos sem comprometer a qualidade destes algoritmos quando aplicados no problema de entrada.

1.3 TRABALHO DESENVOLVIDO

A escolha por uma HH de geração para o problema de otimização de algoritmos está associada ao potencial desses métodos de construir algoritmos mais ricos, dependendo de como o espaço de busca é definido. Por outro lado, esta abordagem pode ter um custo computacional proibitivo, que pode ser aliviado por implementações de hardwares sofisticados (HARDING e BANZHAF, 2007; ROBILLIARD; MARION; FONLUPT, 2009).

(21)

Abordagens de seleção de algoritmos foram concebidas para selecionar algoritmos a partir de um conjunto limitado de algoritmos bem conhecidos. Neste caso, os algoritmos considerados candidatos à recomendação podem não ser suficientemente versáteis para lidar com uma variedade de problemas de entrada, ou seja, o conhecimento adquirido, durante os experimentos realizados, pode não ser suficiente para a definição de uma boa meta-base. Em contrapartida, o processo de seleção de algoritmos, uma vez que a meta-base foi criada, é de baixo custo computacional.

Diante dos pontos elucidados, foi desenvolvida neste trabalho uma hiper-heurística híbrida que combina HH de geração com um método de seleção de algoritmos (MtL). Esta solução visa prover algoritmos gerados que sejam adequados para um problema dado com baixo custo computacional quando comparado ao de outras HHs de geração.

A fim de melhorar a diversidade dos algoritmos disponíveis para a seleção, inicialmente a HH de geração é utilizada para criar um conjunto de algoritmos mais diverso, flexível e rico. A ideia é que para cada problema de entrada, um algoritmo customizado seja gerado. Estes novos algoritmos são usados pelo MtL no processo de construção da meta-base para auxiliar na seleção de algoritmos. O objetivo desta combinação é ter a vantagem do baixo custo computacional da abordagem de seleção de algoritmos para recomendar algoritmos ricos, que foram gerados pela HH de geração, para um dado problema de entrada.

O funcionamento da abordagem proposta leva em consideração duas etapas: a construção do conhecimento e a recomendação do algoritmo mais adequado. A etapa de construção de conhecimento cria uma base de problemas de otimização, em que cada problema é associado a um algoritmo produzido pela HH de geração. Embora nesta tese a relação seja de um algoritmo gerado por problema, esta é uma decisão de implementação. Pode-se, portanto, definir o número de algoritmos, a serem armazenados na meta-base, por problema. No processo de construção é fornecido como entrada um problema de otimização. A partir daí, duas operações são realizadas: 1) a aplicação de métricas de caracterização do problema objetivando descrever o problema, e 2) a execução de uma hiper-heurística de geração na construção de algoritmos sobre o problema dado. Como pode-se perceber, o processo de construção da meta-base é bastante custoso. No entanto, à medida que o conhecimento adquirido com a geração de algoritmos em um certo número de problemas, este conhecimento pode ser reutilizado para resolver novos problemas sem a necessidade do processo de geração novamente. A etapa de uso da meta-base é apresentada a seguir.

Na etapa de recomendação do algoritmo, um problema de otimização não considerado até o momento é fornecido como entrada. Diante disto, extrai-se as características deste novo problema, sendo estas comparadas com características de problemas que já foram solucionados previamente (contidos na meta-base). Uma vez identificado o problema mais similar, o algo-ritmo gerado para este problema (neste trabalho decidiu-se selecionar apenas um algoalgo-ritmo) é recomendado para o problema de entrada. O custo computacional da recomendação leva em

(22)

Capítulo 1. Introdução 21

consideração a extração de características do novo problema e a definição do problema mais similar, fazendo com que o especialista tenha acesso a um algoritmo para o problema de entrada rapidamente, sem a necessidade de executar a hiper-heurística para a geração de um algoritmo para o problema de entrada.

A hipótese considerada neste trabalho é que uma vez que o problema mais similar seja identificado e sua solução recomendada ao problema de entrada, esta solução seja útil e atinja bons resultados, sem a necessidade de geração de um algoritmo para o problema de entrada especificamente. O roadmap desta pesquisa é apresentado na Figura 2.

Como apresentado no roadmap, para a realização deste trabalho duas áreas foram investigadas: HHs e MtL. As técnicas de HHs serão utilizadas no componente gerador de algoritmos visando a construção da meta-base. Para a criação deste componente foram necessárias as seguintes atividades:

• Definir um estudo de caso para aplicar a abordagem proposta; • Escolher a hiper-heurística de geração mais adequada;

• Analisar a geração dos algoritmos;

• Comparar algoritmos gerados com algoritmos estado da arte presentes na literatura; Como já foi mencionado na Seção 1.2, o custo computacional necessário para a geração de um algoritmo resultante pode ser alto. Se para cada problema novo que surgir o processo de geração de algoritmo tiver que ser executado novamente, esta atividade pode se tornar bastante demorada. A área de MtL será utilizada para evitar o tempo gasto na reexecução do componente gerador de algoritmo. Deste modo, será criada uma infraestrutura para recomendar algoritmos já avaliados, em problemas anteriores, para um dado problema de entrada. Para a sua criação, as seguintes atividades foram realizadas:

• Criar meta-base (base de conhecimento) composta por problemas de otimização já resol-vidos e os respectivos algoritmos adotados para cada problema (construídos a partir do componente gerador de algoritmos);

• Definir meta-características para descrever problemas de otimização;

• Recomendar, para o problema de entrada, o algoritmo adotado no problema mais similar presente na meta-base;

• Analisar a qualidade da recomendação, ou seja, se o algoritmo recomendado é útil para o problema dado.

(23)

Figura 2 – Roadmap da pesquisa.

Fonte: o autor

1.4 ESTUDO DE CASO

Para avaliar a abordagem proposta, o PSO foi escolhido como algoritmo a ser otimizado levando em considerando um conjunto de problemas de otimização. O PSO é uma meta-heurística desenvolvida nos anos 90, inspirada no comportamento social de bandos de pássaros buscando por comida (KENNDY e EBERHART, 1995). Esta técnica tem alcançado um grande interesse na comunidade científica devido a sua simplicidade, flexibilidade e seus resultados competitivos

(24)

Capítulo 1. Introdução 23

em diferentes aplicações (ENGELBRECHT, 2007). Diversas variações foram propostas para a melhoria deste algoritmo. Por exemplo, os fatores de inércia e constrição foram propostos para melhorar a convergência e a estabilidade do algoritmo (EIBEN; HINTERDING; MICHA-LEWICZ, 1999). Além disso, diferentes topologias foram desenvolvidas para definir como as partículas trocam informações durante o processo de otimização (ENGELBRECHT, 2007; KENNEDY e MENDES, 2002). Estas e outras abordagens desenvolvidas mostraram-se úteis e melhoraram o desempenho do PSO significativamente. Porém, assim como acontece com outros algoritmos, o desempenho do PSO em um dado problema de otimização pode ser afetado pela escolha dos elementos que o compõe (SHI e EBERHART, 1998b). O uso da topologia global, por exemplo, favorece potencialmente o PSO em problemas com baixo número de mínimos locais, enquanto que a topologia local seria mais adequada para problemas de superfície mais complexa. Além da topologia, também foi constatada a influência de outros elementos no desempenho do PSO, tais como equações de velocidade, valores de constantes de aceleração e operadores de mutação (XU, 2013).

A tarefa de decidir qual é o melhor algoritmo do PSO para solucionar um problema particular torna-se complicada devido ao grande número de possíveis variações e parâmetros do PSO a serem levados em conta (POLI; CHIO; LANGDON, 2005). Dentre as abordagens, destacam-se as hiper-heurísticas que lidam com a tarefa de ajuste de algoritmos do PSO como sendo outro problema de (meta)otimização. O espaço de busca, neste caso, é um conjunto de possíveis algoritmos para o PSO no dado problema. A função objetivo, por outro lado, é a mesma adotada no problema de (base)otimização corrente. O uso de técnicas na otimização de algoritmos é uma estratégia sistemática que vem sendo estudada na literatura para evitar experimentos exaustivos de tentativa e erro (POLI; CHIO; LANGDON, 2005). Já foram aplicados para a otimização do PSO, algoritmos como GA (LIU, 2008) e Evolução Diferencial (do inglês, Differential Evolution) (DE) (ZHANG et al., 2003). No entanto, estas abordagens visavam apenas a seleção adequada de parâmetros para o PSO. Trabalhos mais recentes estudaram a geração de novos PSOs através do uso de GP (RASHID, 2010; POLI; LANGDON; HOLLAND, 2005). Nestes trabalhos, foram geradas novas equações de velocidade para o PSO objetivando-se balancear a convergência e a exploração. Ainda com relação à geração do PSO, há trabalhos que também focaram na geração da equação de velocidade do PSO, porém, fazendo uso de uma variação de GP que utiliza gramática (do inglês, Grammar-guided Genetic Programming) (GGGP) (SI, 2012; SI, 2013; SI; DE; BHATTACHARJEE, 2014). Como pode-se ver, o estudo da geração de modelos para o PSO não foi estudada profundamente. Além disso, os componentes e valores de parâmetros considerados nos trabalhos citados foram limitados e investigados em poucos problemas.

(25)

1.5 ORGANIZAÇÃO DA TESE

Além deste capítulo, esta tese será apresentada em mais cinco capítulos que estão organizados da seguinte forma:

Capítulo 2: Neste capítulo são apresentados os trabalhos relacionados a otimização de algorit-mos e são apresentadas críticas, vantagens e limitações.

Capítulo 3: Neste capítulo são apresentados os conceitos básicos do algoritmo PSO para um melhor entendimento do estudo de caso.

Capítulo 4: Neste capítulo é apresentada a proposta da tese, sua motivação e a formalização do trabalho desenvolvido.

Capítulo 5: Neste capítulo são apresentados os experimentos realizados e resultados obtidos. Capítulo 6: Neste capítulo são apresentadas conclusões, contribuições, limitações e trabalhos

(26)

25

2 Conceitos básicos

Neste trabalho tem-se como objetivo a otimização de algoritmos de forma eficiente. Diante disso, neste capítulo, serão apresentadas as áreas de MtL e HHs, bem como os trabalhos realizados nestas áreas que estão relacionados ao problema em questão.

2.1 META-APRENDIZADO

MtL é uma abordagem de seleção de algoritmos que se baseia na associação entre as características de um dado problema (e.g. classificação ou otimização) e o desempenho alcançado por algoritmos naquele problema (RENDELL e CHO, 1990). O objetivo é formar uma base de conhecimento em que sabe-se quais algoritmos obtiveram os melhores desempenhos em um dado conjunto de problemas (RENDELL e CHO, 1990). Com isto, MtL explora os dados obtidos de experimentos passados e constrói a partir deles modelos que podem ser utilizados para predição do algoritmo mais adequado para um novo problema de entrada.

O primeiro estudo nesta área foi desenvolvido por Rendell e Cho (1990), dando início às tentativas de caracterizar problemas de classificação e examinar o seu impacto no comportamento do algoritmo, usando características relacionadas ao tamanho e concentração das classes. Aha (1992) estendeu esta ideia, utilizando algoritmos de aprendizado baseados em regra para criar regras como: se o conjunto de dados apresenta as características C1, C2, ..., Cn, então use o algo-ritmo A1 e não use o algoritmo A2. Neste trabalho foram utilizados algoritmos de classificação para a resolução do problema de reconhecimento de caracteres. As características utilizadas para descrever os problemas de classificação incluíam o número de instâncias, número de classes, número de atributos relevantes e irrelevantes.

Outro trabalho bastante importante para o desenvolvimento da área de MtL foi o projeto Statlog. O principal objetivo deste projeto era apresentar o potencial e as fraquezas existentes nos diversos algoritmos de classificação existentes. A análise experimental deste trabalho foi referenciada no livro de Brazdil e Henery (1994), que relaciona o desempenho dos algoritmos às suas caraterísticas ou medidas descritivas de conjuntos de dados de classificação. O resultado final deste trabalho foi um conjunto de medidas para caraterizar conjuntos de dados agrupadas em medidas simples (e.g. número de instâncias, classes, etc), estatísticas (e.g. média e variância dos atributos) e de teoria da informação (e.g. entropia). Estas categorias de características de dados são utilizadas até hoje (SMITH-MILES, 2009).

Baseado no sucesso do projeto Statlog e o progresso da pesquisa em MtL, foi fundado o projeto ESPRIT, em 1998, intitulado METAL: a meta-learning assistant for providing user support in machine learning and data mining. O objetivo deste projeto foi desenvolver propostas para seleção de modelos de algoritmos e disponibilizar para o usuário. Este projeto, quando

(27)

criado, incorporava 53 bases de classificação, 10 algoritmos de aprendizado e medidas de desempenho do algoritmo baseadas na validação cruzada e no custo computacional. Atualmente, os números são bem maiores.

A Figura 3 mostra a arquitetura do MtL. Em MtL, dada uma nova base de dados, o sistema indica quais as melhores soluções (e.g. algoritmos, heurísticas, configurações de parâmetros) que geram os melhores resultados a partir das características do problema, proporcionando ao usuário economia de tempo, pois reduz a quantidade de algoritmos ou configurações de parâmetros que ele iria testar. De modo a facilitar o entendimento do conceito de MtL, utilizamos a arquitetura definida por Brazdil et al. (2008) como referência. A arquitetura do MtL pode ser dividida em dois modos de operação, aquisição de conhecimento e consulta, que serão detalhados a seguir. O modo de aquisição de conhecimento objetiva aprender sobre o próprio processo de aprendizagem. A Figura 4 ilustra este modo de operação.

Figura 3 – Arquitetura do MtL.

Fonte: o autor

Assume-se que a entrada do sistema consiste em um conjunto de bases de dados de exemplos, como pode-se ver na Figura 4-A. Para cada base de dados são extraídas características (Figura 4-B) que podem estar ou não relacionadas ao domínio particular da aplicação. Estas características ou meta-características, por sua vez, formam um conjunto de aspectos descritivos das bases (e.g., o número de atributos, número de outliers, número de atributos simbólicos, entre outros) que sejam capazes de capturar informação útil. Além disso, técnicas (Figura 4-C) são escolhidas (e.g. classificadores, meta-heurísticas) para serem aplicadas nas bases de dados, gerando seu desempenho no dado problema (Figura 4-D). Os valores das meta-características e do cálculo de desempenho são combinados, formando o meta-exemplo (Figura 4-E), e armazenados na meta-base (Figura 4-F).

(28)

Capítulo 2. Conceitos básicos 27

Figura 4 – Mtl: Modo de Aquisição de Conhecimento.

Fonte: o autor

Para exemplificar o processo de aquisição do conhecimento será considerado o problema de seleção de parâmetros da SVM no contexto de classificação. O objetivo é configurar a SVM com parâmetros adequados de acordo com o problema de classificação fornecido como entrada objetivando-se maximizar sua precisão na classificação. Deste modo, faz-se necessária a criação da meta-base. Para isto, um conjunto de 25 problemas de classificação são selecionados como exemplo (ver Tabela 1). Em seguida, métricas de descrição de problemas são aplicadas em cada problema, gerando como saída um vetor de características para cada problema. Na Tabela 2 podem ser vistas as métricas adotadas para a descrição dos problemas de classificação.

Tabela 1 – Problemas de classificação utilizados para a geração de meta-exemplos.

Blood Northix Credit-a Mamography First-order theorem proving Leaf Vehicle Lung Cancer Optdigits Spoken Arabic Digit Colic Soybean Hill Wholesale Istanbul

Valley customers Stock Exchange Heart Splice Hepatitis Musk v.2 Image Segment. Colon Libras Breast-w Ozone Lvl. Robot Execution

Detection Failures

Este exemplo está considerando a otimização de dois hiper-parâmetros da SVM: γ do kernel RBF e C. Os valores possíveis de cada hiper-parâmetro é definido da seguinte forma:

(29)

Tabela 2 – Métricas para descrição de problemas de classificação. Número de exemplos

Número de atributos Número de classes Média da correlação dos atributos

γ assume 19 valores diferentes (de 2−15a 23) e C assume 21 valores diferentes (de 2−5a 215), totalizando 399 diferentes combinações de parâmetros. O desempenho da SVM, configurada com cada possível combinação de parâmetros, é avaliado sobre cada problema considerado. Esta avaliação se dá através do experimento de validação cruzada 10-fold. Uma vez que as características de cada problema foram extraídas e que o desempenho da SVM foi avaliado, considerando-se cada possível configuração em todos os problemas, os meta-exemplos são criados e armazenados na meta-base. A meta-base é o principal resultado da fase de aquisição do conhecimento, refletindo a experiência acumulada ao longo de diferentes tarefas. A eficácia do meta-aprendizado aumenta à medida que são acumulados meta-exemplos.

No modo de consulta, dada um novo problema como entrada (Figura 5-A), o objetivo é recomendar a solução (e.g. algoritmo, configurações do algoritmo) através da comparação entre as características da base de entrada e dos meta-exemplos. A meta-base gerada no modo anterior é utilizada como um repositório de execuções passadas (meta-exemplos). Com o surgimento de um novo problema de entrada, são extraídas suas características (Figura 5-B) comparando-as com as características dos meta-exemplos da meta-base (Figura 5-C) de modo a produzir recomendações (Figura 5-D). Deste modo, uma vez identificado o meta-exemplo mais similar com relação ao problema de entrada, a solução que obteve o melhor desempenho sobre o meta-exemplo é recomendada como solução para o problema de entrada (Figura 5-E).

Nos últimos anos, MtL têm sido aplicada com sucesso, principalmente, na seleção de algoritmos (cenário apresentado previamente) em uma variedade de tipos de problemas (BRAZDIL et al., 2008). No trabalho realizado por Brazdil, Soares e Costa (2003) foi criado um método de MtL que auxilia usuários na seleção de algoritmos de Aprendizagem de Máquina (AM) para uma dada base de dados. Também destaca-se o trabalho desenvolvido por Miranda et al. (2014) que utilizou MtL na seleção/recomendação de parâmetros para Support Vector Machine(SVM).

(30)

Capítulo 2. Conceitos básicos 29

Figura 5 – MtL: Modo de Consulta.

Fonte: o autor

Embora as pesquisas realizadas em MtL sejam em sua maioria focadas na seleção de algoritmos ou modelos na área de AM, alguns estudos aplicam MtL em outras áreas, tais como otimização. Em (XU et al., 2008), a abordagem SATzilla seleciona meta-heurísticas para solução de problemas de satisfatibilidade. Em (SMITH-MILES, 2008), um modelo de MtL baseado no Multi-Layer Perceptron(MLP) é usado para selecionar algoritmos de otimização para o problema de atribuição quadrática. Já nos trabalhos (KANDA et al., 2011a; KANDA et al., 2011b; SMITH-MILES; HEMERT; LIM, 2010), o MtL foi utilizado para recomendar meta-heurísticas para o problema do Caixeiro Viajante. Nos trabalhos mencionados acima, as meta-características adotadas são dependentes do contexto. No caso do problema do caixeiro viajante, por exemplo, características como número de vértices, menor e maior custo de vértice, custo médio dos vértices foram adotadas na descrição dos problemas.

MtL, como abordagem de seleção de algoritmos, têm contribuído bastante no processo de otimização de algoritmos. Isto se deve ao reuso do conhecimento adquirido a partir dos expe-rimentos passados. Este procedimento reduz o custo na definição de um algoritmo para um novo problema de entrada, quando comparado a outras abordagens tais como algoritmos de busca que precisam avaliar cada possível algoritmo candidato. Embora MtL seja uma abordagem eficiente, esta pode apresentar algumas limitações. Uma delas é com relação à construção da meta-base, pois a qualidade de um modelo de MtL está intimamente ligada à qualidade do conhecimento obtido durante o processo de aprendizagem. Além disso, o desempenho da recomendação do MtL é dependente da escolha das métricas de caracterização dos problemas. Caso as métricas não sejam adequadas para a descrição dos problemas considerados, a recomendação é prejudicada.

(31)

2.2 HIPER-HEURÍSTICAS

HHs podem ser definidas como o processo de usar (meta-)heurísticas para escolher (meta-)heurísticas para resolver um determinado problema (BURKE et al., 2003). A figura 6 mostra a arquitetura genérica de uma HH. Enquanto meta-heurísticas realizam a busca em um espaço de soluções candidatas para um problema diretamente, HHs realizam a busca em um espaço de (meta-)heurísticas. Cada (meta-)heurística é um possível algoritmo para resolver o problema de otimização, e é avaliada através de uma função de avaliação sobre o problema. Uma vez que o desempenho de cada (meta-)heurística é avaliado sobre o problema, a HH é capaz de direcionar a busca considerando as (meta-)heurísticas mais promissoras. Esta abordagem é muito utilizada para automatizar a seleção de algoritmos (componentes como parâmetros e procedimentos) de algoritmos para resolução de problemas (BURKE et al., 2009).

Figura 6 – Arquitetura de HHs.

Fonte: o autor

Inicialmente, foram utilizadas meta-heurísticas (e.g. GA e DE) para a otimização de outras meta-heurísticas como o PSO na resolução de problemas de otimização contínua sem restrições (LIU, 2008; PARSOPOULOS, 2010). A figura 7 apresenta o modelo da HH definida por (LIU, 2008), cujo objetivo era otimizar os parâmetros do PSO quando aplicado a problemas de otimização contínua sem restrições. Cada PSO contido no conjunto de (meta-)heurísticas diz respeito à um PSO ajustado com uma possível configuração de parâmetros. Deste modo, cada possível PSO é avaliado em um dado problema de otimização contínua sem restrições quanto à sua capacidade de encontrar a solução ótima para aquele problema.

No entanto, a grande dificuldade inerente às meta-heurísticas, GA e DE, mencionadas é que a forma como estas representam indivíduos (soluções) é de baixa expressividade (string ou

(32)

Capítulo 2. Conceitos básicos 31

Figura 7 – Uso de GA na otimização do PSO quando aplicado a problemas de otimização contínua sem restrições.

Fonte: o autor

vetor), onde os genes do indivíduo tipicamente correspondem a dados como valores de variáveis (PAPPA e FREITAS, 2009). Por este motivo, os trabalhos encontrados. que aplicam GA e outras abordagens como HH, são fundamentalmente de seleção de algoritmos ou de parâmetros.

Objetivando-se considerar não apenas a seleção de (meta-)heurísticas pré-definidas e seus parâmetros no processo de otimização, mas também a geração de novas (meta-)heurísticas, foram desenvolvidas hiper-heurísticas de geração (PAPPA et al., 2014). Hiper-heurísticas de geração, diferentemente das hiper-heurísticas que selecionam (meta-)heurísticas de um conjunto pré-definido, são capazes de construir novas (meta-)heurísticas a partir das já existentes. O surgimento desta nova variação de hiper-heurísticas fez com que a definição de hiper-heurísticas se expandisse para uma metodologia automatizada para selecionar ou gerar (meta-)heurísticas para solucionar problemas de otimização. Dentre as hiper-heurísticas de geração, a mais comu-mente utilizada na literatura é GP (BURKE et al., 2009). GP é conhecido por ser um algoritmo usado na evolução/geração de programas, e sua flexibilidade na representação e geração de programas complexos e personalizados fez com que esta abordagem tenha se tornado popular na otimização de algoritmos (WOODWARD e SWAN, 2014).

Antes de entrar em detalhes a respeito da abordagem de GP, conceitos básicos precisam ser esclarecidos. O termo genótipo está associado a como o indivíduo é modelado utilizando uma estrutura de dados que é manipulada pelos operadores genéticos, tais como mutação e cruzamento. Por outro lado, o fenótipo aparece quando o indivíduo é traduzido para uma repre-sentação executável (programa ou algoritmo), podendo assim ter o seu desempenho avaliado. Diferentemente do GA, GP possui uma capacidade de representação dos seus indivíduos

(33)

(genó-tipo) com poder de expressividade maior. Cada indivíduo em GP é mapeado em uma estrutura de árvore (ver figura 8), sendo possível representar dados (tipicamente nós terminais da árvore) e funções ou operadores (tipicamente nós internos da árvore). A evolução de soluções candidatas considerando-se os tipos de dados mencionados anteriormente é a característica de GP que permite a descoberta de soluções para problemas de maior complexidade, quando comparado com outros algoritmos evolucionários convencionais.

Figura 8 – Representação de indivíduos em formato de árvore.

Fonte: o autor

Com a ascensão de GP no contexto de otimização de algoritmos, pode-se destacar avan-ços nas áreas de Otimização Combinatória e Aprendizagem de Máquina/Mineração de Dados. Em otimização combinatória tem-se trabalhos que aplicaram GP na resolução de problemas de empacotamento (BURKE et al., 2010; POLI; WOODWARD; BURKE, 2007), satisfatibilidade (FUKUNAGA, 2008; BADER-EL-DEN e POLI, 2007), escalonamento (TAY e HO, 2008) e caixeiro viajante (BURKE et al., 2013). Nas áreas de aprendizagem de máquina e mineração de dados, GP foi aplicada na otimização de modelos de classificação (YAO, 1999; VELLA et al., 2012; SMART e ZHANG, 2005; BOT e LANGDON, 2000; FOLINO; PIZZUTI; SPEZZANO, 2000), descoberta de regras de classificação (BOJARCZUK; LOPES; FREITAS, 1999), des-coberta de conhecimento (BOJARCZUK; LOPES; FREITAS, 2000) e outros, que podem ser encontrados em (PAPPA e FREITAS, 2009).

O algoritmo de GP pode apresentar um problema (não satisfatibilidade da propriedade de fechamento) que permite a geração de soluções incorretas sintaticamente, ou seja, programas incoerentes. Este fenômeno, limitação intrínseca ao algoritmo de GP, faz com que muitas soluções tenham que ser descartadas durante o processo de busca. Esta propriedade requer que todos os nós terminais e funções do GP produzam um valor que pode ser usado como valor de entrada por outra função do GP. Para exemplificar o não cumprimento desta propriedade,

(34)

Capítulo 2. Conceitos básicos 33

considera-se as funções aritméticas tradicionais: +, −, ∗, / e os valores: 0, 1, 2 como terminais. Neste caso, a propriedade de fechamento não é satisfeita, pois é possível que (2/0) aconteça, podendo abortar o programa com o erro de divisão por zero. Estes problemas motivaram o estudo e desenvolvimento de novas abordagens, como por exemplo a GP guiada por gramática (do inglês, Grammar-guided Genetic Programming (GGGP)), que utiliza uma gramática para definir regras usadas para a construção de programas/algoritmos (MCKAY et al., 2010). Abordagens baseadas em GGGP têm se popularizado devido à sua capacidade de representar informações sensíveis ao domínio através da gramática, evitando, portanto, problemas relacionados à criação de indivíduos incoerentes. A seção a seguir apresentará com detalhes abordagens baseadas em GGGP.

2.3 PROGRAMAÇÃO GENÉTICA GUIADA POR GRAMÁTICA

Existem duas reais motivações para combinar gramática e GP (O’NEILL e RYAN, 2001). Primeira, permite-se que o usuário incorpore na gramática conhecimento prévio sobre o domínio do problema para ajudar a guiar a busca. Segunda, elimina as chances da não satisfação da propriedade de fechamento através da definição das regras de produção da gramática. Inicialmente, abordagens baseadas em GGGP representavam uma pequena parcela das técnicas desenvolvidas em GP. No entanto, este cenário mudou, e o número de trabalhos envolvendo GGGP têm crescido (MCKAY et al., 2010; O’NEILL e RYAN, 2001).

Abordagens baseadas em GGGP apresentam os seguintes componentes: i) Gramática, ii) Mecanismo de busca e iii) Processo de mapeamento genótipo/fenótipo. As regras de produção do programa/algoritmo precisam ser definidas na gramática. Uma solução (genótipo) presente no mecanismo de busca, antes de ser avaliada, precisa ser convertida para um programa (fenótipo) através do processo de mapeamento. Uma vez convertida em programa, a solução pode ser avaliada através de uma função de avaliação. A seguir é apresentado o funcionamento geral do GGGP (ver Figura 10). O primeiro passo a ser dado é definir a gramática. Esta pode ser representada por uma tupla, (N, T, P, S), onde N é o conjunto de símbolos não-terminais, T é o conjunto de símbolos de terminais, P é o conjunto de regras de produção que mapeiam os elementos de N a T , e S é o símbolo de início, membro de N .

Para contextualizar os termos apresentados, a figura 9 apresenta um exemplo de uma gramática para a construção de indivíduos que representam equações matemáticas para um problema de regressão simbólica1.

Uma vez definida a gramática, um conjunto de indivíduos ou genótipos será gerado aleatoriamente como população inicial do mecanismo de busca. Considerando a gramática apre-sentada, um exemplo de indivíduo seria Sin(X) + Cos(X ∗ X). Cada indivíduo da população será traduzido de genótipo para um programa (no caso do exemplo, uma equação matemática cal-1 A regressão simbólica é um dos processos de busca de funções para um modelo matemático, que é descrito no

(35)

Figura 9 – Exemplo de gramática para a geração de indivíduos no contexto do problema de regressão simbólica.

Fonte: o autor

culável) através do processo de mapeamento. Em seguida, cada indivíduo gerado será executado no problema dado, e seu valor de fitness armazenado. Estes passos iniciais antecedem o processo iterativo do algoritmo. Uma vez avaliados todos os indivíduos da população, são selecionados os melhores pais e sobre estes são aplicados operadores genéticos de mutação e cruzamento. Após a aplicação dos operadores sobre os pais, novos indivíduos são gerados. Como apenas os melhores filhos (genótipos) permanecem na população na próxima iteração, estes precisam ser traduzidos através do processo de mapeamento e assim terem seus valores de fitness executados da mesma forma como explicado previamente.

Dentre as abordagens de GGGP criadas, destacam-se os algoritmos de GGGP base-ados em árvore e genoma linear (MCKAY et al., 2010). Estas abordagens adotam o mesmo funcionamento apresentado na figura 10, sendo suas peculiaridades apresentadas a seguir.

Nas abordagens baseadas em árvore, os genótipos são representados por árvores de derivação produzidas a partir de uma gramática. A avaliação da solução acontece através da leitura da árvore de expressões (genótipo) de cada indivíduo a partir das folhas da árvore de

(36)

Capítulo 2. Conceitos básicos 35

Figura 10 – Funcionamento do GGGP.

Fonte: o autor

derivação. Uma vez construída a solução, o programa/algoritmo é executado. Assim como GP, GGGP baseado em árvore utiliza operadores genéticos como seleção, mutação, reprodução e cruzamento. No entanto, os operadores de cruzamento e mutação precisaram ser adaptados. Com relação à mutação, um nó interno é escolhido aleatoriamente. Em seguida, uma sub-árvore originada a partir daquele nó é removida, e então, substituída por outra gerada aleatoriamente seguindo as regras da gramática. Este procedimento pode ser visto na figura 11. Como pode ser visto nesta figura, o nó selecionado foi o Sub e toda a sub-árvore abaixo dele foi modificada.

Com relação ao cruzamento, dois nós internos da árvore de derivação são selecionados aleatoriamente, e suas respectivas sub-árvores são trocadas. É importante mencionar que o mecanismo de cruzamento exige que ambos os nós selecionados possuam o mesmo rótulo

(37)

Figura 11 – Exemplo de operador de mutação em GGGP.

Fonte: (MCKAY et al., 2010)

descrito na gramática. A figura 12 apresenta um exemplo da operação de cruzamento. Como pode-se ver, foram selecionados dois nós internos com o mesmo rótulo NP e suas sub-árvores foram trocadas. Vale destacar que existem outras implementações de operadores evolucionários para abordagens baseadas em árvores, podendo estas serem encontradas em (MCKAY et al., 2010). Dentre as abordagens baseadas em árvore, destacam-se a CFG-GP (do inglês, Context-free Grammar Genetic Programming) (WHIGHAM, 1995) e LOGENPRO (do inglês, Logic grammar-based genetic programming) (WONG e LEUNG, 1997). No entanto, outros algoritmos baseados em árvore podem ser encontrados em (MCKAY et al., 2010).

Nas abordagens baseadas em genoma linear, o genótipo adota uma estrutura de sequência linear (vetor de genes) para ser manipulado pelos operadores genéticos, e o fenótipo adota a representação de árvore de expressões (fenótipo). A estrutura linear como forma de representar o genótipo oferece algumas vantagens quando comparado com abordagens baseadas em árvore. O benefício mais aparente é que esta representação permite o uso da teoria e prática da área de computação evolucionária, que também utiliza representação linear, tais como GA e estratégias baseadas em evolução (do inglês, Evolution Strategy) (ES). Deste modo, operadores genéticos comumente utilizados tornaram-se disponíveis para operar sobre genótipos no formato linear. Este benefício fez com que as abordagens baseadas em genoma linear chamassem a atenção da área tornando-se largamente estudadas (MCKAY et al., 2010).

Ao longo dos anos, diferentes abordagens lineares foram propostas como apresentado em (MCKAY et al., 2010). Porém, Evolução Gramatical (do inglês, Grammatical Evolution) (GE) (O’NEILL e RYAN, 2001) tornou-se a variação de GGGP, que adota genoma linear, mais utilizada (MCKAY et al., 2010). Uma das primeiras aplicações foi na evolução da topologia de redes neurais artificiais (GRUAU, 1996; HUSSAIN e BROWSE, 1998). Também foi utilizada em regressão de funções simbólicas (KELLER e BANZHAF, 1996; MCCONAGHY e GIELEN,

(38)

Capítulo 2. Conceitos básicos 37

Figura 12 – Exemplo de operador de cruzamento em GGGP.

Fonte: (MCKAY et al., 2010)

2006; O’NEILL e RYAN, 2001), agrupamento de tarefas em mineração de dados (FALCO et al., 2005), e evolução de conjunto de regras (O’NEILL et al., 2001; TSAKONAS et al., 2004; WONG, 1998). Também são identificados trabalhos que aplicaram GE em problemas de otimização combinatória (BADER-EL-DEN; POLI; FATIMA, 2009; SOTELO-FIGUEROA et al., 2013; BURKE; HYDE; KENDALL, 2012; KELLER e POLI, 2007b; KELLER e POLI, 2007a; SABAR et al., 2013; MASCIA et al., 2014).

A principal diferença existente entre o GE e abordagens baseadas em árvore é o processo de mapeamento. Como o genótipo é representado por um vetor de genes, cada elemento do vetor, também chamado de códon, assume valores numéricos de 8-bits. Cada códon representa uma regra quando convertido pelo processo de mapeamento, e vai determinar qual regra será utilizada. O processo de mapeamento utiliza o genótipo para mapear símbolos de início em símbolos terminais. Isto se dá através da leitura códon por códon (esquerda para a direita) gerando-se um número inteiro que diz respeito a uma regra na gramática (ver figura 9:

regra = (valor inteiro do códon) MOD

(número de regras do item não terminal atual).

(39)

para selecionar:

(2) < op >::= + (0)

| − (1)

| / (2)

| ∗ (3)

Supondo-se que o códon lido correntemente tenha um valor 6 então 6 MOD 4 = 2, resultando na regra 2. O processo de mapeamento ocorre de forma circular até que não haja mais possibilidade de expansão.

Para exemplificar o processo de mapeamento, será considerado o indivíduo representado na Figura 13.

Figura 13 – Indivíduo representado por array de 8-bits.

Partindo do símbolo de início < expr >, 4 possíveis regras de produção são identificadas. A escolha da regra se dá através da leitura do valor do primeiro códon do indivíduo, usando-se para gerar um número. Este número é calculado através do procedimento mostrado previamente 220 MOD 4 = 0, o que significa que a regra de índice 0 substituirá o símbolo < expr >:

< expr >< op >< expr > .

Agora, tem-se 3 símbolos a serem traduzidos. O primeiro a ser lido sempre é o símbolo mais à esquerda, neste caso < expr >. Repetindo-se o mesmo procedimento, chega-se a 240 MOD4 = 0, sendo a regra de índice 0 selecionada mais uma vez. Isto resulta em:

< expr >< op >< expr >< op >< exp > .

Novamente, tem-se o valor 220 para o símbolo < expr >, resultando na seleção na regra de índice 0, gerando-se:

< expr >< op >< expr >< op >< expr >< op >< exp > .

No próximo passo, o símbolo < expr > assume o valor 203 resultando na regra 3, ou seja, o símbolo < expr > é substituído por < var >. O símbolo < var > possui 2 possíveis regras. Como o valor do próximo códon é 101, a regra 1 é selecionada gerando a seguinte sequência:

(40)

Capítulo 2. Conceitos básicos 39

O próximo passo vai determinar qual operador < op > será utilizado. Como existem 4 possíveis opções, 53 MOD 4 = 1. Este processo continua até que uma expressão apenas com terminais seja encontrada, assim como no exemplo a seguir:

1.0 − Sin(X) ∗ Sin(X) − Sin(X) ∗ Sin(X). (2.1)

Embora as abordagens lineares tenham se popularizado, principalmente o GE, existem dois problemas críticos associados à representação linear (WHIGHAM et al., 2015). Primeiro, um genótipo supostamente válido pode resultar em um fenótipo cujo fitness não pode ser avaliado. Embora este problema possa ser solucionado de forma simples através da atribuição de um valor de fitness ruim para estes indivíduos, porém esta solução insere indivíduos inconsistentes no processo de busca. Caso o número de indivíduos inconsistentes seja grande, o bom funcionamento do GGGP linear pode ser prejudicado. O segundo problema associado à representação linear está relacionado ao princípio da localidade. Este princípio afirma que pequenas modificações no genótipo devem resultar em pequenas modificações no fenótipo (WHIGHAM et al., 2015). No entanto, em representações lineares, pequenas modificações no genótipo podem causar grande mudança no fenótipo. Como consequência, o fenótipo pode produzir um comportamento diferente do que foi codificado no genótipo. Em uma situação extrema, onde o número de soluções inconsistentes torna-se elevada, o processo de busca pode funcionar de forma similar à uma abordagem aleatória (WHIGHAM et al., 2015). Reconhecendo-se as problemáticas associadas ao GGGP linear, diversos trabalhos foram desenvolvidos visando entender e melhorar a forma como estes algoritmos operam (MCKAY et al., 2010). Vale salientar que os dois problemas apresentados não acontecem em abordagens baseadas em árvore devido à forma como os indivíduos são representados e como os operadores genéticos funcionam nestes indivíduos. Deste modo, o fato de as abordagens lineares terem sido utilizadas de forma unânime na última década na geração de programas/algoritmos, não significa que esta é a abordagem mais apropriada dentre as abordagens de GGGP já desenvolvidas.

As abordagens de geração de algoritmos têm sido importantes para a área de otimização de algoritmos pois provê meios para projetar novos algoritmos com modelos previamente não considerados. No entanto, um ponto crítico existente na geração de algoritmos, é a avaliação das soluções. Como cada solução do espaço de busca representa um possível algoritmo, o cálculo do desempenho de cada solução é a execução do próprio algoritmo no problema de entrada. Deste modo, a geração de algoritmos torna-se bastante custosa, principalmente quando o número de soluções e iterações da simulação é grande (HARDING e BANZHAF, 2007). Vale salientar que algoritmos de geração de algoritmos propostos na literatura não levaram em consideração este custo, sendo portanto um problema em aberto (MCKAY et al., 2010). No entanto, pode-se citar alguns trabalhos que utilizaram GPUs para tentar acelerar a avaliação dos indivíduos (HARDING e BANZHAF, 2007; ROBILLIARD; MARION; FONLUPT, 2009).

(41)

2.4 CONSIDERAÇÕES FINAIS

Neste capítulo foram apresentadas três áreas relevantes para o problema de otimização de algoritmos: MtL, HHs e GGGP. As HHs, bem como MtL, podem ser utilizadas para automatizar a seleção ou geração de algoritmos. Dentre os trabalhos relacionados a seleção de algoritmos, destacam-se inicialmente aqueles que aplicaram GA e DE. Objetivando-se considerar não apenas valores de variáveis no processo de otimização, mas também funções e elementos complexos de programação, um novo ramo de trabalhos surgiu aplicando-se GP na geração de algoritmos. No entanto, foi descoberta uma limitação inerente ao algoritmo de GP podendo-se gerar soluções incoerentes, ou seja, sintaticamente incorretas. Diante disto, foi criada a GGGP, que vem sendo largamente utilizada na geração de algoritmos. Porém, o custo para se gerar algoritmos fazendo uso de HHs, seja GP ou GGGP, é elevado e não foram encontradas abordagens que considere este aspecto.

O capítulo a seguir apresenta com detalhes o algoritmo PSO (adotado como estudo de caso desta tese), as principais melhorias propostas ao algoritmo padrão e os trabalhos existentes relacionados à otimização do PSO, nas áreas de seleção e geração.

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

A estabilidade do corpo docente permanente permite atribuir o conceito muito bom, segundo os parâmetros da área, para o item 2.2 (pelo menos 75% dos docentes permanentes foram

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

29. Na especificação da receita e da despesa é utilizada a tabela de Medidas que consta do Anexo IV. O Orçamento inscrito em projetos e atividades abrange as despesas

Considera-se que a interdisciplinaridade contribui para uma visão mais ampla do fenômeno a ser pesquisado. Esse diálogo entre diferentes áreas do conhecimento sobre

A taxa do INR ideal para os paci- entes com disfunção ventricular e insuficiência cardíaca também não foi estimada por meio de estudos prospectivos e randomizados, e a taxa

Este artigo está dividido em três partes: na primeira parte descrevo de forma sumária sobre a importância do museu como instrumento para construção do conhecimento, destaco

Apesar dos esforços para reduzir os níveis de emissão de poluentes ao longo das últimas décadas na região da cidade de Cubatão, as concentrações dos poluentes