• Nenhum resultado encontrado

Estratégias bio-inspiradas aplicadas em problemas discretos com muitos objetivos

N/A
N/A
Protected

Academic year: 2021

Share "Estratégias bio-inspiradas aplicadas em problemas discretos com muitos objetivos"

Copied!
167
0
0

Texto

(1)

Estratégias bio-inspiradas aplicadas em

problemas discretos com muitos objetivos

Tiago Peres França

Universidade Federal de Uberlândia Faculdade de Computação

Programa de Pós-Graduação em Ciência da Computação

Uberlândia 2018

(2)
(3)

Tiago Peres França

Estratégias bio-inspiradas aplicadas em

problemas discretos com muitos objetivos

Dissertação de mestrado apresentada ao Programa de Pós-graduação da Faculdade de Computação da Universidade Federal de Uberlândia como parte dos requisitos para a obtenção do título de Mestre em Ciência da Computação.

Área de concentração: Ciência da Computação Orientador: Gina Maira Barbosa de Oliveira Coorientador: Luiz Gustavo Almeida Martins

Uberlândia 2018

(4)
(5)
(6)
(7)

Este trabalho é dedicado

aos meus orientadores Gina Maira e Luiz Gustavo, pela dedicação; aos meus pais Wagner e Iara, pelo apoio;

(8)
(9)

Agradecimentos

Agradeço principalmente à minha orientadora Gina Maira pela paciência e pelos en-sinamentos durante esta trajetória. Agradeço ao meu co-orientador Luiz Gustavo pelas grandes ideias e correções de texto. Agradeço aos professores José Gustavo e Rita Ma-ria pelas excelentes aulas durante o curso e à professora Márcia Aparecida, que além de ter ministrado suas reconhecidamente ótimas aulas de análise de algoritmos, sempre me incentivou a obter o título de mestre.

Meus agradecimentos também se extendem aos meus pais: Wagner e Iara; meus ir-mãos: Vinícius, Bruno e Felipe; e aos meus grandes amigos: Lucas, Ana Carolyne, João Marcos, Mariana, Débora e Lívia que sempre me apoiaram e, direta ou indeiretamente, contribuiram muito para a realização deste trabalho.

Agradeço também a Fundação de Amparo à Pesquisa de Minas Gerais (FAPEMIG) que providenciou o apoio Ąnanceiro para este trabalho.

(10)
(11)

ŞViver é arriscar tudo. Se não fosse, seríamos apenas um amontoado inerte de moléculas organizadas aleatóriamente Ćutuando onde quer que o universo nos sopre.Ť (Rick and Morty)

(12)
(13)

Resumo

Problemas de otimização multiobjetivo são muito comuns no nosso dia-a-dia e sur-gem em diversas áreas do conhecimento. Neste trabalho, exploram-se e comparam-se várias estratégias de otimização multiobjetivo em dois problemas discretos bem conhe-cidos na computação: o problema da mochila e o problema do roteamento multicast. Dentre as estratégias para solucionar problemas multiobjetivos discretos, destacam-se os algoritmos genéticos (AGs) e os algoritmos baseados em colônias de formigas (ACOs). Ambas as abordagens são investigadas neste trabalho por meio de experimentos que avaliaram o desempenho de 10 algoritmos diferentes. Todos os algoritmos avaliados fo-ram adaptados para os problemas propostos e, além disso, desenvolveu-se um novo al-goritmo denominado Many-objective Ant Colony Optimization based on Non-Dominated

Sets (MACO/NDS), o qual foi avaliado e comparado com todos os outros métodos aqui

investigados, considerando-se diferentes métricas de desempenho. A partir dos resultados experimentais, foi possível comprovar a eĄciência e eĄcácia do método proposto. Em di-versos cenários, ele foi capaz de encontrar conjuntos de soluções superiores aos produzidos pelos demais algoritmos e levou menos tempo para executar.

Palavras-chave: algoritmos many-objectives; algoritmos genéticos; otimização por colô-nia de formigas; problema do roteamento multicast; problema da mochila multiobjetivo.

(14)
(15)

Abstract

Multi-objective optimization problems are very common in the day-to-day life and come up in many Ąelds of knowledge. In this work, several strategies for multi-objective optimization have been explored and compared on two well known discrete problems in computer science: the knapsack problem and the multicast routing problem. Among all strategies to solve multi-objective discrete problems, genetic algorithms (GAs) and ant colony optimization (ACO) are the ones which generally provide the best results. In this work both approaches are explored through several experiments involving 10 diffe-rent algorithms. All of the algorithms evaluated were adapted to the proposed problems. Furthermore, a new algorithm has been proposed, the Many-objective Ant Colony Op-timization based on Non-Dominated Sets (MACO/NDS), which has been evaluated and compared against all other methods investigated here, considering different performance metrics. In many scenarios, it has been capable of Ąnding superior sets of solutions and took less time to execute.

Keywords: many-objective algorithms; genetic algorithms; ant colony optimization; multicast routing problem; multi-objective knapsack problem.

(16)
(17)

Lista de ilustrações

Figura 1 Ű Fluxograma de um AG. Retirado de (NÉIA et al., 2013) . . . 32

Figura 2 Ű Exemplo de crossover com cruzamento de ponto único, onde o ponto de cruzamento está na metade do material genético. . . 35

Figura 3 Ű Fluxograma de um ACO. . . 37

Figura 4 Ű Fronteira de Pareto . . . 42

Figura 5 Ű Exemplo de aplicação do MOEA/D: geração dos vetores de peso . . . . 49

Figura 6 Ű Exemplo de aplicação do MOEA/D: geração de soluções . . . 50

Figura 7 Ű Exemplo de aplicação do MOEA/D: seleção de soluções . . . 50

Figura 8 Ű Exemplo de aplicação do MOEA/D: conĄguração da estrutura após a primeira iteração . . . 50

Figura 9 Ű Pontos de referência para um problema com 2 objetivos (normalizados) e 4 subdivisões. . . 51

Figura 10 Ű Exemplo da quantidade de tabelas usadas pelo AEMMT . . . 55

Figura 11 Ű Exemplo da quantidade de conjuntos usados pelo AEMMD . . . 57

Figura 12 Ű Exemplo para o problema da mochila mono-objetivo. . . 66

Figura 13 Ű Exemplo de crossover uniforme . . . 68

Figura 14 Ű Exemplo de uma rede de comunicação. Retirado de (BUENO, 2010). . 70

Figura 15 Ű Exemplos de árvores multicast relativos ao grafo da Ągura Figura 14. Retirado do trabalho de (LAFETÁ, 2016) . . . 71

Figura 16 Ű Exemplo de árvore multicast no PRM multiobjetivo. . . 71

Figura 17 Ű Exemplo de cruzamento por caminho, onde o nó raiz é 0 e os destinos são {1, 8, 11}. Retirado de (LAFETÁ, 2016) . . . 75

Figura 18 Ű Método de construção de soluções do ACO para o PRM . . . 82

Figura 19 Ű Exemplo de como construir uma solução para o PRM . . . 84

Figura 20 Ű Fluxo geral de execução do MACO/NDS . . . 88

Figura 21 Ű Exemplo de hiper-volume . . . 99

Figura 22 Ű Desempenho dos algoritmos na 1a etapa para o PMM com 30 itens . . 103

(18)

Figura 24 Ű Desempenho dos algoritmos na 1a etapa para o PMM com 100 itens . . 106

Figura 25 Ű Resultado consolidado da 1a etapa considerando o PMM com 30, 50 e

100 itens . . . 107 Figura 26 Ű Desempenho dos algoritmos na 1a etapa para o PRM na rede 1 . . . . 109

Figura 27 Ű Desempenho dos algoritmos na 1a etapa para o PRM na rede 2 . . . . 110

Figura 28 Ű Desempenho dos algoritmos na 1a etapa para o PRM na rede 3 . . . . 111

Figura 29 Ű Resultado consolidado da 1a etapa considerando o PRM nas redes 1,

2, e 3 . . . 112 Figura 30 Ű Desempenho dos algoritmos na 3a etapa para o PMM com 30 itens . . 120

Figura 31 Ű Desempenho dos algoritmos na 3a etapa para o PMM com 40 itens . . 121

Figura 32 Ű Desempenho dos algoritmos na 3a etapa para o PMM com 50 itens . . 122

Figura 33 Ű Resultado consolidado da 3a etapa considerando o PMM com 30, 40 e

50 itens . . . 122 Figura 34 Ű Desempenho dos algoritmos na 3a etapa para o PRM na rede 1 . . . . 123

Figura 35 Ű Desempenho dos algoritmos na 3a etapa para o PRM na rede 2 . . . . 124

Figura 36 Ű Desempenho dos algoritmos na 3a etapa para o PRM na rede 3 . . . . 125

Figura 37 Ű Resultado consolidado da 3a etapa considerando o PRM nas redes 1, 2

e 3 . . . 125 Figura 38 Ű Resultados dos algoritmos many-objective no PMM com 4 objetivos . . 132 Figura 39 Ű Resultados dos algoritmos many-objective no PMM com 5 objetivos . . 133 Figura 40 Ű Resultados dos algoritmos many-objective no PMM com 6 objetivos . . 134 Figura 41 Ű Resultados dos algoritmos many-objective no PRM com 4 objetivos . . 136 Figura 42 Ű Resultados dos algoritmos many-objective no PRM com 5 objetivos . . 137 Figura 43 Ű Resultados dos algoritmos many-objective no PRM com 6 objetivos . . 139

(19)

Lista de tabelas

Tabela 1 Ű DeĄnições das redes utilizadas no PRM . . . 73 Tabela 2 Ű Conjunto de Pareto considerado para os cenários investigados na

pri-meira etapa de experimentos . . . 101 Tabela 3 Ű Parâmetros utilizados pelos AEMOs na 1a etapa, de acordo com o

problema tratado. . . 102 Tabela 4 Ű Desempenho em função da estratégia de construção de uma solução

para o PRM . . . 115 Tabela 5 Ű Resultados obtidos a partir da estratégia 3 de acordo com o espaço de

exploração considerado (com e sem amostragem) . . . 116 Tabela 6 Ű Análise comparativa entre as implementações do MACO/NDS e o

AEMMD no PRM multiobjetivo (6 objetivos) . . . 117 Tabela 7 Ű Parâmetros utilizados pelos AEMOs na 3a etapa, de acordo com o

problema tratado . . . 119 Tabela 8 Ű Fronteira de Pareto estabelecida para os cenários investigados na 3a

etapa de experimentos . . . 120 Tabela 9 Ű Testes de hipótese entre o MACO/NDS e o AEMMT para os problemas

investigados . . . 127 Tabela 10 Ű Testes de hipótese entre o MACO/NDS e o AEMMD para os problemas

investigados . . . 127 Tabela 11 Ű Pontos de referência e limitações no tamanho do arquivo usados para

cada cenário de teste . . . 129 Tabela 12 Ű Parâmetros utilizados pelos algoritmos da 4a etapa, de acordo com o

problema tratado. . . 130 Tabela 13 Ű Tempos médios de execução para o NSGA-III nos cenários do PMM . . 131 Tabela 14 Ű Valores referentes aos experimentos para o PMM na seção 6.2 . . . 158 Tabela 15 Ű Valores referentes aos experimentos para o PRM na seção 6.2 . . . 159 Tabela 16 Ű Valores referentes às métricas 𝐸𝑅, 𝐺𝐷 e 𝑃 𝑆 dos experimentos para o

(20)

Tabela 17 Ű Valores referentes à métrica Tempo dos experimentos para o PMM na seção 6.4 . . . 161 Tabela 18 Ű Valores referentes às métricas 𝐸𝑅, 𝐺𝐷 e 𝑃 𝑆 dos experimentos para o

PRM na seção 6.4 . . . 162 Tabela 19 Ű Valores referentes à métrica Tempo dos experimentos para o PRM na

seção 6.4 . . . 163 Tabela 20 Ű Valores referentes aos experimentos para o PMM na seção 6.5 . . . 164 Tabela 21 Ű Valores referentes aos experimentos para o PRM na seção 6.5 . . . 165

(21)

Lista de siglas

ACO Ant Colony Optimization

AEMMD Algoritmo Evolutivo Multiobjetivo com Múltiplas Dominâncias AEMMT Algoritmo Evolutivo Multiobjetivo com Muitas Tabelas

AEMO Algoritmo Evolutivo Multiobjetivo AG Algoritmo Genético

BACO Binary Ant Colony Optimization

BRACIS Brazilian Conference on Intelligent Systems ER Taxa de Erro

GD Generational Distance

GDp Generational Distance (Excluding Pareto) HV Hiper-Volume

IGD Inverted Generational Distance MACO ACO multiobjetivo

MACO/NDS Many-objective Ant Colony Optimization based on Non-dominated

De-composed Sets

MEAMT Multi-Objective Evolutionary Algorithm with Many Tables

MEANDS Multi-Objective Evolutionary Algorithm based on Non-dominated

Decompo-sed Sets

(22)

MOEA/D Multiobjective Evolutionary Algorithm Based on Decomposition

MOEA/D-ACO Multiobjective Evolutionary Algorithm Based on Decomposition ACO MOGA Multi-Objective Genetic Algorithms

NSGA Non-Dominated Sorting Genetic Algorithm NSGA-II Non-Dominated Sorting Genetic Algorithm II NSGA-III Non-Dominated Sorting Genetic Algorithm III PM Problema da Mochila

PMM Problema da Mochila Multiobjetivo PMO Problema Multiobjetivo

PRM Problema do Roteamento Multicast PS Pareto Subset

PSO Particle Swarm Optimization QoS Qualidade de Serviço

SDE Shift-Based Density Estimation

SMTTP Single Machine Total Tardiness Problem SPEA Strength Pareto Evolutionary Algorithm SPEA2 Strength Pareto Evolutionary Algorithm 2

SPEA2-SDE SPEA2 with Shift-Based Density Estimation UBQP Problema de Programação Binária Quadrática Irrestrito VEGA Vector Evaluated Genetic Algorithm

(23)

Sumário

1 INTRODUÇÃO . . . . 23 1.1 Objetivos . . . 26 1.2 Contribuições . . . 27 1.3 Organização do texto . . . 28 2 OTIMIZAÇÃO BIO-INSPIRADA . . . . 29 2.1 Algoritmos Genéticos . . . 30 2.1.1 Representação do indivíduo . . . 31 2.1.2 Seleção de pais . . . 33 2.1.3 Operadores genéticos . . . 34 2.1.4 Reinserção da População . . . 35 2.2 Otimização por Colônia de formigas . . . 36 2.2.1 Representação da solução . . . 37 2.2.2 Construção da solução . . . 37 2.2.3 Atualização dos feromônios . . . 38 3 OTIMIZAÇÃO MULTIOBJETIVO . . . . 41 3.1 Algoritmos Bio-Inspirados Multiobjetivos . . . 43 3.1.1 NSGA-II . . . 44 3.1.2 SPEA2 . . . 45 3.1.3 MOEA/D . . . 47 3.1.4 NSGA-III . . . 50 3.1.5 SPEA2-SDE . . . 53 3.1.6 MEAMT (AEMMT) . . . 54 3.1.7 MEANDS (AEMMD) . . . 56 3.2 Algoritmos multiobjetivos baseados em colônias de formigas . . 57 3.2.1 MOACS . . . 57 3.2.2 MOEA/D-ACO . . . 60

(24)

3.3 Outros algoritmos multiobjetivos . . . 62 4 PROBLEMAS DE TESTE . . . . 65 4.1 Problema da mochila multiobjetivo . . . 66 4.1.1 DeĄnição do problema . . . 66 4.1.2 Representação da solução e geração da população inicial . . . 68 4.1.3 Cruzamento e mutação . . . 68 4.2 Problema do roteamento multicast . . . 69 4.2.1 DeĄnição do problema . . . 69 4.2.2 Representação da solução . . . 73 4.2.3 Geração da população inicial . . . 74 4.2.4 Cruzamento . . . 74 4.2.5 Mutação . . . 76 5 ALGORITMO PROPOSTO . . . . 77 5.1 Construção da solução para o PMM . . . 77 5.2 Construção da solução para o PRM . . . 79

5.3 Framework MACO/NDS . . . 85

5.3.1 Construção das soluções . . . 89 5.3.2 Atualização das estruturas de subproblemas . . . 90 5.3.3 Atualização dos feromônios . . . 92 6 EXPERIMENTOS . . . . 95 6.1 Ambiente de teste . . . 95 6.2 Análise Comparativa dos Algoritmos Evolutivos . . . 100 6.3 Análise das estratégias e conĄgurações para o MACO/NDS . . 114 6.4 Análise comparativa entre o MACO/NDS e os AEMOs

many-objective . . . 118

6.5 Análise baseada no hiper-volume . . . 128 7 CONCLUSÃO . . . 143 7.1 Trabalhos Futuros . . . 145 7.2 Contribuições em Produção BibliográĄca . . . 148 REFERÊNCIAS . . . 149

APÊNDICES

155

(25)

23

Capítulo

1

Introdução

A otimização é um campo de suma importância da ciência da computação que procura encontrar a melhor solução para um problema matemático. Em tais problemas, deve-se maximizar ou minimizar alguma característica, por exemplo, ao decidir um caminho entre duas cidades, é desejável minimizar a distância a se percorrer. Infelizmente, a maior parte dos problemas interessantes são também considerados impossíveis de se resolver em tempo razoável, por essa razão, ao invés de procurar pela melhor solução possível, é usualmente preferível aproximá-la através de algoritmos mais rápidos (CORMEN et al., 2009). A grande importância da pesquisa em otimização está na frequência com a qual esses problemas surgem no dia-a-dia, perguntas como Şqual o menor caminho para atingir um destinoŤ, Şqual o melhor carro para se comprar dado um orçamentoŤ ou Şqual a forma mais rápida de se executar uma tarefaŤ fazem parte da vida da maioria das pessoas e resolvê-las de forma eĄciente ainda representa um desaĄo para a computação.

Uma forma de garantir a obtenção da melhor solução (solução ótima) para um dado problema é por meio da avaliação de todas as soluções possíveis (busca exaustiva). Para a maioria dos problemas interessantes, essa é uma tarefa difícil e inviável. Por exemplo, combinar e testar todas as possibilidades de caminho em um grafo com muitas arestas é um problema NP-difícil, ou seja, não pode ser resolvido em tempo hábil considerando o atual estado da arte da computação. Sendo assim, a pesquisa em otimização também busca desenvolver meios para se encontrar soluções suĄcientemente próximas da ótima, ou seja, trabalha-se com estratégias de aproximação (CORMEN et al., 2009). Dois dos métodos mais comuns de otimização são os algoritmos gulosos e os algoritmos de busca bio-inspirados. Dentre os bio-inspirados, destacamos os algoritmos genéticos, a otimiza-ção por colônia de formigas e a inteligência de enxames (PSO). Os algoritmos gulosos são interessantes para se resolver problemas de otimização mono-objetivo, mas existem oti-mizações mais complexas, onde se deve considerar mais de uma característica (problemas multiobjetivos). Por exemplo, ao escolher um carro, uma pessoa não se preocupa apenas com o preço, mas também com o desempenho, a durabilidade, o consumo, entre outros fatores. Nesse caso, não basta otimizar um único objetivo, mas encontrar uma opção

(26)

24 Capítulo 1. Introdução

que apresente uma boa relação custo-benefício considerando todos os fatores avaliados. A maneira mais simples de se contornar esse problema é transformando as diversas métricas em uma única função através de uma média ponderada dos objetivos. Por outro lado, essa estratégia pode não ser a ideal, pois é necessário ter um conhecimento prévio do pro-blema para se decidir a relevância (peso) de cada objetivo. Por essa razão, normalmente deseja-se encontrar todas as soluções que são superiores às demais em pelo menos um dos objetivos. Dessa forma, existirão várias soluções que podem ser classiĄcadas como melho-res, dependendo da métrica analisada. Esse conjunto de soluções é denominado conjunto Pareto ótimo. Assim, na solução de Problemas Multiobjetivos (PMOs), se faz natural a escolha dos algoritmos de busca que apresentem múltiplas soluções e aproximem, da melhor maneira possível, o conjunto Pareto ótimo (SRINIVAS; DEB, 1994).

Muitos problemas da vida real podem tirar proveito da otimização multiobjetivo, fazendo necessária a elaboração de estratégias eĄcientes para resolvê-los. Vários algo-ritmos bio-inspirados foram propostos nos últimos anos (DEB et al., 2002a; ZITZLER; LAUMANNS; THIELE, 2001; DEB; JAIN, 2014), tornando a otimização multiobjetivo um campo com alta atividade no ramo da Computação Bio-inspirada. O primeiro al-goritmo evolutivo multiobjetivo (AEMO) proposto foi o Vector Evaluated Genetic Algo-rithm (VEGA) (SCHAFFER, 1984), mas os métodos mais bem consolidados na literatura são o NSGA-II (DEB et al., 2002a) e o SPEA2 (ZITZLER; LAUMANNS; THIELE, 2001), propostos no início dos anos 2000 e considerados os métodos clássicos da otimização multi-objetivo. Entretanto, mais recentemente, foi levantado que, devido a uma pressão seletiva fraca em direção ao conjunto de soluções ótimas em espaços de alta dimensionalidade, tais frameworks não funcionam bem quando aplicados a problemas com muitas funções objetivo (4 ou mais) (DEB; JAIN, 2014). Os problemas com 4 ou mais objetivos são geralmente chamados de many-objective e para resolvê-los foram propostas novas abor-dagens como decomposição, e.g. MOEA/D (ZHANG; LI, 2007), relações de dominância diferenciadas, e.g. 𝜀-MOEA (AGUIRRE; TANAKA, 2009) e evolução baseada em indica-dores, e.g. HypE (BADER; ZITZLER, 2011). Recentemente, novos algoritmos genéticos foram propostos para resolver a problemática many-objective, dentre eles destaca-se aqui: NSGA-III (DEB; JAIN, 2014), MEAMT (BRASIL; DELBEM; SILVA, 2013) e MEANDS (LAFETÁ et al., 2018).

A maior parte dos trabalhos em otimização multiobjetivo utiliza Algoritmos Genéti-cos (AGs). Entretanto, outras técnicas bio-inspiradas também podem ser empregadas, tais como: os métodos baseados em colônias de formigas, em inglês Ant Colony

Optimi-zation (ACO), e os algoritmos inspirados em inteligência de enxame, em inglês Particle Swarm Optimization (PSO). Devido a seus cálculos vetoriais difíceis de se traduzir para

um ambiente discreto, os PSOs são indicados especialmente para problemas contínuos e, portanto, foram deixados de fora deste estudo. Por outro lado, os ACOs lidam especi-almente com problemas discretos e representações em grafos, tornando-os interessantes

(27)

25

para os problemas estudados. Dentre os ACOs investigados na literatura para proble-mas com muitos objetivos, destacam-se o MOACS (BARÁN; SCHAERER, 2003) e o MOEA/D-ACO (KE; ZHANG; BATTITI, 2013).

Neste trabalho, investigaram-se diversos algoritmos bio-inspirados presentes na litera-tura de otimização multiobjetivo e propôs-se um novo método de otimização baseado em colônias de formigas (ACO), o Many-objective Ant Colony Optimization based on

Non-dominated Decomposed Sets (MACO/NDS) (FRANçA; MARTINS; OLIVEIRA, 2018),

em português, otimização para muitos objetivos com colônia de formigas baseada em conjuntos de soluções não-dominadas. O algoritmo proposto adota algumas ideias do MEANDS (LAFETÁ et al., 2018), transferindo-as para uma aplicação em ACO, que tem uma abordagem diferente dos algoritmos genéticos usados na maioria dos métodos de otimização multiobjetivo.

A Ąm de comparar o desempenho dos algoritmos investigados em diferentes PMOs, utilizaram-se dois problemas discretos bem conhecidos na literatura de otimização mul-tiobjetivo: o Problema da Mochila Multiobjetivo (PMM) e o Problema do Roteamento Multicast (PRM). O primeiro é uma versão multiobjetivo do clássico problema da mochila 0/1. O problema da mochila original consiste de uma mochila e um conjunto de itens, no qual deve-se encontrar a melhor combinação de objetos para se colocar na mochila de forma que não se ultrapasse a capacidade da mesma e se maximize o valor (lucro) dos itens carregados. O PMM é uma variação na qual ao invés de um único valor de lucro, todo item possui 𝑚 valores (𝑚 é o número de objetivos). O PMM é um problema de combinação multimodal, no qual a ordem não inĆuencia na qualidade da solução (várias combinações representam a mesma solução). Esse problema reĆete uma abordagem teó-rica e apesar de testar os algoritmos em seus extremos, devido a seu enorme espaço de busca, nem sempre reĆete a realidade dos problemas cotidianos. O PRM, por sua vez, é um problema de permutação, no qual a ordem inĆuencia na eĄcácia da solução. Além disso, é um problema prático geralmente encontrado em comunicações de rede no qual se deseja transmitir uma mensagem de um dispositivo fonte para múltiplos destinos em uma rede de computadores, com o objetivo de utilizar os recursos disponíveis da forma mais eĄciente possível. Esse problema é de extrema importância considerando-se o grande número de transmissões multimídia e aplicações em tempo real que se beneĄciariam de algoritmos eĄcientes para cálculos de rota. Em cada problema, os vários AEMOs são ava-liados em diversas formulações de objetivos, variando-se de 2 a 6 objetivos, analisando-se a qualidade das soluções obtidas e discutindo as características presentes nos algoritmos que propiciam a obtenção de determinado resultado. De acordo com os resultados expe-rimentais do capítulo 6, o MACO/NDS mostrou-se ser um método interessante devido a sua rapidez no problema do roteamento multicast e eĄcácia no problema da mochila.

Os ACOs são pouco explorados na literatura multiobjetivo quando comparados aos al-goritmos genéticos. Este trabalho expande a coleção de métodos inspirados em colônias de

(28)

26 Capítulo 1. Introdução

formigas ao propor um novo framework ACO para problemas multiobjetivos com muitas funções de otimização (many-objective). Os ACOs são meta-heurísticas criadas especial-mente para problemas discretos, o que pode representar uma grande vantagem em relação aos AGs, tanto em matéria de tempo como em qualidade das soluções. O MACO/NDS utiliza várias tabelas de feromônios para guiar a população de formigas, uma para cada combinação possível de objetivos. Cada grupo de formigas é associada a uma estrutura de feromônios diferente e, a cada passo do algoritmo, a atualiza de acordo com as novas soluções ótimas encontradas. Cada tabela de feromônio representa um subproblema e é responsável por guiar as soluções de acordo com um conjunto de objetivos diferentes, dessa forma, o algoritmo proposto (MACO/NDS) começa explorando subproblemas mais simples e manipula os mais complexos no decorrer do algoritmo. Para o PRM, os experi-mentos revelaram que o MACO/NDS, junto ao MOACS são os algoritmos mais rápidos e eĄcazes. Para o PRM, o MACO/NDS e MOEA/D-ACO conquistam as melhores soluções. Ou seja, o MACO/NDS é um método interessante para ambos os problemas, e dentre os ACOs testados é que apresentou maior estabilidade considerando ambos os problemas e suas diferentes instâncias.

1.1 Objetivos

Esta dissertação estende os trabalhos de Lafetá et al. (2016) e Bueno e Oliveira (2010) sobre o problema do roteamento multicast, introduzindo um novo tipo de heurística bio-inspirada multiobjetivo (as colônias de formigas) e um novo problema discreto (o problema da mochila multiobjetivo). O principal objetivo deste trabalho é propor um novo algo-ritmo ACO para otimização em problemas many-objectives e compará-lo com as principais estratégias presentes na literatura multiobjetivo tanto de AGs quanto de ACOs. Em linhas gerais, esta pesquisa almeja:

o Propor um modelo para a construção de soluções em algoritmos baseados em colô-nias de formigas, de acordo com as características de cada um dos problemas in-vestigados (PMM e PRM). Tais modelos são partes essenciais para a proposição do algoritmo ACO.

o Propor o novo algoritmo baseado em ACO para problemas com muitos objetivos: O MACO/NDS.

o Investigar dois problemas multiobjetivos discretos. O problema do roteamento mul-ticast (PRM) foi utilizado para comparar o desempenho de AEMOs nos trabalhos anteriores do nosso grupo de pesquisa. A Ąm de melhor entender a inĆuência do tipo do problema no desempenho/eĄciência dos algoritmos estudados, investigou-se outro problema neste trabalho, o PMM que, apesar de ter uma aplicação mais

(29)

1.2. Contribuições 27

restrita, apresenta diferenças interessantes em relação ao PRM, possibilitando uma análise mais profunda sobre comportamento dos vários algoritmos.

o Para ambos os problemas (PMM e PRM), adaptar os algoritmos encontrados na literatura e analisar o comportamento de cada um em relação à complexidade do espaço de busca e ao número de objetivos a Ąm de guiar as decisões sobre a cons-trução do algoritmo proposto MACO/NDS.

o Além das métricas dependentes do conhecimento sobre o conjunto Pareto ótimo do problema, empregar uma métrica não paramétrica. Neste caso, o hipervolume foi utilizado, ele permite avaliar o desempenho dos algoritmos multi e many-objective em problemas nos quais a fronteira de Pareto não é conhecida. Essa métrica permitiu comprovar a vantagem dos ACOs (inclusive do método proposto, MACO/NDS) sobre os AGs em instâncias complexas do PMM e do PRM, onde não é possível estimar as fronteiras de Pareto.

1.2 Contribuições

Este trabalho contribui para o campo de otimização multiobjetivo, assim como o de comunicações em rede (através do problema do roteamento multicast). Os principais resultados desta pesquisa são resumidos nos seguintes tópicos:

o O Multi-Objective Evolutionary Algorithm with Many Tables (MEAMT), ou Algoritmo Evolutivo Multiobjetivo com Muitas Tabelas (AEMMT), em português, foi proposto originalmente para predição de estruturas de proteínas (BRASIL; DELBEM; SILVA, 2013) e posteriormente, utilizado em (LAFETÁ et al., 2016) para resolver o pro-blema do roteamento multicast. Neste trabalho, explora-se uma nova aplicação do algoritmo ao utilizá-lo para encontrar soluções para uma versão multiobjetivo do problema da mochila.

o O Multi-Objective Evolutionary Algorithm based on Non-dominated Decomposed

Sets (MEANDS), ou Algoritmo Evolutivo Multiobjetivo com Múltiplas

Dominân-cias (AEMMD), em português, foi proposto e analisado em (LAFETÁ et al., 2016) para resolver o PRM. Sua eĄcácia como algoritmo multiobjetivo em outro problema diferente do roteamento ainda não havia sido investigada. Neste trabalho, mostra-se como é possível aplicar o AEMMD também ao PMM.

o Adaptou-se e executou-se alguns ACOs da literatura (Multi-Objective Ant Colony

Optimization Algorithm (MOACS) e Multiobjective Evolutionary Algorithm Based on Decomposition ACO (MOEA/D-ACO)) para os problemas do roteamento

mul-ticast (PRM) e da mochila (PMM). Nessa adaptação, também foi proposto um modelo mais eĄciente para a construção de soluções no PRM.

(30)

28 Capítulo 1. Introdução

o Através da execução de vários algoritmos multi e many-objective sobre 2 proble-mas diferentes em diversos níveis de complexidade, foi feita uma análise sobre o comportamento desses algoritmos à medida em que se aumenta o número de objeti-vos e a complexidade do espaço de busca, possibilitando uma comparação entre os principais algoritmos da literatura.

o A principal contribuição desta dissertação está na proposição de um novo algoritmo denominado Many-objective Ant Colony Optimization based on Non-Dominated Sets (MACO/NDS). O MACO/NDS é uma estratégia baseada em colônia de formigas e decomposição de objetivos que resolve problemas com muitos objetivos de forma rápida e eĄciente. O novo método foi aplicado aos problemas PMM e PRM e com-parado com os demais algoritmos. Durante o processo de desenvolvimento desse algoritmo, diferentes estratégias para a construção de soluções em ambos os proble-mas (PMM e PRM) foram avaliadas e diversos experimentos foram realizados, os quais serão apresentados no decorrer do texto.

1.3 Organização do texto

Este trabalho está dividido em capítulos organizados da seguinte forma:

o Capítulo 2, otimização bio-inspirada: nesse capítulo apresenta-se uma visão geral sobre os algoritmos genéticos e a otimização por colônia de formigas.

o Capítulo 3, otimização multiobjetivo: apresenta-se a deĄnição de problemas multiobjetivos e descreve-se cada algoritmo usado neste trabalho.

o Capítulo 4, problemas de teste: introduz os dois problemas explorados nesta dissertação, o Problema da Mochila Multiobjetivo (PMM) e o Problema do Rotea-mento Multicast (PRM), assim como as estratégias evolutivas para cada um deles. o Capítulo 5, algoritmo proposto: descreve o algoritmo MACO/NDS proposto

nesta dissertação e as estratégias para a construção de soluções em ACO para ambos os problemas tratados neste trabalho (PMM e PRM).

o Capítulo 6, experimentos: apresenta e discute todos os experimentos realizados no decorrer deste trabalho com o objetivo de avaliar a eĄciência do algoritmo pro-posto, bem como analisar comparativamente o desempenho das abordagens investi-gadas na resolução de diferentes conĄgurações de dois problemas discretos distintos. o Capítulo 7, conclusão: resume as principais conclusões obtidas a partir dos

(31)

29

Capítulo

2

Otimização bio-inspirada

Grande parte dos problemas de otimização envolvem encontrar a melhor opção em um conjunto de possibilidades que cresce de maneira exponencial (KANN, 1992). Tais problemas são impossíveis de serem resolvidos de modo satisfatório com a tecnologia atual e necessitam de estratégias inteligentes para se aproximarem da solução ótima em tempo hábil. Dentre essas estratégias, destacam-se os algoritmos gulosos e os algoritmos de busca bio-inspirados.

Os algoritmos gulosos (CORMEN et al., 2009) são estratégias relativamente simples que, apesar de nem sempre obterem a solução ótima, normalmente aproximam-se bem dela. Tais métodos são geralmente utilizados quando apenas um critério é envolvido na otimização. Quando mais de um objetivo deve ser analisado, o problema Ąca bem mais complexo e essa abordagem deixa de ser indicada.

A otimização bio-inspirada (RAI; TYAGI, 2013) lança mão de estratégias baseadas na natureza para se encontrar boas soluções de forma eĄciente. Assim como os algoritmos gulosos, não é garantida a obtenção da solução ótima, mas com uma boa modelagem do problema, é possível encontrar soluções suĄcientemente próximas. Na natureza, o processo de obter uma boa solução é usado a todo momento, desde a forma como as espécies evoluem, até a maneira como uma simples formiga encontra o caminho mais curto entre a colônia e uma fonte de comida. Ao observar processos comuns da natureza, estudiosos encontraram maneiras simples e eĄcientes de se resolver diversos problemas de otimização. Os principais métodos de otimização bio-inspirados na literatura são os algoritmos evolutivos e os algoritmos de inteligência coletiva (swarm intelligence). Dentre os evolutivos, se os algoritmos genéticos (AGs), e dentre os coletivos, destacam-se as colônias de formigas (ACOs) e os enxames de partículas (PSOs).

Os algoritmos genéticos se inspiram na teoria da evolução de Darwin (DARWIN, 1859). Na evolução das espécies, cada indivíduo possui um material genético que é cruzado com os genes de outro representante da espécie para gerar um novo indivíduo. Durante tal cruzamento, alguns indivíduos sofrem mutações aleatórias que podem alterar parte de sua carga genética e, com isso, suas características (fenótipo). O ambiente determina a

(32)

30 Capítulo 2. Otimização bio-inspirada

parte da população que sobrevive e a parte que perece. Os indivíduos sobreviventes, ou seja, aqueles bem adaptados ao ambiente, possuem maiores chances de se reproduzir e espalhar suas boas características genéticas. Desta forma, a evolução das espécies nada mais é que um processo otimizador, no qual indivíduos são gerados e os melhores são selecionados. Esse processo é repetido ao longo das gerações, até que se obtenha indivíduos bem adaptados ao ambiente em questão.

Os ACOs são inspirados no comportamento das formigas, organismos simples que quando analisados em conjunto (colônia) apresentam comportamento complexo (DO-RIGO; MANIEZZO; COLORNI, 1996). O interesse nas formigas vem da observação de que, ao buscarem por comida, acabam por encontrar o caminho mais rápido entre a fonte de alimento e o formigueiro. Como podem seres tão simples resolverem eĄcientemente um problema de otimização? Estudos revelaram que as formigas se baseiam no depósito de feromônios para se guiarem. Quanto mais forte o feromônio em um caminho, maior as chances dele ser utilizado pelas formigas. Tal comportamento serviu de inspiração para os algoritmos de otimização bio-inspirados, dando origem ao ACO.

Os algoritmos baseados em enxames de partículas (PSOs), assim como os ACOs são inspirados no comportamento emergente de populações de animais simples. Os PSOs se inspiram na navegação de pássaros, onde cada elemento da formação se guia através dos pássaros à frente (KENNEDY; EBERHART, 1995). O algoritmo se baseia na dire-ção e velocidade de cada elemento do enxame, determinando a exploradire-ção do espaço de busca através de operações vetoriais. Portanto, é uma estratégia indicada para problemas contínuos, não sendo adequada para os problemas explorados nesta dissertação (embora existam exemplos de discretização dos PSOs na literatura).

Em geral, todo algoritmo de otimização bio-inspirado inicia sua busca por meio da geração aleatória de soluções. Após essa geração inicial, inicia-se uma etapa recorrente, na qual as melhores soluções guiam a construção de novas soluções que serão submetidas ao mesmo processo até que uma condição de parada seja atingida. Como não é necessá-rio gerar todas as soluções possíveis, são métodos eĄcazes que, quando bem modelados, encontram um conjunto de boas soluções que resolvem o problema. Uma das principais diferenças entre os algoritmos bio-inspirados e as demais estratégias de otimização é o fato de que os primeiros produzem um conjunto de soluções aproximadas até o último passo do processo, quando, retorna a solução melhor avaliada. Essa é uma característica inte-ressante para a otimização multiobjetivo, pois nela poder-se-ia retornar todas as soluções não-dominadas ao invés de apenas uma.

2.1 Algoritmos Genéticos

Os algoritmos genéticos (AGs) são métodos de busca baseados na ideia da seleção natu-ral proposta por Charles Darwin (DARWIN, 1859). A teoria de Darwin, hoje já endossada

(33)

2.1. Algoritmos Genéticos 31

por diversas observações no campo da biologia, parte do princípio de que os organismos se adaptam ao ambiente em que vivem através de seleção natural, cruzamento e mutação. Mudanças nos genes (genótipo) de um indivíduo da população afetam suas características genéticas (fenótipo) e podem ajudá-lo a sobreviver em seu habitat ou atrapalhá-lo. Os indivíduos com características favoráveis têm maiores chances de sobreviver e reproduzir, passando essas características para a geração seguinte. Dessa forma, ao longo de milhões de anos, organismos simples se tornam complexos e extremamente adaptados ao meio.

A ideia dos algoritmos genéticos é aplicar o mesmo conceito da evolução natural na computação. O algoritmo parte de um conjunto de soluções aleatórias (população inicial) e, após várias iterações de seleção, cruzamento (ou crossover) e mutação, obtém um conjunto de soluções (população Ąnal) que espera-se que resolvam bem o problema. Nesse processo, o indivíduo na população representa uma solução, o meio representa o problema e as operações de cruzamento e mutação devem ser deĄnidas, respectivamente, de forma a permitir a combinação de duas soluções e uma alteração aleatória em uma solução. A seleção dos pais e a sobrevivência dos mais aptos representam a metáfora da seleção natural.

Conforme ilustrado na Figura 1, o funcionamento básico de um AG inicia-se com a geração da população inicial. Nessa etapa, os indivíduos da população são normalmente gerados de forma aleatória e, em seguida, avaliados quanto à sua aptidão ao meio. No caso de um problema de otimização para uma função objetivo 𝑓, a aptidão de um indivíduo 𝑥 é dada por 𝑓(𝑥). Após esse processo de inicialização, parte-se para a evolução das gerações que consiste na repetição das seguintes etapas:

1. Sortear os pares de pais;

2. Aplicar o cruzamento em cada par e gerar os Ąlhos;

3. Aplicar a mutação aos Ąlhos, de acordo com uma taxa de mutação pré-estabelecida; 4. Avaliar os Ąlhos;

5. Selecionar entre pais e Ąlhos quais indivíduos formarão a população da iteração seguinte (reinserção).

A evolução das gerações do AG termina quando uma condição de término estabelecida pelo usuário é atingida, por exemplo, encontrar a solução ótima do problema (quando conhecida) ou atingir um número máximo de gerações. Cada etapa de execução do AG é descrita com mais detalhes a seguir.

2.1.1 Representação do indivíduo

A principal diĄculdade ao se elaborar um algoritmo genético é deĄnir a representação do indivíduo. Cada indivíduo representa uma possível solução para o problema

(34)
(35)

investi-2.1. Algoritmos Genéticos 33

facilidade de manipulação da estrutura, a possibilidade de se introduzir um fator aleatório (mutação) e, principalmente, a representação das características de ambos os pais nos Ąlhos. Se a estrutura não permite a herança de características, não é uma boa escolha para se utilizar em um algoritmo genético. Além disso, é preciso garantir a unicidade da forma de representação, ou seja, cada solução pode ser representada de uma única maneira e cada indivíduo deve representar uma única solução (relação um-para-um).

2.1.2 Seleção de pais

A estratégia para selecionar os pais que contribuirão para a composição genética da geração seguinte do AG deve ser escolhida de acordo com o propósito do algoritmo. Dependendo do problema, pode ser mais desejável uma convergência rápida que uma exploração mais profunda do espaço de busca, por exemplo. Os três métodos abaixo estão entre os mais empregados na etapa de seleção.

1. Seleção elitista: os 𝑡e% indivíduos da população com melhor aptidão formam um

grupo de onde se sorteiam todos os pares de pais necessários para gerar a população de Ąlhos. 𝑡erepresenta a taxa de elitismo, que é um parâmetro do AG. Dessa forma,

não há chance de indivíduos muito ruins propagarem suas características. Portanto, a população converge para indivíduos iguais (ou muito parecidos) rapidamente, sem explorar partes do espaço de busca aparentemente ruins. Isso pode prejudicar o algoritmo em problemas com muitos mínimos locais, onde o fato de existir uma solução ruim não quer dizer que as soluções próximas também o são.

2. Roleta: é um método menos rigoroso que o anterior. Cada indivíduo recebe uma probabilidade de ser selecionado de acordo com sua aptidão. Os indivíduos com maior aptidão receberão probabilidade alta e diĄcilmente não serão selecionados, enquanto indivíduos muito ruins raramente se tornarão pais. Apesar disso, toda solução tem chance de ser escolhida, o que melhora a exploração do espaço de busca em relação a estratégia anterior, mas pode diminuir a velocidade de convergência. Esta estratégia é um meio-termo entre a seleção elitista e a seleção por torneio, explicada a seguir.

3. Seleção por torneio: esta é a estratégia com a menor pressão seletiva dentre os três métodos, ou seja, aquele que dá a maior chance aos indivíduos ruins de se torna-rem pais e propagatorna-rem suas características. O torneio consiste em selecionar dois indivíduos aleatoriamente e escolher como primeiro pai aquele com a melhor apti-dão, da mesma forma, sorteiam-se dois outros indivíduos na população, diferentes do primeiro pai, e deĄne-se como segundo pai a solução com melhor aptidão. O torneio básico é o torneio de dois, mas para aumentar a pressão seletiva, é possível realizar o torneio com um maior número de representantes da população. Dentre as

(36)

34 Capítulo 2. Otimização bio-inspirada

três estratégias, esta é a que melhor explora o espaço de busca. Por outro lado, é possível que, ao explorar demasiadamente o espaço, o AG não consiga convergir.

2.1.3 Operadores genéticos

Nos algoritmos genéticos, destacam-se duas operações principais que atuam sobre o código do indivíduo: cruzamento e mutação. O cruzamento e a mutação estão diretamente ligados com a forma de representação do indivíduo.

Num algoritmo genético, cada iteração do laço principal é chamada de geração. No início de cada geração, sorteiam-se pares de pais de acordo com suas aptidões para que seja gerada uma nova população de Ąlhos. A quantidade de pares de pais sorteados é determinada pela taxa de crossover, a qual é um parâmetro de conĄguração do AG. Cada par é composto de duas cadeias genéticas (cromossomos), uma correspondente a cada indivíduo do par. Para gerar o Ąlho, cruzam-se os dois cromossomos a Ąm de se obter dois novos indivíduos que compartilhem características de ambos genitores. Esse processo é conhecido como cruzamento, ou crossover. Existem várias maneiras de se cruzar cadeias genéticas. A escolha depende principalmente da estrutura de dados usada para representar o cromossomo. A estrutura mais comum é a cadeia binária (GOLDBERG, 1989), onde uma solução é codiĄcada em uma cadeia de 0Šs e 1Šs. Nesse caso, a forma mais simples de efetuar o cruzamento é gerar duas novas cadeias de bits (Ąlhos), onde parte do material genético (posições na cadeia) pertence a um pai e o restante do material é proveniente do outro. Os Ąlhos gerados em um cruzamento adotam materiais genéticos complementares de cada pai. Por exemplo, se o Ąlho 1 herda os n primeiros genes do pai 1 e o restante do pai 2, o Ąlho 2 herdará os 𝑛 primeiros genes do pai 2 e o restante do pai 1. A Figura 2 ilustra este tipo de cruzamento. Existem diversas formas de se combinar duas cadeias de bits, dentre elas podem-se destacar:

o Ponto de cruzamento único: uma posição 𝑖 de uma das cadeias é sorteada. O Ąlho 1 herda os 𝑖 primeiros genes do pai 1 e restante do pai 2, enquanto que o Ąlho 2 adota o material genético complementar. Na Figura 2, é ilustrado um exemplo onde o ponto de cruzamento é estabelecido na metade.

o Dois pontos de cruzamento: ao invés de se utilizar apenas um ponto para dividir o material genético, este método divide a cadeia binária em três partes. Nesse caso, um Ąlho herda a primeira e terceira partes de um pai e a segunda do outro.

o Cruzamento uniforme: cada bit do Ąlho é obtido de forma aleatória, pode vir tanto do pai 1 quanto do pai 2. Em termos de implementação, sorteia-se uma máscara binária e para cada bit 0 da máscara, copia-se o gene do pai 1 para o Ąlho. Para cada bit 1, copia-se o gene do pai 2.

(37)

2.1. Algoritmos Genéticos 35

o Cruzamento aritmético: realiza-se uma operação binária (ex: AND, OR, XOR, etc.) entre os cromossomos do pai 1 e do pai 2.

Pai 1: 0 0 1 0 1 1 Pai 2: 1 0 0 1 1 0 Filho 1: 0 0 1 1 1 0 Filho 2: 1 0 0 0 1 1

Figura 2 Ű Exemplo de crossover com cruzamento de ponto único, onde o ponto de cru-zamento está na metade do material genético.

Esses operadores genéticos foram propostos inicialmente para indivíduos binários. Para outros tipos de representação de indivíduos (não binários), foram necessários ou-tros tipos de cruzamento mais apropriados a essas representações (número reais, números inteiros, árvores, etc).

A Ąm de melhorar a diversidade entre as soluções avaliadas, uma pertubação nos genes dos indivíduos é gerada durante a busca, possibilitando a exploração de elementos ausentes na população atual. Para isso, após gerar o cromossomo de cada Ąlho, é preciso permitir que ocorra uma mutação, ou seja, uma mudança aleatória no material genético. A chance de uma mutação ocorrer depende de um parâmetro do AG chamado de Ştaxa de mutaçãoŤ. O processo de alteração genética aleatória depende da representação do indivíduo. No caso de uma cadeia binária, por exemplo, é simples, basta sortear um bit e invertê-lo. Em árvores, a mutação pode consistir na eliminação de algum vértice e na reconexão aleatória. Em grafos ponderados, alterar os pesos de uma aresta pode ser uma boa ideia. A deĄnição do processo de mutação dependerá do problema e pode ser feita de várias maneiras diferentes, desde que produza uma pequena diferença no indivíduo e que ele continue representando uma solução válida.

O cruzamento normalmente gera um ou dois Ąlhos para cada pai. Em todos os métodos descritos anteriormente é possível obter um segundo Ąlho com o material genético não utilizado.

2.1.4 Reinserção da População

Independente do número de Ąlhos gerados, após os processos de crossover e mutação, a população será maior que o limite máximo permitido, exigindo a eliminação de alguns indivíduos (seleção natural). A reinserção opera sobre a aptidão (função de avaliação ou Ątness) de cada indivíduo da população. Diversas estratégias podem ser aplicadas nesse processo de seleção, também conhecido como reinserção. Por exemplo, a seleção

(38)

36 Capítulo 2. Otimização bio-inspirada

natural sem elitismo, simplesmente elimina a população mais velha (pais). A seleção natural com elitismo mantém um percentual da população de pais (elite), completando-a com os melhores Ąlhos. Outro tipo de elitismo é a seleção dos melhores indivíduos. Essa estratégia é normalmente mais interessante, pois permite a sobrevivência dos indivíduos mais aptos considerando a totalidade da população, sendo assim, avaliam-se todos os pais e Ąlhos e mantêm-se aqueles com melhor aptidão.

2.2 Otimização por Colônia de formigas

A otimização por colônia de formigas (ACO), proposta por Dorigo, Maniezzo e Colorni (1996), é um modelo de busca bio-inspirado que parte da ideia de que estruturas simples, com alguma espécie de comunicação, podem gerar um comportamento complexo quando operam em conjunto, de forma cooperativa. A inspiração do ACO é o forrageamento em uma colônia de formigas. Na natureza, observa-se que as formigas, mesmo sendo seres vivos simples, conseguem encontrar o melhor caminho entre o formigueiro e a fonte de comida. A partir do estudo desse comportamento, descobriu-se que tal faceta é possível através de uma comunicação indireta entre os animais. Ao fazer um caminho, as formigas depositam uma substância chamada feromônio, a qual pode ser percebida por outros membros da espécie. Uma formiga ao decidir qual caminho percorrer, tem maior chance de escolher aquele com a maior quantidade de feromônios. Além disso, a substância evapora com o tempo. Dessa forma, quanto menor o caminho, maior a frequência com a qual as formigas depositarão feromônio e, portanto, maior será a chance de ser escolhido. Ao trazer o conceito de colônia de formigas para a computação, observa-se um grande potencial para se resolver problemas de busca em grafo. Por exemplo, para descobrir o menor caminho entre os vértices 𝐴 e 𝐵 em um grafo não ponderado 𝐺, basta simular várias formigas que partem de 𝐴 e chegam em 𝐵, fazendo um caminho baseado na quantidade de feromônios das arestas. Ao Ąnal de cada iteração, atualiza-se o valor do feromônio em cada aresta de acordo com a evaporação e com as arestas percorridas pelas formigas. Dessa forma, espera-se que, após várias iterações, a quantidade de feromônios seja suĄciente para guiar uma formiga pelo melhor caminho entre 𝐴 e 𝐵. O Ćuxograma de um ACO é mostrado na Figura 3.

O algoritmo inicia com a limpeza dos feromônios das arestas, ou seja, é atribuído zero para a quantidade de feromônio depositado em cada aresta do grafo. Após essa limpeza, inicia-se o processo iterativo do algoritmo onde, a cada iteração, as formigas na colônia percorrem o caminho do vértice de partida (formigueiro) ao nó destino (fonte de comida). Dependendo da formulação do problema, o caminho de volta também pode ser realizado. Ao Ąnal de cada iteração, atualizam-se os feromônios em cada aresta. O algoritmo termina quando uma condição de parada pré-determinada é atingida, normalmente um número máximo de iterações. As etapas principais da execução de um ACO são descritas a seguir.

(39)

2.2. Otimização por Colônia de formigas 37

Figura 3 Ű Fluxograma de um ACO.

2.2.1 Representação da solução

No ACO, a solução é representada pelo caminho feito pela formiga no grafo, normal-mente uma lista de vértices, uma árvore ou um subgrafo do grafo de entrada. Por exemplo, no problema de encontrar o menor caminho, a solução pode ser uma lista de vértices que representa o percurso desse caminho. Caso seja necessário encontrar caminhos entre a raiz e diversos destinos, pode-se representar a solução como uma árvore. Nem sempre é fácil decidir a codiĄcação de uma solução. No problema da mochila, por exemplo, não é trivial a visualização de um grafo no processo da construção da solução. Nesse caso, uma possível representação é a associação de feromônios diretamente aos itens, através de um vetor de feromônios ao invés de uma matriz.

2.2.2 Construção da solução

Independentemente da representação escolhida, deve ser possível relacionar cada parte da solução com uma quantidade de feromônios na estrutura principal. Por exemplo, no caso de grafos, as arestas escolhidas para montar a solução devem ter seus feromônios incrementados a Ąm de guiar as próximas formigas. Em cada época (iteração do algoritmo) um número pré-determinado de soluções é construído, onde cada formiga decide quais

(40)

38 Capítulo 2. Otimização bio-inspirada

partes serão adotadas em sua solução, com base nos respectivos valores de feromônio. Além dos feromônios, as formigas ainda utilizam as informações de heurística para decidir o próximo passo. Uma heurística é uma função que estima a qualidade do caminho e normalmente representa o peso de uma aresta. Estando em um vértice 𝑖 de um grafo 𝐺, uma formiga tem probabilidade 𝑝(𝑖, 𝑗) de escolher a aresta que leva ao vértice adjacente

𝑗. Essa probabilidade é calculada pela seguinte equação:

𝑝(𝑖, 𝑗) = á α i,j× Ö β i,j ∑︀ v∈adj(i)ái,vα × Ö β i,v (1) Sendo: o áα

i,j: feromônio na aresta (𝑖, 𝑗) elevado à constante Ð, que representa a importância

atribuída ao valor do feromônio. Representa o conhecimento sobre o ambiente (busca global).

o Öi,jβ : heurística da aresta (𝑖, 𝑗) elevada à constante Ñ, que representa a importância

atribuída à heurística. A heurística de uma aresta é dada em função do peso, como, por exemplo, 1/𝑝𝑒𝑠𝑜, normalmente usado em problemas de minimização. Representa a visibilidade da formiga (busca local).

o 𝑎𝑑𝑗(𝑖): são todos os vértices adjacentes a 𝑖, ou seja, todo vértice em 𝐺 para o qual é possível construir um caminho a partir de 𝑖 com apenas uma aresta.

O número de iterações (épocas), a quantidade de soluções geradas por iteração e as constantes Ð e Ñ são parâmetros de conĄguração de um algoritmo ACO. De forma geral, dado um grafo 𝐺 e um nó inicial, o processo de construção da solução sempre veriĄca todos os movimentos possíveis para a formiga, tomando sua decisão de acordo com os feromônios e as heurísticas de cada uma das possibilidades.

2.2.3 Atualização dos feromônios

Existem duas ocasiões onde o feromônio de uma aresta pode ser atualizado: no mo-mento em que a formiga passa pela aresta e no Ąm de cada iteração. A maioria das implementações considera apenas o segundo caso, pois assim, é possível avaliar as solu-ções e incrementar os feromônios de acordo com os desempenhos obtidos. Ao Ąm de cada época, a quantidade de feromônio existente na aresta que liga os vértices i e j (ái,j) é

atualizada por: ái,j = (1 ⊗ 𝜌) × ái,j + ∑︁ k∈formigas Δái,j(𝑘) (2) Sendo:

(41)

2.2. Otimização por Colônia de formigas 39

o 𝜌: parâmetro de conĄguração do ACO que corresponde ao coeĄciente de evaporação. Determina o quão rápido o feromônio deve desaparecer das arestas após depositado. o 𝑓 𝑜𝑟𝑚𝑖𝑔𝑎𝑠: conjunto de todas as formigas na iteração.

o Δái,j(𝑘): quantidade de feromônio depositada pela formiga 𝑘 na aresta entre os

vértices 𝑖 e 𝑗.

A quantidade de feromônio depositada por uma formiga 𝑘 em uma aresta entre os vértices 𝑖 e 𝑗 é dada por:

Δái,j(𝑘) = ∏︁ ⋁︁ ⨄︁ ⋁︁ ⋃︁ Q Lk, se 𝑥 ⊙ 1 0, caso contrário (3) Sendo:

o 𝑄: Quantidade máxima de feromônio que pode ser depositada por uma formiga. o 𝐿k: Custo da solução gerada pela formiga 𝑘.

Considerando essas características, nossa pesquisa propõe uma nova versão de ACO para tratar problemas discretos com enfoque em otimização multiobjetivo.

(42)
(43)

41

Capítulo

3

Otimização multiobjetivo

A otimização multiobjetivo consiste em selecionar as melhores soluções de acordo com múltiplos critérios. Por exemplo, ao estabelecer o melhor caminho entre duas cidades pode-se não estar interessado apenas na menor distância, mas também no tráfego, se-gurança das vias, quantidade de pedágios, etc. Na otimização com um único objetivo, a comparação entre soluções é relativamente simples. Para que uma solução seja considerada melhor que a outra, basta que ela tenha uma melhor avaliação segundo o critério/métrica considerada. Por outro lado, quando se trabalha com mais de uma função de otimização, é preciso adotar alguma estratégia mais elaborada. Por exemplo, pode ser possível apli-car algum tipo de ponderação entre os valores dos diferentes objetivos, combinando-se as funções em um único objetivo. De forma alternativa, existem diversas abordagens que mantêm os objetivos separados e trabalham com o conceito de dominância de Pareto, como os algoritmos NSGA-II (DEB et al., 2002a) e SPEA2 (ZITZLER; LAUMANNS; THIELE, 2001).

A dominância de Pareto estabelece que uma solução 𝐴 é melhor que uma solução 𝐵, ou 𝐴 domina 𝐵 (𝐴 ∼ 𝐵), se, e somente se:

o 𝐴 é melhor avaliado que 𝐵 em pelo menos um dos objetivos; o 𝐴 não tem avaliação pior que 𝐵 em nenhum dos objetivos.

Considerando-se um problema de minimização e 𝐹 como o conjunto de funções obje-tivo, tem-se, matematicamente:

𝐴∼ 𝐵 ⇔ (∀(𝑓 ∈ 𝐹 )𝑓(𝐴) ⊘ 𝑓(𝐵)) ∧ (∃(𝑓 ∈ 𝐹 )𝑓(𝐴) < 𝑓(𝐵)) (4) Em problemas de otimização multiobjetivo, geralmente o objetivo está em encontrar o conjunto Pareto ótimo, ou seja, o conjunto de todas as soluções do espaço de busca que não são dominadas por nenhuma outra e cujo mapeamento para o espaço de objetivos forma a Fronteira de Pareto. GraĄcamente, a fronteira de Pareto representa a linha formada pelas soluções não-dominadas existentes para o problema. Na Figura 4 apresenta-se um

(44)

42 Capítulo 3. Otimização multiobjetivo

Figura 4 Ű Fronteira de Pareto

exemplo da fronteira de Pareto para um problema de minimização com dois objetivos (𝐹 1 e 𝐹 2). Nesse exemplo, os pontos pertencentes à fronteira de Pareto estão destacados em vermelho. Observe que, todas as soluções pertencentes à fronteira de Pareto são não dominadas, ou seja, nenhum ponto da fronteira possui ambos valores menores que alguma outra solução em ambas as funções (𝐹 1 e 𝐹 2). Em contrapartida, toda solução acima da fronteira (pontos em cinza) é dominada, pois existe alguma solução em vermelho que possui ambos valores de F1 e F2 menores.

Não existe limite para o número de funções objetivo em um problema de otimização, mas quanto maior a quantidade de objetivos, mais complexa é a busca (DEB; JAIN, 2014). Os algoritmos clássicos de otimização multiobjetivo Non-Dominated Sorting Genetic

Al-gorithm II (NSGA-II) e Strength Pareto Evolutionary AlAl-gorithm 2 (SPEA2) lidam bem

com até três objetivos, mas a partir de quatro critérios de otimização, ambos os métodos sofrem para encontrar soluções que fazem parte do conjunto Pareto ótimo do problema. Desta forma, criou-se a classiĄcação Şmany-objectiveŤ. Problemas many-objective (4 ou mais objetivos) apresentam um maior grau de diĄculdade e demandam novas técnicas para que sejam resolvidos eĄcientemente. Analisando as abordagens baseadas em algo-ritmos evolutivos multiobjetivos (AEMOs), Deb e Jain (2014) observaram os seguintes os problemas trazidos pelo alto número de objetivos:

1. Grande parte da população é não dominada: a maioria dos algoritmos multi-objetivos classiĄca a população de acordo com a dominância de Pareto. Se existem muitas funções objetivo, é muito comum que uma solução seja melhor que outra em pelo menos uma delas. Desta forma, a maior parte das soluções se torna não-dominada, o que impede os algoritmos de evoluírem a população, já que todos os indivíduos são considerados igualmente bons.

(45)

3.1. Algoritmos Bio-Inspirados Multiobjetivos 43

a Ąm de garantir uma boa diversidade populacional, os algoritmos adotam alguma medida de distância entre as soluções e removem aquelas consideradas mais simi-lares. O aumento na dimensionalidade traz consequentemente um maior impacto (complexidade e custo) no cálculo da proximidade entre os indivíduos.

3. Crossover ineĄciente: a alta dimensionalidade do espaço de busca faz com que os indivíduos na população sejam muito distantes uns dos outros e, normalmente, o cruzamento entre duas soluções muito diferentes resultam num Ąlho muito distante dos pais, o que prejudica a convergência da busca. Portanto, pode ser necessário redeĄnir os operadores de recombinação a Ąm de restringir as possibilidades de pareamento.

4. População demasiadamente grande: quanto maior o número de objetivos, maior o número de soluções na fronteira de Pareto. Portanto, para se obter bons resultados, é necessário que se manipule grandes populações de indivíduos, o que é computacionalmente caro e diĄculta a análise do usuário que deverá escolher uma única solução ao Ąnal do processo.

5. Métricas de análise de desempenho do algoritmo se tornam difíceis de calcular: a avaliação do resultado do algoritmo (taxa de erro, distância para o Pareto, hiper-volume, etc.) está diretamente relacionada ao número de objetivos. Quanto maior ele for, maior será o esforço computacional necessário. A comple-xidade do hiper-volume, por exemplo, cresce exponencialmente com o número de objetivos.

6. DiĄculdade de visualização: é fácil representar graĄcamente as soluções e a fronteira de Pareto em problemas de até três objetivos. Entretanto, não existe uma forma eĄciente de visualizar os resultados para problemas que lidam com maior dimensionalidade (4 objetivos em diante).

A maior parte dos algoritmos many-objectives mencionados neste trabalho buscam lidar com os quatro primeiros problemas. As duas últimas não se relacionam direta-mente aos algoritmos de otimização em si, mas sim à análise da qualidade das soluções encontradas.

3.1 Algoritmos Bio-Inspirados Multiobjetivos

A maior parte dos métodos de busca multiobjetivo é baseada em algoritmos inspirados na biologia. Esses algoritmos são adaptações das estratégias evolutivas, colônias de for-migas e enxames de partículas tradicionais para lidar com problemas que envolvam mais de um objetivo. A principal diferença entre um algoritmo de otimização tradicional e sua

(46)

44 Capítulo 3. Otimização multiobjetivo

variação multiobjetivo está na forma de cálculo da aptidão dos indivíduos da população. No caso dos algoritmos multiobjetivos, geralmente o conceito de dominância é usado de diferentes formas (BUENO; OLIVEIRA, 2010).

A seguir são apresentados alguns algoritmos bio-inspirados multiobjetivo encontrados na literatura. Os dois primeiros (NSGA-II e SPEA2) são algoritmos bem conhecidos e largamente utilizados em problemas multiobjetivos. Apesar de sua eĄciência na resolução de problemas com até 3 objetivos, o desempenho desses AEMOs costuma cair conside-ravelmente com o aumento no número de objetivos (FRANÇA et al., 2017). Os demais algoritmos apresentados, são mais recentes e foram concebidos especiĄcamente para tratar de problemas many-objective, ou seja, que envolvam 4 ou mais objetivos.

3.1.1 NSGA-II

O Non-dominated Sorting Genetic Algorithm II (NSGA-II) (DEB et al., 2002a) é o algoritmo evolutivo multiobjetivo mais frequente na literatura. O processo desse algoritmo é semelhante ao do algoritmo genético comum, com diferença no cálculo de aptidão, que é feito por ranks, e no cálculo de distâncias, que é inexistente na proposta original do AG. A atribuição de aptidão (Ątness) se dá pela classiĄcação da população em categorias/classes (rankings) de dominância (fronteiras), de forma que o primeiro contenha todas as soluções não dominadas, o segundo todos os indivíduos não-dominados excluindo aqueles presentes na primeira fronteira, e assim por diante. Quanto melhor o ranking de uma solução, melhor sua aptidão e maior sua chance de sobreviver para a próxima geração. Várias soluções podem pertencer a uma mesma fronteira. A Ąm de diferenciá-las entre si, é utilizado um cálculo de distância (crowding distance), o qual confere melhor avaliação às soluções mais esparsas de uma mesma fronteira (maior distância em relação às outras soluções da fronteira), garantindo assim a diversidade da população.

O Ćuxo de funcionamento do NSGA-II inicia-se com a geração aleatória dos indivíduos. Em seguida, a população é classiĄcada em fronteiras de dominância (ou ranks) e inicia-se o processo iterativo, o qual termina assim que a condição de parada é atingida. As etapas que compõem cada iteração do NSGA-II são descritas no pseudo-código do algoritmo 1. Algoritmo 1 Processo iterativo do NSGA-II

1: enquanto critério de parada não for atingido faça 2: 𝑃 𝑎𝑖𝑠⊂ 𝑠𝑒𝑙𝑒𝑐𝑎𝑜(𝑃 𝑜𝑝atual, 𝑇 𝑋cross) 3: 𝐹 𝑖𝑙ℎ𝑜𝑠⊂ 𝑐𝑟𝑜𝑠𝑠𝑜𝑣𝑒𝑟(𝑃 𝑎𝑖𝑠) 4: 𝑃 𝑜𝑝nova ⊂ 𝑃 𝑜𝑝atual∪ 𝐹 𝑖𝑙ℎ𝑜𝑠 5: 𝑟𝑎𝑛𝑘𝑠⊂ 𝑟𝑎𝑛𝑘𝑖𝑛𝑔(𝑃nova) 6: 𝑐𝑟𝑜𝑤𝑑𝑖𝑛𝑔𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑃nova) 7: 𝑃 𝑜𝑝atual ⊂ 𝑟𝑒𝑖𝑛𝑠𝑒𝑟𝑐𝑎𝑜(𝑟𝑎𝑛𝑘𝑠, 𝑡𝑎𝑚populacao) 8: Ąm enquanto

(47)

3.1. Algoritmos Bio-Inspirados Multiobjetivos 45

cruzamento (linha 2). Na implementação considerada, a seleção de pais utiliza torneio simples com tour de 2, ou seja, dois elementos da população são escolhidos de forma aleatória e o indivíduo com melhor avaliação é selecionado como um dos pais. Então, esse processo é repetido para a escolha do segundo pai.

Na linha 3 do pseudo-código, através dos pares de pais, geram-se os Ąlhos com o

crossover e a mutação. Após a geração dos Ąlhos, a população corrente e o conjunto de

Ąlhos são concatenados (linha 4) e submetidos à classiĄcação em fronteiras de dominância (ranks) na linha 5).

A classiĄcação em fronteiras de dominância recebe um conjunto de soluções e veriĄca quais dentre elas não são dominadas. O conjunto de soluções não-dominadas forma a primeira fronteira de dominância. Do conjunto restante (excluindo a primeira fronteira), retiram-se as soluções não dominadas para formar a segunda fronteira. Esse processo se repete até que todos os indivíduos tenham sido classiĄcados.

Após toda a população ter sido classiĄcada em fronteiras, na linha 6, o algoritmo calcula a distância de aglomeração (crowding distance) dos indivíduos em cada fronteira de dominância. O cálculo da distância, considerando cada objetivo avaliado, ordena o conjunto de soluções e faz uma relação entre as distâncias de cada indivíduo para os vizi-nhos adjacentes (que estão imediatamente antes ou depois). A distância de aglomeração de cada indivíduo é resultado da somatória das distâncias resultantes em cada objetivo. Quanto maior o valor, maior é a diferença entre o indivíduo e seus pares dentro do rank. Essa métrica é usada para manter a diversidade das soluções entre as gerações do algo-ritmo.

Com toda a população classiĄcada em fronteiras (ou ranks) e todas as distâncias calculadas, na linha 7, uma nova população é escolhida com base nos melhores indivíduos entre pais e Ąlhos. Para isso, analisa-se fronteira a fronteira, da melhor para a pior, até que o tamanho máximo da população seja atingido. Para cada fronteira aplica-se o seguinte processo de decisão:

o Se 𝑡𝑎𝑚𝑎𝑛ℎ𝑜(𝑓 𝑟𝑜𝑛𝑡𝑒𝑖𝑟𝑎) + 𝑡𝑎𝑚𝑎𝑛ℎ𝑜(𝑛𝑜𝑣𝑎𝑃 𝑜𝑝𝑢𝑙𝑎çã𝑜) < 𝑡𝑎𝑚𝑃 𝑜𝑝: adicionam-se to-dos os membros da fronteira à nova população.

o Caso contrário: adicionam-se à nova população os (𝑡𝑎𝑚𝑃 𝑜𝑝⊗𝑡𝑎𝑚𝑎𝑛ℎ𝑜(𝑛𝑜𝑣𝑎𝑃 𝑜𝑝𝑢𝑙𝑎çã𝑜)) elementos da fronteira com os maiores valores de distância.

Desta forma, ao Ąnal do algoritmo obtém-se a fronteira de Pareto aproximada na primeira fronteira da população gerada na última iteração do algoritmo.

3.1.2 SPEA2

O Strength Pareto evolutionary algorithm 2 (SPEA2) (ZITZLER; LAUMANNS; THI-ELE, 2001) é um AEMO que calcula, para cada membro da população, sua força (strength)

Referências

Documentos relacionados

Este trabalho se refere ao instituto processual conhecido como fundamentação das decisões judiciais, que em razão da divergência doutrinária quanto a nomenclatura

Neste caso, embora possam existir nestes locais, forrageiras de alta qualidade, como o capim-de-capivara (Hymenachne amplexicaulis), a disponibilidade de recursos forrageiros vai

1 Instituto de Física, Universidade Federal de Alagoas 57072-900 Maceió-AL, Brazil Caminhadas quânticas (CQs) apresentam-se como uma ferramenta avançada para a construção de

n.º 20.236, para responder como Encarregado (FG-S3), junto à Secretaria Municipal de Comunicação e Relações Sociais.. Registre-se, publique-se e

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

Entre os investimentos no setor de alimentos, o processo de internacionalização dos frigoríficos foi destaque do investimento brasileiro na região em 2007: foram sete aquisições,

O objetivo da pesquisa, realizada em julho, foi avaliar se as oito montadoras participantes do Programa Brasileiro de Etiquetagem Veicular (PBEV) em 2012 —

Enquanto Mestra Bernadete puder manter seus grupos em atividade ela receberá o apoio da família, vizinhança, Mestras e Mestres e de amigas que a incentivam nesta empreitada, pois